modelstat 0.12.0 → 0.14.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.mjs CHANGED
@@ -5153,7 +5153,12 @@ var init_schemas = __esm({
5153
5153
  correction_count: external_exports.number().int().nonnegative().default(0),
5154
5154
  /** 0-1 frustration estimate (re-prompt density + negative mood tags). */
5155
5155
  frustration: external_exports.number().min(0).max(1).default(0)
5156
- }).optional()
5156
+ }).optional(),
5157
+ /** Distilled "what the developer asked for / how they directed the AI" — from
5158
+ * their MESSAGES ONLY (not the assistant's actions), redacted, ≤512. The
5159
+ * source Insights' rule + skill detectors mine, distinct from the outcome
5160
+ * `abstract`. Optional; absent from daemons that predate it. */
5161
+ user_intent: external_exports.string().max(512).optional()
5157
5162
  });
5158
5163
  ToolAction = external_exports.object({
5159
5164
  /** Where it ran: `shell`, `mcp`, `builtin`, `browser`. (tier 0) */
@@ -10737,10 +10742,10 @@ var require_util = __commonJS({
10737
10742
  }
10738
10743
  return obj;
10739
10744
  }
10740
- function errorRequest(client, request3, err) {
10745
+ function errorRequest(client, request4, err) {
10741
10746
  try {
10742
- request3.onError(err);
10743
- assert(request3.aborted);
10747
+ request4.onError(err);
10748
+ assert(request4.aborted);
10744
10749
  } catch (err2) {
10745
10750
  client.emit("error", err2);
10746
10751
  }
@@ -11402,7 +11407,7 @@ var require_request = __commonJS({
11402
11407
  return this;
11403
11408
  }
11404
11409
  };
11405
- function processHeader(request3, key, val) {
11410
+ function processHeader(request4, key, val) {
11406
11411
  if (val && (typeof val === "object" && !Array.isArray(val))) {
11407
11412
  throw new InvalidArgumentError(`invalid ${key} header`);
11408
11413
  } else if (val === void 0) {
@@ -11442,24 +11447,24 @@ var require_request = __commonJS({
11442
11447
  val = `${val}`;
11443
11448
  }
11444
11449
  if (headerName === "host") {
11445
- if (request3.host !== null) {
11450
+ if (request4.host !== null) {
11446
11451
  throw new InvalidArgumentError("duplicate host header");
11447
11452
  }
11448
11453
  if (typeof val !== "string") {
11449
11454
  throw new InvalidArgumentError("invalid host header");
11450
11455
  }
11451
- request3.host = val;
11456
+ request4.host = val;
11452
11457
  } else if (headerName === "content-length") {
11453
- if (request3.contentLength !== null) {
11458
+ if (request4.contentLength !== null) {
11454
11459
  throw new InvalidArgumentError("duplicate content-length header");
11455
11460
  }
11456
- request3.contentLength = parseInt(val, 10);
11457
- if (!Number.isFinite(request3.contentLength)) {
11461
+ request4.contentLength = parseInt(val, 10);
11462
+ if (!Number.isFinite(request4.contentLength)) {
11458
11463
  throw new InvalidArgumentError("invalid content-length header");
11459
11464
  }
11460
- } else if (request3.contentType === null && headerName === "content-type") {
11461
- request3.contentType = val;
11462
- request3.headers.push(key, val);
11465
+ } else if (request4.contentType === null && headerName === "content-type") {
11466
+ request4.contentType = val;
11467
+ request4.headers.push(key, val);
11463
11468
  } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") {
11464
11469
  throw new InvalidArgumentError(`invalid ${headerName} header`);
11465
11470
  } else if (headerName === "connection") {
@@ -11473,13 +11478,13 @@ var require_request = __commonJS({
11473
11478
  throw new InvalidArgumentError("invalid connection header");
11474
11479
  }
11475
11480
  if (trimmed === "close") {
11476
- request3.reset = true;
11481
+ request4.reset = true;
11477
11482
  }
11478
11483
  }
11479
11484
  } else if (headerName === "expect") {
11480
11485
  throw new NotSupportedError("expect header not supported");
11481
11486
  } else {
11482
- request3.headers.push(key, val);
11487
+ request4.headers.push(key, val);
11483
11488
  }
11484
11489
  }
11485
11490
  module.exports = Request;
@@ -11727,9 +11732,9 @@ var require_dispatcher_base = __commonJS({
11727
11732
  }
11728
11733
  close(callback) {
11729
11734
  if (callback === void 0) {
11730
- return new Promise((resolve6, reject) => {
11735
+ return new Promise((resolve7, reject) => {
11731
11736
  this.close((err, data) => {
11732
- return err ? reject(err) : resolve6(data);
11737
+ return err ? reject(err) : resolve7(data);
11733
11738
  });
11734
11739
  });
11735
11740
  }
@@ -11767,9 +11772,9 @@ var require_dispatcher_base = __commonJS({
11767
11772
  err = null;
11768
11773
  }
11769
11774
  if (callback === void 0) {
11770
- return new Promise((resolve6, reject) => {
11775
+ return new Promise((resolve7, reject) => {
11771
11776
  this.destroy(err, (err2, data) => {
11772
- return err2 ? reject(err2) : resolve6(data);
11777
+ return err2 ? reject(err2) : resolve7(data);
11773
11778
  });
11774
11779
  });
11775
11780
  }
@@ -14035,11 +14040,11 @@ var require_util2 = __commonJS({
14035
14040
  function normalizeBinaryStringToUtf8(value) {
14036
14041
  return Buffer.from(value, "binary").toString("utf8");
14037
14042
  }
14038
- function requestCurrentURL(request3) {
14039
- return request3.urlList[request3.urlList.length - 1];
14043
+ function requestCurrentURL(request4) {
14044
+ return request4.urlList[request4.urlList.length - 1];
14040
14045
  }
14041
- function requestBadPort(request3) {
14042
- const url = requestCurrentURL(request3);
14046
+ function requestBadPort(request4) {
14047
+ const url = requestCurrentURL(request4);
14043
14048
  if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {
14044
14049
  return "blocked";
14045
14050
  }
@@ -14077,10 +14082,10 @@ var require_util2 = __commonJS({
14077
14082
  }
14078
14083
  return policy;
14079
14084
  }
14080
- function setRequestReferrerPolicyOnRedirect(request3, actualResponse) {
14085
+ function setRequestReferrerPolicyOnRedirect(request4, actualResponse) {
14081
14086
  const policy = parseReferrerPolicy(actualResponse);
14082
14087
  if (policy !== "") {
14083
- request3.referrerPolicy = policy;
14088
+ request4.referrerPolicy = policy;
14084
14089
  }
14085
14090
  }
14086
14091
  function crossOriginResourcePolicyCheck() {
@@ -14097,33 +14102,33 @@ var require_util2 = __commonJS({
14097
14102
  header = httpRequest.mode;
14098
14103
  httpRequest.headersList.set("sec-fetch-mode", header, true);
14099
14104
  }
14100
- function appendRequestOriginHeader(request3) {
14101
- let serializedOrigin = request3.origin;
14105
+ function appendRequestOriginHeader(request4) {
14106
+ let serializedOrigin = request4.origin;
14102
14107
  if (serializedOrigin === "client" || serializedOrigin === void 0) {
14103
14108
  return;
14104
14109
  }
14105
- if (request3.responseTainting === "cors" || request3.mode === "websocket") {
14106
- request3.headersList.append("origin", serializedOrigin, true);
14107
- } else if (request3.method !== "GET" && request3.method !== "HEAD") {
14108
- switch (request3.referrerPolicy) {
14110
+ if (request4.responseTainting === "cors" || request4.mode === "websocket") {
14111
+ request4.headersList.append("origin", serializedOrigin, true);
14112
+ } else if (request4.method !== "GET" && request4.method !== "HEAD") {
14113
+ switch (request4.referrerPolicy) {
14109
14114
  case "no-referrer":
14110
14115
  serializedOrigin = null;
14111
14116
  break;
14112
14117
  case "no-referrer-when-downgrade":
14113
14118
  case "strict-origin":
14114
14119
  case "strict-origin-when-cross-origin":
14115
- if (request3.origin && urlHasHttpsScheme(request3.origin) && !urlHasHttpsScheme(requestCurrentURL(request3))) {
14120
+ if (request4.origin && urlHasHttpsScheme(request4.origin) && !urlHasHttpsScheme(requestCurrentURL(request4))) {
14116
14121
  serializedOrigin = null;
14117
14122
  }
14118
14123
  break;
14119
14124
  case "same-origin":
14120
- if (!sameOrigin(request3, requestCurrentURL(request3))) {
14125
+ if (!sameOrigin(request4, requestCurrentURL(request4))) {
14121
14126
  serializedOrigin = null;
14122
14127
  }
14123
14128
  break;
14124
14129
  default:
14125
14130
  }
14126
- request3.headersList.append("origin", serializedOrigin, true);
14131
+ request4.headersList.append("origin", serializedOrigin, true);
14127
14132
  }
14128
14133
  }
14129
14134
  function coarsenTime(timestamp, crossOriginIsolatedCapability) {
@@ -14177,18 +14182,18 @@ var require_util2 = __commonJS({
14177
14182
  referrerPolicy: policyContainer.referrerPolicy
14178
14183
  };
14179
14184
  }
14180
- function determineRequestsReferrer(request3) {
14181
- const policy = request3.referrerPolicy;
14185
+ function determineRequestsReferrer(request4) {
14186
+ const policy = request4.referrerPolicy;
14182
14187
  assert(policy);
14183
14188
  let referrerSource = null;
14184
- if (request3.referrer === "client") {
14189
+ if (request4.referrer === "client") {
14185
14190
  const globalOrigin = getGlobalOrigin();
14186
14191
  if (!globalOrigin || globalOrigin.origin === "null") {
14187
14192
  return "no-referrer";
14188
14193
  }
14189
14194
  referrerSource = new URL(globalOrigin);
14190
- } else if (webidl.is.URL(request3.referrer)) {
14191
- referrerSource = request3.referrer;
14195
+ } else if (webidl.is.URL(request4.referrer)) {
14196
+ referrerSource = request4.referrer;
14192
14197
  }
14193
14198
  let referrerURL = stripURLForReferrer(referrerSource);
14194
14199
  const referrerOrigin = stripURLForReferrer(referrerSource, true);
@@ -14206,14 +14211,14 @@ var require_util2 = __commonJS({
14206
14211
  case "unsafe-url":
14207
14212
  return referrerURL;
14208
14213
  case "strict-origin": {
14209
- const currentURL = requestCurrentURL(request3);
14214
+ const currentURL = requestCurrentURL(request4);
14210
14215
  if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
14211
14216
  return "no-referrer";
14212
14217
  }
14213
14218
  return referrerOrigin;
14214
14219
  }
14215
14220
  case "strict-origin-when-cross-origin": {
14216
- const currentURL = requestCurrentURL(request3);
14221
+ const currentURL = requestCurrentURL(request4);
14217
14222
  if (sameOrigin(referrerURL, currentURL)) {
14218
14223
  return referrerURL;
14219
14224
  }
@@ -14223,17 +14228,17 @@ var require_util2 = __commonJS({
14223
14228
  return referrerOrigin;
14224
14229
  }
14225
14230
  case "same-origin":
14226
- if (sameOrigin(request3, referrerURL)) {
14231
+ if (sameOrigin(request4, referrerURL)) {
14227
14232
  return referrerURL;
14228
14233
  }
14229
14234
  return "no-referrer";
14230
14235
  case "origin-when-cross-origin":
14231
- if (sameOrigin(request3, referrerURL)) {
14236
+ if (sameOrigin(request4, referrerURL)) {
14232
14237
  return referrerURL;
14233
14238
  }
14234
14239
  return referrerOrigin;
14235
14240
  case "no-referrer-when-downgrade": {
14236
- const currentURL = requestCurrentURL(request3);
14241
+ const currentURL = requestCurrentURL(request4);
14237
14242
  if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
14238
14243
  return "no-referrer";
14239
14244
  }
@@ -14300,7 +14305,7 @@ var require_util2 = __commonJS({
14300
14305
  if (url.protocol === "blob:") return true;
14301
14306
  return isOriginPotentiallyTrustworthy(url.origin);
14302
14307
  }
14303
- function tryUpgradeRequestToAPotentiallyTrustworthyURL(request3) {
14308
+ function tryUpgradeRequestToAPotentiallyTrustworthyURL(request4) {
14304
14309
  }
14305
14310
  function sameOrigin(A, B) {
14306
14311
  if (A.origin === B.origin && A.origin === "null") {
@@ -14679,7 +14684,7 @@ var require_util2 = __commonJS({
14679
14684
  }
14680
14685
  return gettingDecodingSplitting(value);
14681
14686
  }
14682
- function hasAuthenticationEntry(request3) {
14687
+ function hasAuthenticationEntry(request4) {
14683
14688
  return false;
14684
14689
  }
14685
14690
  function includesCredentials(url) {
@@ -15246,8 +15251,8 @@ var require_promise = __commonJS({
15246
15251
  function createDeferredPromise() {
15247
15252
  let res;
15248
15253
  let rej;
15249
- const promise = new Promise((resolve6, reject) => {
15250
- res = resolve6;
15254
+ const promise = new Promise((resolve7, reject) => {
15255
+ res = resolve7;
15251
15256
  rej = reject;
15252
15257
  });
15253
15258
  return { promise, resolve: res, reject: rej };
@@ -15864,11 +15869,11 @@ var require_client_h1 = __commonJS({
15864
15869
  if (socket.destroyed) {
15865
15870
  return -1;
15866
15871
  }
15867
- const request3 = client[kQueue][client[kRunningIdx]];
15868
- if (!request3) {
15872
+ const request4 = client[kQueue][client[kRunningIdx]];
15873
+ if (!request4) {
15869
15874
  return -1;
15870
15875
  }
15871
- request3.onResponseStarted();
15876
+ request4.onResponseStarted();
15872
15877
  return 0;
15873
15878
  }
15874
15879
  /**
@@ -15930,9 +15935,9 @@ var require_client_h1 = __commonJS({
15930
15935
  assert(!socket.destroyed);
15931
15936
  assert(!this.paused);
15932
15937
  assert((headers.length & 1) === 0);
15933
- const request3 = client[kQueue][client[kRunningIdx]];
15934
- assert(request3);
15935
- assert(request3.upgrade || request3.method === "CONNECT");
15938
+ const request4 = client[kQueue][client[kRunningIdx]];
15939
+ assert(request4);
15940
+ assert(request4.upgrade || request4.method === "CONNECT");
15936
15941
  this.statusCode = 0;
15937
15942
  this.statusText = "";
15938
15943
  this.shouldKeepAlive = false;
@@ -15949,7 +15954,7 @@ var require_client_h1 = __commonJS({
15949
15954
  client[kQueue][client[kRunningIdx]++] = null;
15950
15955
  client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade"));
15951
15956
  try {
15952
- request3.onUpgrade(statusCode, headers, socket);
15957
+ request4.onUpgrade(statusCode, headers, socket);
15953
15958
  } catch (err) {
15954
15959
  util2.destroy(socket, err);
15955
15960
  }
@@ -15966,8 +15971,8 @@ var require_client_h1 = __commonJS({
15966
15971
  if (socket.destroyed) {
15967
15972
  return -1;
15968
15973
  }
15969
- const request3 = client[kQueue][client[kRunningIdx]];
15970
- if (!request3) {
15974
+ const request4 = client[kQueue][client[kRunningIdx]];
15975
+ if (!request4) {
15971
15976
  return -1;
15972
15977
  }
15973
15978
  assert(!this.upgrade);
@@ -15976,23 +15981,23 @@ var require_client_h1 = __commonJS({
15976
15981
  util2.destroy(socket, new SocketError("bad response", util2.getSocketInfo(socket)));
15977
15982
  return -1;
15978
15983
  }
15979
- if (upgrade && !request3.upgrade) {
15984
+ if (upgrade && !request4.upgrade) {
15980
15985
  util2.destroy(socket, new SocketError("bad upgrade", util2.getSocketInfo(socket)));
15981
15986
  return -1;
15982
15987
  }
15983
15988
  assert(this.timeoutType === TIMEOUT_HEADERS);
15984
15989
  this.statusCode = statusCode;
15985
15990
  this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD.
15986
- request3.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
15991
+ request4.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
15987
15992
  if (this.statusCode >= 200) {
15988
- const bodyTimeout = request3.bodyTimeout != null ? request3.bodyTimeout : client[kBodyTimeout];
15993
+ const bodyTimeout = request4.bodyTimeout != null ? request4.bodyTimeout : client[kBodyTimeout];
15989
15994
  this.setTimeout(bodyTimeout, TIMEOUT_BODY);
15990
15995
  } else if (this.timeout) {
15991
15996
  if (this.timeout.refresh) {
15992
15997
  this.timeout.refresh();
15993
15998
  }
15994
15999
  }
15995
- if (request3.method === "CONNECT") {
16000
+ if (request4.method === "CONNECT") {
15996
16001
  assert(client[kRunning] === 1);
15997
16002
  this.upgrade = true;
15998
16003
  return 2;
@@ -16023,11 +16028,11 @@ var require_client_h1 = __commonJS({
16023
16028
  } else {
16024
16029
  socket[kReset] = true;
16025
16030
  }
16026
- const pause = request3.onHeaders(statusCode, headers, this.resume, statusText) === false;
16027
- if (request3.aborted) {
16031
+ const pause = request4.onHeaders(statusCode, headers, this.resume, statusText) === false;
16032
+ if (request4.aborted) {
16028
16033
  return -1;
16029
16034
  }
16030
- if (request3.method === "HEAD") {
16035
+ if (request4.method === "HEAD") {
16031
16036
  return 1;
16032
16037
  }
16033
16038
  if (statusCode < 200) {
@@ -16048,8 +16053,8 @@ var require_client_h1 = __commonJS({
16048
16053
  if (socket.destroyed) {
16049
16054
  return -1;
16050
16055
  }
16051
- const request3 = client[kQueue][client[kRunningIdx]];
16052
- assert(request3);
16056
+ const request4 = client[kQueue][client[kRunningIdx]];
16057
+ assert(request4);
16053
16058
  assert(this.timeoutType === TIMEOUT_BODY);
16054
16059
  if (this.timeout) {
16055
16060
  if (this.timeout.refresh) {
@@ -16062,7 +16067,7 @@ var require_client_h1 = __commonJS({
16062
16067
  return -1;
16063
16068
  }
16064
16069
  this.bytesRead += buf.length;
16065
- if (request3.onData(buf) === false) {
16070
+ if (request4.onData(buf) === false) {
16066
16071
  return constants.ERROR.PAUSED;
16067
16072
  }
16068
16073
  return 0;
@@ -16080,8 +16085,8 @@ var require_client_h1 = __commonJS({
16080
16085
  }
16081
16086
  assert(statusCode >= 100);
16082
16087
  assert((this.headers.length & 1) === 0);
16083
- const request3 = client[kQueue][client[kRunningIdx]];
16084
- assert(request3);
16088
+ const request4 = client[kQueue][client[kRunningIdx]];
16089
+ assert(request4);
16085
16090
  this.statusCode = 0;
16086
16091
  this.statusText = "";
16087
16092
  this.bytesRead = 0;
@@ -16093,11 +16098,11 @@ var require_client_h1 = __commonJS({
16093
16098
  if (statusCode < 200) {
16094
16099
  return 0;
16095
16100
  }
16096
- if (request3.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
16101
+ if (request4.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
16097
16102
  util2.destroy(socket, new ResponseContentLengthMismatchError());
16098
16103
  return -1;
16099
16104
  }
16100
- request3.onComplete(headers);
16105
+ request4.onComplete(headers);
16101
16106
  client[kQueue][client[kRunningIdx]++] = null;
16102
16107
  if (socket[kWriting]) {
16103
16108
  assert(client[kRunning] === 0);
@@ -16162,8 +16167,8 @@ var require_client_h1 = __commonJS({
16162
16167
  return {
16163
16168
  version: "h1",
16164
16169
  defaultPipelining: 1,
16165
- write(request3) {
16166
- return writeH1(client, request3);
16170
+ write(request4) {
16171
+ return writeH1(client, request4);
16167
16172
  },
16168
16173
  resume() {
16169
16174
  resumeH1(client);
@@ -16190,18 +16195,18 @@ var require_client_h1 = __commonJS({
16190
16195
  * @param {import('../core/request.js')} request
16191
16196
  * @returns {boolean}
16192
16197
  */
16193
- busy(request3) {
16198
+ busy(request4) {
16194
16199
  if (socket[kWriting] || socket[kReset] || socket[kBlocking]) {
16195
16200
  return true;
16196
16201
  }
16197
- if (request3) {
16198
- if (client[kRunning] > 0 && !request3.idempotent) {
16202
+ if (request4) {
16203
+ if (client[kRunning] > 0 && !request4.idempotent) {
16199
16204
  return true;
16200
16205
  }
16201
- if (client[kRunning] > 0 && (request3.upgrade || request3.method === "CONNECT")) {
16206
+ if (client[kRunning] > 0 && (request4.upgrade || request4.method === "CONNECT")) {
16202
16207
  return true;
16203
16208
  }
16204
- if (client[kRunning] > 0 && util2.bodyLength(request3.body) !== 0 && (util2.isStream(request3.body) || util2.isAsyncIterable(request3.body) || util2.isFormDataLike(request3.body))) {
16209
+ if (client[kRunning] > 0 && util2.bodyLength(request4.body) !== 0 && (util2.isStream(request4.body) || util2.isAsyncIterable(request4.body) || util2.isFormDataLike(request4.body))) {
16205
16210
  return true;
16206
16211
  }
16207
16212
  }
@@ -16247,13 +16252,13 @@ var require_client_h1 = __commonJS({
16247
16252
  assert(client[kPending] === 0);
16248
16253
  const requests = client[kQueue].splice(client[kRunningIdx]);
16249
16254
  for (let i = 0; i < requests.length; i++) {
16250
- const request3 = requests[i];
16251
- util2.errorRequest(client, request3, err);
16255
+ const request4 = requests[i];
16256
+ util2.errorRequest(client, request4, err);
16252
16257
  }
16253
16258
  } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") {
16254
- const request3 = client[kQueue][client[kRunningIdx]];
16259
+ const request4 = client[kQueue][client[kRunningIdx]];
16255
16260
  client[kQueue][client[kRunningIdx]++] = null;
16256
- util2.errorRequest(client, request3, err);
16261
+ util2.errorRequest(client, request4, err);
16257
16262
  }
16258
16263
  client[kPendingIdx] = client[kRunningIdx];
16259
16264
  assert(client[kRunning] === 0);
@@ -16281,8 +16286,8 @@ var require_client_h1 = __commonJS({
16281
16286
  }
16282
16287
  } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {
16283
16288
  if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {
16284
- const request3 = client[kQueue][client[kRunningIdx]];
16285
- const headersTimeout = request3.headersTimeout != null ? request3.headersTimeout : client[kHeadersTimeout];
16289
+ const request4 = client[kQueue][client[kRunningIdx]];
16290
+ const headersTimeout = request4.headersTimeout != null ? request4.headersTimeout : client[kHeadersTimeout];
16286
16291
  socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS);
16287
16292
  }
16288
16293
  }
@@ -16291,21 +16296,21 @@ var require_client_h1 = __commonJS({
16291
16296
  function shouldSendContentLength(method) {
16292
16297
  return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
16293
16298
  }
16294
- function writeH1(client, request3) {
16295
- const { method, path, host, upgrade, blocking, reset } = request3;
16296
- let { body, headers, contentLength } = request3;
16299
+ function writeH1(client, request4) {
16300
+ const { method, path, host, upgrade, blocking, reset } = request4;
16301
+ let { body, headers, contentLength } = request4;
16297
16302
  const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH";
16298
16303
  if (util2.isFormDataLike(body)) {
16299
16304
  if (!extractBody) {
16300
16305
  extractBody = require_body().extractBody;
16301
16306
  }
16302
16307
  const [bodyStream, contentType] = extractBody(body);
16303
- if (request3.contentType == null) {
16308
+ if (request4.contentType == null) {
16304
16309
  headers.push("content-type", contentType);
16305
16310
  }
16306
16311
  body = bodyStream.stream;
16307
16312
  contentLength = bodyStream.length;
16308
- } else if (util2.isBlobLike(body) && request3.contentType == null && body.type) {
16313
+ } else if (util2.isBlobLike(body) && request4.contentType == null && body.type) {
16309
16314
  headers.push("content-type", body.type);
16310
16315
  }
16311
16316
  if (body && typeof body.read === "function") {
@@ -16314,33 +16319,33 @@ var require_client_h1 = __commonJS({
16314
16319
  const bodyLength = util2.bodyLength(body);
16315
16320
  contentLength = bodyLength ?? contentLength;
16316
16321
  if (contentLength === null) {
16317
- contentLength = request3.contentLength;
16322
+ contentLength = request4.contentLength;
16318
16323
  }
16319
16324
  if (contentLength === 0 && !expectsPayload) {
16320
16325
  contentLength = null;
16321
16326
  }
16322
- if (shouldSendContentLength(method) && contentLength > 0 && request3.contentLength !== null && request3.contentLength !== contentLength) {
16327
+ if (shouldSendContentLength(method) && contentLength > 0 && request4.contentLength !== null && request4.contentLength !== contentLength) {
16323
16328
  if (client[kStrictContentLength]) {
16324
- util2.errorRequest(client, request3, new RequestContentLengthMismatchError());
16329
+ util2.errorRequest(client, request4, new RequestContentLengthMismatchError());
16325
16330
  return false;
16326
16331
  }
16327
16332
  process.emitWarning(new RequestContentLengthMismatchError());
16328
16333
  }
16329
16334
  const socket = client[kSocket];
16330
16335
  const abort = (err) => {
16331
- if (request3.aborted || request3.completed) {
16336
+ if (request4.aborted || request4.completed) {
16332
16337
  return;
16333
16338
  }
16334
- util2.errorRequest(client, request3, err || new RequestAbortedError());
16339
+ util2.errorRequest(client, request4, err || new RequestAbortedError());
16335
16340
  util2.destroy(body);
16336
16341
  util2.destroy(socket, new InformationalError("aborted"));
16337
16342
  };
16338
16343
  try {
16339
- request3.onConnect(abort);
16344
+ request4.onConnect(abort);
16340
16345
  } catch (err) {
16341
- util2.errorRequest(client, request3, err);
16346
+ util2.errorRequest(client, request4, err);
16342
16347
  }
16343
- if (request3.aborted) {
16348
+ if (request4.aborted) {
16344
16349
  return false;
16345
16350
  }
16346
16351
  if (method === "HEAD") {
@@ -16359,7 +16364,7 @@ var require_client_h1 = __commonJS({
16359
16364
  socket[kBlocking] = true;
16360
16365
  }
16361
16366
  if (socket.setTypeOfService) {
16362
- socket.setTypeOfService(request3.typeOfService);
16367
+ socket.setTypeOfService(request4.typeOfService);
16363
16368
  }
16364
16369
  let header = `${method} ${path} HTTP/1.1\r
16365
16370
  `;
@@ -16394,31 +16399,31 @@ upgrade: ${upgrade}\r
16394
16399
  }
16395
16400
  }
16396
16401
  if (channels.sendHeaders.hasSubscribers) {
16397
- channels.sendHeaders.publish({ request: request3, headers: header, socket });
16402
+ channels.sendHeaders.publish({ request: request4, headers: header, socket });
16398
16403
  }
16399
16404
  if (!body || bodyLength === 0) {
16400
- writeBuffer(abort, null, client, request3, socket, contentLength, header, expectsPayload);
16405
+ writeBuffer(abort, null, client, request4, socket, contentLength, header, expectsPayload);
16401
16406
  } else if (util2.isBuffer(body)) {
16402
- writeBuffer(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16407
+ writeBuffer(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16403
16408
  } else if (util2.isBlobLike(body)) {
16404
16409
  if (typeof body.stream === "function") {
16405
- writeIterable(abort, body.stream(), client, request3, socket, contentLength, header, expectsPayload);
16410
+ writeIterable(abort, body.stream(), client, request4, socket, contentLength, header, expectsPayload);
16406
16411
  } else {
16407
- writeBlob(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16412
+ writeBlob(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16408
16413
  }
16409
16414
  } else if (util2.isStream(body)) {
16410
- writeStream(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16415
+ writeStream(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16411
16416
  } else if (util2.isIterable(body)) {
16412
- writeIterable(abort, body, client, request3, socket, contentLength, header, expectsPayload);
16417
+ writeIterable(abort, body, client, request4, socket, contentLength, header, expectsPayload);
16413
16418
  } else {
16414
16419
  assert(false);
16415
16420
  }
16416
16421
  return true;
16417
16422
  }
16418
- function writeStream(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16423
+ function writeStream(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16419
16424
  assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
16420
16425
  let finished = false;
16421
- const writer = new AsyncWriter({ abort, socket, request: request3, contentLength, client, expectsPayload, header });
16426
+ const writer = new AsyncWriter({ abort, socket, request: request4, contentLength, client, expectsPayload, header });
16422
16427
  const onData = function(chunk) {
16423
16428
  if (finished) {
16424
16429
  return;
@@ -16484,7 +16489,7 @@ upgrade: ${upgrade}\r
16484
16489
  setImmediate(onClose);
16485
16490
  }
16486
16491
  }
16487
- function writeBuffer(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16492
+ function writeBuffer(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16488
16493
  try {
16489
16494
  if (!body) {
16490
16495
  if (contentLength === 0) {
@@ -16504,18 +16509,18 @@ upgrade: ${upgrade}\r
16504
16509
  `, "latin1");
16505
16510
  socket.write(body);
16506
16511
  socket.uncork();
16507
- request3.onBodySent(body);
16508
- if (!expectsPayload && request3.reset !== false) {
16512
+ request4.onBodySent(body);
16513
+ if (!expectsPayload && request4.reset !== false) {
16509
16514
  socket[kReset] = true;
16510
16515
  }
16511
16516
  }
16512
- request3.onRequestSent();
16517
+ request4.onRequestSent();
16513
16518
  client[kResume]();
16514
16519
  } catch (err) {
16515
16520
  abort(err);
16516
16521
  }
16517
16522
  }
16518
- async function writeBlob(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16523
+ async function writeBlob(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16519
16524
  assert(contentLength === body.size, "blob body must have content length");
16520
16525
  try {
16521
16526
  if (contentLength != null && contentLength !== body.size) {
@@ -16528,9 +16533,9 @@ upgrade: ${upgrade}\r
16528
16533
  `, "latin1");
16529
16534
  socket.write(buffer);
16530
16535
  socket.uncork();
16531
- request3.onBodySent(buffer);
16532
- request3.onRequestSent();
16533
- if (!expectsPayload && request3.reset !== false) {
16536
+ request4.onBodySent(buffer);
16537
+ request4.onRequestSent();
16538
+ if (!expectsPayload && request4.reset !== false) {
16534
16539
  socket[kReset] = true;
16535
16540
  }
16536
16541
  client[kResume]();
@@ -16538,7 +16543,7 @@ upgrade: ${upgrade}\r
16538
16543
  abort(err);
16539
16544
  }
16540
16545
  }
16541
- async function writeIterable(abort, body, client, request3, socket, contentLength, header, expectsPayload) {
16546
+ async function writeIterable(abort, body, client, request4, socket, contentLength, header, expectsPayload) {
16542
16547
  assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
16543
16548
  let callback = null;
16544
16549
  function onDrain() {
@@ -16548,16 +16553,16 @@ upgrade: ${upgrade}\r
16548
16553
  cb();
16549
16554
  }
16550
16555
  }
16551
- const waitForDrain = () => new Promise((resolve6, reject) => {
16556
+ const waitForDrain = () => new Promise((resolve7, reject) => {
16552
16557
  assert(callback === null);
16553
16558
  if (socket[kError]) {
16554
16559
  reject(socket[kError]);
16555
16560
  } else {
16556
- callback = resolve6;
16561
+ callback = resolve7;
16557
16562
  }
16558
16563
  });
16559
16564
  socket.on("close", onDrain).on("drain", onDrain);
16560
- const writer = new AsyncWriter({ abort, socket, request: request3, contentLength, client, expectsPayload, header });
16565
+ const writer = new AsyncWriter({ abort, socket, request: request4, contentLength, client, expectsPayload, header });
16561
16566
  try {
16562
16567
  for await (const chunk of body) {
16563
16568
  if (socket[kError]) {
@@ -16586,9 +16591,9 @@ upgrade: ${upgrade}\r
16586
16591
  * @param {boolean} arg.expectsPayload
16587
16592
  * @param {string} arg.header
16588
16593
  */
16589
- constructor({ abort, socket, request: request3, contentLength, client, expectsPayload, header }) {
16594
+ constructor({ abort, socket, request: request4, contentLength, client, expectsPayload, header }) {
16590
16595
  this.socket = socket;
16591
- this.request = request3;
16596
+ this.request = request4;
16592
16597
  this.contentLength = contentLength;
16593
16598
  this.client = client;
16594
16599
  this.bytesWritten = 0;
@@ -16602,7 +16607,7 @@ upgrade: ${upgrade}\r
16602
16607
  * @returns
16603
16608
  */
16604
16609
  write(chunk) {
16605
- const { socket, request: request3, contentLength, client, bytesWritten, expectsPayload, header } = this;
16610
+ const { socket, request: request4, contentLength, client, bytesWritten, expectsPayload, header } = this;
16606
16611
  if (socket[kError]) {
16607
16612
  throw socket[kError];
16608
16613
  }
@@ -16621,7 +16626,7 @@ upgrade: ${upgrade}\r
16621
16626
  }
16622
16627
  socket.cork();
16623
16628
  if (bytesWritten === 0) {
16624
- if (!expectsPayload && request3.reset !== false) {
16629
+ if (!expectsPayload && request4.reset !== false) {
16625
16630
  socket[kReset] = true;
16626
16631
  }
16627
16632
  if (contentLength === null) {
@@ -16641,7 +16646,7 @@ ${len.toString(16)}\r
16641
16646
  this.bytesWritten += len;
16642
16647
  const ret = socket.write(chunk);
16643
16648
  socket.uncork();
16644
- request3.onBodySent(chunk);
16649
+ request4.onBodySent(chunk);
16645
16650
  if (!ret) {
16646
16651
  if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {
16647
16652
  if (socket[kParser].timeout.refresh) {
@@ -16655,8 +16660,8 @@ ${len.toString(16)}\r
16655
16660
  * @returns {void}
16656
16661
  */
16657
16662
  end() {
16658
- const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request3 } = this;
16659
- request3.onRequestSent();
16663
+ const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request4 } = this;
16664
+ request4.onRequestSent();
16660
16665
  socket[kWriting] = false;
16661
16666
  if (socket[kError]) {
16662
16667
  throw socket[kError];
@@ -16833,8 +16838,8 @@ var require_client_h2 = __commonJS({
16833
16838
  * @param {import('../core/request.js')} request
16834
16839
  * @returns {boolean}
16835
16840
  */
16836
- write(request3) {
16837
- return writeH2(client, request3);
16841
+ write(request4) {
16842
+ return writeH2(client, request4);
16838
16843
  },
16839
16844
  /**
16840
16845
  * @returns {void}
@@ -16863,14 +16868,14 @@ var require_client_h2 = __commonJS({
16863
16868
  * @param {import('../core/request.js')} request
16864
16869
  * @returns {boolean}
16865
16870
  */
16866
- busy(request3) {
16867
- if (request3 != null) {
16871
+ busy(request4) {
16872
+ if (request4 != null) {
16868
16873
  if (client[kRunning] > 0) {
16869
- if (request3.idempotent === false) return true;
16870
- if ((request3.upgrade === "websocket" || request3.method === "CONNECT") && session[kRemoteSettings] === false) return true;
16871
- if (util2.bodyLength(request3.body) !== 0 && (util2.isStream(request3.body) || util2.isAsyncIterable(request3.body) || util2.isFormDataLike(request3.body))) return true;
16874
+ if (request4.idempotent === false) return true;
16875
+ if ((request4.upgrade === "websocket" || request4.method === "CONNECT") && session[kRemoteSettings] === false) return true;
16876
+ if (util2.bodyLength(request4.body) !== 0 && (util2.isStream(request4.body) || util2.isAsyncIterable(request4.body) || util2.isFormDataLike(request4.body))) return true;
16872
16877
  } else {
16873
- return (request3.upgrade === "websocket" || request3.method === "CONNECT") && session[kRemoteSettings] === false;
16878
+ return (request4.upgrade === "websocket" || request4.method === "CONNECT") && session[kRemoteSettings] === false;
16874
16879
  }
16875
16880
  }
16876
16881
  return false;
@@ -16955,9 +16960,9 @@ var require_client_h2 = __commonJS({
16955
16960
  this[kHTTP2Session] = null;
16956
16961
  util2.destroy(this[kSocket], err);
16957
16962
  if (client[kRunningIdx] < client[kQueue].length) {
16958
- const request3 = client[kQueue][client[kRunningIdx]];
16963
+ const request4 = client[kQueue][client[kRunningIdx]];
16959
16964
  client[kQueue][client[kRunningIdx]++] = null;
16960
- util2.errorRequest(client, request3, err);
16965
+ util2.errorRequest(client, request4, err);
16961
16966
  client[kPendingIdx] = client[kRunningIdx];
16962
16967
  }
16963
16968
  assert(client[kRunning] === 0);
@@ -16979,8 +16984,8 @@ var require_client_h2 = __commonJS({
16979
16984
  assert(client[kPending] === 0);
16980
16985
  const requests = client[kQueue].splice(client[kRunningIdx]);
16981
16986
  for (let i = 0; i < requests.length; i++) {
16982
- const request3 = requests[i];
16983
- util2.errorRequest(client, request3, err);
16987
+ const request4 = requests[i];
16988
+ util2.errorRequest(client, request4, err);
16984
16989
  }
16985
16990
  }
16986
16991
  }
@@ -17011,13 +17016,13 @@ var require_client_h2 = __commonJS({
17011
17016
  function shouldSendContentLength(method) {
17012
17017
  return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
17013
17018
  }
17014
- function writeH2(client, request3) {
17015
- const requestTimeout = request3.bodyTimeout ?? client[kBodyTimeout];
17019
+ function writeH2(client, request4) {
17020
+ const requestTimeout = request4.bodyTimeout ?? client[kBodyTimeout];
17016
17021
  const session = client[kHTTP2Session];
17017
- const { method, path, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request3;
17018
- let { body } = request3;
17022
+ const { method, path, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request4;
17023
+ let { body } = request4;
17019
17024
  if (upgrade != null && upgrade !== "websocket") {
17020
- util2.errorRequest(client, request3, new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
17025
+ util2.errorRequest(client, request4, new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
17021
17026
  return false;
17022
17027
  }
17023
17028
  const headers = {};
@@ -17051,11 +17056,11 @@ var require_client_h2 = __commonJS({
17051
17056
  headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname3}${port ? `:${port}` : ""}`;
17052
17057
  headers[HTTP2_HEADER_METHOD] = method;
17053
17058
  const abort = (err) => {
17054
- if (request3.aborted || request3.completed) {
17059
+ if (request4.aborted || request4.completed) {
17055
17060
  return;
17056
17061
  }
17057
17062
  err = err || new RequestAbortedError();
17058
- util2.errorRequest(client, request3, err);
17063
+ util2.errorRequest(client, request4, err);
17059
17064
  if (stream != null) {
17060
17065
  stream.removeAllListeners("data");
17061
17066
  stream.close();
@@ -17065,18 +17070,18 @@ var require_client_h2 = __commonJS({
17065
17070
  util2.destroy(body, err);
17066
17071
  };
17067
17072
  try {
17068
- request3.onConnect(abort);
17073
+ request4.onConnect(abort);
17069
17074
  } catch (err) {
17070
- util2.errorRequest(client, request3, err);
17075
+ util2.errorRequest(client, request4, err);
17071
17076
  }
17072
- if (request3.aborted) {
17077
+ if (request4.aborted) {
17073
17078
  return false;
17074
17079
  }
17075
17080
  if (upgrade || method === "CONNECT") {
17076
17081
  session.ref();
17077
17082
  if (upgrade === "websocket") {
17078
17083
  if (session[kEnableConnectProtocol] === false) {
17079
- util2.errorRequest(client, request3, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
17084
+ util2.errorRequest(client, request4, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
17080
17085
  session.unref();
17081
17086
  return false;
17082
17087
  }
@@ -17092,7 +17097,7 @@ var require_client_h2 = __commonJS({
17092
17097
  stream[kHTTP2Stream] = true;
17093
17098
  stream.once("response", (headers2, _flags) => {
17094
17099
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
17095
- request3.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17100
+ request4.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17096
17101
  ++session[kOpenStreams];
17097
17102
  client[kQueue][client[kRunningIdx]++] = null;
17098
17103
  });
@@ -17112,7 +17117,7 @@ var require_client_h2 = __commonJS({
17112
17117
  stream[kHTTP2Stream] = true;
17113
17118
  stream.on("response", (headers2) => {
17114
17119
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
17115
- request3.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17120
+ request4.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
17116
17121
  ++session[kOpenStreams];
17117
17122
  client[kQueue][client[kRunningIdx]++] = null;
17118
17123
  });
@@ -17138,14 +17143,14 @@ var require_client_h2 = __commonJS({
17138
17143
  contentLength = bodyStream.length;
17139
17144
  }
17140
17145
  if (contentLength == null) {
17141
- contentLength = request3.contentLength;
17146
+ contentLength = request4.contentLength;
17142
17147
  }
17143
17148
  if (!expectsPayload) {
17144
17149
  contentLength = null;
17145
17150
  }
17146
- if (shouldSendContentLength(method) && contentLength > 0 && request3.contentLength != null && request3.contentLength !== contentLength) {
17151
+ if (shouldSendContentLength(method) && contentLength > 0 && request4.contentLength != null && request4.contentLength !== contentLength) {
17147
17152
  if (client[kStrictContentLength]) {
17148
- util2.errorRequest(client, request3, new RequestContentLengthMismatchError());
17153
+ util2.errorRequest(client, request4, new RequestContentLengthMismatchError());
17149
17154
  return false;
17150
17155
  }
17151
17156
  process.emitWarning(new RequestContentLengthMismatchError());
@@ -17161,7 +17166,7 @@ var require_client_h2 = __commonJS({
17161
17166
  header += `${key}: ${headers[key]}\r
17162
17167
  `;
17163
17168
  }
17164
- channels.sendHeaders.publish({ request: request3, headers: header, socket: session[kSocket] });
17169
+ channels.sendHeaders.publish({ request: request4, headers: header, socket: session[kSocket] });
17165
17170
  }
17166
17171
  const shouldEndStream = method === "GET" || method === "HEAD" || body === null;
17167
17172
  if (expectContinue) {
@@ -17182,20 +17187,20 @@ var require_client_h2 = __commonJS({
17182
17187
  let responseReceived = false;
17183
17188
  stream.once("response", (headers2) => {
17184
17189
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
17185
- request3.onResponseStarted();
17190
+ request4.onResponseStarted();
17186
17191
  responseReceived = true;
17187
- if (request3.aborted) {
17192
+ if (request4.aborted) {
17188
17193
  stream.removeAllListeners("data");
17189
17194
  return;
17190
17195
  }
17191
- if (request3.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
17196
+ if (request4.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
17192
17197
  stream.pause();
17193
17198
  }
17194
17199
  stream.on("data", (chunk) => {
17195
- if (request3.aborted || request3.completed) {
17200
+ if (request4.aborted || request4.completed) {
17196
17201
  return;
17197
17202
  }
17198
- if (request3.onData(chunk) === false) {
17203
+ if (request4.onData(chunk) === false) {
17199
17204
  stream.pause();
17200
17205
  }
17201
17206
  });
@@ -17203,8 +17208,8 @@ var require_client_h2 = __commonJS({
17203
17208
  stream.once("end", () => {
17204
17209
  stream.removeAllListeners("data");
17205
17210
  if (responseReceived) {
17206
- if (!request3.aborted && !request3.completed) {
17207
- request3.onComplete({});
17211
+ if (!request4.aborted && !request4.completed) {
17212
+ request4.onComplete({});
17208
17213
  }
17209
17214
  client[kQueue][client[kRunningIdx]++] = null;
17210
17215
  client[kResume]();
@@ -17243,11 +17248,11 @@ var require_client_h2 = __commonJS({
17243
17248
  abort(err);
17244
17249
  });
17245
17250
  stream.once("trailers", (trailers) => {
17246
- if (request3.aborted || request3.completed) {
17251
+ if (request4.aborted || request4.completed) {
17247
17252
  return;
17248
17253
  }
17249
17254
  stream.removeAllListeners("data");
17250
- request3.onComplete(trailers);
17255
+ request4.onComplete(trailers);
17251
17256
  });
17252
17257
  return true;
17253
17258
  function writeBodyH2() {
@@ -17257,7 +17262,7 @@ var require_client_h2 = __commonJS({
17257
17262
  stream,
17258
17263
  null,
17259
17264
  client,
17260
- request3,
17265
+ request4,
17261
17266
  client[kSocket],
17262
17267
  contentLength,
17263
17268
  expectsPayload
@@ -17268,7 +17273,7 @@ var require_client_h2 = __commonJS({
17268
17273
  stream,
17269
17274
  body,
17270
17275
  client,
17271
- request3,
17276
+ request4,
17272
17277
  client[kSocket],
17273
17278
  contentLength,
17274
17279
  expectsPayload
@@ -17280,7 +17285,7 @@ var require_client_h2 = __commonJS({
17280
17285
  stream,
17281
17286
  body.stream(),
17282
17287
  client,
17283
- request3,
17288
+ request4,
17284
17289
  client[kSocket],
17285
17290
  contentLength,
17286
17291
  expectsPayload
@@ -17291,7 +17296,7 @@ var require_client_h2 = __commonJS({
17291
17296
  stream,
17292
17297
  body,
17293
17298
  client,
17294
- request3,
17299
+ request4,
17295
17300
  client[kSocket],
17296
17301
  contentLength,
17297
17302
  expectsPayload
@@ -17305,7 +17310,7 @@ var require_client_h2 = __commonJS({
17305
17310
  stream,
17306
17311
  body,
17307
17312
  client,
17308
- request3,
17313
+ request4,
17309
17314
  contentLength
17310
17315
  );
17311
17316
  } else if (util2.isIterable(body)) {
@@ -17314,7 +17319,7 @@ var require_client_h2 = __commonJS({
17314
17319
  stream,
17315
17320
  body,
17316
17321
  client,
17317
- request3,
17322
+ request4,
17318
17323
  client[kSocket],
17319
17324
  contentLength,
17320
17325
  expectsPayload
@@ -17324,7 +17329,7 @@ var require_client_h2 = __commonJS({
17324
17329
  }
17325
17330
  }
17326
17331
  }
17327
- function writeBuffer(abort, h2stream, body, client, request3, socket, contentLength, expectsPayload) {
17332
+ function writeBuffer(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) {
17328
17333
  try {
17329
17334
  if (body != null && util2.isBuffer(body)) {
17330
17335
  assert(contentLength === body.byteLength, "buffer body must have content length");
@@ -17332,18 +17337,18 @@ var require_client_h2 = __commonJS({
17332
17337
  h2stream.write(body);
17333
17338
  h2stream.uncork();
17334
17339
  h2stream.end();
17335
- request3.onBodySent(body);
17340
+ request4.onBodySent(body);
17336
17341
  }
17337
17342
  if (!expectsPayload) {
17338
17343
  socket[kReset] = true;
17339
17344
  }
17340
- request3.onRequestSent();
17345
+ request4.onRequestSent();
17341
17346
  client[kResume]();
17342
17347
  } catch (error) {
17343
17348
  abort(error);
17344
17349
  }
17345
17350
  }
17346
- function writeStream(abort, socket, expectsPayload, h2stream, body, client, request3, contentLength) {
17351
+ function writeStream(abort, socket, expectsPayload, h2stream, body, client, request4, contentLength) {
17347
17352
  assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
17348
17353
  const pipe = pipeline2(
17349
17354
  body,
@@ -17354,7 +17359,7 @@ var require_client_h2 = __commonJS({
17354
17359
  abort(err);
17355
17360
  } else {
17356
17361
  util2.removeAllListeners(pipe);
17357
- request3.onRequestSent();
17362
+ request4.onRequestSent();
17358
17363
  if (!expectsPayload) {
17359
17364
  socket[kReset] = true;
17360
17365
  }
@@ -17364,10 +17369,10 @@ var require_client_h2 = __commonJS({
17364
17369
  );
17365
17370
  util2.addListener(pipe, "data", onPipeData);
17366
17371
  function onPipeData(chunk) {
17367
- request3.onBodySent(chunk);
17372
+ request4.onBodySent(chunk);
17368
17373
  }
17369
17374
  }
17370
- async function writeBlob(abort, h2stream, body, client, request3, socket, contentLength, expectsPayload) {
17375
+ async function writeBlob(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) {
17371
17376
  assert(contentLength === body.size, "blob body must have content length");
17372
17377
  try {
17373
17378
  if (contentLength != null && contentLength !== body.size) {
@@ -17378,8 +17383,8 @@ var require_client_h2 = __commonJS({
17378
17383
  h2stream.write(buffer);
17379
17384
  h2stream.uncork();
17380
17385
  h2stream.end();
17381
- request3.onBodySent(buffer);
17382
- request3.onRequestSent();
17386
+ request4.onBodySent(buffer);
17387
+ request4.onRequestSent();
17383
17388
  if (!expectsPayload) {
17384
17389
  socket[kReset] = true;
17385
17390
  }
@@ -17388,7 +17393,7 @@ var require_client_h2 = __commonJS({
17388
17393
  abort(err);
17389
17394
  }
17390
17395
  }
17391
- async function writeIterable(abort, h2stream, body, client, request3, socket, contentLength, expectsPayload) {
17396
+ async function writeIterable(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) {
17392
17397
  assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
17393
17398
  let callback = null;
17394
17399
  function onDrain() {
@@ -17398,12 +17403,12 @@ var require_client_h2 = __commonJS({
17398
17403
  cb();
17399
17404
  }
17400
17405
  }
17401
- const waitForDrain = () => new Promise((resolve6, reject) => {
17406
+ const waitForDrain = () => new Promise((resolve7, reject) => {
17402
17407
  assert(callback === null);
17403
17408
  if (socket[kError]) {
17404
17409
  reject(socket[kError]);
17405
17410
  } else {
17406
- callback = resolve6;
17411
+ callback = resolve7;
17407
17412
  }
17408
17413
  });
17409
17414
  h2stream.on("close", onDrain).on("drain", onDrain);
@@ -17413,13 +17418,13 @@ var require_client_h2 = __commonJS({
17413
17418
  throw socket[kError];
17414
17419
  }
17415
17420
  const res = h2stream.write(chunk);
17416
- request3.onBodySent(chunk);
17421
+ request4.onBodySent(chunk);
17417
17422
  if (!res) {
17418
17423
  await waitForDrain();
17419
17424
  }
17420
17425
  }
17421
17426
  h2stream.end();
17422
- request3.onRequestSent();
17427
+ request4.onRequestSent();
17423
17428
  if (!expectsPayload) {
17424
17429
  socket[kReset] = true;
17425
17430
  }
@@ -17699,10 +17704,10 @@ var require_client = __commonJS({
17699
17704
  this.once("connect", cb);
17700
17705
  }
17701
17706
  [kDispatch](opts, handler) {
17702
- const request3 = new Request(this[kUrl].origin, opts, handler);
17703
- this[kQueue].push(request3);
17707
+ const request4 = new Request(this[kUrl].origin, opts, handler);
17708
+ this[kQueue].push(request4);
17704
17709
  if (this[kResuming]) {
17705
- } else if (util2.bodyLength(request3.body) == null && util2.isIterable(request3.body)) {
17710
+ } else if (util2.bodyLength(request4.body) == null && util2.isIterable(request4.body)) {
17706
17711
  this[kResuming] = 1;
17707
17712
  queueMicrotask(() => resume(this));
17708
17713
  } else {
@@ -17714,27 +17719,27 @@ var require_client = __commonJS({
17714
17719
  return this[kNeedDrain] < 2;
17715
17720
  }
17716
17721
  [kClose]() {
17717
- return new Promise((resolve6) => {
17722
+ return new Promise((resolve7) => {
17718
17723
  if (this[kSize]) {
17719
- this[kClosedResolve] = resolve6;
17724
+ this[kClosedResolve] = resolve7;
17720
17725
  } else {
17721
- resolve6(null);
17726
+ resolve7(null);
17722
17727
  }
17723
17728
  });
17724
17729
  }
17725
17730
  [kDestroy](err) {
17726
- return new Promise((resolve6) => {
17731
+ return new Promise((resolve7) => {
17727
17732
  const requests = this[kQueue].splice(this[kPendingIdx]);
17728
17733
  for (let i = 0; i < requests.length; i++) {
17729
- const request3 = requests[i];
17730
- util2.errorRequest(this, request3, err);
17734
+ const request4 = requests[i];
17735
+ util2.errorRequest(this, request4, err);
17731
17736
  }
17732
17737
  const callback = () => {
17733
17738
  if (this[kClosedResolve]) {
17734
17739
  this[kClosedResolve]();
17735
17740
  this[kClosedResolve] = null;
17736
17741
  }
17737
- resolve6(null);
17742
+ resolve7(null);
17738
17743
  };
17739
17744
  if (this[kHTTPContext]) {
17740
17745
  this[kHTTPContext].destroy(err, callback);
@@ -17751,8 +17756,8 @@ var require_client = __commonJS({
17751
17756
  assert(client[kPendingIdx] === client[kRunningIdx]);
17752
17757
  const requests = client[kQueue].splice(client[kRunningIdx]);
17753
17758
  for (let i = 0; i < requests.length; i++) {
17754
- const request3 = requests[i];
17755
- util2.errorRequest(client, request3, err);
17759
+ const request4 = requests[i];
17760
+ util2.errorRequest(client, request4, err);
17756
17761
  }
17757
17762
  assert(client[kSize] === 0);
17758
17763
  }
@@ -17862,8 +17867,8 @@ var require_client = __commonJS({
17862
17867
  if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") {
17863
17868
  assert(client[kRunning] === 0);
17864
17869
  while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {
17865
- const request3 = client[kQueue][client[kPendingIdx]++];
17866
- util2.errorRequest(client, request3, err);
17870
+ const request4 = client[kQueue][client[kPendingIdx]++];
17871
+ util2.errorRequest(client, request4, err);
17867
17872
  }
17868
17873
  } else {
17869
17874
  onError(client, err);
@@ -17918,15 +17923,15 @@ var require_client = __commonJS({
17918
17923
  if (client[kRunning] >= (getPipelining(client) || 1)) {
17919
17924
  return;
17920
17925
  }
17921
- const request3 = client[kQueue][client[kPendingIdx]];
17922
- if (request3 === null) {
17926
+ const request4 = client[kQueue][client[kPendingIdx]];
17927
+ if (request4 === null) {
17923
17928
  return;
17924
17929
  }
17925
- if (client[kUrl].protocol === "https:" && client[kServerName] !== request3.servername) {
17930
+ if (client[kUrl].protocol === "https:" && client[kServerName] !== request4.servername) {
17926
17931
  if (client[kRunning] > 0) {
17927
17932
  return;
17928
17933
  }
17929
- client[kServerName] = request3.servername;
17934
+ client[kServerName] = request4.servername;
17930
17935
  client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => {
17931
17936
  client[kHTTPContext] = null;
17932
17937
  resume(client);
@@ -17942,10 +17947,10 @@ var require_client = __commonJS({
17942
17947
  if (client[kHTTPContext].destroyed) {
17943
17948
  return;
17944
17949
  }
17945
- if (client[kHTTPContext].busy(request3)) {
17950
+ if (client[kHTTPContext].busy(request4)) {
17946
17951
  return;
17947
17952
  }
17948
- if (!request3.aborted && client[kHTTPContext].write(request3)) {
17953
+ if (!request4.aborted && client[kHTTPContext].write(request4)) {
17949
17954
  client[kPendingIdx]++;
17950
17955
  } else {
17951
17956
  client[kQueue].splice(client[kPendingIdx], 1);
@@ -18139,8 +18144,8 @@ var require_pool_base = __commonJS({
18139
18144
  }
18140
18145
  return Promise.all(closeAll);
18141
18146
  } else {
18142
- return new Promise((resolve6) => {
18143
- this[kClosedResolve] = resolve6;
18147
+ return new Promise((resolve7) => {
18148
+ this[kClosedResolve] = resolve7;
18144
18149
  });
18145
18150
  }
18146
18151
  }
@@ -18977,13 +18982,13 @@ var require_socks5_client = __commonJS({
18977
18982
  }
18978
18983
  debug("starting handshake with", this.authMethods.length, "auth methods");
18979
18984
  this.state = STATES.HANDSHAKING;
18980
- const request3 = Buffer2.alloc(2 + this.authMethods.length);
18981
- request3[0] = SOCKS_VERSION;
18982
- request3[1] = this.authMethods.length;
18985
+ const request4 = Buffer2.alloc(2 + this.authMethods.length);
18986
+ request4[0] = SOCKS_VERSION;
18987
+ request4[1] = this.authMethods.length;
18983
18988
  this.authMethods.forEach((method, i) => {
18984
- request3[2 + i] = method;
18989
+ request4[2 + i] = method;
18985
18990
  });
18986
- this.socket.write(request3);
18991
+ this.socket.write(request4);
18987
18992
  }
18988
18993
  /**
18989
18994
  * Handle handshake response from server
@@ -19025,13 +19030,13 @@ var require_socks5_client = __commonJS({
19025
19030
  if (usernameBuffer.length > 255 || passwordBuffer.length > 255) {
19026
19031
  throw new InvalidArgumentError("Username or password too long");
19027
19032
  }
19028
- const request3 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
19029
- request3[0] = 1;
19030
- request3[1] = usernameBuffer.length;
19031
- usernameBuffer.copy(request3, 2);
19032
- request3[2 + usernameBuffer.length] = passwordBuffer.length;
19033
- passwordBuffer.copy(request3, 3 + usernameBuffer.length);
19034
- this.socket.write(request3);
19033
+ const request4 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
19034
+ request4[0] = 1;
19035
+ request4[1] = usernameBuffer.length;
19036
+ usernameBuffer.copy(request4, 2);
19037
+ request4[2 + usernameBuffer.length] = passwordBuffer.length;
19038
+ passwordBuffer.copy(request4, 3 + usernameBuffer.length);
19039
+ this.socket.write(request4);
19035
19040
  }
19036
19041
  /**
19037
19042
  * Handle authentication response
@@ -19063,22 +19068,22 @@ var require_socks5_client = __commonJS({
19063
19068
  }
19064
19069
  debug("connecting to", address, port);
19065
19070
  this.state = STATES.CONNECTING;
19066
- const request3 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
19067
- this.socket.write(request3);
19071
+ const request4 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
19072
+ this.socket.write(request4);
19068
19073
  }
19069
19074
  /**
19070
19075
  * Build a SOCKS5 request
19071
19076
  */
19072
19077
  buildConnectRequest(command, address, port) {
19073
19078
  const { type: addressType, buffer: addressBuffer } = parseAddress(address);
19074
- const request3 = Buffer2.alloc(4 + addressBuffer.length + 2);
19075
- request3[0] = SOCKS_VERSION;
19076
- request3[1] = command;
19077
- request3[2] = 0;
19078
- request3[3] = addressType;
19079
- addressBuffer.copy(request3, 4);
19080
- request3.writeUInt16BE(port, 4 + addressBuffer.length);
19081
- return request3;
19079
+ const request4 = Buffer2.alloc(4 + addressBuffer.length + 2);
19080
+ request4[0] = SOCKS_VERSION;
19081
+ request4[1] = command;
19082
+ request4[2] = 0;
19083
+ request4[3] = addressType;
19084
+ addressBuffer.copy(request4, 4);
19085
+ request4.writeUInt16BE(port, 4 + addressBuffer.length);
19086
+ return request4;
19082
19087
  }
19083
19088
  /**
19084
19089
  * Handle CONNECT response
@@ -19232,10 +19237,10 @@ var require_socks5_proxy_agent = __commonJS({
19232
19237
  const proxyHost = this[kProxyUrl].hostname;
19233
19238
  const proxyPort = parseInt(this[kProxyUrl].port) || 1080;
19234
19239
  debug("creating SOCKS5 connection to", proxyHost, proxyPort);
19235
- const socket = await new Promise((resolve6, reject) => {
19240
+ const socket = await new Promise((resolve7, reject) => {
19236
19241
  const onConnect = () => {
19237
19242
  socket2.removeListener("error", onError);
19238
- resolve6(socket2);
19243
+ resolve7(socket2);
19239
19244
  };
19240
19245
  const onError = (err) => {
19241
19246
  socket2.removeListener("connect", onConnect);
@@ -19254,14 +19259,14 @@ var require_socks5_proxy_agent = __commonJS({
19254
19259
  socket.destroy();
19255
19260
  });
19256
19261
  await socks5Client.handshake();
19257
- await new Promise((resolve6, reject) => {
19262
+ await new Promise((resolve7, reject) => {
19258
19263
  const timeout = setTimeout(() => {
19259
19264
  reject(new Error("SOCKS5 authentication timeout"));
19260
19265
  }, 5e3);
19261
19266
  const onAuthenticated = () => {
19262
19267
  clearTimeout(timeout);
19263
19268
  socks5Client.removeListener("error", onError);
19264
- resolve6();
19269
+ resolve7();
19265
19270
  };
19266
19271
  const onError = (err) => {
19267
19272
  clearTimeout(timeout);
@@ -19270,14 +19275,14 @@ var require_socks5_proxy_agent = __commonJS({
19270
19275
  };
19271
19276
  if (socks5Client.state === "authenticated") {
19272
19277
  clearTimeout(timeout);
19273
- resolve6();
19278
+ resolve7();
19274
19279
  } else {
19275
19280
  socks5Client.once("authenticated", onAuthenticated);
19276
19281
  socks5Client.once("error", onError);
19277
19282
  }
19278
19283
  });
19279
19284
  await socks5Client.connect(targetHost, targetPort);
19280
- await new Promise((resolve6, reject) => {
19285
+ await new Promise((resolve7, reject) => {
19281
19286
  const timeout = setTimeout(() => {
19282
19287
  reject(new Error("SOCKS5 connection timeout"));
19283
19288
  }, 5e3);
@@ -19285,7 +19290,7 @@ var require_socks5_proxy_agent = __commonJS({
19285
19290
  debug("SOCKS5 tunnel established to", targetHost, targetPort, "via", info);
19286
19291
  clearTimeout(timeout);
19287
19292
  socks5Client.removeListener("error", onError);
19288
- resolve6();
19293
+ resolve7();
19289
19294
  };
19290
19295
  const onError = (err) => {
19291
19296
  clearTimeout(timeout);
@@ -19326,8 +19331,8 @@ var require_socks5_proxy_agent = __commonJS({
19326
19331
  servername: targetHost,
19327
19332
  ...connectOpts.tls || {}
19328
19333
  });
19329
- await new Promise((resolve6, reject) => {
19330
- finalSocket.once("secureConnect", resolve6);
19334
+ await new Promise((resolve7, reject) => {
19335
+ finalSocket.once("secureConnect", resolve7);
19331
19336
  finalSocket.once("error", reject);
19332
19337
  });
19333
19338
  }
@@ -20352,7 +20357,7 @@ var require_readable = __commonJS({
20352
20357
  if (this._readableState.closeEmitted) {
20353
20358
  return Promise.resolve(null);
20354
20359
  }
20355
- return new Promise((resolve6, reject) => {
20360
+ return new Promise((resolve7, reject) => {
20356
20361
  if (this[kContentLength] && this[kContentLength] > limit || this[kBytesRead] > limit) {
20357
20362
  this.destroy(new AbortError());
20358
20363
  }
@@ -20366,11 +20371,11 @@ var require_readable = __commonJS({
20366
20371
  if (signal.aborted) {
20367
20372
  reject(signal.reason ?? new AbortError());
20368
20373
  } else {
20369
- resolve6(null);
20374
+ resolve7(null);
20370
20375
  }
20371
20376
  });
20372
20377
  } else {
20373
- this.on("close", resolve6);
20378
+ this.on("close", resolve7);
20374
20379
  }
20375
20380
  this.on("error", noop).on("data", () => {
20376
20381
  if (this[kBytesRead] > limit) {
@@ -20398,7 +20403,7 @@ var require_readable = __commonJS({
20398
20403
  }
20399
20404
  function consume(stream, type) {
20400
20405
  assert(!stream[kConsume]);
20401
- return new Promise((resolve6, reject) => {
20406
+ return new Promise((resolve7, reject) => {
20402
20407
  if (isUnusable(stream)) {
20403
20408
  const rState = stream._readableState;
20404
20409
  if (rState.destroyed && rState.closeEmitted === false) {
@@ -20413,7 +20418,7 @@ var require_readable = __commonJS({
20413
20418
  stream[kConsume] = {
20414
20419
  type,
20415
20420
  stream,
20416
- resolve: resolve6,
20421
+ resolve: resolve7,
20417
20422
  reject,
20418
20423
  length: 0,
20419
20424
  body: []
@@ -20487,18 +20492,18 @@ var require_readable = __commonJS({
20487
20492
  return buffer;
20488
20493
  }
20489
20494
  function consumeEnd(consume2, encoding) {
20490
- const { type, body, resolve: resolve6, stream, length } = consume2;
20495
+ const { type, body, resolve: resolve7, stream, length } = consume2;
20491
20496
  try {
20492
20497
  if (type === "text") {
20493
- resolve6(chunksDecode(body, length, encoding));
20498
+ resolve7(chunksDecode(body, length, encoding));
20494
20499
  } else if (type === "json") {
20495
- resolve6(JSON.parse(chunksDecode(body, length, encoding)));
20500
+ resolve7(JSON.parse(chunksDecode(body, length, encoding)));
20496
20501
  } else if (type === "arrayBuffer") {
20497
- resolve6(chunksConcat(body, length).buffer);
20502
+ resolve7(chunksConcat(body, length).buffer);
20498
20503
  } else if (type === "blob") {
20499
- resolve6(new Blob(body, { type: stream[kContentType] }));
20504
+ resolve7(new Blob(body, { type: stream[kContentType] }));
20500
20505
  } else if (type === "bytes") {
20501
- resolve6(chunksConcat(body, length));
20506
+ resolve7(chunksConcat(body, length));
20502
20507
  }
20503
20508
  consumeFinish(consume2);
20504
20509
  } catch (err) {
@@ -20686,11 +20691,11 @@ var require_api_request = __commonJS({
20686
20691
  }
20687
20692
  }
20688
20693
  };
20689
- function request3(opts, callback) {
20694
+ function request4(opts, callback) {
20690
20695
  if (callback === void 0) {
20691
- return new Promise((resolve6, reject) => {
20692
- request3.call(this, opts, (err, data) => {
20693
- return err ? reject(err) : resolve6(data);
20696
+ return new Promise((resolve7, reject) => {
20697
+ request4.call(this, opts, (err, data) => {
20698
+ return err ? reject(err) : resolve7(data);
20694
20699
  });
20695
20700
  });
20696
20701
  }
@@ -20705,7 +20710,7 @@ var require_api_request = __commonJS({
20705
20710
  queueMicrotask(() => callback(err, { opaque }));
20706
20711
  }
20707
20712
  }
20708
- module.exports = request3;
20713
+ module.exports = request4;
20709
20714
  module.exports.RequestHandler = RequestHandler;
20710
20715
  }
20711
20716
  });
@@ -20902,9 +20907,9 @@ var require_api_stream = __commonJS({
20902
20907
  };
20903
20908
  function stream(opts, factory, callback) {
20904
20909
  if (callback === void 0) {
20905
- return new Promise((resolve6, reject) => {
20910
+ return new Promise((resolve7, reject) => {
20906
20911
  stream.call(this, opts, factory, (err, data) => {
20907
- return err ? reject(err) : resolve6(data);
20912
+ return err ? reject(err) : resolve7(data);
20908
20913
  });
20909
20914
  });
20910
20915
  }
@@ -21192,9 +21197,9 @@ var require_api_upgrade = __commonJS({
21192
21197
  };
21193
21198
  function upgrade(opts, callback) {
21194
21199
  if (callback === void 0) {
21195
- return new Promise((resolve6, reject) => {
21200
+ return new Promise((resolve7, reject) => {
21196
21201
  upgrade.call(this, opts, (err, data) => {
21197
- return err ? reject(err) : resolve6(data);
21202
+ return err ? reject(err) : resolve7(data);
21198
21203
  });
21199
21204
  });
21200
21205
  }
@@ -21287,9 +21292,9 @@ var require_api_connect = __commonJS({
21287
21292
  };
21288
21293
  function connect(opts, callback) {
21289
21294
  if (callback === void 0) {
21290
- return new Promise((resolve6, reject) => {
21295
+ return new Promise((resolve7, reject) => {
21291
21296
  connect.call(this, opts, (err, data) => {
21292
- return err ? reject(err) : resolve6(data);
21297
+ return err ? reject(err) : resolve7(data);
21293
21298
  });
21294
21299
  });
21295
21300
  }
@@ -22562,8 +22567,8 @@ var require_snapshot_utils = __commonJS({
22562
22567
  var require_snapshot_recorder = __commonJS({
22563
22568
  "../../node_modules/.pnpm/undici@7.25.0/node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module) {
22564
22569
  "use strict";
22565
- var { writeFile: writeFile2, readFile: readFile2, mkdir: mkdir3 } = __require("fs/promises");
22566
- var { dirname: dirname9, resolve: resolve6 } = __require("path");
22570
+ var { writeFile: writeFile3, readFile: readFile2, mkdir: mkdir4 } = __require("fs/promises");
22571
+ var { dirname: dirname9, resolve: resolve7 } = __require("path");
22567
22572
  var { setTimeout: setTimeout2, clearTimeout: clearTimeout2 } = __require("timers");
22568
22573
  var { InvalidArgumentError, UndiciError } = require_errors();
22569
22574
  var { hashId, isUrlExcludedFactory, normalizeHeaders, createHeaderFilters } = require_snapshot_utils();
@@ -22688,8 +22693,8 @@ var require_snapshot_recorder = __commonJS({
22688
22693
  if (this.isUrlExcluded(requestOpts)) {
22689
22694
  return;
22690
22695
  }
22691
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22692
- const hash = createRequestHash(request3);
22696
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22697
+ const hash = createRequestHash(request4);
22693
22698
  const normalizedHeaders = normalizeHeaders(response.headers);
22694
22699
  const responseData = {
22695
22700
  statusCode: response.statusCode,
@@ -22707,7 +22712,7 @@ var require_snapshot_recorder = __commonJS({
22707
22712
  existingSnapshot.timestamp = (/* @__PURE__ */ new Date()).toISOString();
22708
22713
  } else {
22709
22714
  this.#snapshots.set(hash, {
22710
- request: request3,
22715
+ request: request4,
22711
22716
  responses: [responseData],
22712
22717
  // Always store as array for consistency
22713
22718
  callCount: 0,
@@ -22741,8 +22746,8 @@ var require_snapshot_recorder = __commonJS({
22741
22746
  if (this.isUrlExcluded(requestOpts)) {
22742
22747
  return void 0;
22743
22748
  }
22744
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22745
- const hash = createRequestHash(request3);
22749
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22750
+ const hash = createRequestHash(request4);
22746
22751
  const snapshot = this.#snapshots.get(hash);
22747
22752
  if (!snapshot) return void 0;
22748
22753
  const currentCallCount = snapshot.callCount || 0;
@@ -22764,7 +22769,7 @@ var require_snapshot_recorder = __commonJS({
22764
22769
  throw new InvalidArgumentError("Snapshot path is required");
22765
22770
  }
22766
22771
  try {
22767
- const data = await readFile2(resolve6(path), "utf8");
22772
+ const data = await readFile2(resolve7(path), "utf8");
22768
22773
  const parsed = JSON.parse(data);
22769
22774
  if (Array.isArray(parsed)) {
22770
22775
  this.#snapshots.clear();
@@ -22793,13 +22798,13 @@ var require_snapshot_recorder = __commonJS({
22793
22798
  if (!path) {
22794
22799
  throw new InvalidArgumentError("Snapshot path is required");
22795
22800
  }
22796
- const resolvedPath = resolve6(path);
22797
- await mkdir3(dirname9(resolvedPath), { recursive: true });
22801
+ const resolvedPath = resolve7(path);
22802
+ await mkdir4(dirname9(resolvedPath), { recursive: true });
22798
22803
  const data = Array.from(this.#snapshots.entries()).map(([hash, snapshot]) => ({
22799
22804
  hash,
22800
22805
  snapshot
22801
22806
  }));
22802
- await writeFile2(resolvedPath, JSON.stringify(data, null, 2), { flush: true });
22807
+ await writeFile3(resolvedPath, JSON.stringify(data, null, 2), { flush: true });
22803
22808
  }
22804
22809
  /**
22805
22810
  * Clears all recorded snapshots
@@ -22837,8 +22842,8 @@ var require_snapshot_recorder = __commonJS({
22837
22842
  * @returns {boolean} - True if snapshot was deleted, false if not found
22838
22843
  */
22839
22844
  deleteSnapshot(requestOpts) {
22840
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22841
- const hash = createRequestHash(request3);
22845
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22846
+ const hash = createRequestHash(request4);
22842
22847
  return this.#snapshots.delete(hash);
22843
22848
  }
22844
22849
  /**
@@ -22847,8 +22852,8 @@ var require_snapshot_recorder = __commonJS({
22847
22852
  * @returns {SnapshotInfo|null} - Snapshot information or null if not found
22848
22853
  */
22849
22854
  getSnapshotInfo(requestOpts) {
22850
- const request3 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22851
- const hash = createRequestHash(request3);
22855
+ const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
22856
+ const hash = createRequestHash(request4);
22852
22857
  const snapshot = this.#snapshots.get(hash);
22853
22858
  if (!snapshot) return null;
22854
22859
  return {
@@ -23139,16 +23144,16 @@ var require_snapshot_agent = __commonJS({
23139
23144
  */
23140
23145
  #setupMockInterceptors() {
23141
23146
  for (const snapshot of this[kSnapshotRecorder].getSnapshots()) {
23142
- const { request: request3, responses, response } = snapshot;
23143
- const url = new URL(request3.url);
23147
+ const { request: request4, responses, response } = snapshot;
23148
+ const url = new URL(request4.url);
23144
23149
  const mockPool = this.get(url.origin);
23145
23150
  const responseData = responses ? responses[0] : response;
23146
23151
  if (!responseData) continue;
23147
23152
  mockPool.intercept({
23148
23153
  path: url.pathname + url.search,
23149
- method: request3.method,
23150
- headers: request3.headers,
23151
- body: request3.body
23154
+ method: request4.method,
23155
+ headers: request4.headers,
23156
+ body: request4.body
23152
23157
  }).reply(responseData.statusCode, responseData.body, {
23153
23158
  headers: responseData.headers,
23154
23159
  trailers: responseData.trailers
@@ -27865,7 +27870,7 @@ var require_request2 = __commonJS({
27865
27870
  webidl.argumentLengthCheck(arguments, 1, prefix);
27866
27871
  input = webidl.converters.RequestInfo(input);
27867
27872
  init = webidl.converters.RequestInit(init);
27868
- let request3 = null;
27873
+ let request4 = null;
27869
27874
  let fallbackMode = null;
27870
27875
  const baseUrl = environmentSettingsObject.settingsObject.baseUrl;
27871
27876
  let signal = null;
@@ -27882,18 +27887,18 @@ var require_request2 = __commonJS({
27882
27887
  "Request cannot be constructed from a URL that includes credentials: " + input
27883
27888
  );
27884
27889
  }
27885
- request3 = makeRequest({ urlList: [parsedURL] });
27890
+ request4 = makeRequest({ urlList: [parsedURL] });
27886
27891
  fallbackMode = "cors";
27887
27892
  } else {
27888
27893
  assert(webidl.is.Request(input));
27889
- request3 = input.#state;
27894
+ request4 = input.#state;
27890
27895
  signal = input.#signal;
27891
27896
  this.#dispatcher = init.dispatcher || input.#dispatcher;
27892
27897
  }
27893
27898
  const origin = environmentSettingsObject.settingsObject.origin;
27894
27899
  let window2 = "client";
27895
- if (request3.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request3.window, origin)) {
27896
- window2 = request3.window;
27900
+ if (request4.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request4.window, origin)) {
27901
+ window2 = request4.window;
27897
27902
  }
27898
27903
  if (init.window != null) {
27899
27904
  throw new TypeError(`'window' option '${window2}' must be null`);
@@ -27901,66 +27906,66 @@ var require_request2 = __commonJS({
27901
27906
  if ("window" in init) {
27902
27907
  window2 = "no-window";
27903
27908
  }
27904
- request3 = makeRequest({
27909
+ request4 = makeRequest({
27905
27910
  // URL request’s URL.
27906
27911
  // undici implementation note: this is set as the first item in request's urlList in makeRequest
27907
27912
  // method request’s method.
27908
- method: request3.method,
27913
+ method: request4.method,
27909
27914
  // header list A copy of request’s header list.
27910
27915
  // undici implementation note: headersList is cloned in makeRequest
27911
- headersList: request3.headersList,
27916
+ headersList: request4.headersList,
27912
27917
  // unsafe-request flag Set.
27913
- unsafeRequest: request3.unsafeRequest,
27918
+ unsafeRequest: request4.unsafeRequest,
27914
27919
  // client This’s relevant settings object.
27915
27920
  client: environmentSettingsObject.settingsObject,
27916
27921
  // window window.
27917
27922
  window: window2,
27918
27923
  // priority request’s priority.
27919
- priority: request3.priority,
27924
+ priority: request4.priority,
27920
27925
  // origin request’s origin. The propagation of the origin is only significant for navigation requests
27921
27926
  // being handled by a service worker. In this scenario a request can have an origin that is different
27922
27927
  // from the current client.
27923
- origin: request3.origin,
27928
+ origin: request4.origin,
27924
27929
  // referrer request’s referrer.
27925
- referrer: request3.referrer,
27930
+ referrer: request4.referrer,
27926
27931
  // referrer policy request’s referrer policy.
27927
- referrerPolicy: request3.referrerPolicy,
27932
+ referrerPolicy: request4.referrerPolicy,
27928
27933
  // mode request’s mode.
27929
- mode: request3.mode,
27934
+ mode: request4.mode,
27930
27935
  // credentials mode request’s credentials mode.
27931
- credentials: request3.credentials,
27936
+ credentials: request4.credentials,
27932
27937
  // cache mode request’s cache mode.
27933
- cache: request3.cache,
27938
+ cache: request4.cache,
27934
27939
  // redirect mode request’s redirect mode.
27935
- redirect: request3.redirect,
27940
+ redirect: request4.redirect,
27936
27941
  // integrity metadata request’s integrity metadata.
27937
- integrity: request3.integrity,
27942
+ integrity: request4.integrity,
27938
27943
  // keepalive request’s keepalive.
27939
- keepalive: request3.keepalive,
27944
+ keepalive: request4.keepalive,
27940
27945
  // reload-navigation flag request’s reload-navigation flag.
27941
- reloadNavigation: request3.reloadNavigation,
27946
+ reloadNavigation: request4.reloadNavigation,
27942
27947
  // history-navigation flag request’s history-navigation flag.
27943
- historyNavigation: request3.historyNavigation,
27948
+ historyNavigation: request4.historyNavigation,
27944
27949
  // URL list A clone of request’s URL list.
27945
- urlList: [...request3.urlList]
27950
+ urlList: [...request4.urlList]
27946
27951
  });
27947
27952
  const initHasKey = Object.keys(init).length !== 0;
27948
27953
  if (initHasKey) {
27949
- if (request3.mode === "navigate") {
27950
- request3.mode = "same-origin";
27954
+ if (request4.mode === "navigate") {
27955
+ request4.mode = "same-origin";
27951
27956
  }
27952
- request3.reloadNavigation = false;
27953
- request3.historyNavigation = false;
27954
- request3.origin = "client";
27955
- request3.referrer = "client";
27956
- request3.referrerPolicy = "";
27957
- request3.url = request3.urlList[request3.urlList.length - 1];
27958
- request3.urlList = [request3.url];
27957
+ request4.reloadNavigation = false;
27958
+ request4.historyNavigation = false;
27959
+ request4.origin = "client";
27960
+ request4.referrer = "client";
27961
+ request4.referrerPolicy = "";
27962
+ request4.url = request4.urlList[request4.urlList.length - 1];
27963
+ request4.urlList = [request4.url];
27959
27964
  }
27960
27965
  if (init.referrer !== void 0) {
27961
27966
  const referrer = init.referrer;
27962
27967
  if (referrer === "") {
27963
- request3.referrer = "no-referrer";
27968
+ request4.referrer = "no-referrer";
27964
27969
  } else {
27965
27970
  let parsedReferrer;
27966
27971
  try {
@@ -27969,14 +27974,14 @@ var require_request2 = __commonJS({
27969
27974
  throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err });
27970
27975
  }
27971
27976
  if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) {
27972
- request3.referrer = "client";
27977
+ request4.referrer = "client";
27973
27978
  } else {
27974
- request3.referrer = parsedReferrer;
27979
+ request4.referrer = parsedReferrer;
27975
27980
  }
27976
27981
  }
27977
27982
  }
27978
27983
  if (init.referrerPolicy !== void 0) {
27979
- request3.referrerPolicy = init.referrerPolicy;
27984
+ request4.referrerPolicy = init.referrerPolicy;
27980
27985
  }
27981
27986
  let mode;
27982
27987
  if (init.mode !== void 0) {
@@ -27991,33 +27996,33 @@ var require_request2 = __commonJS({
27991
27996
  });
27992
27997
  }
27993
27998
  if (mode != null) {
27994
- request3.mode = mode;
27999
+ request4.mode = mode;
27995
28000
  }
27996
28001
  if (init.credentials !== void 0) {
27997
- request3.credentials = init.credentials;
28002
+ request4.credentials = init.credentials;
27998
28003
  }
27999
28004
  if (init.cache !== void 0) {
28000
- request3.cache = init.cache;
28005
+ request4.cache = init.cache;
28001
28006
  }
28002
- if (request3.cache === "only-if-cached" && request3.mode !== "same-origin") {
28007
+ if (request4.cache === "only-if-cached" && request4.mode !== "same-origin") {
28003
28008
  throw new TypeError(
28004
28009
  "'only-if-cached' can be set only with 'same-origin' mode"
28005
28010
  );
28006
28011
  }
28007
28012
  if (init.redirect !== void 0) {
28008
- request3.redirect = init.redirect;
28013
+ request4.redirect = init.redirect;
28009
28014
  }
28010
28015
  if (init.integrity != null) {
28011
- request3.integrity = String(init.integrity);
28016
+ request4.integrity = String(init.integrity);
28012
28017
  }
28013
28018
  if (init.keepalive !== void 0) {
28014
- request3.keepalive = Boolean(init.keepalive);
28019
+ request4.keepalive = Boolean(init.keepalive);
28015
28020
  }
28016
28021
  if (init.method !== void 0) {
28017
28022
  let method = init.method;
28018
28023
  const mayBeNormalized = normalizedMethodRecords[method];
28019
28024
  if (mayBeNormalized !== void 0) {
28020
- request3.method = mayBeNormalized;
28025
+ request4.method = mayBeNormalized;
28021
28026
  } else {
28022
28027
  if (!isValidHTTPToken(method)) {
28023
28028
  throw new TypeError(`'${method}' is not a valid HTTP method.`);
@@ -28027,9 +28032,9 @@ var require_request2 = __commonJS({
28027
28032
  throw new TypeError(`'${method}' HTTP method is unsupported.`);
28028
28033
  }
28029
28034
  method = normalizedMethodRecordsBase[upperCase] ?? method;
28030
- request3.method = method;
28035
+ request4.method = method;
28031
28036
  }
28032
- if (!patchMethodWarning && request3.method === "patch") {
28037
+ if (!patchMethodWarning && request4.method === "patch") {
28033
28038
  process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.", {
28034
28039
  code: "UNDICI-FETCH-patch"
28035
28040
  });
@@ -28039,7 +28044,7 @@ var require_request2 = __commonJS({
28039
28044
  if (init.signal !== void 0) {
28040
28045
  signal = init.signal;
28041
28046
  }
28042
- this.#state = request3;
28047
+ this.#state = request4;
28043
28048
  const ac = new AbortController();
28044
28049
  this.#signal = ac.signal;
28045
28050
  if (signal != null) {
@@ -28057,12 +28062,12 @@ var require_request2 = __commonJS({
28057
28062
  }
28058
28063
  }
28059
28064
  this.#headers = new Headers(kConstruct);
28060
- setHeadersList(this.#headers, request3.headersList);
28065
+ setHeadersList(this.#headers, request4.headersList);
28061
28066
  setHeadersGuard(this.#headers, "request");
28062
28067
  if (mode === "no-cors") {
28063
- if (!corsSafeListedMethodsSet.has(request3.method)) {
28068
+ if (!corsSafeListedMethodsSet.has(request4.method)) {
28064
28069
  throw new TypeError(
28065
- `'${request3.method} is unsupported in no-cors mode.`
28070
+ `'${request4.method} is unsupported in no-cors mode.`
28066
28071
  );
28067
28072
  }
28068
28073
  setHeadersGuard(this.#headers, "request-no-cors");
@@ -28081,14 +28086,14 @@ var require_request2 = __commonJS({
28081
28086
  }
28082
28087
  }
28083
28088
  const inputBody = webidl.is.Request(input) ? input.#state.body : null;
28084
- if ((init.body != null || inputBody != null) && (request3.method === "GET" || request3.method === "HEAD")) {
28089
+ if ((init.body != null || inputBody != null) && (request4.method === "GET" || request4.method === "HEAD")) {
28085
28090
  throw new TypeError("Request with GET/HEAD method cannot have body.");
28086
28091
  }
28087
28092
  let initBody = null;
28088
28093
  if (init.body != null) {
28089
28094
  const [extractedBody, contentType] = extractBody(
28090
28095
  init.body,
28091
- request3.keepalive
28096
+ request4.keepalive
28092
28097
  );
28093
28098
  initBody = extractedBody;
28094
28099
  if (contentType && !getHeadersList(this.#headers).contains("content-type", true)) {
@@ -28100,12 +28105,12 @@ var require_request2 = __commonJS({
28100
28105
  if (initBody != null && init.duplex == null) {
28101
28106
  throw new TypeError("RequestInit: duplex option is required when sending a body.");
28102
28107
  }
28103
- if (request3.mode !== "same-origin" && request3.mode !== "cors") {
28108
+ if (request4.mode !== "same-origin" && request4.mode !== "cors") {
28104
28109
  throw new TypeError(
28105
28110
  'If request is made from ReadableStream, mode should be "same-origin" or "cors"'
28106
28111
  );
28107
28112
  }
28108
- request3.useCORSPreflightFlag = true;
28113
+ request4.useCORSPreflightFlag = true;
28109
28114
  }
28110
28115
  let finalBody = inputOrInitBody;
28111
28116
  if (initBody == null && inputBody != null) {
@@ -28295,42 +28300,42 @@ var require_request2 = __commonJS({
28295
28300
  * @param {Request} request
28296
28301
  * @param {AbortSignal} newSignal
28297
28302
  */
28298
- static setRequestSignal(request3, newSignal) {
28299
- request3.#signal = newSignal;
28300
- return request3;
28303
+ static setRequestSignal(request4, newSignal) {
28304
+ request4.#signal = newSignal;
28305
+ return request4;
28301
28306
  }
28302
28307
  /**
28303
28308
  * @param {Request} request
28304
28309
  */
28305
- static getRequestDispatcher(request3) {
28306
- return request3.#dispatcher;
28310
+ static getRequestDispatcher(request4) {
28311
+ return request4.#dispatcher;
28307
28312
  }
28308
28313
  /**
28309
28314
  * @param {Request} request
28310
28315
  * @param {import('../../dispatcher/dispatcher')} newDispatcher
28311
28316
  */
28312
- static setRequestDispatcher(request3, newDispatcher) {
28313
- request3.#dispatcher = newDispatcher;
28317
+ static setRequestDispatcher(request4, newDispatcher) {
28318
+ request4.#dispatcher = newDispatcher;
28314
28319
  }
28315
28320
  /**
28316
28321
  * @param {Request} request
28317
28322
  * @param {Headers} newHeaders
28318
28323
  */
28319
- static setRequestHeaders(request3, newHeaders) {
28320
- request3.#headers = newHeaders;
28324
+ static setRequestHeaders(request4, newHeaders) {
28325
+ request4.#headers = newHeaders;
28321
28326
  }
28322
28327
  /**
28323
28328
  * @param {Request} request
28324
28329
  */
28325
- static getRequestState(request3) {
28326
- return request3.#state;
28330
+ static getRequestState(request4) {
28331
+ return request4.#state;
28327
28332
  }
28328
28333
  /**
28329
28334
  * @param {Request} request
28330
28335
  * @param {any} newState
28331
28336
  */
28332
- static setRequestState(request3, newState) {
28333
- request3.#state = newState;
28337
+ static setRequestState(request4, newState) {
28338
+ request4.#state = newState;
28334
28339
  }
28335
28340
  };
28336
28341
  var { setRequestSignal, getRequestDispatcher, setRequestDispatcher, setRequestHeaders, getRequestState, setRequestState } = Request;
@@ -28385,23 +28390,23 @@ var require_request2 = __commonJS({
28385
28390
  headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList()
28386
28391
  };
28387
28392
  }
28388
- function cloneRequest(request3) {
28389
- const newRequest = makeRequest({ ...request3, body: null });
28390
- if (request3.body != null) {
28391
- newRequest.body = cloneBody(request3.body);
28393
+ function cloneRequest(request4) {
28394
+ const newRequest = makeRequest({ ...request4, body: null });
28395
+ if (request4.body != null) {
28396
+ newRequest.body = cloneBody(request4.body);
28392
28397
  }
28393
28398
  return newRequest;
28394
28399
  }
28395
28400
  function fromInnerRequest(innerRequest, dispatcher, signal, guard) {
28396
- const request3 = new Request(kConstruct);
28397
- setRequestState(request3, innerRequest);
28398
- setRequestDispatcher(request3, dispatcher);
28399
- setRequestSignal(request3, signal);
28401
+ const request4 = new Request(kConstruct);
28402
+ setRequestState(request4, innerRequest);
28403
+ setRequestDispatcher(request4, dispatcher);
28404
+ setRequestSignal(request4, signal);
28400
28405
  const headers = new Headers(kConstruct);
28401
- setRequestHeaders(request3, headers);
28406
+ setRequestHeaders(request4, headers);
28402
28407
  setHeadersList(headers, innerRequest.headersList);
28403
28408
  setHeadersGuard(headers, guard);
28404
- return request3;
28409
+ return request4;
28405
28410
  }
28406
28411
  Object.defineProperties(Request.prototype, {
28407
28412
  method: kEnumerableProperty,
@@ -28793,14 +28798,14 @@ var require_fetch = __commonJS({
28793
28798
  p.reject(e);
28794
28799
  return p.promise;
28795
28800
  }
28796
- const request3 = getRequestState(requestObject);
28801
+ const request4 = getRequestState(requestObject);
28797
28802
  if (requestObject.signal.aborted) {
28798
- abortFetch(p, request3, null, requestObject.signal.reason, null);
28803
+ abortFetch(p, request4, null, requestObject.signal.reason, null);
28799
28804
  return p.promise;
28800
28805
  }
28801
- const globalObject = request3.client.globalObject;
28806
+ const globalObject = request4.client.globalObject;
28802
28807
  if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") {
28803
- request3.serviceWorkers = "none";
28808
+ request4.serviceWorkers = "none";
28804
28809
  }
28805
28810
  let responseObject = null;
28806
28811
  let locallyAborted = false;
@@ -28812,7 +28817,7 @@ var require_fetch = __commonJS({
28812
28817
  assert(controller != null);
28813
28818
  controller.abort(requestObject.signal.reason);
28814
28819
  const realResponse = responseObject?.deref();
28815
- abortFetch(p, request3, realResponse, requestObject.signal.reason, controller.controller);
28820
+ abortFetch(p, request4, realResponse, requestObject.signal.reason, controller.controller);
28816
28821
  }
28817
28822
  );
28818
28823
  const processResponse = (response) => {
@@ -28820,7 +28825,7 @@ var require_fetch = __commonJS({
28820
28825
  return;
28821
28826
  }
28822
28827
  if (response.aborted) {
28823
- abortFetch(p, request3, responseObject, controller.serializedAbortReason, controller.controller);
28828
+ abortFetch(p, request4, responseObject, controller.serializedAbortReason, controller.controller);
28824
28829
  return;
28825
28830
  }
28826
28831
  if (response.type === "error") {
@@ -28832,7 +28837,7 @@ var require_fetch = __commonJS({
28832
28837
  p = null;
28833
28838
  };
28834
28839
  controller = fetching({
28835
- request: request3,
28840
+ request: request4,
28836
28841
  processResponseEndOfBody: handleFetchDone,
28837
28842
  processResponse,
28838
28843
  dispatcher: getRequestDispatcher(requestObject),
@@ -28879,12 +28884,12 @@ var require_fetch = __commonJS({
28879
28884
  );
28880
28885
  }
28881
28886
  var markResourceTiming = performance.markResourceTiming;
28882
- function abortFetch(p, request3, responseObject, error, controller) {
28887
+ function abortFetch(p, request4, responseObject, error, controller) {
28883
28888
  if (p) {
28884
28889
  p.reject(error);
28885
28890
  }
28886
- if (request3.body?.stream != null && isReadable(request3.body.stream)) {
28887
- request3.body.stream.cancel(error).catch((err) => {
28891
+ if (request4.body?.stream != null && isReadable(request4.body.stream)) {
28892
+ request4.body.stream.cancel(error).catch((err) => {
28888
28893
  if (err.code === "ERR_INVALID_STATE") {
28889
28894
  return;
28890
28895
  }
@@ -28900,7 +28905,7 @@ var require_fetch = __commonJS({
28900
28905
  }
28901
28906
  }
28902
28907
  function fetching({
28903
- request: request3,
28908
+ request: request4,
28904
28909
  processRequestBodyChunkLength,
28905
28910
  processRequestEndOfBody,
28906
28911
  processResponse,
@@ -28915,9 +28920,9 @@ var require_fetch = __commonJS({
28915
28920
  assert(dispatcher);
28916
28921
  let taskDestination = null;
28917
28922
  let crossOriginIsolatedCapability = false;
28918
- if (request3.client != null) {
28919
- taskDestination = request3.client.globalObject;
28920
- crossOriginIsolatedCapability = request3.client.crossOriginIsolatedCapability;
28923
+ if (request4.client != null) {
28924
+ taskDestination = request4.client.globalObject;
28925
+ crossOriginIsolatedCapability = request4.client.crossOriginIsolatedCapability;
28921
28926
  }
28922
28927
  const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability);
28923
28928
  const timingInfo = createOpaqueTimingInfo({
@@ -28925,7 +28930,7 @@ var require_fetch = __commonJS({
28925
28930
  });
28926
28931
  const fetchParams = {
28927
28932
  controller: new Fetch(dispatcher),
28928
- request: request3,
28933
+ request: request4,
28929
28934
  timingInfo,
28930
28935
  processRequestBodyChunkLength,
28931
28936
  processRequestEndOfBody,
@@ -28937,79 +28942,79 @@ var require_fetch = __commonJS({
28937
28942
  // Keep requestObject alive to prevent its AbortController from being GC'd
28938
28943
  requestObject
28939
28944
  };
28940
- assert(!request3.body || request3.body.stream);
28941
- if (request3.window === "client") {
28942
- request3.window = request3.client?.globalObject?.constructor?.name === "Window" ? request3.client : "no-window";
28945
+ assert(!request4.body || request4.body.stream);
28946
+ if (request4.window === "client") {
28947
+ request4.window = request4.client?.globalObject?.constructor?.name === "Window" ? request4.client : "no-window";
28943
28948
  }
28944
- if (request3.origin === "client") {
28945
- request3.origin = request3.client.origin;
28949
+ if (request4.origin === "client") {
28950
+ request4.origin = request4.client.origin;
28946
28951
  }
28947
- if (request3.policyContainer === "client") {
28948
- if (request3.client != null) {
28949
- request3.policyContainer = clonePolicyContainer(
28950
- request3.client.policyContainer
28952
+ if (request4.policyContainer === "client") {
28953
+ if (request4.client != null) {
28954
+ request4.policyContainer = clonePolicyContainer(
28955
+ request4.client.policyContainer
28951
28956
  );
28952
28957
  } else {
28953
- request3.policyContainer = makePolicyContainer();
28958
+ request4.policyContainer = makePolicyContainer();
28954
28959
  }
28955
28960
  }
28956
- if (!request3.headersList.contains("accept", true)) {
28961
+ if (!request4.headersList.contains("accept", true)) {
28957
28962
  const value = "*/*";
28958
- request3.headersList.append("accept", value, true);
28963
+ request4.headersList.append("accept", value, true);
28959
28964
  }
28960
- if (!request3.headersList.contains("accept-language", true)) {
28961
- request3.headersList.append("accept-language", "*", true);
28965
+ if (!request4.headersList.contains("accept-language", true)) {
28966
+ request4.headersList.append("accept-language", "*", true);
28962
28967
  }
28963
- if (request3.priority === null) {
28968
+ if (request4.priority === null) {
28964
28969
  }
28965
- if (subresourceSet.has(request3.destination)) {
28970
+ if (subresourceSet.has(request4.destination)) {
28966
28971
  }
28967
28972
  mainFetch(fetchParams, false);
28968
28973
  return fetchParams.controller;
28969
28974
  }
28970
28975
  async function mainFetch(fetchParams, recursive) {
28971
28976
  try {
28972
- const request3 = fetchParams.request;
28977
+ const request4 = fetchParams.request;
28973
28978
  let response = null;
28974
- if (request3.localURLsOnly && !urlIsLocal(requestCurrentURL(request3))) {
28979
+ if (request4.localURLsOnly && !urlIsLocal(requestCurrentURL(request4))) {
28975
28980
  response = makeNetworkError("local URLs only");
28976
28981
  }
28977
- tryUpgradeRequestToAPotentiallyTrustworthyURL(request3);
28978
- if (requestBadPort(request3) === "blocked") {
28982
+ tryUpgradeRequestToAPotentiallyTrustworthyURL(request4);
28983
+ if (requestBadPort(request4) === "blocked") {
28979
28984
  response = makeNetworkError("bad port");
28980
28985
  }
28981
- if (request3.referrerPolicy === "") {
28982
- request3.referrerPolicy = request3.policyContainer.referrerPolicy;
28986
+ if (request4.referrerPolicy === "") {
28987
+ request4.referrerPolicy = request4.policyContainer.referrerPolicy;
28983
28988
  }
28984
- if (request3.referrer !== "no-referrer") {
28985
- request3.referrer = determineRequestsReferrer(request3);
28989
+ if (request4.referrer !== "no-referrer") {
28990
+ request4.referrer = determineRequestsReferrer(request4);
28986
28991
  }
28987
28992
  if (response === null) {
28988
- const currentURL = requestCurrentURL(request3);
28993
+ const currentURL = requestCurrentURL(request4);
28989
28994
  if (
28990
28995
  // - request’s current URL’s origin is same origin with request’s origin,
28991
28996
  // and request’s response tainting is "basic"
28992
- sameOrigin(currentURL, request3.url) && request3.responseTainting === "basic" || // request’s current URL’s scheme is "data"
28997
+ sameOrigin(currentURL, request4.url) && request4.responseTainting === "basic" || // request’s current URL’s scheme is "data"
28993
28998
  currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket"
28994
- (request3.mode === "navigate" || request3.mode === "websocket")
28999
+ (request4.mode === "navigate" || request4.mode === "websocket")
28995
29000
  ) {
28996
- request3.responseTainting = "basic";
29001
+ request4.responseTainting = "basic";
28997
29002
  response = await schemeFetch(fetchParams);
28998
- } else if (request3.mode === "same-origin") {
29003
+ } else if (request4.mode === "same-origin") {
28999
29004
  response = makeNetworkError('request mode cannot be "same-origin"');
29000
- } else if (request3.mode === "no-cors") {
29001
- if (request3.redirect !== "follow") {
29005
+ } else if (request4.mode === "no-cors") {
29006
+ if (request4.redirect !== "follow") {
29002
29007
  response = makeNetworkError(
29003
29008
  'redirect mode cannot be "follow" for "no-cors" request'
29004
29009
  );
29005
29010
  } else {
29006
- request3.responseTainting = "opaque";
29011
+ request4.responseTainting = "opaque";
29007
29012
  response = await schemeFetch(fetchParams);
29008
29013
  }
29009
- } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request3))) {
29014
+ } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request4))) {
29010
29015
  response = makeNetworkError("URL scheme must be a HTTP(S) scheme");
29011
29016
  } else {
29012
- request3.responseTainting = "cors";
29017
+ request4.responseTainting = "cors";
29013
29018
  response = await httpFetch(fetchParams);
29014
29019
  }
29015
29020
  }
@@ -29017,13 +29022,13 @@ var require_fetch = __commonJS({
29017
29022
  return response;
29018
29023
  }
29019
29024
  if (response.status !== 0 && !response.internalResponse) {
29020
- if (request3.responseTainting === "cors") {
29025
+ if (request4.responseTainting === "cors") {
29021
29026
  }
29022
- if (request3.responseTainting === "basic") {
29027
+ if (request4.responseTainting === "basic") {
29023
29028
  response = filterResponse(response, "basic");
29024
- } else if (request3.responseTainting === "cors") {
29029
+ } else if (request4.responseTainting === "cors") {
29025
29030
  response = filterResponse(response, "cors");
29026
- } else if (request3.responseTainting === "opaque") {
29031
+ } else if (request4.responseTainting === "opaque") {
29027
29032
  response = filterResponse(response, "opaque");
29028
29033
  } else {
29029
29034
  assert(false);
@@ -29031,26 +29036,26 @@ var require_fetch = __commonJS({
29031
29036
  }
29032
29037
  let internalResponse = response.status === 0 ? response : response.internalResponse;
29033
29038
  if (internalResponse.urlList.length === 0) {
29034
- internalResponse.urlList.push(...request3.urlList);
29039
+ internalResponse.urlList.push(...request4.urlList);
29035
29040
  }
29036
- if (!request3.timingAllowFailed) {
29041
+ if (!request4.timingAllowFailed) {
29037
29042
  response.timingAllowPassed = true;
29038
29043
  }
29039
- if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request3.headers.contains("range", true)) {
29044
+ if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request4.headers.contains("range", true)) {
29040
29045
  response = internalResponse = makeNetworkError();
29041
29046
  }
29042
- if (response.status !== 0 && (request3.method === "HEAD" || request3.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
29047
+ if (response.status !== 0 && (request4.method === "HEAD" || request4.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
29043
29048
  internalResponse.body = null;
29044
29049
  fetchParams.controller.dump = true;
29045
29050
  }
29046
- if (request3.integrity) {
29051
+ if (request4.integrity) {
29047
29052
  const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason));
29048
- if (request3.responseTainting === "opaque" || response.body == null) {
29053
+ if (request4.responseTainting === "opaque" || response.body == null) {
29049
29054
  processBodyError(response.error);
29050
29055
  return;
29051
29056
  }
29052
29057
  const processBody = (bytes) => {
29053
- if (!bytesMatch(bytes, request3.integrity)) {
29058
+ if (!bytesMatch(bytes, request4.integrity)) {
29054
29059
  processBodyError("integrity mismatch");
29055
29060
  return;
29056
29061
  }
@@ -29069,8 +29074,8 @@ var require_fetch = __commonJS({
29069
29074
  if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {
29070
29075
  return Promise.resolve(makeAppropriateNetworkError(fetchParams));
29071
29076
  }
29072
- const { request: request3 } = fetchParams;
29073
- const { protocol: scheme } = requestCurrentURL(request3);
29077
+ const { request: request4 } = fetchParams;
29078
+ const { protocol: scheme } = requestCurrentURL(request4);
29074
29079
  switch (scheme) {
29075
29080
  case "about:": {
29076
29081
  return Promise.resolve(makeNetworkError("about scheme is not supported"));
@@ -29079,19 +29084,19 @@ var require_fetch = __commonJS({
29079
29084
  if (!resolveObjectURL) {
29080
29085
  resolveObjectURL = __require("buffer").resolveObjectURL;
29081
29086
  }
29082
- const blobURLEntry = requestCurrentURL(request3);
29087
+ const blobURLEntry = requestCurrentURL(request4);
29083
29088
  if (blobURLEntry.search.length !== 0) {
29084
29089
  return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));
29085
29090
  }
29086
29091
  const blob = resolveObjectURL(blobURLEntry.toString());
29087
- if (request3.method !== "GET" || !webidl.is.Blob(blob)) {
29092
+ if (request4.method !== "GET" || !webidl.is.Blob(blob)) {
29088
29093
  return Promise.resolve(makeNetworkError("invalid method"));
29089
29094
  }
29090
29095
  const response = makeResponse();
29091
29096
  const fullLength = blob.size;
29092
29097
  const serializedFullLength = isomorphicEncode(`${fullLength}`);
29093
29098
  const type = blob.type;
29094
- if (!request3.headersList.contains("range", true)) {
29099
+ if (!request4.headersList.contains("range", true)) {
29095
29100
  const bodyWithType = extractBody(blob);
29096
29101
  response.statusText = "OK";
29097
29102
  response.body = bodyWithType[0];
@@ -29099,7 +29104,7 @@ var require_fetch = __commonJS({
29099
29104
  response.headersList.set("content-type", type, true);
29100
29105
  } else {
29101
29106
  response.rangeRequested = true;
29102
- const rangeHeader = request3.headersList.get("range", true);
29107
+ const rangeHeader = request4.headersList.get("range", true);
29103
29108
  const rangeValue = simpleRangeHeaderValue(rangeHeader, true);
29104
29109
  if (rangeValue === "failure") {
29105
29110
  return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
@@ -29130,7 +29135,7 @@ var require_fetch = __commonJS({
29130
29135
  return Promise.resolve(response);
29131
29136
  }
29132
29137
  case "data:": {
29133
- const currentURL = requestCurrentURL(request3);
29138
+ const currentURL = requestCurrentURL(request4);
29134
29139
  const dataURLStruct = dataURLProcessor(currentURL);
29135
29140
  if (dataURLStruct === "failure") {
29136
29141
  return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
@@ -29219,41 +29224,41 @@ var require_fetch = __commonJS({
29219
29224
  }
29220
29225
  }
29221
29226
  async function httpFetch(fetchParams) {
29222
- const request3 = fetchParams.request;
29227
+ const request4 = fetchParams.request;
29223
29228
  let response = null;
29224
29229
  let actualResponse = null;
29225
29230
  const timingInfo = fetchParams.timingInfo;
29226
- if (request3.serviceWorkers === "all") {
29231
+ if (request4.serviceWorkers === "all") {
29227
29232
  }
29228
29233
  if (response === null) {
29229
- if (request3.redirect === "follow") {
29230
- request3.serviceWorkers = "none";
29234
+ if (request4.redirect === "follow") {
29235
+ request4.serviceWorkers = "none";
29231
29236
  }
29232
29237
  actualResponse = response = await httpNetworkOrCacheFetch(fetchParams);
29233
- if (request3.responseTainting === "cors" && corsCheck(request3, response) === "failure") {
29238
+ if (request4.responseTainting === "cors" && corsCheck(request4, response) === "failure") {
29234
29239
  return makeNetworkError("cors failure");
29235
29240
  }
29236
- if (TAOCheck(request3, response) === "failure") {
29237
- request3.timingAllowFailed = true;
29241
+ if (TAOCheck(request4, response) === "failure") {
29242
+ request4.timingAllowFailed = true;
29238
29243
  }
29239
29244
  }
29240
- if ((request3.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
29241
- request3.origin,
29242
- request3.client,
29243
- request3.destination,
29245
+ if ((request4.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
29246
+ request4.origin,
29247
+ request4.client,
29248
+ request4.destination,
29244
29249
  actualResponse
29245
29250
  ) === "blocked") {
29246
29251
  return makeNetworkError("blocked");
29247
29252
  }
29248
29253
  if (redirectStatusSet.has(actualResponse.status)) {
29249
- if (request3.redirect !== "manual") {
29254
+ if (request4.redirect !== "manual") {
29250
29255
  fetchParams.controller.connection.destroy(void 0, false);
29251
29256
  }
29252
- if (request3.redirect === "error") {
29257
+ if (request4.redirect === "error") {
29253
29258
  response = makeNetworkError("unexpected redirect");
29254
- } else if (request3.redirect === "manual") {
29259
+ } else if (request4.redirect === "manual") {
29255
29260
  response = actualResponse;
29256
- } else if (request3.redirect === "follow") {
29261
+ } else if (request4.redirect === "follow") {
29257
29262
  response = await httpRedirectFetch(fetchParams, response);
29258
29263
  } else {
29259
29264
  assert(false);
@@ -29263,13 +29268,13 @@ var require_fetch = __commonJS({
29263
29268
  return response;
29264
29269
  }
29265
29270
  function httpRedirectFetch(fetchParams, response) {
29266
- const request3 = fetchParams.request;
29271
+ const request4 = fetchParams.request;
29267
29272
  const actualResponse = response.internalResponse ? response.internalResponse : response;
29268
29273
  let locationURL;
29269
29274
  try {
29270
29275
  locationURL = responseLocationURL(
29271
29276
  actualResponse,
29272
- requestCurrentURL(request3).hash
29277
+ requestCurrentURL(request4).hash
29273
29278
  );
29274
29279
  if (locationURL == null) {
29275
29280
  return response;
@@ -29280,63 +29285,63 @@ var require_fetch = __commonJS({
29280
29285
  if (!urlIsHttpHttpsScheme(locationURL)) {
29281
29286
  return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"));
29282
29287
  }
29283
- if (request3.redirectCount === 20) {
29288
+ if (request4.redirectCount === 20) {
29284
29289
  return Promise.resolve(makeNetworkError("redirect count exceeded"));
29285
29290
  }
29286
- request3.redirectCount += 1;
29287
- if (request3.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request3, locationURL)) {
29291
+ request4.redirectCount += 1;
29292
+ if (request4.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request4, locationURL)) {
29288
29293
  return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"'));
29289
29294
  }
29290
- if (request3.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
29295
+ if (request4.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
29291
29296
  return Promise.resolve(makeNetworkError(
29292
29297
  'URL cannot contain credentials for request mode "cors"'
29293
29298
  ));
29294
29299
  }
29295
- if (actualResponse.status !== 303 && request3.body != null && request3.body.source == null) {
29300
+ if (actualResponse.status !== 303 && request4.body != null && request4.body.source == null) {
29296
29301
  return Promise.resolve(makeNetworkError());
29297
29302
  }
29298
- if ([301, 302].includes(actualResponse.status) && request3.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request3.method)) {
29299
- request3.method = "GET";
29300
- request3.body = null;
29303
+ if ([301, 302].includes(actualResponse.status) && request4.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request4.method)) {
29304
+ request4.method = "GET";
29305
+ request4.body = null;
29301
29306
  for (const headerName of requestBodyHeader) {
29302
- request3.headersList.delete(headerName);
29307
+ request4.headersList.delete(headerName);
29303
29308
  }
29304
29309
  }
29305
- if (!sameOrigin(requestCurrentURL(request3), locationURL)) {
29306
- request3.headersList.delete("authorization", true);
29307
- request3.headersList.delete("proxy-authorization", true);
29308
- request3.headersList.delete("cookie", true);
29309
- request3.headersList.delete("host", true);
29310
+ if (!sameOrigin(requestCurrentURL(request4), locationURL)) {
29311
+ request4.headersList.delete("authorization", true);
29312
+ request4.headersList.delete("proxy-authorization", true);
29313
+ request4.headersList.delete("cookie", true);
29314
+ request4.headersList.delete("host", true);
29310
29315
  }
29311
- if (request3.body != null) {
29312
- assert(request3.body.source != null);
29313
- request3.body = safelyExtractBody(request3.body.source)[0];
29316
+ if (request4.body != null) {
29317
+ assert(request4.body.source != null);
29318
+ request4.body = safelyExtractBody(request4.body.source)[0];
29314
29319
  }
29315
29320
  const timingInfo = fetchParams.timingInfo;
29316
29321
  timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);
29317
29322
  if (timingInfo.redirectStartTime === 0) {
29318
29323
  timingInfo.redirectStartTime = timingInfo.startTime;
29319
29324
  }
29320
- request3.urlList.push(locationURL);
29321
- setRequestReferrerPolicyOnRedirect(request3, actualResponse);
29325
+ request4.urlList.push(locationURL);
29326
+ setRequestReferrerPolicyOnRedirect(request4, actualResponse);
29322
29327
  return mainFetch(fetchParams, true);
29323
29328
  }
29324
29329
  async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) {
29325
- const request3 = fetchParams.request;
29330
+ const request4 = fetchParams.request;
29326
29331
  let httpFetchParams = null;
29327
29332
  let httpRequest = null;
29328
29333
  let response = null;
29329
29334
  const httpCache = null;
29330
29335
  const revalidatingFlag = false;
29331
- if (request3.window === "no-window" && request3.redirect === "error") {
29336
+ if (request4.window === "no-window" && request4.redirect === "error") {
29332
29337
  httpFetchParams = fetchParams;
29333
- httpRequest = request3;
29338
+ httpRequest = request4;
29334
29339
  } else {
29335
- httpRequest = cloneRequest(request3);
29340
+ httpRequest = cloneRequest(request4);
29336
29341
  httpFetchParams = { ...fetchParams };
29337
29342
  httpFetchParams.request = httpRequest;
29338
29343
  }
29339
- const includeCredentials = request3.credentials === "include" || request3.credentials === "same-origin" && request3.responseTainting === "basic";
29344
+ const includeCredentials = request4.credentials === "include" || request4.credentials === "same-origin" && request4.responseTainting === "basic";
29340
29345
  const contentLength = httpRequest.body ? httpRequest.body.length : null;
29341
29346
  let contentLengthHeaderValue = null;
29342
29347
  if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) {
@@ -29423,14 +29428,14 @@ var require_fetch = __commonJS({
29423
29428
  response.rangeRequested = true;
29424
29429
  }
29425
29430
  response.requestIncludesCredentials = includeCredentials;
29426
- if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request3.useURLCredentials !== void 0 || isTraversableNavigable(request3.traversableForUserPrompts))) {
29427
- if (request3.body != null) {
29428
- if (request3.body.source == null) {
29431
+ if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request4.useURLCredentials !== void 0 || isTraversableNavigable(request4.traversableForUserPrompts))) {
29432
+ if (request4.body != null) {
29433
+ if (request4.body.source == null) {
29429
29434
  return response;
29430
29435
  }
29431
- request3.body = safelyExtractBody(request3.body.source)[0];
29436
+ request4.body = safelyExtractBody(request4.body.source)[0];
29432
29437
  }
29433
- if (request3.useURLCredentials === void 0 || isAuthenticationFetch) {
29438
+ if (request4.useURLCredentials === void 0 || isAuthenticationFetch) {
29434
29439
  if (isCancelled(fetchParams)) {
29435
29440
  return makeAppropriateNetworkError(fetchParams);
29436
29441
  }
@@ -29440,7 +29445,7 @@ var require_fetch = __commonJS({
29440
29445
  response = await httpNetworkOrCacheFetch(fetchParams, true);
29441
29446
  }
29442
29447
  if (response.status === 407) {
29443
- if (request3.window === "no-window") {
29448
+ if (request4.window === "no-window") {
29444
29449
  return makeNetworkError();
29445
29450
  }
29446
29451
  if (isCancelled(fetchParams)) {
@@ -29452,7 +29457,7 @@ var require_fetch = __commonJS({
29452
29457
  // response’s status is 421
29453
29458
  response.status === 421 && // isNewConnectionFetch is false
29454
29459
  !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null
29455
- (request3.body == null || request3.body.source != null)
29460
+ (request4.body == null || request4.body.source != null)
29456
29461
  ) {
29457
29462
  if (isCancelled(fetchParams)) {
29458
29463
  return makeAppropriateNetworkError(fetchParams);
@@ -29482,21 +29487,21 @@ var require_fetch = __commonJS({
29482
29487
  }
29483
29488
  }
29484
29489
  };
29485
- const request3 = fetchParams.request;
29490
+ const request4 = fetchParams.request;
29486
29491
  let response = null;
29487
29492
  const timingInfo = fetchParams.timingInfo;
29488
29493
  const httpCache = null;
29489
29494
  if (httpCache == null) {
29490
- request3.cache = "no-store";
29495
+ request4.cache = "no-store";
29491
29496
  }
29492
29497
  const newConnection = forceNewConnection ? "yes" : "no";
29493
- if (request3.mode === "websocket") {
29498
+ if (request4.mode === "websocket") {
29494
29499
  } else {
29495
29500
  }
29496
29501
  let requestBody = null;
29497
- if (request3.body == null && fetchParams.processRequestEndOfBody) {
29502
+ if (request4.body == null && fetchParams.processRequestEndOfBody) {
29498
29503
  queueMicrotask(() => fetchParams.processRequestEndOfBody());
29499
- } else if (request3.body != null) {
29504
+ } else if (request4.body != null) {
29500
29505
  const processBodyChunk = async function* (bytes) {
29501
29506
  if (isCancelled(fetchParams)) {
29502
29507
  return;
@@ -29524,7 +29529,7 @@ var require_fetch = __commonJS({
29524
29529
  };
29525
29530
  requestBody = (async function* () {
29526
29531
  try {
29527
- for await (const bytes of request3.body.stream) {
29532
+ for await (const bytes of request4.body.stream) {
29528
29533
  yield* processBodyChunk(bytes);
29529
29534
  }
29530
29535
  processEndOfBody();
@@ -29631,19 +29636,19 @@ var require_fetch = __commonJS({
29631
29636
  }
29632
29637
  return response;
29633
29638
  function dispatch({ body }) {
29634
- const url = requestCurrentURL(request3);
29639
+ const url = requestCurrentURL(request4);
29635
29640
  const agent = fetchParams.controller.dispatcher;
29636
29641
  const path = url.pathname + url.search;
29637
29642
  const hasTrailingQuestionMark = url.search.length === 0 && url.href[url.href.length - url.hash.length - 1] === "?";
29638
- return new Promise((resolve6, reject) => agent.dispatch(
29643
+ return new Promise((resolve7, reject) => agent.dispatch(
29639
29644
  {
29640
29645
  path: hasTrailingQuestionMark ? `${path}?` : path,
29641
29646
  origin: url.origin,
29642
- method: request3.method,
29643
- body: agent.isMockActive ? request3.body && (request3.body.source || request3.body.stream) : body,
29644
- headers: request3.headersList.entries,
29647
+ method: request4.method,
29648
+ body: agent.isMockActive ? request4.body && (request4.body.source || request4.body.stream) : body,
29649
+ headers: request4.headersList.entries,
29645
29650
  maxRedirections: 0,
29646
- upgrade: request3.mode === "websocket" ? "websocket" : void 0
29651
+ upgrade: request4.mode === "websocket" ? "websocket" : void 0
29647
29652
  },
29648
29653
  {
29649
29654
  body: null,
@@ -29680,9 +29685,9 @@ var require_fetch = __commonJS({
29680
29685
  }
29681
29686
  const location = headersList.get("location", true);
29682
29687
  this.body = new Readable2({ read: resume });
29683
- const willFollow = location && request3.redirect === "follow" && redirectStatusSet.has(status2);
29688
+ const willFollow = location && request4.redirect === "follow" && redirectStatusSet.has(status2);
29684
29689
  const decoders = [];
29685
- if (request3.method !== "HEAD" && request3.method !== "CONNECT" && !nullBodyStatus.includes(status2) && !willFollow) {
29690
+ if (request4.method !== "HEAD" && request4.method !== "CONNECT" && !nullBodyStatus.includes(status2) && !willFollow) {
29686
29691
  const contentEncoding = headersList.get("content-encoding", true);
29687
29692
  const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : [];
29688
29693
  const maxContentEncodings = 5;
@@ -29723,7 +29728,7 @@ var require_fetch = __commonJS({
29723
29728
  }
29724
29729
  }
29725
29730
  const onError = this.onError.bind(this);
29726
- resolve6({
29731
+ resolve7({
29727
29732
  status: status2,
29728
29733
  statusText,
29729
29734
  headersList,
@@ -29776,7 +29781,7 @@ var require_fetch = __commonJS({
29776
29781
  headersList.append(headerName, String(value), true);
29777
29782
  }
29778
29783
  }
29779
- resolve6({
29784
+ resolve7({
29780
29785
  status: status2,
29781
29786
  statusText: STATUS_CODES[status2],
29782
29787
  headersList,
@@ -29800,7 +29805,7 @@ var require_fetch = __commonJS({
29800
29805
  headersList.append(nameStr, value.toString("latin1"), true);
29801
29806
  }
29802
29807
  }
29803
- resolve6({
29808
+ resolve7({
29804
29809
  status: status2,
29805
29810
  statusText: STATUS_CODES[status2],
29806
29811
  headersList,
@@ -29878,31 +29883,31 @@ var require_cache3 = __commonJS({
29878
29883
  webidl.util.markAsUncloneable(this);
29879
29884
  this.#relevantRequestResponseList = arguments[1];
29880
29885
  }
29881
- async match(request3, options = {}) {
29886
+ async match(request4, options = {}) {
29882
29887
  webidl.brandCheck(this, _Cache);
29883
29888
  const prefix = "Cache.match";
29884
29889
  webidl.argumentLengthCheck(arguments, 1, prefix);
29885
- request3 = webidl.converters.RequestInfo(request3);
29890
+ request4 = webidl.converters.RequestInfo(request4);
29886
29891
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
29887
- const p = this.#internalMatchAll(request3, options, 1);
29892
+ const p = this.#internalMatchAll(request4, options, 1);
29888
29893
  if (p.length === 0) {
29889
29894
  return;
29890
29895
  }
29891
29896
  return p[0];
29892
29897
  }
29893
- async matchAll(request3 = void 0, options = {}) {
29898
+ async matchAll(request4 = void 0, options = {}) {
29894
29899
  webidl.brandCheck(this, _Cache);
29895
29900
  const prefix = "Cache.matchAll";
29896
- if (request3 !== void 0) request3 = webidl.converters.RequestInfo(request3);
29901
+ if (request4 !== void 0) request4 = webidl.converters.RequestInfo(request4);
29897
29902
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
29898
- return this.#internalMatchAll(request3, options);
29903
+ return this.#internalMatchAll(request4, options);
29899
29904
  }
29900
- async add(request3) {
29905
+ async add(request4) {
29901
29906
  webidl.brandCheck(this, _Cache);
29902
29907
  const prefix = "Cache.add";
29903
29908
  webidl.argumentLengthCheck(arguments, 1, prefix);
29904
- request3 = webidl.converters.RequestInfo(request3);
29905
- const requests = [request3];
29909
+ request4 = webidl.converters.RequestInfo(request4);
29910
+ const requests = [request4];
29906
29911
  const responseArrayPromise = this.addAll(requests);
29907
29912
  return await responseArrayPromise;
29908
29913
  }
@@ -29912,19 +29917,19 @@ var require_cache3 = __commonJS({
29912
29917
  webidl.argumentLengthCheck(arguments, 1, prefix);
29913
29918
  const responsePromises = [];
29914
29919
  const requestList = [];
29915
- for (let request3 of requests) {
29916
- if (request3 === void 0) {
29920
+ for (let request4 of requests) {
29921
+ if (request4 === void 0) {
29917
29922
  throw webidl.errors.conversionFailed({
29918
29923
  prefix,
29919
29924
  argument: "Argument 1",
29920
29925
  types: ["undefined is not allowed"]
29921
29926
  });
29922
29927
  }
29923
- request3 = webidl.converters.RequestInfo(request3);
29924
- if (typeof request3 === "string") {
29928
+ request4 = webidl.converters.RequestInfo(request4);
29929
+ if (typeof request4 === "string") {
29925
29930
  continue;
29926
29931
  }
29927
- const r = getRequestState(request3);
29932
+ const r = getRequestState(request4);
29928
29933
  if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") {
29929
29934
  throw webidl.errors.exception({
29930
29935
  header: prefix,
@@ -29933,8 +29938,8 @@ var require_cache3 = __commonJS({
29933
29938
  }
29934
29939
  }
29935
29940
  const fetchControllers = [];
29936
- for (const request3 of requests) {
29937
- const r = getRequestState(new Request(request3));
29941
+ for (const request4 of requests) {
29942
+ const r = getRequestState(new Request(request4));
29938
29943
  if (!urlIsHttpHttpsScheme(r.url)) {
29939
29944
  throw webidl.errors.exception({
29940
29945
  header: prefix,
@@ -30011,17 +30016,17 @@ var require_cache3 = __commonJS({
30011
30016
  });
30012
30017
  return cacheJobPromise.promise;
30013
30018
  }
30014
- async put(request3, response) {
30019
+ async put(request4, response) {
30015
30020
  webidl.brandCheck(this, _Cache);
30016
30021
  const prefix = "Cache.put";
30017
30022
  webidl.argumentLengthCheck(arguments, 2, prefix);
30018
- request3 = webidl.converters.RequestInfo(request3);
30023
+ request4 = webidl.converters.RequestInfo(request4);
30019
30024
  response = webidl.converters.Response(response, prefix, "response");
30020
30025
  let innerRequest = null;
30021
- if (webidl.is.Request(request3)) {
30022
- innerRequest = getRequestState(request3);
30026
+ if (webidl.is.Request(request4)) {
30027
+ innerRequest = getRequestState(request4);
30023
30028
  } else {
30024
- innerRequest = getRequestState(new Request(request3));
30029
+ innerRequest = getRequestState(new Request(request4));
30025
30030
  }
30026
30031
  if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") {
30027
30032
  throw webidl.errors.exception({
@@ -30092,21 +30097,21 @@ var require_cache3 = __commonJS({
30092
30097
  });
30093
30098
  return cacheJobPromise.promise;
30094
30099
  }
30095
- async delete(request3, options = {}) {
30100
+ async delete(request4, options = {}) {
30096
30101
  webidl.brandCheck(this, _Cache);
30097
30102
  const prefix = "Cache.delete";
30098
30103
  webidl.argumentLengthCheck(arguments, 1, prefix);
30099
- request3 = webidl.converters.RequestInfo(request3);
30104
+ request4 = webidl.converters.RequestInfo(request4);
30100
30105
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
30101
30106
  let r = null;
30102
- if (webidl.is.Request(request3)) {
30103
- r = getRequestState(request3);
30107
+ if (webidl.is.Request(request4)) {
30108
+ r = getRequestState(request4);
30104
30109
  if (r.method !== "GET" && !options.ignoreMethod) {
30105
30110
  return false;
30106
30111
  }
30107
30112
  } else {
30108
- assert(typeof request3 === "string");
30109
- r = getRequestState(new Request(request3));
30113
+ assert(typeof request4 === "string");
30114
+ r = getRequestState(new Request(request4));
30110
30115
  }
30111
30116
  const operations = [];
30112
30117
  const operation = {
@@ -30138,25 +30143,25 @@ var require_cache3 = __commonJS({
30138
30143
  * @param {import('../../../types/cache').CacheQueryOptions} options
30139
30144
  * @returns {Promise<readonly Request[]>}
30140
30145
  */
30141
- async keys(request3 = void 0, options = {}) {
30146
+ async keys(request4 = void 0, options = {}) {
30142
30147
  webidl.brandCheck(this, _Cache);
30143
30148
  const prefix = "Cache.keys";
30144
- if (request3 !== void 0) request3 = webidl.converters.RequestInfo(request3);
30149
+ if (request4 !== void 0) request4 = webidl.converters.RequestInfo(request4);
30145
30150
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
30146
30151
  let r = null;
30147
- if (request3 !== void 0) {
30148
- if (webidl.is.Request(request3)) {
30149
- r = getRequestState(request3);
30152
+ if (request4 !== void 0) {
30153
+ if (webidl.is.Request(request4)) {
30154
+ r = getRequestState(request4);
30150
30155
  if (r.method !== "GET" && !options.ignoreMethod) {
30151
30156
  return [];
30152
30157
  }
30153
- } else if (typeof request3 === "string") {
30154
- r = getRequestState(new Request(request3));
30158
+ } else if (typeof request4 === "string") {
30159
+ r = getRequestState(new Request(request4));
30155
30160
  }
30156
30161
  }
30157
30162
  const promise = createDeferredPromise();
30158
30163
  const requests = [];
30159
- if (request3 === void 0) {
30164
+ if (request4 === void 0) {
30160
30165
  for (const requestResponse of this.#relevantRequestResponseList) {
30161
30166
  requests.push(requestResponse[0]);
30162
30167
  }
@@ -30168,9 +30173,9 @@ var require_cache3 = __commonJS({
30168
30173
  }
30169
30174
  queueMicrotask(() => {
30170
30175
  const requestList = [];
30171
- for (const request4 of requests) {
30176
+ for (const request5 of requests) {
30172
30177
  const requestObject = fromInnerRequest(
30173
- request4,
30178
+ request5,
30174
30179
  void 0,
30175
30180
  new AbortController().signal,
30176
30181
  "immutable"
@@ -30289,9 +30294,9 @@ var require_cache3 = __commonJS({
30289
30294
  * @param {import('../../../types/cache').CacheQueryOptions | undefined} options
30290
30295
  * @returns {boolean}
30291
30296
  */
30292
- #requestMatchesCachedItem(requestQuery, request3, response = null, options) {
30297
+ #requestMatchesCachedItem(requestQuery, request4, response = null, options) {
30293
30298
  const queryURL = new URL(requestQuery.url);
30294
- const cachedURL = new URL(request3.url);
30299
+ const cachedURL = new URL(request4.url);
30295
30300
  if (options?.ignoreSearch) {
30296
30301
  cachedURL.search = "";
30297
30302
  queryURL.search = "";
@@ -30307,7 +30312,7 @@ var require_cache3 = __commonJS({
30307
30312
  if (fieldValue === "*") {
30308
30313
  return false;
30309
30314
  }
30310
- const requestValue = request3.headersList.get(fieldValue);
30315
+ const requestValue = request4.headersList.get(fieldValue);
30311
30316
  const queryValue = requestQuery.headersList.get(fieldValue);
30312
30317
  if (requestValue !== queryValue) {
30313
30318
  return false;
@@ -30315,20 +30320,20 @@ var require_cache3 = __commonJS({
30315
30320
  }
30316
30321
  return true;
30317
30322
  }
30318
- #internalMatchAll(request3, options, maxResponses = Infinity) {
30323
+ #internalMatchAll(request4, options, maxResponses = Infinity) {
30319
30324
  let r = null;
30320
- if (request3 !== void 0) {
30321
- if (webidl.is.Request(request3)) {
30322
- r = getRequestState(request3);
30325
+ if (request4 !== void 0) {
30326
+ if (webidl.is.Request(request4)) {
30327
+ r = getRequestState(request4);
30323
30328
  if (r.method !== "GET" && !options.ignoreMethod) {
30324
30329
  return [];
30325
30330
  }
30326
- } else if (typeof request3 === "string") {
30327
- r = getRequestState(new Request(request3));
30331
+ } else if (typeof request4 === "string") {
30332
+ r = getRequestState(new Request(request4));
30328
30333
  }
30329
30334
  }
30330
30335
  const responses = [];
30331
- if (request3 === void 0) {
30336
+ if (request4 === void 0) {
30332
30337
  for (const requestResponse of this.#relevantRequestResponseList) {
30333
30338
  responses.push(requestResponse[1]);
30334
30339
  }
@@ -30420,21 +30425,21 @@ var require_cachestorage = __commonJS({
30420
30425
  }
30421
30426
  webidl.util.markAsUncloneable(this);
30422
30427
  }
30423
- async match(request3, options = {}) {
30428
+ async match(request4, options = {}) {
30424
30429
  webidl.brandCheck(this, _CacheStorage);
30425
30430
  webidl.argumentLengthCheck(arguments, 1, "CacheStorage.match");
30426
- request3 = webidl.converters.RequestInfo(request3);
30431
+ request4 = webidl.converters.RequestInfo(request4);
30427
30432
  options = webidl.converters.MultiCacheQueryOptions(options);
30428
30433
  if (options.cacheName != null) {
30429
30434
  if (this.#caches.has(options.cacheName)) {
30430
30435
  const cacheList = this.#caches.get(options.cacheName);
30431
30436
  const cache3 = new Cache(kConstruct, cacheList);
30432
- return await cache3.match(request3, options);
30437
+ return await cache3.match(request4, options);
30433
30438
  }
30434
30439
  } else {
30435
30440
  for (const cacheList of this.#caches.values()) {
30436
30441
  const cache3 = new Cache(kConstruct, cacheList);
30437
- const response = await cache3.match(request3, options);
30442
+ const response = await cache3.match(request4, options);
30438
30443
  if (response !== void 0) {
30439
30444
  return response;
30440
30445
  }
@@ -31593,7 +31598,7 @@ var require_connection = __commonJS({
31593
31598
  function establishWebSocketConnection(url, protocols, client, handler, options) {
31594
31599
  const requestURL = url;
31595
31600
  requestURL.protocol = url.protocol === "ws:" ? "http:" : "https:";
31596
- const request3 = makeRequest({
31601
+ const request4 = makeRequest({
31597
31602
  urlList: [requestURL],
31598
31603
  client,
31599
31604
  serviceWorkers: "none",
@@ -31606,18 +31611,18 @@ var require_connection = __commonJS({
31606
31611
  });
31607
31612
  if (options.headers) {
31608
31613
  const headersList = getHeadersList(new Headers(options.headers));
31609
- request3.headersList = headersList;
31614
+ request4.headersList = headersList;
31610
31615
  }
31611
31616
  const keyValue = crypto2.randomBytes(16).toString("base64");
31612
- request3.headersList.append("sec-websocket-key", keyValue, true);
31613
- request3.headersList.append("sec-websocket-version", "13", true);
31617
+ request4.headersList.append("sec-websocket-key", keyValue, true);
31618
+ request4.headersList.append("sec-websocket-version", "13", true);
31614
31619
  for (const protocol of protocols) {
31615
- request3.headersList.append("sec-websocket-protocol", protocol, true);
31620
+ request4.headersList.append("sec-websocket-protocol", protocol, true);
31616
31621
  }
31617
31622
  const permessageDeflate = "permessage-deflate; client_max_window_bits";
31618
- request3.headersList.append("sec-websocket-extensions", permessageDeflate, true);
31623
+ request4.headersList.append("sec-websocket-extensions", permessageDeflate, true);
31619
31624
  const controller = fetching({
31620
- request: request3,
31625
+ request: request4,
31621
31626
  useParallelQueue: true,
31622
31627
  dispatcher: options.dispatcher,
31623
31628
  processResponse(response) {
@@ -31664,7 +31669,7 @@ var require_connection = __commonJS({
31664
31669
  }
31665
31670
  const secProtocol = response.headersList.get("Sec-WebSocket-Protocol");
31666
31671
  if (secProtocol !== null) {
31667
- const requestProtocols = getDecodeSplit("sec-websocket-protocol", request3.headersList);
31672
+ const requestProtocols = getDecodeSplit("sec-websocket-protocol", request4.headersList);
31668
31673
  if (!requestProtocols.includes(secProtocol)) {
31669
31674
  failWebsocketConnection(handler, 1002, "Protocol was not set in the opening handshake.");
31670
31675
  return;
@@ -34811,6 +34816,21 @@ var init_config2 = __esm({
34811
34816
  });
34812
34817
 
34813
34818
  // src/api.ts
34819
+ var api_exports = {};
34820
+ __export(api_exports, {
34821
+ DeviceMeUnauthorized: () => DeviceMeUnauthorized,
34822
+ fetchBackfillDaySessions: () => fetchBackfillDaySessions,
34823
+ fetchBackfillDays: () => fetchBackfillDays,
34824
+ fetchDeviceMe: () => fetchDeviceMe,
34825
+ fetchDeviceViewByClaim: () => fetchDeviceViewByClaim,
34826
+ fetchDeviceViewJobsByClaim: () => fetchDeviceViewJobsByClaim,
34827
+ fetchDeviceViewLedgerByClaim: () => fetchDeviceViewLedgerByClaim,
34828
+ postControlScan: () => postControlScan,
34829
+ reportDiscovery: () => reportDiscovery,
34830
+ rotateDeviceSecret: () => rotateDeviceSecret,
34831
+ selfRegister: () => selfRegister,
34832
+ uploadBatch: () => uploadBatch
34833
+ });
34814
34834
  async function selfRegister(input) {
34815
34835
  const res = await (0, import_undici.request)(`${state.apiUrl}/v1/devices/self-register`, {
34816
34836
  method: "POST",
@@ -34893,7 +34913,7 @@ async function fetchDeviceViewLedgerByClaim(claimCode) {
34893
34913
  }
34894
34914
  function ingestClient() {
34895
34915
  if (_ingest) return _ingest;
34896
- const logger2 = createLogger("daemon.ingest");
34916
+ const logger3 = createLogger("daemon.ingest");
34897
34917
  _ingest = new IngestClient({
34898
34918
  apiUrl: state.apiUrl,
34899
34919
  auth: {
@@ -34909,7 +34929,7 @@ function ingestClient() {
34909
34929
  }
34910
34930
  }
34911
34931
  },
34912
- logger: logger2
34932
+ logger: logger3
34913
34933
  });
34914
34934
  return _ingest;
34915
34935
  }
@@ -34944,6 +34964,34 @@ function fetchBackfillDays() {
34944
34964
  function fetchBackfillDaySessions(day) {
34945
34965
  return backfillGet(`?day=${encodeURIComponent(day)}`);
34946
34966
  }
34967
+ function controlPort() {
34968
+ return Number(process.env.MODELSTAT_LOCAL_INGEST_PORT) || 4319;
34969
+ }
34970
+ async function postControlScan(body, opts = {}) {
34971
+ const port = opts.port ?? controlPort();
34972
+ try {
34973
+ const res = await (0, import_undici.request)(`http://127.0.0.1:${port}/v1/control/scan`, {
34974
+ method: "POST",
34975
+ headers: { "content-type": "application/json" },
34976
+ body: JSON.stringify(body),
34977
+ // A `wait:true` scan can take a while (cold-ish summariser, big session);
34978
+ // give it room but don't hang forever. undici's headersTimeout/bodyTimeout
34979
+ // default to 30s — lift them for the waiting case.
34980
+ headersTimeout: body.wait ? 6e5 : 5e3,
34981
+ bodyTimeout: body.wait ? 6e5 : 5e3
34982
+ });
34983
+ if (res.statusCode >= 300) {
34984
+ const message = await res.body.text().catch(() => "");
34985
+ return { kind: "error", status: res.statusCode, message };
34986
+ }
34987
+ const data = await res.body.json().catch(() => ({}));
34988
+ return { kind: "ok", started: data.started === true, scanned: data.scanned === true };
34989
+ } catch (e) {
34990
+ const code = e.code;
34991
+ if (code === "ECONNREFUSED" || code === "ECONNRESET") return { kind: "no_daemon" };
34992
+ return { kind: "error", status: 0, message: e.message };
34993
+ }
34994
+ }
34947
34995
  var import_undici, DeviceMeUnauthorized, _ingest;
34948
34996
  var init_api = __esm({
34949
34997
  "src/api.ts"() {
@@ -35879,6 +35927,7 @@ Write a \u2264${ABSTRACT_OUTPUT_MAX_CHARS}-char summary (1-2 sentences) naming e
35879
35927
  } catch {
35880
35928
  segmentEmbedding = void 0;
35881
35929
  }
35930
+ const userIntent = await summariseUserIntent(slice, adapters2);
35882
35931
  const sourceEventIds = slice.map((e) => e.source_event_id);
35883
35932
  const id = segmentId(sessionId, startedAtMs, endedAtMs, sourceEventIds);
35884
35933
  return {
@@ -35901,9 +35950,40 @@ Write a \u2264${ABSTRACT_OUTPUT_MAX_CHARS}-char summary (1-2 sentences) naming e
35901
35950
  redaction: redacted.counts,
35902
35951
  source_event_ids: sourceEventIds,
35903
35952
  abstract_embedding: segmentEmbedding && segmentEmbedding.length === 384 ? segmentEmbedding : void 0,
35904
- behavior
35953
+ behavior,
35954
+ user_intent: userIntent
35905
35955
  };
35906
35956
  }
35957
+ async function summariseUserIntent(slice, adapters2) {
35958
+ const userExcerpts = slice.filter((e) => e.kind === "user_message").map((e) => e.content_excerpt?.replace(/\s+/g, " ").trim()).filter((x) => !!x && x.length > 0);
35959
+ if (userExcerpts.length === 0) return void 0;
35960
+ const sample = userExcerpts.length <= 6 ? userExcerpts : [...userExcerpts.slice(0, 4), ...userExcerpts.slice(-2)];
35961
+ const block = sample.map((e, i) => ` [msg ${i + 1}] "${e.slice(0, 240)}"`).join("\n");
35962
+ try {
35963
+ const raw = await adapters2.summarize({
35964
+ prompt: `The developer's own messages to an AI coding assistant (already redacted of PII and secrets):
35965
+ ${block}
35966
+
35967
+ In \u2264${USER_INTENT_MAX_CHARS} chars, summarise WHAT THE DEVELOPER ASKED FOR or DIRECTED \u2014 their goal or task in their own framing, AND any standing preferences / directives / conventions they expressed (e.g. "always be thorough", "ship fast", a naming or workflow convention). Focus on the DEVELOPER'S intent and voice, NOT what the assistant did. Reply with only the summary.`,
35968
+ maxTokens: USER_INTENT_MAX_TOKENS,
35969
+ excerpts: sample,
35970
+ facts: ""
35971
+ });
35972
+ if (!raw || !raw.trim()) return void 0;
35973
+ const regexPass = redact(raw);
35974
+ let text = regexPass.text;
35975
+ if (adapters2.redact) {
35976
+ try {
35977
+ text = (await adapters2.redact(regexPass.text)).text;
35978
+ } catch {
35979
+ }
35980
+ }
35981
+ const trimmed = text.trim().slice(0, USER_INTENT_MAX_CHARS);
35982
+ return trimmed.length > 0 ? trimmed : void 0;
35983
+ } catch {
35984
+ return void 0;
35985
+ }
35986
+ }
35907
35987
  function computeBehavior(slice, cognition) {
35908
35988
  let userTurns = 0;
35909
35989
  let correctionCount = 0;
@@ -35983,7 +36063,7 @@ function inferEnvironment(branch) {
35983
36063
  if (b === "dev" || b === "develop" || b.startsWith("dev/")) return "Dev";
35984
36064
  return null;
35985
36065
  }
35986
- var SEGMENT_TIME_GAP_MS, SEGMENT_TOPIC_THRESHOLD, SEGMENT_MAX_TURNS, SEGMENT_MAX_DURATION_MS, SEGMENT_MAX_CONTENT_CHARS, ABSTRACT_MAX_CHARS, FRUSTRATION_MARKERS;
36066
+ var SEGMENT_TIME_GAP_MS, SEGMENT_TOPIC_THRESHOLD, SEGMENT_MAX_TURNS, SEGMENT_MAX_DURATION_MS, SEGMENT_MAX_CONTENT_CHARS, ABSTRACT_MAX_CHARS, USER_INTENT_MAX_CHARS, USER_INTENT_MAX_TOKENS, FRUSTRATION_MARKERS;
35987
36067
  var init_pipeline = __esm({
35988
36068
  "../../packages/daemon-core/src/pipeline/index.ts"() {
35989
36069
  "use strict";
@@ -36005,6 +36085,8 @@ var init_pipeline = __esm({
36005
36085
  SEGMENT_MAX_DURATION_MS = 30 * 6e4;
36006
36086
  SEGMENT_MAX_CONTENT_CHARS = 12e3;
36007
36087
  ABSTRACT_MAX_CHARS = 512;
36088
+ USER_INTENT_MAX_CHARS = 240;
36089
+ USER_INTENT_MAX_TOKENS = 120;
36008
36090
  FRUSTRATION_MARKERS = [
36009
36091
  "frustrat",
36010
36092
  "annoy",
@@ -36209,7 +36291,7 @@ async function ensureLlamaModel(cfg = defaultLlamaConfig()) {
36209
36291
  const tmp = `${cfg.modelPath}.partial`;
36210
36292
  const { createWriteStream } = await import("fs");
36211
36293
  const { Readable: Readable2 } = await import("stream");
36212
- const { rename: rename2 } = await import("fs/promises");
36294
+ const { rename: rename3 } = await import("fs/promises");
36213
36295
  const out = createWriteStream(tmp);
36214
36296
  const isTty = Boolean(process.stdout.isTTY);
36215
36297
  let received = 0;
@@ -36247,15 +36329,15 @@ async function ensureLlamaModel(cfg = defaultLlamaConfig()) {
36247
36329
  lastLog = now;
36248
36330
  }
36249
36331
  });
36250
- await new Promise((resolve6, reject) => {
36332
+ await new Promise((resolve7, reject) => {
36251
36333
  nodeStream.pipe(out);
36252
- out.on("finish", () => resolve6());
36334
+ out.on("finish", () => resolve7());
36253
36335
  out.on("error", reject);
36254
36336
  nodeStream.on("error", reject);
36255
36337
  });
36256
36338
  renderProgress(true);
36257
36339
  if (isTty) process.stdout.write("\n");
36258
- await rename2(tmp, cfg.modelPath);
36340
+ await rename3(tmp, cfg.modelPath);
36259
36341
  console.log(`[modelstat] summariser model ready (${cfg.modelPath})`);
36260
36342
  return cfg.modelPath;
36261
36343
  }
@@ -37116,6 +37198,12 @@ var init_pipeline2 = __esm({
37116
37198
  });
37117
37199
 
37118
37200
  // src/scan.ts
37201
+ var scan_exports = {};
37202
+ __export(scan_exports, {
37203
+ discoverJobs: () => discoverJobs,
37204
+ scanAll: () => scanAll,
37205
+ scanSession: () => scanSession
37206
+ });
37119
37207
  import { readdir, stat as stat2 } from "fs/promises";
37120
37208
  import { homedir as homedir5 } from "os";
37121
37209
  import { join as join7 } from "path";
@@ -37179,13 +37267,66 @@ async function scanAll(cb = {}) {
37179
37267
  const deviceId = state.deviceId;
37180
37268
  if (!deviceId) throw new Error("daemon not enrolled \u2014 run `register` first");
37181
37269
  const jobs = await discoverJobs(deviceId);
37182
- const ordered = (await Promise.all(
37270
+ const ordered = await orderJobsNewestFirst(jobs);
37271
+ return runScanOverJobs(
37272
+ ordered,
37273
+ deviceId,
37274
+ { maxFiles: MAX_FILES_PER_SCAN, forceReadAll: false },
37275
+ cb
37276
+ );
37277
+ }
37278
+ async function scanSession(target = {}, cb = {}) {
37279
+ const deviceId = state.deviceId;
37280
+ if (!deviceId) throw new Error("daemon not enrolled \u2014 run `register` first");
37281
+ const all = await discoverJobs(deviceId);
37282
+ let selected;
37283
+ if (target.file) {
37284
+ const existing = all.find((j) => j.path === target.file);
37285
+ selected = existing ? [existing] : [jobForFile(deviceId, target.file)];
37286
+ } else if (target.sessionIds && target.sessionIds.length > 0) {
37287
+ const wanted = new Set(target.sessionIds);
37288
+ selected = all.filter((j) => {
37289
+ const sid = sessionIdForPath(j.path);
37290
+ return sid != null && wanted.has(sid);
37291
+ });
37292
+ } else {
37293
+ const ordered = await orderJobsNewestFirst(all);
37294
+ selected = ordered.slice(0, 1);
37295
+ }
37296
+ if (selected.length === 0) {
37297
+ return {
37298
+ filesScanned: 0,
37299
+ filesUnchanged: 0,
37300
+ batchesUploaded: 0,
37301
+ eventsUploaded: 0,
37302
+ segmentsUploaded: 0,
37303
+ morePending: false
37304
+ };
37305
+ }
37306
+ return runScanOverJobs(selected, deviceId, { maxFiles: null, forceReadAll: true }, cb);
37307
+ }
37308
+ function sessionIdForPath(path) {
37309
+ return deriveSessionIdFromFilename(path) ?? deriveSessionIdFromRolloutPath(path);
37310
+ }
37311
+ function jobForFile(deviceId, full) {
37312
+ const isCodex = full.includes("/.codex/sessions/") && /rollout-.*\.jsonl$/.test(full);
37313
+ return {
37314
+ path: full,
37315
+ parse: async (sink) => {
37316
+ const r = isCodex ? await parseCodexRollout({ deviceId, sourceFile: full, onEvents: sink }) : await parseClaudeCodeJsonl({ deviceId, sourceFile: full, onEvents: sink });
37317
+ return { toolCalls: r.toolCalls ?? [], scriptContexts: r.scriptContexts ?? [] };
37318
+ }
37319
+ };
37320
+ }
37321
+ async function orderJobsNewestFirst(jobs) {
37322
+ return (await Promise.all(
37183
37323
  jobs.map(async (j) => ({
37184
37324
  job: j,
37185
37325
  mtimeMs: (await stat2(j.path).catch(() => null))?.mtimeMs ?? 0
37186
37326
  }))
37187
37327
  )).sort((a, b) => b.mtimeMs - a.mtimeMs).map((x) => x.job);
37188
- const MAX_FILES_PER_SCAN = 12;
37328
+ }
37329
+ async function runScanOverJobs(ordered, deviceId, opts, cb) {
37189
37330
  let morePending = false;
37190
37331
  let filesScanned = 0;
37191
37332
  let filesUnchanged = 0;
@@ -37273,7 +37414,7 @@ async function scanAll(cb = {}) {
37273
37414
  cb.onFile?.(job.path, i, ordered.length);
37274
37415
  const cur = state.getCursor(job.path);
37275
37416
  const cs = await quickChecksum(job.path).catch(() => null);
37276
- if (cs && cur && cur.size === cs.size && cur.tailHash === cs.tailHash) {
37417
+ if (!opts.forceReadAll && cs && cur && cur.size === cs.size && cur.tailHash === cs.tailHash) {
37277
37418
  filesUnchanged += 1;
37278
37419
  continue;
37279
37420
  }
@@ -37293,7 +37434,7 @@ async function scanAll(cb = {}) {
37293
37434
  } catch (e) {
37294
37435
  console.warn(` ! parse failed for ${job.path}:`, e.message);
37295
37436
  }
37296
- if (filesScanned >= MAX_FILES_PER_SCAN) {
37437
+ if (opts.maxFiles !== null && filesScanned >= opts.maxFiles) {
37297
37438
  morePending = true;
37298
37439
  break;
37299
37440
  }
@@ -37308,7 +37449,7 @@ async function scanAll(cb = {}) {
37308
37449
  morePending
37309
37450
  };
37310
37451
  }
37311
- var DAEMON_VERSION, BATCH_MAX_EVENTS, BATCH_MAX_TOOL_CALLS, BATCH_BUFFER_HARD_CAP, ZERO_TOKENS;
37452
+ var DAEMON_VERSION, BATCH_MAX_EVENTS, BATCH_MAX_TOOL_CALLS, BATCH_BUFFER_HARD_CAP, ZERO_TOKENS, MAX_FILES_PER_SCAN;
37312
37453
  var init_scan = __esm({
37313
37454
  "src/scan.ts"() {
37314
37455
  "use strict";
@@ -37319,7 +37460,7 @@ var init_scan = __esm({
37319
37460
  init_api();
37320
37461
  init_config2();
37321
37462
  init_pipeline2();
37322
- DAEMON_VERSION = true ? "daemon-0.12.0" : "daemon-dev";
37463
+ DAEMON_VERSION = true ? "daemon-0.14.0" : "daemon-dev";
37323
37464
  BATCH_MAX_EVENTS = INGEST_BATCH_MAX_EVENTS;
37324
37465
  BATCH_MAX_TOOL_CALLS = 2e4;
37325
37466
  BATCH_BUFFER_HARD_CAP = BATCH_MAX_EVENTS * 2;
@@ -37330,6 +37471,7 @@ var init_scan = __esm({
37330
37471
  cache_read: 0,
37331
37472
  reasoning: 0
37332
37473
  };
37474
+ MAX_FILES_PER_SCAN = 12;
37333
37475
  }
37334
37476
  });
37335
37477
 
@@ -37556,8 +37698,105 @@ var init_update = __esm({
37556
37698
  }
37557
37699
  });
37558
37700
 
37701
+ // src/insights.ts
37702
+ var insights_exports = {};
37703
+ __export(insights_exports, {
37704
+ cacheSessionInsights: () => cacheSessionInsights,
37705
+ fetchSessionInsights: () => fetchSessionInsights,
37706
+ refreshSessionInsights: () => refreshSessionInsights,
37707
+ sessionInsightsPath: () => sessionInsightsPath
37708
+ });
37709
+ import { mkdir as mkdir2, rename, writeFile } from "fs/promises";
37710
+ function sessionsDir() {
37711
+ return homePath("sessions");
37712
+ }
37713
+ function sessionInsightsPath(sessionId) {
37714
+ return homePath("sessions", `${encodeURIComponent(sessionId)}.json`);
37715
+ }
37716
+ async function fetchSessionInsights(sessionIds, opts = {}) {
37717
+ const bearer = state.bearer;
37718
+ if (!bearer) return null;
37719
+ if (sessionIds.length === 0) return null;
37720
+ try {
37721
+ const res = await (0, import_undici2.request)(`${state.apiUrl}/v1/mcp/call`, {
37722
+ method: "POST",
37723
+ headers: { "content-type": "application/json", authorization: `Bearer ${bearer}` },
37724
+ body: JSON.stringify({
37725
+ name: "session_insights",
37726
+ arguments: { session_ids: sessionIds, eager: opts.eager === true }
37727
+ })
37728
+ });
37729
+ if (res.statusCode >= 300) {
37730
+ await res.body.dump();
37731
+ return null;
37732
+ }
37733
+ const body = await res.body.json();
37734
+ if (body.isError) return null;
37735
+ const text = body.content?.find((c) => c.type === "text")?.text ?? body.content?.[0]?.text;
37736
+ if (!text) return null;
37737
+ return JSON.parse(text);
37738
+ } catch (e) {
37739
+ logger.warn(`session_insights fetch failed: ${e.message}`);
37740
+ return null;
37741
+ }
37742
+ }
37743
+ async function cacheSessionInsights(sessionId, insights) {
37744
+ const path = sessionInsightsPath(sessionId);
37745
+ const payload = { ...insights, cached_at: (/* @__PURE__ */ new Date()).toISOString() };
37746
+ try {
37747
+ await mkdir2(sessionsDir(), { recursive: true });
37748
+ const tmp = `${path}.tmp`;
37749
+ await writeFile(tmp, JSON.stringify(payload));
37750
+ await rename(tmp, path);
37751
+ } catch (e) {
37752
+ logger.warn(`session insights cache write failed for ${sessionId}: ${e.message}`);
37753
+ }
37754
+ }
37755
+ async function refreshSessionInsights(sessionIds) {
37756
+ if (sessionIds.length === 0) return;
37757
+ const cacheKey = sessionIds[0];
37758
+ let insights = await fetchSessionInsights(sessionIds, { eager: true });
37759
+ if (insights) await cacheSessionInsights(cacheKey, insights);
37760
+ for (const delay of POLL_DELAYS_MS) {
37761
+ if (!insights || insights.status !== "analyzing") break;
37762
+ await sleep2(delay);
37763
+ const next = await fetchSessionInsights(sessionIds, { eager: false });
37764
+ if (next) {
37765
+ insights = next;
37766
+ await cacheSessionInsights(cacheKey, next);
37767
+ }
37768
+ }
37769
+ }
37770
+ function sleep2(ms) {
37771
+ return new Promise((r) => setTimeout(r, ms));
37772
+ }
37773
+ var import_undici2, logger, POLL_DELAYS_MS;
37774
+ var init_insights = __esm({
37775
+ "src/insights.ts"() {
37776
+ "use strict";
37777
+ import_undici2 = __toESM(require_undici(), 1);
37778
+ init_logger();
37779
+ init_config2();
37780
+ init_paths();
37781
+ logger = createLogger("daemon.insights");
37782
+ POLL_DELAYS_MS = [1200, 2e3, 3e3, 4e3];
37783
+ }
37784
+ });
37785
+
37559
37786
  // src/receiver.ts
37560
37787
  import { createServer } from "http";
37788
+ import { homedir as homedir7 } from "os";
37789
+ import { resolve as resolve4, sep } from "path";
37790
+ function transcriptRoots() {
37791
+ const home2 = homedir7();
37792
+ return [resolve4(home2, ".claude/projects"), resolve4(home2, ".codex/sessions")];
37793
+ }
37794
+ function isAllowedTranscriptFile(file) {
37795
+ const target = resolve4(file);
37796
+ return transcriptRoots().some(
37797
+ (root) => target === root || target.startsWith(root + sep)
37798
+ );
37799
+ }
37561
37800
  function queue() {
37562
37801
  if (!store) store = new FileQueueStore(homePath("sdk-ingest-queue.json"));
37563
37802
  return store;
@@ -37632,36 +37871,51 @@ function localQueueDepth() {
37632
37871
  }
37633
37872
  function startLocalIngestReceiver(opts = {}) {
37634
37873
  const port = opts.port ?? (Number(process.env.MODELSTAT_LOCAL_INGEST_PORT) || DEFAULT_LOCAL_INGEST_PORT);
37635
- return new Promise((resolve6) => {
37636
- const server = createServer((req, res) => void handle(req, res));
37874
+ const controlRunner = opts.onControlScan ? createControlRunner(opts.onControlScan) : null;
37875
+ return new Promise((resolve7) => {
37876
+ const server = createServer((req, res) => void handle(req, res, controlRunner));
37637
37877
  let settled = false;
37638
37878
  server.on("error", (err) => {
37639
37879
  if (settled) return;
37640
37880
  settled = true;
37641
- logger.warn(
37881
+ logger2.warn(
37642
37882
  `local ingest receiver disabled \u2014 SDK local_daemon mode unavailable: ${err.code ?? err.message} on 127.0.0.1:${port}`
37643
37883
  );
37644
- resolve6(null);
37884
+ resolve7(null);
37645
37885
  });
37646
37886
  server.listen(port, "127.0.0.1", () => {
37647
37887
  settled = true;
37648
37888
  const addr = server.address();
37649
37889
  const boundPort = typeof addr === "object" && addr ? addr.port : port;
37650
- logger.info(`local ingest receiver on http://127.0.0.1:${boundPort}/v1/ingest`);
37651
- resolve6({
37890
+ logger2.info(`local ingest receiver on http://127.0.0.1:${boundPort}/v1/ingest`);
37891
+ resolve7({
37652
37892
  port: boundPort,
37653
37893
  close: () => new Promise((r) => server.close(() => r()))
37654
37894
  });
37655
37895
  });
37656
37896
  });
37657
37897
  }
37658
- async function handle(req, res) {
37898
+ function createControlRunner(handler) {
37899
+ let active = null;
37900
+ return {
37901
+ run(target) {
37902
+ const prev = active ?? Promise.resolve();
37903
+ const next = prev.catch(() => void 0).then(() => handler(target));
37904
+ active = next.catch(() => void 0);
37905
+ return next;
37906
+ }
37907
+ };
37908
+ }
37909
+ async function handle(req, res, controlRunner) {
37659
37910
  const send = (code, body) => {
37660
37911
  res.writeHead(code, { "content-type": "application/json" });
37661
37912
  res.end(JSON.stringify(body));
37662
37913
  };
37663
37914
  const path = (req.url ?? "").split("?")[0];
37664
37915
  if (req.method === "GET" && path === "/healthz") return send(200, { ok: true });
37916
+ if (req.method === "POST" && path === "/v1/control/scan") {
37917
+ return handleControlScan(req, send, controlRunner);
37918
+ }
37665
37919
  if (req.method !== "POST" || path !== "/v1/ingest" && path !== "/v1/ingest/raw") {
37666
37920
  return send(404, { error: "not found" });
37667
37921
  }
@@ -37692,11 +37946,56 @@ async function handle(req, res) {
37692
37946
  const accepted = await enqueue(parsed);
37693
37947
  return send(200, { accepted, queued: true });
37694
37948
  } catch (e) {
37695
- logger.warn(`local ingest enqueue failed: ${e.message}`);
37949
+ logger2.warn(`local ingest enqueue failed: ${e.message}`);
37696
37950
  return send(500, { error: "enqueue failed" });
37697
37951
  }
37698
37952
  }
37699
- var logger, DEFAULT_LOCAL_INGEST_PORT, MAX_BODY_BYTES, store, pipeline, draining;
37953
+ async function handleControlScan(req, send, controlRunner) {
37954
+ if (!controlRunner) return send(503, { error: "control scan unavailable" });
37955
+ const chunks = [];
37956
+ let size = 0;
37957
+ try {
37958
+ for await (const chunk of req) {
37959
+ size += chunk.length;
37960
+ if (size > 64 * 1024) {
37961
+ send(413, { error: "control body too large" });
37962
+ req.destroy();
37963
+ return;
37964
+ }
37965
+ chunks.push(chunk);
37966
+ }
37967
+ } catch {
37968
+ return send(400, { error: "read error" });
37969
+ }
37970
+ let body;
37971
+ try {
37972
+ const raw = chunks.length ? Buffer.concat(chunks).toString("utf8") : "{}";
37973
+ body = JSON.parse(raw);
37974
+ } catch {
37975
+ return send(400, { error: "invalid json" });
37976
+ }
37977
+ const sessionIds = Array.isArray(body.session_ids) ? body.session_ids.filter((s) => typeof s === "string" && s.length > 0) : void 0;
37978
+ let file;
37979
+ if (body.file !== void 0) {
37980
+ if (typeof body.file !== "string" || !isAllowedTranscriptFile(body.file)) {
37981
+ return send(400, { error: "file must be under ~/.claude/projects or ~/.codex/sessions" });
37982
+ }
37983
+ file = body.file;
37984
+ }
37985
+ const target = { sessionIds, file };
37986
+ const run = controlRunner.run(target);
37987
+ if (body.wait === true) {
37988
+ try {
37989
+ await run;
37990
+ return send(200, { ok: true, scanned: true });
37991
+ } catch (e) {
37992
+ return send(500, { error: `scan failed: ${e.message}` });
37993
+ }
37994
+ }
37995
+ void run.catch((e) => logger2.warn(`control scan failed: ${e.message}`));
37996
+ return send(200, { ok: true, started: true });
37997
+ }
37998
+ var logger2, DEFAULT_LOCAL_INGEST_PORT, MAX_BODY_BYTES, store, pipeline, draining;
37700
37999
  var init_receiver = __esm({
37701
38000
  "src/receiver.ts"() {
37702
38001
  "use strict";
@@ -37706,7 +38005,7 @@ var init_receiver = __esm({
37706
38005
  init_api();
37707
38006
  init_paths();
37708
38007
  init_pipeline2();
37709
- logger = createLogger("daemon.local-ingest");
38008
+ logger2 = createLogger("daemon.local-ingest");
37710
38009
  DEFAULT_LOCAL_INGEST_PORT = 4319;
37711
38010
  MAX_BODY_BYTES = 16 * 1024 * 1024;
37712
38011
  store = null;
@@ -37886,7 +38185,7 @@ var PROCESSING_VERSION;
37886
38185
  var init_processing_version = __esm({
37887
38186
  "src/processing-version.ts"() {
37888
38187
  "use strict";
37889
- PROCESSING_VERSION = 10;
38188
+ PROCESSING_VERSION = 11;
37890
38189
  }
37891
38190
  });
37892
38191
 
@@ -38035,11 +38334,11 @@ var init_src4 = __esm({
38035
38334
  });
38036
38335
 
38037
38336
  // ../../packages/remote-config/src/node.ts
38038
- import { chmod, mkdir as mkdir2, readFile, rename, writeFile } from "fs/promises";
38039
- import { homedir as homedir7 } from "os";
38337
+ import { chmod, mkdir as mkdir3, readFile, rename as rename2, writeFile as writeFile2 } from "fs/promises";
38338
+ import { homedir as homedir8 } from "os";
38040
38339
  import { join as join10 } from "path";
38041
38340
  function defaultRoot() {
38042
- return join10(homedir7(), ".modelstat", "config");
38341
+ return join10(homedir8(), ".modelstat", "config");
38043
38342
  }
38044
38343
  function safeKind(kind) {
38045
38344
  if (!/^[a-z0-9_-]{1,64}$/.test(kind)) throw new Error(`unsafe config kind: ${kind}`);
@@ -38049,8 +38348,8 @@ function createNodeDiskCache(opts = {}) {
38049
38348
  const dir = opts.dir ?? defaultRoot();
38050
38349
  async function writeAtomic2(path, data) {
38051
38350
  const tmp = `${path}.${process.pid}.tmp`;
38052
- await writeFile(tmp, data, { mode: 384 });
38053
- await rename(tmp, path);
38351
+ await writeFile2(tmp, data, { mode: 384 });
38352
+ await rename2(tmp, path);
38054
38353
  try {
38055
38354
  await chmod(path, 384);
38056
38355
  } catch {
@@ -38068,7 +38367,7 @@ function createNodeDiskCache(opts = {}) {
38068
38367
  },
38069
38368
  async write(kind, payload) {
38070
38369
  const k = safeKind(kind);
38071
- await mkdir2(dir, { recursive: true, mode: 448 });
38370
+ await mkdir3(dir, { recursive: true, mode: 448 });
38072
38371
  await writeAtomic2(join10(dir, `${k}.json`), `${JSON.stringify(payload)}
38073
38372
  `);
38074
38373
  }
@@ -38992,7 +39291,7 @@ var init_handler = __esm({
38992
39291
  this._addToNodeFs(path, initialAdd, wh, depth + 1);
38993
39292
  }
38994
39293
  }).on(EV.ERROR, this._boundHandleError);
38995
- return new Promise((resolve6, reject) => {
39294
+ return new Promise((resolve7, reject) => {
38996
39295
  if (!stream)
38997
39296
  return reject();
38998
39297
  stream.once(STR_END, () => {
@@ -39001,7 +39300,7 @@ var init_handler = __esm({
39001
39300
  return;
39002
39301
  }
39003
39302
  const wasThrottled = throttler ? throttler.clear() : false;
39004
- resolve6(void 0);
39303
+ resolve7(void 0);
39005
39304
  previous.getChildren().filter((item) => {
39006
39305
  return item !== directory && !current.has(item);
39007
39306
  }).forEach((item) => {
@@ -39955,7 +40254,7 @@ async function sendHeartbeat() {
39955
40254
  if (!bearer || !deviceId) return;
39956
40255
  const body = { ...snapshotBody(), device_id: deviceId };
39957
40256
  try {
39958
- const res = await (0, import_undici2.request)(`${state.apiUrl}/v1/daemon/heartbeat`, {
40257
+ const res = await (0, import_undici3.request)(`${state.apiUrl}/v1/daemon/heartbeat`, {
39959
40258
  method: "POST",
39960
40259
  headers: { "content-type": "application/json", authorization: `Bearer ${bearer}` },
39961
40260
  body: JSON.stringify(body)
@@ -39974,10 +40273,10 @@ async function sendHeartbeat() {
39974
40273
  writeLocalStatus(body).catch(() => void 0);
39975
40274
  }
39976
40275
  async function rotateRunawayLogs() {
39977
- const { homedir: homedir9 } = await import("os");
40276
+ const { homedir: homedir10 } = await import("os");
39978
40277
  const { join: join14 } = await import("path");
39979
- const { open: open2, stat: stat7, truncate, writeFile: writeFile2 } = await import("fs/promises");
39980
- const dir = join14(homedir9(), ".modelstat", "logs");
40278
+ const { open: open2, stat: stat7, truncate, writeFile: writeFile3 } = await import("fs/promises");
40279
+ const dir = join14(homedir10(), ".modelstat", "logs");
39981
40280
  for (const name of ["out.log", "err.log"]) {
39982
40281
  const p = join14(dir, name);
39983
40282
  try {
@@ -39988,7 +40287,7 @@ async function rotateRunawayLogs() {
39988
40287
  try {
39989
40288
  const buf = Buffer.alloc(keep);
39990
40289
  await fh.read(buf, 0, keep, st.size - keep);
39991
- await writeFile2(p.replace(/\.log$/, ".old.log"), buf);
40290
+ await writeFile3(p.replace(/\.log$/, ".old.log"), buf);
39992
40291
  } finally {
39993
40292
  await fh.close();
39994
40293
  }
@@ -40002,20 +40301,20 @@ async function rotateRunawayLogs() {
40002
40301
  }
40003
40302
  async function writeLocalStatus(snapshot) {
40004
40303
  const { join: join14 } = await import("path");
40005
- const { writeFile: writeFile2, mkdir: mkdir3, rename: rename2 } = await import("fs/promises");
40304
+ const { writeFile: writeFile3, mkdir: mkdir4, rename: rename3 } = await import("fs/promises");
40006
40305
  const { modelstatHome: modelstatHome2 } = await Promise.resolve().then(() => (init_paths(), paths_exports));
40007
40306
  if (!lastStatusPath) {
40008
40307
  const dir = modelstatHome2();
40009
40308
  try {
40010
- await mkdir3(dir, { recursive: true });
40309
+ await mkdir4(dir, { recursive: true });
40011
40310
  } catch {
40012
40311
  }
40013
40312
  lastStatusPath = join14(dir, "last-status.json");
40014
40313
  }
40015
40314
  const tmp = `${lastStatusPath}.tmp`;
40016
40315
  try {
40017
- await writeFile2(tmp, JSON.stringify({ ...snapshot, written_at: (/* @__PURE__ */ new Date()).toISOString() }));
40018
- await rename2(tmp, lastStatusPath);
40316
+ await writeFile3(tmp, JSON.stringify({ ...snapshot, written_at: (/* @__PURE__ */ new Date()).toISOString() }));
40317
+ await rename3(tmp, lastStatusPath);
40019
40318
  } catch {
40020
40319
  }
40021
40320
  }
@@ -40084,6 +40383,38 @@ async function runScanCycle(reason) {
40084
40383
  function requestScan(reason) {
40085
40384
  return scanRunner.trigger(reason);
40086
40385
  }
40386
+ async function runEagerSessionScan(target) {
40387
+ setPhase("scanning", "Eager scan (current session)");
40388
+ try {
40389
+ const r = await scanSession(target, {
40390
+ onProgress(p) {
40391
+ if (p.segment === 0) setPhase("processing", "Analyzing current session");
40392
+ else setPhase("processing", `Summarising segment ${p.segment}/${p.segmentTotal}`);
40393
+ },
40394
+ onUpload({ segments }) {
40395
+ setPhase("uploading", `Uploading ${segments} segments`);
40396
+ setStat("segments_sending", segments);
40397
+ },
40398
+ onUploaded({ events, segments }) {
40399
+ bumpStat("events_uploaded", events);
40400
+ setStat("segments_sent", state.bumpSegmentsSent(segments));
40401
+ setStat("segments_sending", 0);
40402
+ status.lastEventAt = (/* @__PURE__ */ new Date()).toISOString();
40403
+ }
40404
+ });
40405
+ if (target.sessionIds && target.sessionIds.length > 0) {
40406
+ await refreshSessionInsights(target.sessionIds);
40407
+ }
40408
+ setPhase("watching", "Waiting for new events");
40409
+ setMessage(
40410
+ r.segmentsUploaded > 0 ? `Eager scan: ${r.segmentsUploaded} segments uploaded` : "Eager scan: nothing new"
40411
+ );
40412
+ } catch (e) {
40413
+ setStat("segments_sending", 0);
40414
+ setPhase("watching", `Eager scan failed: ${describeErrorWithCause(e)}`);
40415
+ throw e;
40416
+ }
40417
+ }
40087
40418
  function basename4(p) {
40088
40419
  return p.split("/").pop() ?? p;
40089
40420
  }
@@ -40150,7 +40481,13 @@ async function runDaemon(opts = {}) {
40150
40481
  console.warn(`[modelstat] summariser preflight error (continuing): ${err.message}`);
40151
40482
  setMessage(`summariser preflight error (continuing): ${err.message}`);
40152
40483
  }
40153
- const localIngest = await startLocalIngestReceiver();
40484
+ const localIngest = await startLocalIngestReceiver({
40485
+ // Serve the loopback control endpoint so `modelstat scan --session` can
40486
+ // warm this running daemon (summariser already loaded) instead of
40487
+ // cold-spawning its own — and so the eager scan refreshes the local
40488
+ // insights cache the statusline reads.
40489
+ onControlScan: runEagerSessionScan
40490
+ });
40154
40491
  const LOCAL_DRAIN_INTERVAL_MS = 5e3;
40155
40492
  let localDrainTimer = null;
40156
40493
  if (localIngest) {
@@ -40185,9 +40522,9 @@ async function runDaemon(opts = {}) {
40185
40522
  setMessage(`policy refresh unavailable: ${err.message}`);
40186
40523
  }
40187
40524
  const chokidar = (await Promise.resolve().then(() => (init_esm2(), esm_exports))).default;
40188
- const { homedir: homedir9, platform: platform7 } = await import("os");
40525
+ const { homedir: homedir10, platform: platform7 } = await import("os");
40189
40526
  const { join: join14 } = await import("path");
40190
- const home2 = homedir9();
40527
+ const home2 = homedir10();
40191
40528
  const dirs = [
40192
40529
  join14(home2, ".claude/projects"),
40193
40530
  join14(home2, ".codex/sessions"),
@@ -40249,24 +40586,25 @@ async function runDaemon(opts = {}) {
40249
40586
  await new Promise(() => {
40250
40587
  });
40251
40588
  }
40252
- var import_undici2, DAEMON_VERSION2, HEARTBEAT_INTERVAL_MS, SCAN_INTERVAL_MS, DISCOVERY_INTERVAL_MS, SUMMARISER_RECOVERY_MIN_INTERVAL_MS, status, LOCAL_FLUSH_THROTTLE_MS, localFlushTimer, localFlushPending, lastVerdict, LOG_MAX_BYTES, LOG_TAIL_KEEP_BYTES, lastStatusPath, scanRunner;
40589
+ var import_undici3, DAEMON_VERSION2, HEARTBEAT_INTERVAL_MS, SCAN_INTERVAL_MS, DISCOVERY_INTERVAL_MS, SUMMARISER_RECOVERY_MIN_INTERVAL_MS, status, LOCAL_FLUSH_THROTTLE_MS, localFlushTimer, localFlushPending, lastVerdict, LOG_MAX_BYTES, LOG_TAIL_KEEP_BYTES, lastStatusPath, scanRunner;
40253
40590
  var init_daemon = __esm({
40254
40591
  "src/daemon.ts"() {
40255
40592
  "use strict";
40256
40593
  init_logger();
40257
40594
  init_src2();
40258
- import_undici2 = __toESM(require_undici(), 1);
40595
+ import_undici3 = __toESM(require_undici(), 1);
40259
40596
  init_api();
40260
40597
  init_config2();
40261
40598
  init_lock();
40262
40599
  init_machine_key();
40600
+ init_insights();
40263
40601
  init_receiver();
40264
40602
  init_reconcile();
40265
40603
  init_runtime_state();
40266
40604
  init_scan();
40267
40605
  init_single_flight();
40268
40606
  init_update();
40269
- DAEMON_VERSION2 = true ? "daemon-0.12.0" : "daemon-dev";
40607
+ DAEMON_VERSION2 = true ? "daemon-0.14.0" : "daemon-dev";
40270
40608
  HEARTBEAT_INTERVAL_MS = 1e4;
40271
40609
  SCAN_INTERVAL_MS = 5 * 60 * 1e3;
40272
40610
  DISCOVERY_INTERVAL_MS = 6e4;
@@ -40298,10 +40636,10 @@ __export(watch_exports, {
40298
40636
  watchForever: () => watchForever
40299
40637
  });
40300
40638
  import { existsSync as existsSync12 } from "fs";
40301
- import { homedir as homedir8, platform as platform5 } from "os";
40639
+ import { homedir as homedir9, platform as platform5 } from "os";
40302
40640
  import { join as join13 } from "path";
40303
40641
  function resolveWatchDirs() {
40304
- const home2 = homedir8();
40642
+ const home2 = homedir9();
40305
40643
  const xdgConfig = process.env.XDG_CONFIG_HOME ?? join13(home2, ".config");
40306
40644
  const xdgData = process.env.XDG_DATA_HOME ?? join13(home2, ".local/share");
40307
40645
  const candidates = [
@@ -40792,16 +41130,16 @@ function createLineSplitter(onLine) {
40792
41130
  };
40793
41131
  }
40794
41132
  function runTrayBuild(cwd, buildScript, progress) {
40795
- return new Promise((resolve6) => {
41133
+ return new Promise((resolve7) => {
40796
41134
  const child = spawn("bash", [buildScript], { cwd });
40797
41135
  const splitter = createLineSplitter((line) => progress?.onLine?.(line));
40798
41136
  const pump = (chunk) => splitter.push(chunk.toString("utf8"));
40799
41137
  child.stdout?.on("data", pump);
40800
41138
  child.stderr?.on("data", pump);
40801
- child.on("error", () => resolve6(null));
41139
+ child.on("error", () => resolve7(null));
40802
41140
  child.on("close", (code) => {
40803
41141
  splitter.flush();
40804
- resolve6(code);
41142
+ resolve7(code);
40805
41143
  });
40806
41144
  });
40807
41145
  }
@@ -40873,7 +41211,7 @@ async function confirmPrompt(question, defaultYes) {
40873
41211
  if (process.stdin.isTTY !== true) return defaultYes;
40874
41212
  const rl = createInterface3({ input: process.stdin, output: process.stdout });
40875
41213
  try {
40876
- const raw = await new Promise((resolve6) => rl.question(question, resolve6));
41214
+ const raw = await new Promise((resolve7) => rl.question(question, resolve7));
40877
41215
  const ans = raw.trim().toLowerCase();
40878
41216
  if (ans === "") return defaultYes;
40879
41217
  if (ans === "y" || ans === "yes") return true;
@@ -40898,7 +41236,7 @@ function tryOpenBrowser(url) {
40898
41236
  return false;
40899
41237
  }
40900
41238
  }
40901
- var DAEMON_VERSION3 = true ? "daemon-0.12.0" : "daemon-dev";
41239
+ var DAEMON_VERSION3 = true ? "daemon-0.14.0" : "daemon-dev";
40902
41240
  function osFamily() {
40903
41241
  const p = platform6();
40904
41242
  if (p === "darwin") return "macos";
@@ -40911,6 +41249,33 @@ function osArch() {
40911
41249
  if (a === "arm64") return "arm64";
40912
41250
  return "other";
40913
41251
  }
41252
+ function flagValue(args, flag) {
41253
+ for (let i = 0; i < args.length; i++) {
41254
+ const a = args[i];
41255
+ if (a === flag) return args[i + 1];
41256
+ if (a.startsWith(`${flag}=`)) return a.slice(flag.length + 1);
41257
+ }
41258
+ return void 0;
41259
+ }
41260
+ function flagValues(args, flag) {
41261
+ const out = [];
41262
+ for (let i = 0; i < args.length; i++) {
41263
+ const a = args[i];
41264
+ if (a === flag) {
41265
+ const v = args[i + 1];
41266
+ if (v !== void 0 && !v.startsWith("--")) out.push(v);
41267
+ } else if (a.startsWith(`${flag}=`)) {
41268
+ out.push(a.slice(flag.length + 1));
41269
+ }
41270
+ }
41271
+ return out;
41272
+ }
41273
+ function numericFlag(args, flag) {
41274
+ const raw = flagValue(args, flag);
41275
+ if (raw === void 0) return void 0;
41276
+ const n = Number(raw);
41277
+ return Number.isFinite(n) ? n : void 0;
41278
+ }
40914
41279
  function intendedDeviceUuid() {
40915
41280
  const salt = process.env.MODELSTAT_DEVICE_SALT?.trim();
40916
41281
  const key = salt ? `${machineKey()}:${salt}` : machineKey();
@@ -41269,7 +41634,17 @@ async function cmdDiscover() {
41269
41634
  });
41270
41635
  console.log("\u2713 reported to backend");
41271
41636
  }
41272
- async function cmdScan() {
41637
+ async function cmdScan(rest) {
41638
+ const sessionIds = flagValues(rest, "--session");
41639
+ const file = flagValue(rest, "--file");
41640
+ if (sessionIds.length > 0 || file) {
41641
+ return cmdScanSession({
41642
+ sessionIds,
41643
+ file,
41644
+ wait: rest.includes("--wait"),
41645
+ port: numericFlag(rest, "--port")
41646
+ });
41647
+ }
41273
41648
  const { preflightSummariser: preflightSummariser2 } = await Promise.resolve().then(() => (init_pipeline2(), pipeline_exports));
41274
41649
  const { label, degraded } = await preflightSummariser2();
41275
41650
  console.log(
@@ -41293,6 +41668,47 @@ async function cmdScan() {
41293
41668
  } catch {
41294
41669
  }
41295
41670
  }
41671
+ async function cmdScanSession(opts) {
41672
+ const { postControlScan: postControlScan2 } = await Promise.resolve().then(() => (init_api(), api_exports));
41673
+ const target = {
41674
+ ...opts.sessionIds.length ? { session_ids: opts.sessionIds } : {},
41675
+ ...opts.file ? { file: opts.file } : {}
41676
+ };
41677
+ const outcome = await postControlScan2({ ...target, wait: opts.wait }, { port: opts.port });
41678
+ if (outcome.kind === "ok") {
41679
+ console.log(
41680
+ opts.wait ? "\u2713 daemon force-scanned the session" : "\u2713 asked the running daemon to force-scan the session"
41681
+ );
41682
+ return;
41683
+ }
41684
+ if (outcome.kind === "error") {
41685
+ console.error(`\u2717 daemon control scan failed (${outcome.status}): ${outcome.message}`);
41686
+ process.exit(1);
41687
+ }
41688
+ console.log("no running daemon on the control port \u2014 scanning in-process\u2026");
41689
+ const { preflightSummariser: preflightSummariser2 } = await Promise.resolve().then(() => (init_pipeline2(), pipeline_exports));
41690
+ const { label, degraded } = await preflightSummariser2();
41691
+ console.log(
41692
+ degraded ? `[modelstat] \u26A0 summariser DEGRADED \u2014 ${label}; extractive fallback, ingest continues` : `[modelstat] summariser preflight ok: ${label}`
41693
+ );
41694
+ const { scanSession: scanSession2 } = await Promise.resolve().then(() => (init_scan(), scan_exports));
41695
+ const r = await scanSession2({
41696
+ ...opts.sessionIds.length ? { sessionIds: opts.sessionIds } : {},
41697
+ ...opts.file ? { file: opts.file } : {}
41698
+ });
41699
+ console.log(
41700
+ `Done: ${r.filesScanned} files scanned, ${r.batchesUploaded} batches, ${r.segmentsUploaded} segments, ${r.eventsUploaded} events uploaded`
41701
+ );
41702
+ if (opts.sessionIds.length > 0) {
41703
+ const { refreshSessionInsights: refreshSessionInsights2 } = await Promise.resolve().then(() => (init_insights(), insights_exports));
41704
+ await refreshSessionInsights2(opts.sessionIds);
41705
+ }
41706
+ try {
41707
+ const { disposeLlama: disposeLlama2 } = await Promise.resolve().then(() => (init_node(), node_exports));
41708
+ await disposeLlama2();
41709
+ } catch {
41710
+ }
41711
+ }
41296
41712
  async function cmdRescan() {
41297
41713
  const { PROCESSING_VERSION: PROCESSING_VERSION2 } = await Promise.resolve().then(() => (init_processing_version(), processing_version_exports));
41298
41714
  state.wipeCursors();
@@ -41612,7 +42028,7 @@ async function main() {
41612
42028
  case "discover":
41613
42029
  return cmdDiscover();
41614
42030
  case "scan":
41615
- return cmdScan();
42031
+ return cmdScan(rest);
41616
42032
  case "rescan":
41617
42033
  return cmdRescan();
41618
42034
  case "watch":
@@ -41663,6 +42079,9 @@ async function main() {
41663
42079
  console.log();
41664
42080
  console.log("Dev / one-shots:");
41665
42081
  console.log(" npx modelstat@latest scan \u2014 one-shot parse + upload of local JSONL");
42082
+ console.log(
42083
+ " npx modelstat@latest scan --session <id> \u2014 eager force-scan ONE session now (--file <path>, --wait)"
42084
+ );
41666
42085
  console.log(
41667
42086
  " npx modelstat@latest rescan \u2014 wipe file cursors so the next scan re-reads & re-summarises everything"
41668
42087
  );