lody 0.91.1 → 0.92.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/index.js CHANGED
@@ -28,18 +28,18 @@ import require$$0$6, { Buffer as Buffer$1 } from "buffer";
28
28
  import require$$0$7, { EventEmitter as EventEmitter$2 } from "events";
29
29
  import * as Ri from "zlib";
30
30
  import Ri__default from "zlib";
31
- import require$$1$2 from "tty";
32
- import require$$1$3 from "string_decoder";
31
+ import require$$0$8 from "tty";
32
+ import require$$1$2 from "string_decoder";
33
33
  import http from "http";
34
34
  import require$$1__default from "https";
35
- import require$$0$8, { promisify, inspect as inspect$1, stripVTControlCharacters, isDeepStrictEqual } from "node:util";
35
+ import require$$0$9, { promisify, inspect as inspect$1, stripVTControlCharacters, isDeepStrictEqual } from "node:util";
36
36
  import * as Xt from "node:fs/promises";
37
37
  import Xt__default, { mkdir as mkdir$1, realpath, symlink, mkdtemp, chmod, writeFile, rm, rename, readFile, readdir, stat, lstat, unlink, open, opendir } from "node:fs/promises";
38
38
  import zlib__default, { gzip, gunzip as gunzip$1, gunzipSync, brotliDecompressSync } from "node:zlib";
39
- import require$$1$8, { exec, execFile as execFile$1, spawn as spawn$2 } from "child_process";
39
+ import require$$1$7, { exec, execFile as execFile$1, spawn as spawn$2 } from "child_process";
40
40
  import { i as imports, _ as __wbg_set_wasm$1, r as rawWasm, L as LoroDoc, E as EphemeralStoreWasm, U as UndoManager, a as isValidContainerId, c as callPendingEvents$3, b as LoroTree, d as LoroText, e as LoroMovableList, f as LoroList, g as LoroMap, V as VersionVector, h as __vite__initWasm, j as decodeImportBlobMeta, __tla as __tla_0 } from "./chunks/loro_wasm_bg-Br-Fa9wV.js";
41
41
  import { performance as performance$1 } from "perf_hooks";
42
- import require$$0$9 from "net";
42
+ import require$$0$a from "net";
43
43
  import require$$4$2 from "tls";
44
44
  import require$$7$2, { fileURLToPath as fileURLToPath$1, pathToFileURL as pathToFileURL$1 } from "url";
45
45
  import { D as DEEPSEEK_HARNESS_PERMISSION_MODES, a as DEEPSEEK_HARNESS_AGENT_PRESETS, A as ACP_EXTENSION_DSH_CAPABILITY_SOURCE_VERSION, c as createDeepSeekHarnessCordisConfig, b as ACP_EXTENSION_DSH_VERSION, d as ACP_EXTENSION_DSH_PROFILE_REVISION, e as ACP_EXTENSION_DSH_QUERY_PATH_ENV, f as ACP_EXTENSION_DSH_SESSION_ROOT_ENV, g as DEEPSEEK_HARNESS_NPX_PACKAGES, h as DEEPSEEK_HARNESS_VERSION, i as DEEPSEEK_HARNESS_DEFAULT_SESSION_COMPRESSION, j as DEEPSEEK_HARNESS_BASE_URL_ENV } from "./chunks/profile-DLuYzIs8.js";
@@ -47,20 +47,20 @@ import assert from "assert";
47
47
  import * as fs$2 from "fs/promises";
48
48
  import fs__default$2 from "fs/promises";
49
49
  import Database from "better-sqlite3";
50
- import require$$0$d, { channel } from "node:diagnostics_channel";
51
- import require$$0$b from "node:assert";
50
+ import require$$0$e, { channel } from "node:diagnostics_channel";
51
+ import require$$0$c from "node:assert";
52
52
  import net from "node:net";
53
53
  import http$1 from "node:http";
54
- import require$$0$c, { PassThrough, Readable, Transform } from "node:stream";
55
- import require$$0$a, { Buffer as Buffer$2 } from "node:buffer";
54
+ import require$$0$d, { PassThrough, Readable, Transform } from "node:stream";
55
+ import require$$0$b, { Buffer as Buffer$2 } from "node:buffer";
56
56
  import require$$7$3 from "node:querystring";
57
57
  import require$$5$2 from "node:tls";
58
58
  import require$$5$3, { performance as performance$2 } from "node:perf_hooks";
59
59
  import require$$8 from "node:util/types";
60
- import require$$1$4, { Worker as Worker$1 } from "node:worker_threads";
61
- import require$$1$5, { fileURLToPath, pathToFileURL } from "node:url";
62
- import require$$1$6 from "node:console";
63
- import require$$1$7 from "node:dns";
60
+ import require$$1$3, { Worker as Worker$1 } from "node:worker_threads";
61
+ import require$$1$4, { fileURLToPath, pathToFileURL } from "node:url";
62
+ import require$$1$5 from "node:console";
63
+ import require$$1$6 from "node:dns";
64
64
  import { C as CodeCollabV2FileIndexRequestSchema, a as CodeCollabV2OpenTextRequestSchema, b as CodeCollabV2RefreshTextRequestSchema, c as CodeCollabV2SaveTextRequestSchema, d as CodeCollabV2OpenCurrentDiffRequestSchema, e as CodeCollabV2OpenAllChangesDiffRequestSchema, f as CodeCollabV2OpenTurnDiffRequestSchema, g as CodeCollabV2InitDirectoryRequestSchema, h as CodeCollabV2FileIndexSnapshotSchema, i as CodeCollabV2OpenTextOkSchema, j as CodeCollabV2RefreshTextResponseSchema, k as CodeCollabV2SaveTextResponseSchema, l as CodeCollabV2OpenCurrentDiffResponseSchema, m as CodeCollabV2OpenAllChangesDiffResponseSchema, n as CodeCollabV2OpenTurnDiffResponseSchema, o as CodeCollabV2InitDirectoryOkSchema, p as CodeCollabV2LspUnsupportedSchema, q as CodeCollabV2ErrorSchema, r as CodeCollabV2RpcContentEnvelopeSchema, s as deriveCodeCollabV2ContentKeyId, t as CodeCollabV2ErrorCodeSchema, u as CodeCollabV2RpcResponseSchema, v as deriveCodeCollabV2ContentKeyBytes, w as readCodeCollabFileIndexSignalFromFlock, x as writeCodeCollabFileIndexSignalToFlock, y as writeCodeCollabFileIndexToFlock, z as buildCodeCollabFileIndexState, A as CODE_COLLAB_V2_TEXT_LIMITS, B as CODE_COLLAB_V2_ALL_CHANGES_DIFF_LIMITS, D as computeAllChanges, E as codeCollabFileIndexStatesEqual, F as scanGitDirectoryEntries, G as closeDirectoryQuietly } from "./chunks/directory-handle-Bp47LF5g.js";
65
65
  import { C as ClientSideConnection, P as PROTOCOL_VERSION, n as ndJsonStream, c as client$2, m as methods$1 } from "./chunks/acp-DBqkNziA.js";
66
66
  import { StringDecoder } from "node:string_decoder";
@@ -4325,7 +4325,7 @@ Upgrade Node, then re-run: npx lody@latest`;
4325
4325
  }
4326
4326
  const name$2 = "lody";
4327
4327
  const name$1 = "@lody/cli-cloud";
4328
- const version$9 = "0.91.1";
4328
+ const version$9 = "0.92.0";
4329
4329
  const type$2 = "module";
4330
4330
  const scripts = {
4331
4331
  "dev": "node dev.mjs",
@@ -4664,7 +4664,7 @@ Upgrade Node, then re-run: npx lody@latest`;
4664
4664
  return "none";
4665
4665
  }
4666
4666
  const MODEL_THOUGHT_LEVEL_META_KEY = "lodyThoughtLevel";
4667
- const ACP_CAPABILITY_CACHE_VERSION = 6;
4667
+ const ACP_CAPABILITY_CACHE_VERSION = 7;
4668
4668
  const getAcpCapabilityCacheKey = (configId) => configId;
4669
4669
  const isBuiltinAgentType = (agentType) => BUILTIN_AGENTS.some((agent2) => agent2.agentType === agentType);
4670
4670
  const isManagedBuiltinAgentType = (agentType) => MANAGED_BUILTIN_RUNTIMES.some((runtime) => runtime.agentType === agentType);
@@ -10898,6 +10898,14 @@ Requirements:
10898
10898
  return Array.isArray(v.commands) ? true : "Missing commands";
10899
10899
  case "system_notice":
10900
10900
  return typeof v.name === "string" ? true : "Missing name";
10901
+ case "operation_progress":
10902
+ return typeof v.operationId === "string" && (v.operationKind === "session_create" || v.operationKind === "session_create_many") && Array.isArray(v.items) && v.items.every((item) => isRecord$f(item) && isRecord$f(item.target) && typeof item.target.sessionId === "string" && typeof item.target.userTurnId === "string" && (item.label === void 0 || typeof item.label === "string") && typeof item.status === "string" && [
10903
+ "created",
10904
+ "running",
10905
+ "succeeded",
10906
+ "failed",
10907
+ "cancelled"
10908
+ ].includes(item.status)) ? true : "Missing operation progress metadata";
10901
10909
  case "operation_completion":
10902
10910
  return typeof v.deliveryId === "string" && typeof v.operationId === "string" && typeof v.operationKind === "string" && typeof v.completion === "object" && v.completion !== null ? true : "Missing operation completion metadata";
10903
10911
  case "worktree_script":
@@ -14353,6 +14361,7 @@ Requirements:
14353
14361
  ]).optional(),
14354
14362
  toolName: string$1().optional(),
14355
14363
  schedulingTimeZone: string$1().optional(),
14364
+ recordedAtMs: number$4().optional(),
14356
14365
  permissionRequest: PermissionRequestInfoSchema.optional()
14357
14366
  }),
14358
14367
  object$1({
@@ -14369,6 +14378,7 @@ Requirements:
14369
14378
  "session_chat",
14370
14379
  "session_chat_many"
14371
14380
  ]),
14381
+ progressMessageId: string$1().trim().min(1).optional(),
14372
14382
  completion: unknown(),
14373
14383
  continuation: object$1({
14374
14384
  status: literal$1("not_started"),
@@ -14377,6 +14387,28 @@ Requirements:
14377
14387
  message: string$1()
14378
14388
  }).strict()
14379
14389
  }).strict().optional()
14390
+ }),
14391
+ object$1({
14392
+ type: literal$1("operation_progress"),
14393
+ operationId: LodyOperationIdSchema,
14394
+ operationKind: _enum$1([
14395
+ "session_create",
14396
+ "session_create_many"
14397
+ ]),
14398
+ items: array$2(object$1({
14399
+ target: object$1({
14400
+ sessionId: SessionIdSchema$1,
14401
+ userTurnId: string$1().trim().min(1)
14402
+ }).strict(),
14403
+ label: string$1().optional(),
14404
+ status: _enum$1([
14405
+ "created",
14406
+ "running",
14407
+ "succeeded",
14408
+ "failed",
14409
+ "cancelled"
14410
+ ])
14411
+ }).strict())
14380
14412
  })
14381
14413
  ]);
14382
14414
  const SystemNoticeSchema = discriminatedUnion("name", [
@@ -15067,16 +15099,16 @@ Requirements:
15067
15099
  {
15068
15100
  id: "factory-droid",
15069
15101
  name: "Factory Droid",
15070
- version: "0.211.0",
15102
+ version: "0.212.0",
15071
15103
  description: "Factory Droid - AI coding agent powered by Factory AI",
15072
15104
  icon: "https://cdn.agentclientprotocol.com/registry/v1/latest/factory-droid.svg",
15073
15105
  distribution: {
15074
15106
  npx: {
15075
- package: "droid@0.211.0",
15107
+ package: "droid@0.212.0",
15076
15108
  args: [
15077
15109
  "exec",
15078
15110
  "--output-format",
15079
- "acp-daemon"
15111
+ "acp"
15080
15112
  ],
15081
15113
  env: {
15082
15114
  DROID_DISABLE_AUTO_UPDATE: "true",
@@ -16894,6 +16926,7 @@ ${outputTail}` : blockTail.output;
16894
16926
  rawInput: incoming.rawInput !== void 0 ? incoming.rawInput : prev.rawInput,
16895
16927
  rawOutput: incoming.rawOutput !== void 0 ? incoming.rawOutput : prev.rawOutput,
16896
16928
  schedulingTimeZone: incoming.schedulingTimeZone !== void 0 ? incoming.schedulingTimeZone : prev.schedulingTimeZone,
16929
+ recordedAtMs: prev.recordedAtMs ?? incoming.recordedAtMs,
16897
16930
  toolName: incoming.toolName ?? prev.toolName,
16898
16931
  activityKind: incoming.activityKind !== void 0 ? incoming.activityKind : prev.activityKind
16899
16932
  };
@@ -17390,7 +17423,7 @@ ${outputTail}` : blockTail.output;
17390
17423
  return;
17391
17424
  }
17392
17425
  const entryIndex = this.ensureActiveAssistantEntry();
17393
- this.upsertToolCall(entryIndex, message);
17426
+ this.upsertToolCall(entryIndex, this.stampSchedulingToolCall(message));
17394
17427
  this.toolCallEntryIndexById.set(message.toolCallId, entryIndex);
17395
17428
  return;
17396
17429
  }
@@ -17412,6 +17445,18 @@ ${outputTail}` : blockTail.output;
17412
17445
  }
17413
17446
  }
17414
17447
  }
17448
+ stampSchedulingToolCall(message) {
17449
+ if (message.recordedAtMs !== void 0) return message;
17450
+ if (message.toolName === void 0 || !SCHEDULING_TOOL_NAMES.has(message.toolName)) {
17451
+ return message;
17452
+ }
17453
+ const recordedAtMs = Date.parse(this.now());
17454
+ if (!Number.isFinite(recordedAtMs)) return message;
17455
+ return {
17456
+ ...message,
17457
+ recordedAtMs
17458
+ };
17459
+ }
17415
17460
  updateEntryPlan(entries) {
17416
17461
  const entryIndex = this.ensureActiveAssistantEntry();
17417
17462
  const entry = this.history[entryIndex];
@@ -20887,16 +20932,19 @@ ${tailedOutput}` : null;
20887
20932
  acpAuthenticationInteractions: "acpAuthenticationInteractions",
20888
20933
  localProjectRemoval: "localProjectRemoval",
20889
20934
  providerSetup: "providerSetup",
20935
+ localFileResources: "localFileResources",
20890
20936
  acpProtocolAuthentication: "acpProtocolAuthentication"
20891
20937
  };
20892
20938
  const ACP_AUTHENTICATION_INTERACTIONS_PROTOCOL_VERSION = 2;
20893
20939
  const LOCAL_PROJECT_REMOVAL_PROTOCOL_VERSION = 1;
20894
20940
  const PROVIDER_SETUP_PROTOCOL_VERSION = 1;
20941
+ const LOCAL_FILE_RESOURCES_PROTOCOL_VERSION = 1;
20895
20942
  const ACP_PROTOCOL_AUTHENTICATION_VERSION = 2;
20896
20943
  const CURRENT_MACHINE_PROTOCOL_CAPABILITIES = {
20897
20944
  [MACHINE_PROTOCOL_CAPABILITIES.acpAuthenticationInteractions]: ACP_AUTHENTICATION_INTERACTIONS_PROTOCOL_VERSION,
20898
20945
  [MACHINE_PROTOCOL_CAPABILITIES.localProjectRemoval]: LOCAL_PROJECT_REMOVAL_PROTOCOL_VERSION,
20899
20946
  [MACHINE_PROTOCOL_CAPABILITIES.providerSetup]: PROVIDER_SETUP_PROTOCOL_VERSION,
20947
+ [MACHINE_PROTOCOL_CAPABILITIES.localFileResources]: LOCAL_FILE_RESOURCES_PROTOCOL_VERSION,
20900
20948
  [MACHINE_PROTOCOL_CAPABILITIES.acpProtocolAuthentication]: ACP_PROTOCOL_AUTHENTICATION_VERSION
20901
20949
  };
20902
20950
  const isLoroRepoDocDeleted = (value) => {
@@ -23404,15 +23452,6 @@ ${context2.authorReply.trim()}
23404
23452
  plainTextBytes: 64 * 1024,
23405
23453
  maxCompressedBytes: 1024 * 1024
23406
23454
  };
23407
- const FILE_PREVIEW_LOCAL_IPC_RESPONSE_LIMIT_BYTES = 16 * 1024 * 1024;
23408
- const FILE_PREVIEW_LOCAL_ENVELOPE_BYTES = 64 * 1024;
23409
- const FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES = FILE_PREVIEW_LOCAL_IPC_RESPONSE_LIMIT_BYTES - FILE_PREVIEW_LOCAL_ENVELOPE_BYTES;
23410
- const FILE_PREVIEW_V3_LOCAL_LIMITS = {
23411
- maxTextBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES,
23412
- maxBinaryBytes: Math.floor(FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES * 3 / 4),
23413
- plainTextBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES,
23414
- maxCompressedBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
23415
- };
23416
23455
  const FilePreviewV3DigestSchema = string$1().regex(/^sha256:[0-9a-f]{64}$/u);
23417
23456
  const FilePreviewV3TextFormatSchema = object$1({
23418
23457
  bom: boolean().optional(),
@@ -24744,6 +24783,12 @@ ${context2.authorReply.trim()}
24744
24783
  }
24745
24784
  return rows;
24746
24785
  };
24786
+ const LocalFileResolutionSchema = object$1({
24787
+ status: literal$1("local-file"),
24788
+ path: string$1().min(1),
24789
+ absolutePath: string$1().min(1),
24790
+ external: boolean()
24791
+ }).strict();
24747
24792
  const LOCAL_MACHINE_RPC_PATH = "/machine-rpc";
24748
24793
  const BaseLocalMachineRpcRequestSchema = object$1({
24749
24794
  machineId: string$1().trim().min(1),
@@ -24751,7 +24796,28 @@ ${context2.authorReply.trim()}
24751
24796
  ownerSessionId: string$1().trim().min(1).optional(),
24752
24797
  timeoutMs: number$4().int().positive().optional()
24753
24798
  }).strict();
24799
+ const SessionActiveInvocationContextResultSchema = discriminatedUnion("active", [
24800
+ object$1({
24801
+ type: literal$1("session/active-invocation-context"),
24802
+ sessionId: SessionIdSchema$1,
24803
+ active: literal$1(false)
24804
+ }).strict(),
24805
+ object$1({
24806
+ type: literal$1("session/active-invocation-context"),
24807
+ sessionId: SessionIdSchema$1,
24808
+ active: literal$1(true),
24809
+ requesterUserId: string$1().trim().min(1),
24810
+ sourceTurnId: string$1().trim().min(1),
24811
+ inputConfig: record$1(string$1(), unknown())
24812
+ }).strict()
24813
+ ]);
24754
24814
  const LocalMachineRpcRequestSchema = discriminatedUnion("method", [
24815
+ BaseLocalMachineRpcRequestSchema.extend({
24816
+ method: literal$1("session/get-active-invocation-context"),
24817
+ params: object$1({
24818
+ sessionId: SessionIdSchema$1
24819
+ }).strict()
24820
+ }).strict(),
24755
24821
  BaseLocalMachineRpcRequestSchema.extend({
24756
24822
  method: literal$1("code-collab/get-file-index"),
24757
24823
  params: CodeCollabV2FileIndexRequestSchema
@@ -24807,7 +24873,7 @@ ${context2.authorReply.trim()}
24807
24873
  params: FilePreviewV3RequestSchema
24808
24874
  }).strict(),
24809
24875
  BaseLocalMachineRpcRequestSchema.extend({
24810
- method: literal$1("file/preview-local"),
24876
+ method: literal$1("file/resolve-local"),
24811
24877
  params: FilePreviewV3RequestSchema
24812
24878
  }).strict(),
24813
24879
  BaseLocalMachineRpcRequestSchema.extend({
@@ -24877,6 +24943,7 @@ ${context2.authorReply.trim()}
24877
24943
  }).strict()
24878
24944
  ]);
24879
24945
  const LocalMachineRpcResultSchema = union$7([
24946
+ SessionActiveInvocationContextResultSchema,
24880
24947
  CodeCollabV2FileIndexSnapshotSchema,
24881
24948
  CodeCollabV2OpenTextOkSchema,
24882
24949
  CodeCollabV2RefreshTextResponseSchema,
@@ -24888,6 +24955,7 @@ ${context2.authorReply.trim()}
24888
24955
  CodeCollabV2LspUnsupportedSchema,
24889
24956
  CodeCollabV2ErrorSchema,
24890
24957
  FilePreviewV3ResponseSchema,
24958
+ LocalFileResolutionSchema,
24891
24959
  SessionCancelResponseSchema,
24892
24960
  SessionDispatchTurnResponseSchema,
24893
24961
  SessionEditAndResendResponseSchema,
@@ -25258,10 +25326,16 @@ ${context2.authorReply.trim()}
25258
25326
  }
25259
25327
  function createJsonLineSplitter(options) {
25260
25328
  const decodeChunk = createUtf8StreamDecoder();
25261
- let buffer2 = "";
25329
+ let parts2 = [];
25330
+ let bufferedLength = 0;
25331
+ let retryChunk = "";
25262
25332
  let discardingOversizedLine = false;
25263
25333
  return (input2) => {
25264
25334
  let chunk = typeof input2 === "string" ? input2 : decodeChunk(input2);
25335
+ if (retryChunk) {
25336
+ chunk = retryChunk + chunk;
25337
+ retryChunk = "";
25338
+ }
25265
25339
  if (discardingOversizedLine) {
25266
25340
  const newlineIndex2 = chunk.indexOf("\n");
25267
25341
  if (newlineIndex2 < 0) {
@@ -25270,22 +25344,39 @@ ${context2.authorReply.trim()}
25270
25344
  discardingOversizedLine = false;
25271
25345
  chunk = chunk.slice(newlineIndex2 + 1);
25272
25346
  }
25273
- buffer2 += chunk;
25274
- let newlineIndex = buffer2.indexOf("\n");
25275
- while (newlineIndex >= 0) {
25276
- const line3 = buffer2.slice(0, newlineIndex).trim();
25277
- buffer2 = buffer2.slice(newlineIndex + 1);
25278
- if (line3) {
25279
- if (options.maxBufferBytes !== void 0 && line3.length > options.maxBufferBytes) {
25280
- options.onOverflow?.();
25281
- } else {
25282
- options.onLine(line3);
25347
+ let start2 = 0;
25348
+ let newlineIndex = chunk.indexOf("\n");
25349
+ try {
25350
+ while (newlineIndex >= 0) {
25351
+ let line3 = chunk.slice(start2, newlineIndex);
25352
+ if (parts2.length > 0) {
25353
+ parts2.push(line3);
25354
+ line3 = parts2.join("");
25355
+ parts2 = [];
25356
+ bufferedLength = 0;
25357
+ }
25358
+ line3 = line3.trim();
25359
+ start2 = newlineIndex + 1;
25360
+ if (line3) {
25361
+ if (options.maxBufferBytes !== void 0 && line3.length > options.maxBufferBytes) {
25362
+ options.onOverflow?.();
25363
+ } else {
25364
+ options.onLine(line3);
25365
+ }
25283
25366
  }
25367
+ newlineIndex = chunk.indexOf("\n", start2);
25284
25368
  }
25285
- newlineIndex = buffer2.indexOf("\n");
25369
+ } catch (error2) {
25370
+ retryChunk = chunk.slice(start2);
25371
+ throw error2;
25372
+ }
25373
+ if (start2 < chunk.length) {
25374
+ parts2.push(chunk.slice(start2));
25375
+ bufferedLength += chunk.length - start2;
25286
25376
  }
25287
- if (options.maxBufferBytes !== void 0 && buffer2.length > options.maxBufferBytes) {
25288
- buffer2 = "";
25377
+ if (options.maxBufferBytes !== void 0 && bufferedLength > options.maxBufferBytes) {
25378
+ parts2 = [];
25379
+ bufferedLength = 0;
25289
25380
  discardingOversizedLine = true;
25290
25381
  options.onOverflow?.();
25291
25382
  }
@@ -28294,25 +28385,25 @@ Expecting one of '${allowedValues.join("', '")}'`);
28294
28385
  const terminatorPosition = argv.indexOf("--");
28295
28386
  return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
28296
28387
  }
28297
- const { env: env$2 } = process$2;
28298
- let flagForceColor;
28388
+ const { env: env$3 } = process$2;
28389
+ let flagForceColor$1;
28299
28390
  if (hasFlag$3("no-color") || hasFlag$3("no-colors") || hasFlag$3("color=false") || hasFlag$3("color=never")) {
28300
- flagForceColor = 0;
28391
+ flagForceColor$1 = 0;
28301
28392
  } else if (hasFlag$3("color") || hasFlag$3("colors") || hasFlag$3("color=true") || hasFlag$3("color=always")) {
28302
- flagForceColor = 1;
28393
+ flagForceColor$1 = 1;
28303
28394
  }
28304
- function envForceColor() {
28305
- if ("FORCE_COLOR" in env$2) {
28306
- if (env$2.FORCE_COLOR === "true") {
28395
+ function envForceColor$1() {
28396
+ if ("FORCE_COLOR" in env$3) {
28397
+ if (env$3.FORCE_COLOR === "true") {
28307
28398
  return 1;
28308
28399
  }
28309
- if (env$2.FORCE_COLOR === "false") {
28400
+ if (env$3.FORCE_COLOR === "false") {
28310
28401
  return 0;
28311
28402
  }
28312
- return env$2.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env$2.FORCE_COLOR, 10), 3);
28403
+ return env$3.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env$3.FORCE_COLOR, 10), 3);
28313
28404
  }
28314
28405
  }
28315
- function translateLevel(level) {
28406
+ function translateLevel$1(level) {
28316
28407
  if (level === 0) {
28317
28408
  return false;
28318
28409
  }
@@ -28323,12 +28414,12 @@ Expecting one of '${allowedValues.join("', '")}'`);
28323
28414
  has16m: level >= 3
28324
28415
  };
28325
28416
  }
28326
- function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
28327
- const noFlagForceColor = envForceColor();
28417
+ function _supportsColor$1(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
28418
+ const noFlagForceColor = envForceColor$1();
28328
28419
  if (noFlagForceColor !== void 0) {
28329
- flagForceColor = noFlagForceColor;
28420
+ flagForceColor$1 = noFlagForceColor;
28330
28421
  }
28331
- const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
28422
+ const forceColor = sniffFlags ? flagForceColor$1 : noFlagForceColor;
28332
28423
  if (forceColor === 0) {
28333
28424
  return 0;
28334
28425
  }
@@ -28340,14 +28431,14 @@ Expecting one of '${allowedValues.join("', '")}'`);
28340
28431
  return 2;
28341
28432
  }
28342
28433
  }
28343
- if ("TF_BUILD" in env$2 && "AGENT_NAME" in env$2) {
28434
+ if ("TF_BUILD" in env$3 && "AGENT_NAME" in env$3) {
28344
28435
  return 1;
28345
28436
  }
28346
28437
  if (haveStream && !streamIsTTY && forceColor === void 0) {
28347
28438
  return 0;
28348
28439
  }
28349
28440
  const min2 = forceColor || 0;
28350
- if (env$2.TERM === "dumb") {
28441
+ if (env$3.TERM === "dumb") {
28351
28442
  return min2;
28352
28443
  }
28353
28444
  if (process$2.platform === "win32") {
@@ -28357,12 +28448,12 @@ Expecting one of '${allowedValues.join("', '")}'`);
28357
28448
  }
28358
28449
  return 1;
28359
28450
  }
28360
- if ("CI" in env$2) {
28451
+ if ("CI" in env$3) {
28361
28452
  if ([
28362
28453
  "GITHUB_ACTIONS",
28363
28454
  "GITEA_ACTIONS",
28364
28455
  "CIRCLECI"
28365
- ].some((key2) => key2 in env$2)) {
28456
+ ].some((key2) => key2 in env$3)) {
28366
28457
  return 3;
28367
28458
  }
28368
28459
  if ([
@@ -28371,29 +28462,29 @@ Expecting one of '${allowedValues.join("', '")}'`);
28371
28462
  "GITLAB_CI",
28372
28463
  "BUILDKITE",
28373
28464
  "DRONE"
28374
- ].some((sign2) => sign2 in env$2) || env$2.CI_NAME === "codeship") {
28465
+ ].some((sign2) => sign2 in env$3) || env$3.CI_NAME === "codeship") {
28375
28466
  return 1;
28376
28467
  }
28377
28468
  return min2;
28378
28469
  }
28379
- if ("TEAMCITY_VERSION" in env$2) {
28380
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0;
28470
+ if ("TEAMCITY_VERSION" in env$3) {
28471
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$3.TEAMCITY_VERSION) ? 1 : 0;
28381
28472
  }
28382
- if (env$2.COLORTERM === "truecolor") {
28473
+ if (env$3.COLORTERM === "truecolor") {
28383
28474
  return 3;
28384
28475
  }
28385
- if (env$2.TERM === "xterm-kitty") {
28476
+ if (env$3.TERM === "xterm-kitty") {
28386
28477
  return 3;
28387
28478
  }
28388
- if (env$2.TERM === "xterm-ghostty") {
28479
+ if (env$3.TERM === "xterm-ghostty") {
28389
28480
  return 3;
28390
28481
  }
28391
- if (env$2.TERM === "wezterm") {
28482
+ if (env$3.TERM === "wezterm") {
28392
28483
  return 3;
28393
28484
  }
28394
- if ("TERM_PROGRAM" in env$2) {
28395
- const version2 = Number.parseInt((env$2.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
28396
- switch (env$2.TERM_PROGRAM) {
28485
+ if ("TERM_PROGRAM" in env$3) {
28486
+ const version2 = Number.parseInt((env$3.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
28487
+ switch (env$3.TERM_PROGRAM) {
28397
28488
  case "iTerm.app": {
28398
28489
  return version2 >= 3 ? 3 : 2;
28399
28490
  }
@@ -28402,29 +28493,29 @@ Expecting one of '${allowedValues.join("', '")}'`);
28402
28493
  }
28403
28494
  }
28404
28495
  }
28405
- if (/-256(color)?$/i.test(env$2.TERM)) {
28496
+ if (/-256(color)?$/i.test(env$3.TERM)) {
28406
28497
  return 2;
28407
28498
  }
28408
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) {
28499
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$3.TERM)) {
28409
28500
  return 1;
28410
28501
  }
28411
- if ("COLORTERM" in env$2) {
28502
+ if ("COLORTERM" in env$3) {
28412
28503
  return 1;
28413
28504
  }
28414
28505
  return min2;
28415
28506
  }
28416
- function createSupportsColor(stream2, options = {}) {
28417
- const level = _supportsColor(stream2, {
28507
+ function createSupportsColor$1(stream2, options = {}) {
28508
+ const level = _supportsColor$1(stream2, {
28418
28509
  streamIsTTY: stream2 && stream2.isTTY,
28419
28510
  ...options
28420
28511
  });
28421
- return translateLevel(level);
28512
+ return translateLevel$1(level);
28422
28513
  }
28423
- const supportsColor = {
28424
- stdout: createSupportsColor({
28514
+ const supportsColor$2 = {
28515
+ stdout: createSupportsColor$1({
28425
28516
  isTTY: tty.isatty(1)
28426
28517
  }),
28427
- stderr: createSupportsColor({
28518
+ stderr: createSupportsColor$1({
28428
28519
  isTTY: tty.isatty(2)
28429
28520
  })
28430
28521
  };
@@ -28456,7 +28547,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
28456
28547
  returnValue += string2.slice(endIndex);
28457
28548
  return returnValue;
28458
28549
  }
28459
- const { stdout: stdoutColor, stderr: stderrColor } = supportsColor;
28550
+ const { stdout: stdoutColor, stderr: stderrColor } = supportsColor$2;
28460
28551
  const GENERATOR = Symbol("GENERATOR");
28461
28552
  const STYLER = Symbol("STYLER");
28462
28553
  const IS_EMPTY = Symbol("IS_EMPTY");
@@ -28872,10 +28963,10 @@ Found: ${formatFn.toString().split("\n")[0]}
28872
28963
  return styles$1.exports;
28873
28964
  }
28874
28965
  var hasFlag$2;
28875
- var hasRequiredHasFlag$2;
28876
- function requireHasFlag$2() {
28877
- if (hasRequiredHasFlag$2) return hasFlag$2;
28878
- hasRequiredHasFlag$2 = 1;
28966
+ var hasRequiredHasFlag$1;
28967
+ function requireHasFlag$1() {
28968
+ if (hasRequiredHasFlag$1) return hasFlag$2;
28969
+ hasRequiredHasFlag$1 = 1;
28879
28970
  hasFlag$2 = function(flag, argv) {
28880
28971
  argv = argv || process.argv || [];
28881
28972
  var terminatorPos = argv.indexOf("--");
@@ -28891,7 +28982,7 @@ Found: ${formatFn.toString().split("\n")[0]}
28891
28982
  if (hasRequiredSupportsColors$1) return supportsColors$1;
28892
28983
  hasRequiredSupportsColors$1 = 1;
28893
28984
  var os2 = os__default$1;
28894
- var hasFlag2 = requireHasFlag$2();
28985
+ var hasFlag2 = requireHasFlag$1();
28895
28986
  var env2 = process.env;
28896
28987
  var forceColor = void 0;
28897
28988
  if (hasFlag2("no-color") || hasFlag2("no-colors") || hasFlag2("color=false")) {
@@ -31580,7 +31671,7 @@ ${originalIndentation}`;
31580
31671
  return common$2;
31581
31672
  }
31582
31673
  const version$8 = "3.19.0";
31583
- const require$$2$3 = {
31674
+ const require$$2$4 = {
31584
31675
  version: version$8
31585
31676
  };
31586
31677
  var transports = {};
@@ -37968,7 +38059,7 @@ ${originalIndentation}`;
37968
38059
  if (hasRequiredDevelopment) return development;
37969
38060
  hasRequiredDevelopment = 1;
37970
38061
  var create = requireDiagnostics$1();
37971
- var tty2 = require$$1$2.isatty(1);
38062
+ var tty2 = require$$0$8.isatty(1);
37972
38063
  var diagnostics2 = create(function dev(namespace, options) {
37973
38064
  options = options || {};
37974
38065
  options.colors = "colors" in options ? options.colors : tty2;
@@ -38003,7 +38094,7 @@ ${originalIndentation}`;
38003
38094
  if (hasRequiredTailFile) return tailFile;
38004
38095
  hasRequiredTailFile = 1;
38005
38096
  const fs2 = fs__default;
38006
- const { StringDecoder: StringDecoder2 } = require$$1$3;
38097
+ const { StringDecoder: StringDecoder2 } = require$$1$2;
38007
38098
  const { Stream } = requireReadable$1();
38008
38099
  function noop2() {
38009
38100
  }
@@ -39988,7 +40079,7 @@ ${originalIndentation}`;
39988
40079
  (function(exports$1) {
39989
40080
  const logform2 = requireLogform();
39990
40081
  const { warn: warn2 } = requireCommon$1();
39991
- exports$1.version = require$$2$3.version;
40082
+ exports$1.version = require$$2$4.version;
39992
40083
  exports$1.transports = requireTransports();
39993
40084
  exports$1.config = requireConfig$1();
39994
40085
  exports$1.addColors = logform2.levels;
@@ -44562,7 +44653,7 @@ ${originalIndentation}`;
44562
44653
  }, Symbol.toStringTag, {
44563
44654
  value: "Module"
44564
44655
  }));
44565
- const require$$2$2 = getAugmentedNamespace(moment);
44656
+ const require$$2$3 = getAugmentedNamespace(moment);
44566
44657
  var FileStreamRotator_1;
44567
44658
  var hasRequiredFileStreamRotator;
44568
44659
  function requireFileStreamRotator() {
@@ -44570,7 +44661,7 @@ ${originalIndentation}`;
44570
44661
  hasRequiredFileStreamRotator = 1;
44571
44662
  var fs2 = fs__default;
44572
44663
  var path2 = path__default$1;
44573
- var moment2 = require$$2$2;
44664
+ var moment2 = require$$2$3;
44574
44665
  var crypto2 = crypto__default;
44575
44666
  var EventEmitter2 = require$$0$7;
44576
44667
  var FileStreamRotator = {};
@@ -45438,7 +45529,7 @@ ${value.slice(value.length - safeTailChars)}`;
45438
45529
  }
45439
45530
  function formatLogArgs(...args2) {
45440
45531
  const summarizedArgs = args2.map((arg) => typeof arg === "string" ? arg : summarizeLogValue(arg));
45441
- const formatted = require$$0$8.formatWithOptions({
45532
+ const formatted = require$$0$9.formatWithOptions({
45442
45533
  colors: false,
45443
45534
  depth: MAX_LOG_OBJECT_DEPTH,
45444
45535
  maxArrayLength: MAX_LOG_ARRAY_ITEMS,
@@ -48946,7 +49037,7 @@ ${fromBody}`;
48946
49037
  }
48947
49038
  const _envShim = /* @__PURE__ */ Object.create(null);
48948
49039
  const _getEnv = (useShim) => globalThis.process?.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (useShim ? _envShim : globalThis);
48949
- const env$1 = new Proxy(_envShim, {
49040
+ const env$2 = new Proxy(_envShim, {
48950
49041
  get(_2, prop) {
48951
49042
  return _getEnv()[prop] ?? _envShim[prop];
48952
49043
  },
@@ -49036,13 +49127,13 @@ ${fromBody}`;
49036
49127
  }
49037
49128
  if (getEnvVar("NODE_DISABLE_COLORS") !== void 0 && getEnvVar("NODE_DISABLE_COLORS") !== "" || getEnvVar("NO_COLOR") !== void 0 && getEnvVar("NO_COLOR") !== "" || getEnvVar("TERM") === "dumb") return COLORS_2;
49038
49129
  if (getEnvVar("TMUX")) return COLORS_16m;
49039
- if ("TF_BUILD" in env$1 && "AGENT_NAME" in env$1) return COLORS_16;
49040
- if ("CI" in env$1) {
49041
- for (const { 0: envName, 1: colors2 } of CI_ENVS_MAP) if (envName in env$1) return colors2;
49130
+ if ("TF_BUILD" in env$2 && "AGENT_NAME" in env$2) return COLORS_16;
49131
+ if ("CI" in env$2) {
49132
+ for (const { 0: envName, 1: colors2 } of CI_ENVS_MAP) if (envName in env$2) return colors2;
49042
49133
  if (getEnvVar("CI_NAME") === "codeship") return COLORS_256;
49043
49134
  return COLORS_2;
49044
49135
  }
49045
- if ("TEAMCITY_VERSION" in env$1) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(getEnvVar("TEAMCITY_VERSION")) !== null ? COLORS_16 : COLORS_2;
49136
+ if ("TEAMCITY_VERSION" in env$2) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(getEnvVar("TEAMCITY_VERSION")) !== null ? COLORS_16 : COLORS_2;
49046
49137
  switch (getEnvVar("TERM_PROGRAM")) {
49047
49138
  case "iTerm.app":
49048
49139
  if (!getEnvVar("TERM_PROGRAM_VERSION") || /^[0-2]\./.exec(getEnvVar("TERM_PROGRAM_VERSION")) !== null) return COLORS_256;
@@ -49219,7 +49310,7 @@ ${fromBody}`;
49219
49310
  function getBaseURL(url, path2, request2, loadEnv2, trustedProxyHeaders) {
49220
49311
  if (url) return withPath(url, path2);
49221
49312
  {
49222
- const fromEnv2 = env$1.BETTER_AUTH_URL || env$1.NEXT_PUBLIC_BETTER_AUTH_URL || env$1.PUBLIC_BETTER_AUTH_URL || env$1.NUXT_PUBLIC_BETTER_AUTH_URL || env$1.NUXT_PUBLIC_AUTH_URL || (env$1.BASE_URL !== "/" ? env$1.BASE_URL : void 0);
49313
+ const fromEnv2 = env$2.BETTER_AUTH_URL || env$2.NEXT_PUBLIC_BETTER_AUTH_URL || env$2.PUBLIC_BETTER_AUTH_URL || env$2.NUXT_PUBLIC_BETTER_AUTH_URL || env$2.NUXT_PUBLIC_AUTH_URL || (env$2.BASE_URL !== "/" ? env$2.BASE_URL : void 0);
49223
49314
  if (fromEnv2) return withPath(fromEnv2, path2);
49224
49315
  }
49225
49316
  if (typeof window !== "undefined" && window.location) return withPath(window.location.origin, path2);
@@ -66963,7 +67054,7 @@ ${peerId}`;
66963
67054
  const EventEmitter2 = require$$0$7;
66964
67055
  const https = require$$1__default;
66965
67056
  const http$12 = http;
66966
- const net2 = require$$0$9;
67057
+ const net2 = require$$0$a;
66967
67058
  const tls = require$$4$2;
66968
67059
  const { randomBytes: randomBytes2, createHash: createHash2 } = crypto__default;
66969
67060
  const { Duplex, Readable: Readable2 } = xo;
@@ -82621,134 +82712,179 @@ ${val.stack}`;
82621
82712
  var node = {
82622
82713
  exports: {}
82623
82714
  };
82624
- var hasFlag$1;
82625
- var hasRequiredHasFlag$1;
82626
- function requireHasFlag$1() {
82627
- if (hasRequiredHasFlag$1) return hasFlag$1;
82628
- hasRequiredHasFlag$1 = 1;
82629
- hasFlag$1 = (flag, argv = process.argv) => {
82630
- const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
82631
- const position = argv.indexOf(prefix + flag);
82632
- const terminatorPosition = argv.indexOf("--");
82633
- return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
82634
- };
82635
- return hasFlag$1;
82636
- }
82637
- var supportsColor_1;
82638
- var hasRequiredSupportsColor;
82639
- function requireSupportsColor() {
82640
- if (hasRequiredSupportsColor) return supportsColor_1;
82641
- hasRequiredSupportsColor = 1;
82642
- const os2 = os__default$1;
82643
- const tty2 = require$$1$2;
82644
- const hasFlag2 = requireHasFlag$1();
82645
- const { env: env2 } = process;
82646
- let forceColor;
82647
- if (hasFlag2("no-color") || hasFlag2("no-colors") || hasFlag2("color=false") || hasFlag2("color=never")) {
82648
- forceColor = 0;
82649
- } else if (hasFlag2("color") || hasFlag2("colors") || hasFlag2("color=true") || hasFlag2("color=always")) {
82650
- forceColor = 1;
82715
+ function hasFlag$1(flag, argv = globalThis.Deno ? globalThis.Deno.args : process$2.argv) {
82716
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
82717
+ const position = argv.indexOf(prefix + flag);
82718
+ const terminatorPosition = argv.indexOf("--");
82719
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
82720
+ }
82721
+ const { env: env$1 } = process$2;
82722
+ let flagForceColor;
82723
+ if (hasFlag$1("no-color") || hasFlag$1("no-colors") || hasFlag$1("color=false") || hasFlag$1("color=never")) {
82724
+ flagForceColor = 0;
82725
+ } else if (hasFlag$1("color") || hasFlag$1("colors") || hasFlag$1("color=true") || hasFlag$1("color=always")) {
82726
+ flagForceColor = 1;
82727
+ }
82728
+ function envForceColor() {
82729
+ if (!("FORCE_COLOR" in env$1)) {
82730
+ return;
82651
82731
  }
82652
- if ("FORCE_COLOR" in env2) {
82653
- if (env2.FORCE_COLOR === "true") {
82654
- forceColor = 1;
82655
- } else if (env2.FORCE_COLOR === "false") {
82656
- forceColor = 0;
82657
- } else {
82658
- forceColor = env2.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env2.FORCE_COLOR, 10), 3);
82659
- }
82732
+ if (env$1.FORCE_COLOR === "true") {
82733
+ return 1;
82660
82734
  }
82661
- function translateLevel2(level) {
82662
- if (level === 0) {
82663
- return false;
82664
- }
82665
- return {
82666
- level,
82667
- hasBasic: true,
82668
- has256: level >= 2,
82669
- has16m: level >= 3
82670
- };
82735
+ if (env$1.FORCE_COLOR === "false") {
82736
+ return 0;
82671
82737
  }
82672
- function supportsColor2(haveStream, streamIsTTY) {
82673
- if (forceColor === 0) {
82674
- return 0;
82675
- }
82676
- if (hasFlag2("color=16m") || hasFlag2("color=full") || hasFlag2("color=truecolor")) {
82738
+ if (env$1.FORCE_COLOR.length === 0) {
82739
+ return 1;
82740
+ }
82741
+ if (!new RegExp("^\\d+$", "v").test(env$1.FORCE_COLOR)) {
82742
+ return;
82743
+ }
82744
+ const level = Math.min(Number(env$1.FORCE_COLOR), 3);
82745
+ if (![
82746
+ 0,
82747
+ 1,
82748
+ 2,
82749
+ 3
82750
+ ].includes(level)) {
82751
+ return;
82752
+ }
82753
+ return level;
82754
+ }
82755
+ function translateLevel(level) {
82756
+ if (level === 0) {
82757
+ return false;
82758
+ }
82759
+ return {
82760
+ level,
82761
+ hasBasic: true,
82762
+ has256: level >= 2,
82763
+ has16m: level >= 3
82764
+ };
82765
+ }
82766
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
82767
+ const noFlagForceColor = envForceColor();
82768
+ if (noFlagForceColor !== void 0) {
82769
+ flagForceColor = noFlagForceColor;
82770
+ }
82771
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
82772
+ if (forceColor === 0) {
82773
+ return 0;
82774
+ }
82775
+ if (sniffFlags) {
82776
+ if (hasFlag$1("color=16m") || hasFlag$1("color=full") || hasFlag$1("color=truecolor")) {
82677
82777
  return 3;
82678
82778
  }
82679
- if (hasFlag2("color=256")) {
82779
+ if (hasFlag$1("color=256")) {
82680
82780
  return 2;
82681
82781
  }
82682
- if (haveStream && !streamIsTTY && forceColor === void 0) {
82683
- return 0;
82782
+ }
82783
+ if (forceColor !== void 0 && new RegExp("^\\d+$", "v").test(env$1.FORCE_COLOR)) {
82784
+ return forceColor;
82785
+ }
82786
+ if ("TF_BUILD" in env$1 && "AGENT_NAME" in env$1) {
82787
+ return 1;
82788
+ }
82789
+ if (haveStream && !streamIsTTY && forceColor === void 0) {
82790
+ return 0;
82791
+ }
82792
+ const min2 = forceColor || 0;
82793
+ if (env$1.TERM === "dumb") {
82794
+ return min2;
82795
+ }
82796
+ if (process$2.platform === "win32") {
82797
+ const osRelease = os__default.release().split(".");
82798
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
82799
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
82684
82800
  }
82685
- const min2 = forceColor || 0;
82686
- if (env2.TERM === "dumb") {
82687
- return min2;
82801
+ return 1;
82802
+ }
82803
+ if ("CI" in env$1) {
82804
+ if ([
82805
+ "GITHUB_ACTIONS",
82806
+ "GITEA_ACTIONS",
82807
+ "CIRCLECI"
82808
+ ].some((key2) => Object.hasOwn(env$1, key2))) {
82809
+ return 3;
82688
82810
  }
82689
- if (process.platform === "win32") {
82690
- const osRelease = os2.release().split(".");
82691
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
82692
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
82693
- }
82811
+ if ([
82812
+ "TRAVIS",
82813
+ "APPVEYOR",
82814
+ "GITLAB_CI",
82815
+ "BUILDKITE",
82816
+ "DRONE"
82817
+ ].some((sign2) => Object.hasOwn(env$1, sign2)) || env$1.CI_NAME === "codeship") {
82694
82818
  return 1;
82695
82819
  }
82696
- if ("CI" in env2) {
82697
- if ([
82698
- "TRAVIS",
82699
- "CIRCLECI",
82700
- "APPVEYOR",
82701
- "GITLAB_CI",
82702
- "GITHUB_ACTIONS",
82703
- "BUILDKITE"
82704
- ].some((sign2) => sign2 in env2) || env2.CI_NAME === "codeship") {
82705
- return 1;
82820
+ return min2;
82821
+ }
82822
+ if ("TEAMCITY_VERSION" in env$1) {
82823
+ return new RegExp("^(?:9\\.0*[1-9]\\d*\\.|\\d{2,}\\.)", "v").test(env$1.TEAMCITY_VERSION) ? 1 : 0;
82824
+ }
82825
+ if (env$1.COLORTERM === "truecolor") {
82826
+ return 3;
82827
+ }
82828
+ if (env$1.TERM === "xterm-kitty") {
82829
+ return 3;
82830
+ }
82831
+ if (env$1.TERM === "xterm-ghostty") {
82832
+ return 3;
82833
+ }
82834
+ if (env$1.TERM === "wezterm") {
82835
+ return 3;
82836
+ }
82837
+ if ("TERM_PROGRAM" in env$1) {
82838
+ const version2 = Number((env$1.TERM_PROGRAM_VERSION || "").split(".", 1)[0]);
82839
+ switch (env$1.TERM_PROGRAM) {
82840
+ case "iTerm.app": {
82841
+ return version2 >= 3 ? 3 : 2;
82706
82842
  }
82707
- return min2;
82708
- }
82709
- if ("TEAMCITY_VERSION" in env2) {
82710
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env2.TEAMCITY_VERSION) ? 1 : 0;
82711
- }
82712
- if (env2.COLORTERM === "truecolor") {
82713
- return 3;
82714
- }
82715
- if ("TERM_PROGRAM" in env2) {
82716
- const version2 = parseInt((env2.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
82717
- switch (env2.TERM_PROGRAM) {
82718
- case "iTerm.app":
82719
- return version2 >= 3 ? 3 : 2;
82720
- case "Apple_Terminal":
82721
- return 2;
82843
+ case "Apple_Terminal": {
82844
+ return 2;
82722
82845
  }
82723
82846
  }
82724
- if (/-256(color)?$/i.test(env2.TERM)) {
82725
- return 2;
82726
- }
82727
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env2.TERM)) {
82728
- return 1;
82729
- }
82730
- if ("COLORTERM" in env2) {
82731
- return 1;
82732
- }
82733
- return min2;
82734
82847
  }
82735
- function getSupportLevel(stream2) {
82736
- const level = supportsColor2(stream2, stream2 && stream2.isTTY);
82737
- return translateLevel2(level);
82848
+ if (new RegExp("-256(?:color)?$", "iv").test(env$1.TERM)) {
82849
+ return 2;
82738
82850
  }
82739
- supportsColor_1 = {
82740
- supportsColor: getSupportLevel,
82741
- stdout: translateLevel2(supportsColor2(true, tty2.isatty(1))),
82742
- stderr: translateLevel2(supportsColor2(true, tty2.isatty(2)))
82743
- };
82744
- return supportsColor_1;
82851
+ if (new RegExp("^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux", "iv").test(env$1.TERM)) {
82852
+ return 1;
82853
+ }
82854
+ if ("COLORTERM" in env$1) {
82855
+ return 1;
82856
+ }
82857
+ return min2;
82858
+ }
82859
+ function createSupportsColor(stream2, options = {}) {
82860
+ const level = _supportsColor(stream2, {
82861
+ streamIsTTY: stream2 && stream2.isTTY,
82862
+ ...options
82863
+ });
82864
+ return translateLevel(level);
82745
82865
  }
82866
+ const supportsColor = {
82867
+ stdout: createSupportsColor({
82868
+ isTTY: tty.isatty(1)
82869
+ }),
82870
+ stderr: createSupportsColor({
82871
+ isTTY: tty.isatty(2)
82872
+ })
82873
+ };
82874
+ const supportsColor$1 = Object.freeze(Object.defineProperty({
82875
+ __proto__: null,
82876
+ createSupportsColor,
82877
+ default: supportsColor
82878
+ }, Symbol.toStringTag, {
82879
+ value: "Module"
82880
+ }));
82881
+ const require$$2$2 = getAugmentedNamespace(supportsColor$1);
82746
82882
  var hasRequiredNode;
82747
82883
  function requireNode() {
82748
82884
  if (hasRequiredNode) return node.exports;
82749
82885
  hasRequiredNode = 1;
82750
82886
  (function(module2, exports$1) {
82751
- const tty2 = require$$1$2;
82887
+ const tty2 = require$$0$8;
82752
82888
  const util2 = require$$0$5;
82753
82889
  exports$1.init = init2;
82754
82890
  exports$1.log = log;
@@ -82767,7 +82903,7 @@ ${val.stack}`;
82767
82903
  1
82768
82904
  ];
82769
82905
  try {
82770
- const supportsColor2 = requireSupportsColor();
82906
+ const supportsColor2 = require$$2$2;
82771
82907
  if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) {
82772
82908
  exports$1.colors = [
82773
82909
  20,
@@ -83058,7 +83194,7 @@ ${val.stack}`;
83058
83194
  value: true
83059
83195
  });
83060
83196
  exports$1.Agent = void 0;
83061
- const net2 = __importStar(require$$0$9);
83197
+ const net2 = __importStar(require$$0$a);
83062
83198
  const http$12 = __importStar(http);
83063
83199
  const https_1 = require$$1__default;
83064
83200
  __exportStar(requireHelpers(), exports$1);
@@ -83314,7 +83450,7 @@ ${val.stack}`;
83314
83450
  value: true
83315
83451
  });
83316
83452
  dist$2.HttpsProxyAgent = void 0;
83317
- const net2 = __importStar(require$$0$9);
83453
+ const net2 = __importStar(require$$0$a);
83318
83454
  const tls = __importStar(require$$4$2);
83319
83455
  const assert_1 = __importDefault(assert);
83320
83456
  const debug_12 = __importDefault(requireSrc());
@@ -84792,13 +84928,13 @@ ${val.stack}`;
84792
84928
  function requireUtil$8() {
84793
84929
  if (hasRequiredUtil$8) return util$9;
84794
84930
  hasRequiredUtil$8 = 1;
84795
- const assert2 = require$$0$b;
84931
+ const assert2 = require$$0$c;
84796
84932
  const { kDestroyed, kBodyUsed, kListeners, kBody } = requireSymbols$4();
84797
84933
  const { IncomingMessage } = http$1;
84798
- const stream2 = require$$0$c;
84934
+ const stream2 = require$$0$d;
84799
84935
  const net$1 = net;
84800
- const { Blob: Blob2 } = require$$0$a;
84801
- const nodeUtil = require$$0$8;
84936
+ const { Blob: Blob2 } = require$$0$b;
84937
+ const nodeUtil = require$$0$9;
84802
84938
  const { stringify } = require$$7$3;
84803
84939
  const { EventEmitter: EE } = require$$0$4;
84804
84940
  const { InvalidArgumentError: InvalidArgumentError2 } = requireErrors$1();
@@ -85312,8 +85448,8 @@ ${val.stack}`;
85312
85448
  function requireDiagnostics() {
85313
85449
  if (hasRequiredDiagnostics) return diagnostics;
85314
85450
  hasRequiredDiagnostics = 1;
85315
- const diagnosticsChannel = require$$0$d;
85316
- const util2 = require$$0$8;
85451
+ const diagnosticsChannel = require$$0$e;
85452
+ const util2 = require$$0$9;
85317
85453
  const undiciDebugLog = util2.debuglog("undici");
85318
85454
  const fetchDebuglog = util2.debuglog("fetch");
85319
85455
  const websocketDebuglog = util2.debuglog("websocket");
@@ -85415,7 +85551,7 @@ ${val.stack}`;
85415
85551
  if (hasRequiredRequest$1) return request$1;
85416
85552
  hasRequiredRequest$1 = 1;
85417
85553
  const { InvalidArgumentError: InvalidArgumentError2, NotSupportedError } = requireErrors$1();
85418
- const assert2 = require$$0$b;
85554
+ const assert2 = require$$0$c;
85419
85555
  const { isValidHTTPToken, isValidHeaderValue, isStream: isStream2, destroy, isBuffer, isFormDataLike, isIterable: isIterable2, isBlobLike, buildURL, validateHandler, getServerName, normalizedMethodRecords } = requireUtil$8();
85420
85556
  const { channels } = requireDiagnostics();
85421
85557
  const { headerNameLowerCasedRecord } = requireConstants$4();
@@ -86066,7 +86202,7 @@ ${val.stack}`;
86066
86202
  if (hasRequiredConnect$1) return connect$2;
86067
86203
  hasRequiredConnect$1 = 1;
86068
86204
  const net$1 = net;
86069
- const assert2 = require$$0$b;
86205
+ const assert2 = require$$0$c;
86070
86206
  const util2 = requireUtil$8();
86071
86207
  const { InvalidArgumentError: InvalidArgumentError2, ConnectTimeoutError } = requireErrors$1();
86072
86208
  const timers2 = requireTimers();
@@ -86632,7 +86768,7 @@ ${val.stack}`;
86632
86768
  function requireLlhttpWasm() {
86633
86769
  if (hasRequiredLlhttpWasm) return llhttpWasm;
86634
86770
  hasRequiredLlhttpWasm = 1;
86635
- const { Buffer: Buffer2 } = require$$0$a;
86771
+ const { Buffer: Buffer2 } = require$$0$b;
86636
86772
  llhttpWasm = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhAiAAQYgEcUGABEYNACAAQShxRSECCyACC4wBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNACAALwEwIgFBAnFFDQEMAgsgAC8BMCIBQQFxRQ0BC0EBIQIgAC0AKEEBRg0AIAAvATIiAEHkAGtB5ABJDQAgAEHMAUYNACAAQbACRg0AIAFBwABxDQBBACECIAFBiARxQYAERg0AIAFBKHFBAEchAgsgAgtXACAAQRhqQgA3AwAgAEIANwMAIABBOGpCADcDACAAQTBqQgA3AwAgAEEoakIANwMAIABBIGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIABB3QE2AhwLBgAgABAyC5otAQt/IwBBEGsiCiQAQaTQACgCACIJRQRAQeTTACgCACIFRQRAQfDTAEJ/NwIAQejTAEKAgISAgIDAADcCAEHk0wAgCkEIakFwcUHYqtWqBXMiBTYCAEH40wBBADYCAEHI0wBBADYCAAtBzNMAQYDUBDYCAEGc0ABBgNQENgIAQbDQACAFNgIAQazQAEF/NgIAQdDTAEGArAM2AgADQCABQcjQAGogAUG80ABqIgI2AgAgAiABQbTQAGoiAzYCACABQcDQAGogAzYCACABQdDQAGogAUHE0ABqIgM2AgAgAyACNgIAIAFB2NAAaiABQczQAGoiAjYCACACIAM2AgAgAUHU0ABqIAI2AgAgAUEgaiIBQYACRw0AC0GM1ARBwasDNgIAQajQAEH00wAoAgA2AgBBmNAAQcCrAzYCAEGk0ABBiNQENgIAQcz/B0E4NgIAQYjUBCEJCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFNBEBBjNAAKAIAIgZBECAAQRNqQXBxIABBC0kbIgRBA3YiAHYiAUEDcQRAAkAgAUEBcSAAckEBcyICQQN0IgBBtNAAaiIBIABBvNAAaigCACIAKAIIIgNGBEBBjNAAIAZBfiACd3E2AgAMAQsgASADNgIIIAMgATYCDAsgAEEIaiEBIAAgAkEDdCICQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDBELQZTQACgCACIIIARPDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxaCIAQQN0IgJBtNAAaiIBIAJBvNAAaigCACICKAIIIgNGBEBBjNAAIAZBfiAAd3EiBjYCAAwBCyABIAM2AgggAyABNgIMCyACIARBA3I2AgQgAEEDdCIAIARrIQUgACACaiAFNgIAIAIgBGoiBCAFQQFyNgIEIAgEQCAIQXhxQbTQAGohAEGg0AAoAgAhAwJ/QQEgCEEDdnQiASAGcUUEQEGM0AAgASAGcjYCACAADAELIAAoAggLIgEgAzYCDCAAIAM2AgggAyAANgIMIAMgATYCCAsgAkEIaiEBQaDQACAENgIAQZTQACAFNgIADBELQZDQACgCACILRQ0BIAtoQQJ0QbzSAGooAgAiACgCBEF4cSAEayEFIAAhAgNAAkAgAigCECIBRQRAIAJBFGooAgAiAUUNAQsgASgCBEF4cSAEayIDIAVJIQIgAyAFIAIbIQUgASAAIAIbIQAgASECDAELCyAAKAIYIQkgACgCDCIDIABHBEBBnNAAKAIAGiADIAAoAggiATYCCCABIAM2AgwMEAsgAEEUaiICKAIAIgFFBEAgACgCECIBRQ0DIABBEGohAgsDQCACIQcgASIDQRRqIgIoAgAiAQ0AIANBEGohAiADKAIQIgENAAsgB0EANgIADA8LQX8hBCAAQb9/Sw0AIABBE2oiAUFwcSEEQZDQACgCACIIRQ0AQQAgBGshBQJAAkACQAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIARBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgZBAnRBvNIAaigCACICRQRAQQAhAUEAIQMMAQtBACEBIARBGSAGQQF2a0EAIAZBH0cbdCEAQQAhAwNAAkAgAigCBEF4cSAEayIHIAVPDQAgAiEDIAciBQ0AQQAhBSACIQEMAwsgASACQRRqKAIAIgcgByACIABBHXZBBHFqQRBqKAIAIgJGGyABIAcbIQEgAEEBdCEAIAINAAsLIAEgA3JFBEBBACEDQQIgBnQiAEEAIABrciAIcSIARQ0DIABoQQJ0QbzSAGooAgAhAQsgAUUNAQsDQCABKAIEQXhxIARrIgIgBUkhACACIAUgABshBSABIAMgABshAyABKAIQIgAEfyAABSABQRRqKAIACyIBDQALCyADRQ0AIAVBlNAAKAIAIARrTw0AIAMoAhghByADIAMoAgwiAEcEQEGc0AAoAgAaIAAgAygCCCIBNgIIIAEgADYCDAwOCyADQRRqIgIoAgAiAUUEQCADKAIQIgFFDQMgA0EQaiECCwNAIAIhBiABIgBBFGoiAigCACIBDQAgAEEQaiECIAAoAhAiAQ0ACyAGQQA2AgAMDQtBlNAAKAIAIgMgBE8EQEGg0AAoAgAhAQJAIAMgBGsiAkEQTwRAIAEgBGoiACACQQFyNgIEIAEgA2ogAjYCACABIARBA3I2AgQMAQsgASADQQNyNgIEIAEgA2oiACAAKAIEQQFyNgIEQQAhAEEAIQILQZTQACACNgIAQaDQACAANgIAIAFBCGohAQwPC0GY0AAoAgAiAyAESwRAIAQgCWoiACADIARrIgFBAXI2AgRBpNAAIAA2AgBBmNAAIAE2AgAgCSAEQQNyNgIEIAlBCGohAQwPC0EAIQEgBAJ/QeTTACgCAARAQezTACgCAAwBC0Hw0wBCfzcCAEHo0wBCgICEgICAwAA3AgBB5NMAIApBDGpBcHFB2KrVqgVzNgIAQfjTAEEANgIAQcjTAEEANgIAQYCABAsiACAEQccAaiIFaiIGQQAgAGsiB3EiAk8EQEH80wBBMDYCAAwPCwJAQcTTACgCACIBRQ0AQbzTACgCACIIIAJqIQAgACABTSAAIAhLcQ0AQQAhAUH80wBBMDYCAAwPC0HI0wAtAABBBHENBAJAAkAgCQRAQczTACEBA0AgASgCACIAIAlNBEAgACABKAIEaiAJSw0DCyABKAIIIgENAAsLQQAQMyIAQX9GDQUgAiEGQejTACgCACIBQQFrIgMgAHEEQCACIABrIAAgA2pBACABa3FqIQYLIAQgBk8NBSAGQf7///8HSw0FQcTTACgCACIDBEBBvNMAKAIAIgcgBmohASABIAdNDQYgASADSw0GCyAGEDMiASAARw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGEDMhACAAIAEoAgAgASgCBGpGDQMgACEBCwJAIAYgBEHIAGpPDQAgAUF/Rg0AQezTACgCACIAIAUgBmtqQQAgAGtxIgBB/v///wdLBEAgASEADAcLIAAQM0F/RwRAIAAgBmohBiABIQAMBwtBACAGaxAzGgwECyABIgBBf0cNBQwDC0EAIQMMDAtBACEADAoLIABBf0cNAgtByNMAQcjTACgCAEEEcjYCAAsgAkH+////B0sNASACEDMhAEEAEDMhASAAQX9GDQEgAUF/Rg0BIAAgAU8NASABIABrIgYgBEE4ak0NAQtBvNMAQbzTACgCACAGaiIBNgIAQcDTACgCACABSQRAQcDTACABNgIACwJAAkACQEGk0AAoAgAiAgRAQczTACEBA0AgACABKAIAIgMgASgCBCIFakYNAiABKAIIIgENAAsMAgtBnNAAKAIAIgFBAEcgACABT3FFBEBBnNAAIAA2AgALQQAhAUHQ0wAgBjYCAEHM0wAgADYCAEGs0ABBfzYCAEGw0ABB5NMAKAIANgIAQdjTAEEANgIAA0AgAUHI0ABqIAFBvNAAaiICNgIAIAIgAUG00ABqIgM2AgAgAUHA0ABqIAM2AgAgAUHQ0ABqIAFBxNAAaiIDNgIAIAMgAjYCACABQdjQAGogAUHM0ABqIgI2AgAgAiADNgIAIAFB1NAAaiACNgIAIAFBIGoiAUGAAkcNAAtBeCAAa0EPcSIBIABqIgIgBkE4ayIDIAFrIgFBAXI2AgRBqNAAQfTTACgCADYCAEGY0AAgATYCAEGk0AAgAjYCACAAIANqQTg2AgQMAgsgACACTQ0AIAIgA0kNACABKAIMQQhxDQBBeCACa0EPcSIAIAJqIgNBmNAAKAIAIAZqIgcgAGsiAEEBcjYCBCABIAUgBmo2AgRBqNAAQfTTACgCADYCAEGY0AAgADYCAEGk0AAgAzYCACACIAdqQTg2AgQMAQsgAEGc0AAoAgBJBEBBnNAAIAA2AgALIAAgBmohA0HM0wAhAQJAAkACQANAIAMgASgCAEcEQCABKAIIIgENAQwCCwsgAS0ADEEIcUUNAQtBzNMAIQEDQCABKAIAIgMgAk0EQCADIAEoAgRqIgUgAksNAwsgASgCCCEBDAALAAsgASAANgIAIAEgASgCBCAGajYCBCAAQXggAGtBD3FqIgkgBEEDcjYCBCADQXggA2tBD3FqIgYgBCAJaiIEayEBIAIgBkYEQEGk0AAgBDYCAEGY0ABBmNAAKAIAIAFqIgA2AgAgBCAAQQFyNgIEDAgLQaDQACgCACAGRgRAQaDQACAENgIAQZTQAEGU0AAoAgAgAWoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAgLIAYoAgQiBUEDcUEBRw0GIAVBeHEhCCAFQf8BTQRAIAVBA3YhAyAGKAIIIgAgBigCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBwsgAiAANgIIIAAgAjYCDAwGCyAGKAIYIQcgBiAGKAIMIgBHBEAgACAGKAIIIgI2AgggAiAANgIMDAULIAZBFGoiAigCACIFRQRAIAYoAhAiBUUNBCAGQRBqIQILA0AgAiEDIAUiAEEUaiICKAIAIgUNACAAQRBqIQIgACgCECIFDQALIANBADYCAAwEC0F4IABrQQ9xIgEgAGoiByAGQThrIgMgAWsiAUEBcjYCBCAAIANqQTg2AgQgAiAFQTcgBWtBD3FqQT9rIgMgAyACQRBqSRsiA0EjNgIEQajQAEH00wAoAgA2AgBBmNAAIAE2AgBBpNAAIAc2AgAgA0EQakHU0wApAgA3AgAgA0HM0wApAgA3AghB1NMAIANBCGo2AgBB0NMAIAY2AgBBzNMAIAA2AgBB2NMAQQA2AgAgA0EkaiEBA0AgAUEHNgIAIAUgAUEEaiIBSw0ACyACIANGDQAgAyADKAIEQX5xNgIEIAMgAyACayIFNgIAIAIgBUEBcjYCBCAFQf8BTQRAIAVBeHFBtNAAaiEAAn9BjNAAKAIAIgFBASAFQQN2dCIDcUUEQEGM0AAgASADcjYCACAADAELIAAoAggLIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCAwBC0EfIQEgBUH///8HTQRAIAVBJiAFQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAQsgAiABNgIcIAJCADcCECABQQJ0QbzSAGohAEGQ0AAoAgAiA0EBIAF0IgZxRQRAIAAgAjYCAEGQ0AAgAyAGcjYCACACIAA2AhggAiACNgIIIAIgAjYCDAwBCyAFQRkgAUEBdmtBACABQR9HG3QhASAAKAIAIQMCQANAIAMiACgCBEF4cSAFRg0BIAFBHXYhAyABQQF0IQEgACADQQRxakEQaiIGKAIAIgMNAAsgBiACNgIAIAIgADYCGCACIAI2AgwgAiACNgIIDAELIAAoAggiASACNgIMIAAgAjYCCCACQQA2AhggAiAANgIMIAIgATYCCAtBmNAAKAIAIgEgBE0NAEGk0AAoAgAiACAEaiICIAEgBGsiAUEBcjYCBEGY0AAgATYCAEGk0AAgAjYCACAAIARBA3I2AgQgAEEIaiEBDAgLQQAhAUH80wBBMDYCAAwHC0EAIQALIAdFDQACQCAGKAIcIgJBAnRBvNIAaiIDKAIAIAZGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAdBEEEUIAcoAhAgBkYbaiAANgIAIABFDQELIAAgBzYCGCAGKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAGQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAIaiEBIAYgCGoiBigCBCEFCyAGIAVBfnE2AgQgASAEaiABNgIAIAQgAUEBcjYCBCABQf8BTQRAIAFBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASABQQN2dCIBcUUEQEGM0AAgASACcjYCACAADAELIAAoAggLIgEgBDYCDCAAIAQ2AgggBCAANgIMIAQgATYCCAwBC0EfIQUgAUH///8HTQRAIAFBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQsgBCAFNgIcIARCADcCECAFQQJ0QbzSAGohAEGQ0AAoAgAiAkEBIAV0IgNxRQRAIAAgBDYCAEGQ0AAgAiADcjYCACAEIAA2AhggBCAENgIIIAQgBDYCDAwBCyABQRkgBUEBdmtBACAFQR9HG3QhBSAAKAIAIQACQANAIAAiAigCBEF4cSABRg0BIAVBHXYhACAFQQF0IQUgAiAAQQRxakEQaiIDKAIAIgANAAsgAyAENgIAIAQgAjYCGCAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgCUEIaiEBDAILAkAgB0UNAAJAIAMoAhwiAUECdEG80gBqIgIoAgAgA0YEQCACIAA2AgAgAA0BQZDQACAIQX4gAXdxIgg2AgAMAgsgB0EQQRQgBygCECADRhtqIAA2AgAgAEUNAQsgACAHNgIYIAMoAhAiAQRAIAAgATYCECABIAA2AhgLIANBFGooAgAiAUUNACAAQRRqIAE2AgAgASAANgIYCwJAIAVBD00EQCADIAQgBWoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARqIgIgBUEBcjYCBCADIARBA3I2AgQgAiAFaiAFNgIAIAVB/wFNBEAgBUF4cUG00ABqIQACf0GM0AAoAgAiAUEBIAVBA3Z0IgVxRQRAQYzQACABIAVyNgIAIAAMAQsgACgCCAsiASACNgIMIAAgAjYCCCACIAA2AgwgAiABNgIIDAELQR8hASAFQf///wdNBEAgBUEmIAVBCHZnIgBrdkEBcSAAQQF0a0E+aiEBCyACIAE2AhwgAkIANwIQIAFBAnRBvNIAaiEAQQEgAXQiBCAIcUUEQCAAIAI2AgBBkNAAIAQgCHI2AgAgAiAANgIYIAIgAjYCCCACIAI2AgwMAQsgBUEZIAFBAXZrQQAgAUEfRxt0IQEgACgCACEEAkADQCAEIgAoAgRBeHEgBUYNASABQR12IQQgAUEBdCEBIAAgBEEEcWpBEGoiBigCACIEDQALIAYgAjYCACACIAA2AhggAiACNgIMIAIgAjYCCAwBCyAAKAIIIgEgAjYCDCAAIAI2AgggAkEANgIYIAIgADYCDCACIAE2AggLIANBCGohAQwBCwJAIAlFDQACQCAAKAIcIgFBAnRBvNIAaiICKAIAIABGBEAgAiADNgIAIAMNAUGQ0AAgC0F+IAF3cTYCAAwCCyAJQRBBFCAJKAIQIABGG2ogAzYCACADRQ0BCyADIAk2AhggACgCECIBBEAgAyABNgIQIAEgAzYCGAsgAEEUaigCACIBRQ0AIANBFGogATYCACABIAM2AhgLAkAgBUEPTQRAIAAgBCAFaiIBQQNyNgIEIAAgAWoiASABKAIEQQFyNgIEDAELIAAgBGoiByAFQQFyNgIEIAAgBEEDcjYCBCAFIAdqIAU2AgAgCARAIAhBeHFBtNAAaiEBQaDQACgCACEDAn9BASAIQQN2dCICIAZxRQRAQYzQACACIAZyNgIAIAEMAQsgASgCCAsiAiADNgIMIAEgAzYCCCADIAE2AgwgAyACNgIIC0Gg0AAgBzYCAEGU0AAgBTYCAAsgAEEIaiEBCyAKQRBqJAAgAQtDACAARQRAPwBBEHQPCwJAIABB//8DcQ0AIABBAEgNACAAQRB2QAAiAEF/RgRAQfzTAEEwNgIAQX8PCyAAQRB0DwsACwvcPyIAQYAICwkBAAAAAgAAAAMAQZQICwUEAAAABQBBpAgLCQYAAAAHAAAACABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv", "base64");
86637
86773
  return llhttpWasm;
86638
86774
  }
@@ -86641,7 +86777,7 @@ ${val.stack}`;
86641
86777
  function requireLlhttp_simdWasm() {
86642
86778
  if (hasRequiredLlhttp_simdWasm) return llhttp_simdWasm;
86643
86779
  hasRequiredLlhttp_simdWasm = 1;
86644
- const { Buffer: Buffer2 } = require$$0$a;
86780
+ const { Buffer: Buffer2 } = require$$0$b;
86645
86781
  llhttp_simdWasm = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64");
86646
86782
  return llhttp_simdWasm;
86647
86783
  }
@@ -86895,7 +87031,7 @@ ${val.stack}`;
86895
87031
  function requireDataUrl() {
86896
87032
  if (hasRequiredDataUrl) return dataUrl;
86897
87033
  hasRequiredDataUrl = 1;
86898
- const assert2 = require$$0$b;
87034
+ const assert2 = require$$0$c;
86899
87035
  const encoder2 = new TextEncoder();
86900
87036
  const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/;
86901
87037
  const HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/;
@@ -87216,8 +87352,8 @@ ${val.stack}`;
87216
87352
  function requireWebidl() {
87217
87353
  if (hasRequiredWebidl) return webidl_1;
87218
87354
  hasRequiredWebidl = 1;
87219
- const { types: types2, inspect: inspect2 } = require$$0$8;
87220
- const { markAsUncloneable } = require$$1$4;
87355
+ const { types: types2, inspect: inspect2 } = require$$0$9;
87356
+ const { markAsUncloneable } = require$$1$3;
87221
87357
  const { toUSVString } = requireUtil$8();
87222
87358
  const webidl = {};
87223
87359
  webidl.converters = {};
@@ -87644,14 +87780,14 @@ ${val.stack}`;
87644
87780
  function requireUtil$7() {
87645
87781
  if (hasRequiredUtil$7) return util$8;
87646
87782
  hasRequiredUtil$7 = 1;
87647
- const { Transform: Transform2 } = require$$0$c;
87783
+ const { Transform: Transform2 } = require$$0$d;
87648
87784
  const zlib = zlib__default;
87649
87785
  const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = requireConstants$2();
87650
87786
  const { getGlobalOrigin } = requireGlobal$1();
87651
87787
  const { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = requireDataUrl();
87652
87788
  const { performance: performance2 } = require$$5$3;
87653
87789
  const { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = requireUtil$8();
87654
- const assert2 = require$$0$b;
87790
+ const assert2 = require$$0$c;
87655
87791
  const { isUint8Array } = require$$8;
87656
87792
  const { webidl } = requireWebidl();
87657
87793
  let supportedHashes = [];
@@ -88488,7 +88624,7 @@ ${val.stack}`;
88488
88624
  function requireFile() {
88489
88625
  if (hasRequiredFile) return file;
88490
88626
  hasRequiredFile = 1;
88491
- const { Blob: Blob2, File } = require$$0$a;
88627
+ const { Blob: Blob2, File } = require$$0$b;
88492
88628
  const { kState } = requireSymbols$3();
88493
88629
  const { webidl } = requireWebidl();
88494
88630
  class FileLike {
@@ -88559,8 +88695,8 @@ ${val.stack}`;
88559
88695
  const { kEnumerableProperty } = requireUtil$8();
88560
88696
  const { FileLike, isFileLike } = requireFile();
88561
88697
  const { webidl } = requireWebidl();
88562
- const { File: NativeFile } = require$$0$a;
88563
- const nodeUtil = require$$0$8;
88698
+ const { File: NativeFile } = require$$0$b;
88699
+ const nodeUtil = require$$0$9;
88564
88700
  const File = globalThis.File ?? NativeFile;
88565
88701
  class FormData2 {
88566
88702
  constructor(form) {
@@ -88727,8 +88863,8 @@ ${val.stack}`;
88727
88863
  const { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = requireDataUrl();
88728
88864
  const { isFileLike } = requireFile();
88729
88865
  const { makeEntry } = requireFormdata();
88730
- const assert2 = require$$0$b;
88731
- const { File: NodeFile } = require$$0$a;
88866
+ const assert2 = require$$0$c;
88867
+ const { File: NodeFile } = require$$0$b;
88732
88868
  const File = globalThis.File ?? NodeFile;
88733
88869
  const formDataNameBuffer = Buffer.from('form-data; name="');
88734
88870
  const filenameBuffer = Buffer.from("; filename");
@@ -88965,9 +89101,9 @@ ${val.stack}`;
88965
89101
  const { FormData: FormData2 } = requireFormdata();
88966
89102
  const { kState } = requireSymbols$3();
88967
89103
  const { webidl } = requireWebidl();
88968
- const { Blob: Blob2 } = require$$0$a;
88969
- const assert2 = require$$0$b;
88970
- const { isErrored, isDisturbed } = require$$0$c;
89104
+ const { Blob: Blob2 } = require$$0$b;
89105
+ const assert2 = require$$0$c;
89106
+ const { isErrored, isDisturbed } = require$$0$d;
88971
89107
  const { isArrayBuffer } = require$$8;
88972
89108
  const { serializeAMimeType } = requireDataUrl();
88973
89109
  const { multipartFormDataParser } = requireFormdataParser();
@@ -89275,7 +89411,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r
89275
89411
  function requireClientH1() {
89276
89412
  if (hasRequiredClientH1) return clientH1;
89277
89413
  hasRequiredClientH1 = 1;
89278
- const assert2 = require$$0$b;
89414
+ const assert2 = require$$0$c;
89279
89415
  const util2 = requireUtil$8();
89280
89416
  const { channels } = requireDiagnostics();
89281
89417
  const timers2 = requireTimers();
@@ -90314,8 +90450,8 @@ ${len2.toString(16)}\r
90314
90450
  function requireClientH2() {
90315
90451
  if (hasRequiredClientH2) return clientH2;
90316
90452
  hasRequiredClientH2 = 1;
90317
- const assert2 = require$$0$b;
90318
- const { pipeline: pipeline2 } = require$$0$c;
90453
+ const assert2 = require$$0$c;
90454
+ const { pipeline: pipeline2 } = require$$0$d;
90319
90455
  const util2 = requireUtil$8();
90320
90456
  const { RequestContentLengthMismatchError, RequestAbortedError, SocketError, InformationalError } = requireErrors$1();
90321
90457
  const { kUrl, kReset, kClient, kRunning, kPending, kQueue, kPendingIdx, kRunningIdx, kError, kSocket, kStrictContentLength, kOnError, kMaxConcurrentStreams, kHTTP2Session, kResume, kSize, kHTTPContext } = requireSymbols$4();
@@ -90778,7 +90914,7 @@ ${len2.toString(16)}\r
90778
90914
  hasRequiredRedirectHandler = 1;
90779
90915
  const util2 = requireUtil$8();
90780
90916
  const { kBodyUsed } = requireSymbols$4();
90781
- const assert2 = require$$0$b;
90917
+ const assert2 = require$$0$c;
90782
90918
  const { InvalidArgumentError: InvalidArgumentError2 } = requireErrors$1();
90783
90919
  const EE = require$$0$4;
90784
90920
  const redirectableStatusCodes = [
@@ -90972,7 +91108,7 @@ ${len2.toString(16)}\r
90972
91108
  function requireClient() {
90973
91109
  if (hasRequiredClient) return client;
90974
91110
  hasRequiredClient = 1;
90975
- const assert2 = require$$0$b;
91111
+ const assert2 = require$$0$c;
90976
91112
  const net$1 = net;
90977
91113
  const http2 = http$1;
90978
91114
  const util2 = requireUtil$8();
@@ -92004,7 +92140,7 @@ ${len2.toString(16)}\r
92004
92140
  if (hasRequiredProxyAgent) return proxyAgent;
92005
92141
  hasRequiredProxyAgent = 1;
92006
92142
  const { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = requireSymbols$4();
92007
- const { URL: URL2 } = require$$1$5;
92143
+ const { URL: URL2 } = require$$1$4;
92008
92144
  const Agent = requireAgent();
92009
92145
  const Pool = requirePool();
92010
92146
  const DispatcherBase = requireDispatcherBase();
@@ -92377,7 +92513,7 @@ ${len2.toString(16)}\r
92377
92513
  function requireRetryHandler() {
92378
92514
  if (hasRequiredRetryHandler) return retryHandler;
92379
92515
  hasRequiredRetryHandler = 1;
92380
- const assert2 = require$$0$b;
92516
+ const assert2 = require$$0$c;
92381
92517
  const { kRetryHandlerDefaultRetry } = requireSymbols$4();
92382
92518
  const { RequestRetryError } = requireErrors$1();
92383
92519
  const { isDisturbed, parseHeaders: parseHeaders2, parseRangeHeader, wrapRequestBody } = requireUtil$8();
@@ -92682,8 +92818,8 @@ ${len2.toString(16)}\r
92682
92818
  function requireReadable() {
92683
92819
  if (hasRequiredReadable) return readable;
92684
92820
  hasRequiredReadable = 1;
92685
- const assert2 = require$$0$b;
92686
- const { Readable: Readable2 } = require$$0$c;
92821
+ const assert2 = require$$0$c;
92822
+ const { Readable: Readable2 } = require$$0$d;
92687
92823
  const { RequestAbortedError, NotSupportedError, InvalidArgumentError: InvalidArgumentError2, AbortError } = requireErrors$1();
92688
92824
  const util2 = requireUtil$8();
92689
92825
  const { ReadableStreamFrom } = requireUtil$8();
@@ -92965,7 +93101,7 @@ ${len2.toString(16)}\r
92965
93101
  function requireUtil$6() {
92966
93102
  if (hasRequiredUtil$6) return util$7;
92967
93103
  hasRequiredUtil$6 = 1;
92968
- const assert2 = require$$0$b;
93104
+ const assert2 = require$$0$c;
92969
93105
  const { ResponseStatusCodeError } = requireErrors$1();
92970
93106
  const { chunksDecode } = requireReadable();
92971
93107
  const CHUNK_LIMIT = 128 * 1024;
@@ -93024,7 +93160,7 @@ ${len2.toString(16)}\r
93024
93160
  function requireApiRequest() {
93025
93161
  if (hasRequiredApiRequest) return apiRequest.exports;
93026
93162
  hasRequiredApiRequest = 1;
93027
- const assert2 = require$$0$b;
93163
+ const assert2 = require$$0$c;
93028
93164
  const { Readable: Readable2 } = requireReadable();
93029
93165
  const { InvalidArgumentError: InvalidArgumentError2, RequestAbortedError } = requireErrors$1();
93030
93166
  const util2 = requireUtil$8();
@@ -93272,8 +93408,8 @@ ${len2.toString(16)}\r
93272
93408
  function requireApiStream() {
93273
93409
  if (hasRequiredApiStream) return apiStream;
93274
93410
  hasRequiredApiStream = 1;
93275
- const assert2 = require$$0$b;
93276
- const { finished: finished2, PassThrough: PassThrough2 } = require$$0$c;
93411
+ const assert2 = require$$0$c;
93412
+ const { finished: finished2, PassThrough: PassThrough2 } = require$$0$d;
93277
93413
  const { InvalidArgumentError: InvalidArgumentError2, InvalidReturnValueError } = requireErrors$1();
93278
93414
  const util2 = requireUtil$8();
93279
93415
  const { getResolveErrorBodyCallback } = requireUtil$6();
@@ -93460,12 +93596,12 @@ ${len2.toString(16)}\r
93460
93596
  function requireApiPipeline() {
93461
93597
  if (hasRequiredApiPipeline) return apiPipeline;
93462
93598
  hasRequiredApiPipeline = 1;
93463
- const { Readable: Readable2, Duplex, PassThrough: PassThrough2 } = require$$0$c;
93599
+ const { Readable: Readable2, Duplex, PassThrough: PassThrough2 } = require$$0$d;
93464
93600
  const { InvalidArgumentError: InvalidArgumentError2, InvalidReturnValueError, RequestAbortedError } = requireErrors$1();
93465
93601
  const util2 = requireUtil$8();
93466
93602
  const { AsyncResource: AsyncResource2 } = require$$5$4;
93467
93603
  const { addSignal, removeSignal } = requireAbortSignal();
93468
- const assert2 = require$$0$b;
93604
+ const assert2 = require$$0$c;
93469
93605
  const kResume = Symbol("resume");
93470
93606
  class PipelineRequest extends Readable2 {
93471
93607
  constructor() {
@@ -93666,7 +93802,7 @@ ${len2.toString(16)}\r
93666
93802
  const { AsyncResource: AsyncResource2 } = require$$5$4;
93667
93803
  const util2 = requireUtil$8();
93668
93804
  const { addSignal, removeSignal } = requireAbortSignal();
93669
- const assert2 = require$$0$b;
93805
+ const assert2 = require$$0$c;
93670
93806
  class UpgradeHandler extends AsyncResource2 {
93671
93807
  constructor(opts, callback) {
93672
93808
  if (!opts || typeof opts !== "object") {
@@ -93758,7 +93894,7 @@ ${len2.toString(16)}\r
93758
93894
  function requireApiConnect() {
93759
93895
  if (hasRequiredApiConnect) return apiConnect;
93760
93896
  hasRequiredApiConnect = 1;
93761
- const assert2 = require$$0$b;
93897
+ const assert2 = require$$0$c;
93762
93898
  const { AsyncResource: AsyncResource2 } = require$$5$4;
93763
93899
  const { InvalidArgumentError: InvalidArgumentError2, SocketError } = requireErrors$1();
93764
93900
  const util2 = requireUtil$8();
@@ -93923,7 +94059,7 @@ ${len2.toString(16)}\r
93923
94059
  const { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = requireMockSymbols();
93924
94060
  const { buildURL } = requireUtil$8();
93925
94061
  const { STATUS_CODES } = http$1;
93926
- const { types: { isPromise: isPromise2 } } = require$$0$8;
94062
+ const { types: { isPromise: isPromise2 } } = require$$0$9;
93927
94063
  function matchValue(match5, value) {
93928
94064
  if (typeof match5 === "string") {
93929
94065
  return match5 === value;
@@ -94386,7 +94522,7 @@ ${len2.toString(16)}\r
94386
94522
  function requireMockClient() {
94387
94523
  if (hasRequiredMockClient) return mockClient;
94388
94524
  hasRequiredMockClient = 1;
94389
- const { promisify: promisify2 } = require$$0$8;
94525
+ const { promisify: promisify2 } = require$$0$9;
94390
94526
  const Client = requireClient();
94391
94527
  const { buildMockDispatch } = requireMockUtils();
94392
94528
  const { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = requireMockSymbols();
@@ -94428,7 +94564,7 @@ ${len2.toString(16)}\r
94428
94564
  function requireMockPool() {
94429
94565
  if (hasRequiredMockPool) return mockPool;
94430
94566
  hasRequiredMockPool = 1;
94431
- const { promisify: promisify2 } = require$$0$8;
94567
+ const { promisify: promisify2 } = require$$0$9;
94432
94568
  const Pool = requirePool();
94433
94569
  const { buildMockDispatch } = requireMockUtils();
94434
94570
  const { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = requireMockSymbols();
@@ -94505,8 +94641,8 @@ ${len2.toString(16)}\r
94505
94641
  function requirePendingInterceptorsFormatter() {
94506
94642
  if (hasRequiredPendingInterceptorsFormatter) return pendingInterceptorsFormatter;
94507
94643
  hasRequiredPendingInterceptorsFormatter = 1;
94508
- const { Transform: Transform2 } = require$$0$c;
94509
- const { Console } = require$$1$6;
94644
+ const { Transform: Transform2 } = require$$0$d;
94645
+ const { Console } = require$$1$5;
94510
94646
  const PERSISTENT = process.versions.icu ? "\u2705" : "Y ";
94511
94647
  const NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N ";
94512
94648
  pendingInterceptorsFormatter = class PendingInterceptorsFormatter {
@@ -94875,7 +95011,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
94875
95011
  if (hasRequiredDns) return dns;
94876
95012
  hasRequiredDns = 1;
94877
95013
  const { isIP } = net;
94878
- const { lookup: lookup2 } = require$$1$7;
95014
+ const { lookup: lookup2 } = require$$1$6;
94879
95015
  const DecoratorHandler = requireDecoratorHandler();
94880
95016
  const { InvalidArgumentError: InvalidArgumentError2, InformationalError } = requireErrors$1();
94881
95017
  const maxInt = Math.pow(2, 31) - 1;
@@ -95154,8 +95290,8 @@ ${pendingInterceptorsFormatter2.format(pending2)}
95154
95290
  const { kEnumerableProperty } = requireUtil$8();
95155
95291
  const { iteratorMixin, isValidHeaderName, isValidHeaderValue } = requireUtil$7();
95156
95292
  const { webidl } = requireWebidl();
95157
- const assert2 = require$$0$b;
95158
- const util2 = require$$0$8;
95293
+ const assert2 = require$$0$c;
95294
+ const util2 = require$$0$9;
95159
95295
  const kHeadersMap = Symbol("headers map");
95160
95296
  const kHeadersSortedMap = Symbol("headers map sorted");
95161
95297
  function isHTTPWhiteSpaceCharCode(code2) {
@@ -95597,7 +95733,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
95597
95733
  const { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = requireHeaders();
95598
95734
  const { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = requireBody();
95599
95735
  const util2 = requireUtil$8();
95600
- const nodeUtil = require$$0$8;
95736
+ const nodeUtil = require$$0$9;
95601
95737
  const { kEnumerableProperty } = util2;
95602
95738
  const { isValidReasonPhrase, isCancelled, isAborted: isAborted2, isBlobLike, serializeJavascriptValueToJSONString, isErrorLike, isomorphicEncode, environmentSettingsObject: relevantRealm } = requireUtil$7();
95603
95739
  const { redirectStatusSet, nullBodyStatus } = requireConstants$2();
@@ -95606,8 +95742,8 @@ ${pendingInterceptorsFormatter2.format(pending2)}
95606
95742
  const { FormData: FormData2 } = requireFormdata();
95607
95743
  const { URLSerializer } = requireDataUrl();
95608
95744
  const { kConstruct } = requireSymbols$4();
95609
- const assert2 = require$$0$b;
95610
- const { types: types2 } = require$$0$8;
95745
+ const assert2 = require$$0$c;
95746
+ const { types: types2 } = require$$0$9;
95611
95747
  const textEncoder2 = new TextEncoder("utf-8");
95612
95748
  class Response3 {
95613
95749
  static error() {
@@ -96024,7 +96160,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
96024
96160
  const { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = requireHeaders();
96025
96161
  const { FinalizationRegistry: FinalizationRegistry2 } = requireDispatcherWeakref()();
96026
96162
  const util2 = requireUtil$8();
96027
- const nodeUtil = require$$0$8;
96163
+ const nodeUtil = require$$0$9;
96028
96164
  const { isValidHTTPToken, sameOrigin, environmentSettingsObject } = requireUtil$7();
96029
96165
  const { forbiddenMethodsSet, corsSafeListedMethodsSet, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache: requestCache2, requestDuplex } = requireConstants$2();
96030
96166
  const { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util2;
@@ -96032,7 +96168,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
96032
96168
  const { webidl } = requireWebidl();
96033
96169
  const { URLSerializer } = requireDataUrl();
96034
96170
  const { kConstruct } = requireSymbols$4();
96035
- const assert2 = require$$0$b;
96171
+ const assert2 = require$$0$c;
96036
96172
  const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require$$0$4;
96037
96173
  const kAbortController = Symbol("abortController");
96038
96174
  const requestFinalizer = new FinalizationRegistry2(({ signal, abort: abort2 }) => {
@@ -96631,11 +96767,11 @@ ${pendingInterceptorsFormatter2.format(pending2)}
96631
96767
  const zlib = zlib__default;
96632
96768
  const { bytesMatch, makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, createDeferredPromise, isBlobLike, sameOrigin, isCancelled, isAborted: isAborted2, isErrorLike, fullyReadBody, readableStreamClose, isomorphicEncode, urlIsLocal, urlIsHttpHttpsScheme, urlHasHttpsScheme, clampAndCoarsenConnectionTimingInfo, simpleRangeHeaderValue, buildContentRange, createInflate, extractMimeType } = requireUtil$7();
96633
96769
  const { kState, kDispatcher } = requireSymbols$3();
96634
- const assert2 = require$$0$b;
96770
+ const assert2 = require$$0$c;
96635
96771
  const { safelyExtractBody, extractBody } = requireBody();
96636
96772
  const { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet } = requireConstants$2();
96637
96773
  const EE = require$$0$4;
96638
- const { Readable: Readable2, pipeline: pipeline2, finished: finished2 } = require$$0$c;
96774
+ const { Readable: Readable2, pipeline: pipeline2, finished: finished2 } = require$$0$d;
96639
96775
  const { addAbortListener, isErrored, isReadable: isReadable2, bufferToLowerCasedHeaderName } = requireUtil$8();
96640
96776
  const { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = requireDataUrl();
96641
96777
  const { getGlobalDispatcher } = requireGlobal();
@@ -96938,7 +97074,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
96938
97074
  }
96939
97075
  case "blob:": {
96940
97076
  if (!resolveObjectURL) {
96941
- resolveObjectURL = require$$0$a.resolveObjectURL;
97077
+ resolveObjectURL = require$$0$b.resolveObjectURL;
96942
97078
  }
96943
97079
  const blobURLEntry = requestCurrentURL(request2);
96944
97080
  if (blobURLEntry.search.length !== 0) {
@@ -97973,9 +98109,9 @@ ${pendingInterceptorsFormatter2.format(pending2)}
97973
98109
  const { ProgressEvent } = requireProgressevent();
97974
98110
  const { getEncoding } = requireEncoding();
97975
98111
  const { serializeAMimeType, parseMIMEType } = requireDataUrl();
97976
- const { types: types2 } = require$$0$8;
97977
- const { StringDecoder: StringDecoder2 } = require$$1$3;
97978
- const { btoa: btoa2 } = require$$0$a;
98112
+ const { types: types2 } = require$$0$9;
98113
+ const { StringDecoder: StringDecoder2 } = require$$1$2;
98114
+ const { btoa: btoa2 } = require$$0$b;
97979
98115
  const staticPropertyDescriptors = {
97980
98116
  enumerable: true,
97981
98117
  writable: false,
@@ -98386,7 +98522,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
98386
98522
  function requireUtil$4() {
98387
98523
  if (hasRequiredUtil$4) return util$5;
98388
98524
  hasRequiredUtil$4 = 1;
98389
- const assert2 = require$$0$b;
98525
+ const assert2 = require$$0$c;
98390
98526
  const { URLSerializer } = requireDataUrl();
98391
98527
  const { isValidHeaderName } = requireUtil$7();
98392
98528
  function urlEquals(A, B, excludeFragment = false) {
@@ -98425,7 +98561,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
98425
98561
  const { kState } = requireSymbols$3();
98426
98562
  const { fetching } = requireFetch();
98427
98563
  const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = requireUtil$7();
98428
- const assert2 = require$$0$b;
98564
+ const assert2 = require$$0$c;
98429
98565
  class Cache {
98430
98566
  #relevantRequestResponseList;
98431
98567
  constructor() {
@@ -99186,7 +99322,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
99186
99322
  const { maxNameValuePairSize, maxAttributeValueSize } = requireConstants$1();
99187
99323
  const { isCTLExcludingHtab } = requireUtil$3();
99188
99324
  const { collectASequenceOfCodePointsFast } = requireDataUrl();
99189
- const assert2 = require$$0$b;
99325
+ const assert2 = require$$0$c;
99190
99326
  function parseSetCookie(header) {
99191
99327
  if (isCTLExcludingHtab(header)) {
99192
99328
  return null;
@@ -99463,7 +99599,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
99463
99599
  const { webidl } = requireWebidl();
99464
99600
  const { kEnumerableProperty } = requireUtil$8();
99465
99601
  const { kConstruct } = requireSymbols$4();
99466
- const { MessagePort } = require$$1$4;
99602
+ const { MessagePort } = require$$1$3;
99467
99603
  class MessageEvent extends Event {
99468
99604
  #eventInit;
99469
99605
  constructor(type2, eventInitDict = {}) {
@@ -99799,7 +99935,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
99799
99935
  const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = requireSymbols();
99800
99936
  const { states, opcodes } = requireConstants();
99801
99937
  const { ErrorEvent, createFastMessageEvent } = requireEvents();
99802
- const { isUtf8 } = require$$0$a;
99938
+ const { isUtf8 } = require$$0$b;
99803
99939
  const { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = requireDataUrl();
99804
99940
  function isConnecting(ws) {
99805
99941
  return ws[kReadyState] === states.CONNECTING;
@@ -100292,8 +100428,8 @@ ${pendingInterceptorsFormatter2.format(pending2)}
100292
100428
  function requireReceiver() {
100293
100429
  if (hasRequiredReceiver) return receiver;
100294
100430
  hasRequiredReceiver = 1;
100295
- const { Writable } = require$$0$c;
100296
- const assert2 = require$$0$b;
100431
+ const { Writable } = require$$0$d;
100432
+ const assert2 = require$$0$c;
100297
100433
  const { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = requireConstants();
100298
100434
  const { kReadyState, kSentClose, kResponse, kReceivedClose } = requireSymbols();
100299
100435
  const { channels } = requireDiagnostics();
@@ -100705,7 +100841,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
100705
100841
  const { ByteParser } = requireReceiver();
100706
100842
  const { kEnumerableProperty, isBlobLike } = requireUtil$8();
100707
100843
  const { getGlobalDispatcher } = requireGlobal();
100708
- const { types: types2 } = require$$0$8;
100844
+ const { types: types2 } = require$$0$9;
100709
100845
  const { ErrorEvent, CloseEvent } = requireEvents();
100710
100846
  const { SendQueue } = requireSender();
100711
100847
  class WebSocket2 extends EventTarget {
@@ -101074,7 +101210,7 @@ ${pendingInterceptorsFormatter2.format(pending2)}
101074
101210
  function requireEventsourceStream() {
101075
101211
  if (hasRequiredEventsourceStream) return eventsourceStream;
101076
101212
  hasRequiredEventsourceStream = 1;
101077
- const { Transform: Transform2 } = require$$0$c;
101213
+ const { Transform: Transform2 } = require$$0$d;
101078
101214
  const { isASCIINumber, isValidLastEventId } = requireUtil$1();
101079
101215
  const BOM = [
101080
101216
  239,
@@ -101277,7 +101413,7 @@ ${value}`;
101277
101413
  function requireEventsource() {
101278
101414
  if (hasRequiredEventsource) return eventsource;
101279
101415
  hasRequiredEventsource = 1;
101280
- const { pipeline: pipeline2 } = require$$0$c;
101416
+ const { pipeline: pipeline2 } = require$$0$d;
101281
101417
  const { fetching } = requireFetch();
101282
101418
  const { makeRequest } = requireRequest();
101283
101419
  const { webidl } = requireWebidl();
@@ -101645,7 +101781,7 @@ ${value}`;
101645
101781
  undici.Response = requireResponse().Response;
101646
101782
  undici.Request = requireRequest().Request;
101647
101783
  undici.FormData = requireFormdata().FormData;
101648
- undici.File = globalThis.File ?? require$$0$a.File;
101784
+ undici.File = globalThis.File ?? require$$0$b.File;
101649
101785
  undici.FileReader = requireFilereader().FileReader;
101650
101786
  const { setGlobalOrigin, getGlobalOrigin } = requireGlobal$1();
101651
101787
  undici.setGlobalOrigin = setGlobalOrigin;
@@ -113178,7 +113314,7 @@ ${incoming}`).output;
113178
113314
  function requireCrossSpawn() {
113179
113315
  if (hasRequiredCrossSpawn) return crossSpawn.exports;
113180
113316
  hasRequiredCrossSpawn = 1;
113181
- const cp = require$$1$8;
113317
+ const cp = require$$1$7;
113182
113318
  const parse2 = requireParse();
113183
113319
  const enoent2 = requireEnoent();
113184
113320
  function spawn2(command2, args2, options) {
@@ -114337,6 +114473,19 @@ ${incoming}`).output;
114337
114473
  description: command2.description ?? void 0
114338
114474
  }));
114339
114475
  }
114476
+ const zLodySessionResponseMeta = object$1({
114477
+ _meta: object$1({
114478
+ lody: object$1({
114479
+ modelReasoningEfforts: record$1(string$1(), array$2(string$1()))
114480
+ }).nullish()
114481
+ }).nullish()
114482
+ });
114483
+ function readLodyModelReasoningEfforts(sessionResponse) {
114484
+ const parsed = zLodySessionResponseMeta.safeParse(sessionResponse);
114485
+ const map2 = parsed.success ? parsed.data._meta?.lody?.modelReasoningEfforts : void 0;
114486
+ return map2 && Object.keys(map2).length > 0 ? map2 : void 0;
114487
+ }
114488
+ const usesCodexModelEffortIds = (agent2) => agent2?.cliType === "builtin" && agent2.agentType === "codex";
114340
114489
  function normalizeAcpSessionCapabilities(sessionResponse, lifecycleCapabilities = {}) {
114341
114490
  const modes = (sessionResponse.modes?.availableModes ?? []).map((mode2) => ({
114342
114491
  id: mode2.id,
@@ -114353,7 +114502,10 @@ ${incoming}`).output;
114353
114502
  const legacyModels = readLegacySessionModelState(sessionResponse)?.availableModels ?? [];
114354
114503
  const models = modelsFromConfigOptions.length > 0 ? modelsFromConfigOptions : legacyModels;
114355
114504
  const availableCommands = readSessionAvailableCommands(sessionResponse);
114356
- const modelReasoningEfforts = deriveModelReasoningEffortsFromLegacyModelIds(legacyModels.map((model) => model.modelId));
114505
+ const modelReasoningEfforts = {
114506
+ ...readLodyModelReasoningEfforts(sessionResponse),
114507
+ ...usesCodexModelEffortIds(lifecycleCapabilities.agent) ? deriveModelReasoningEffortsFromLegacyModelIds(legacyModels.map((model) => model.modelId)) : void 0
114508
+ };
114357
114509
  return {
114358
114510
  modes,
114359
114511
  models,
@@ -114361,7 +114513,7 @@ ${incoming}`).output;
114361
114513
  availableCommands,
114362
114514
  sessionFork: lifecycleCapabilities.sessionFork === true,
114363
114515
  acknowledgedSteer: lifecycleCapabilities.acknowledgedSteer === true,
114364
- ...modelReasoningEfforts ? {
114516
+ ...Object.keys(modelReasoningEfforts).length > 0 ? {
114365
114517
  modelReasoningEfforts
114366
114518
  } : {}
114367
114519
  };
@@ -114745,6 +114897,23 @@ ${incoming}`).output;
114745
114897
  }
114746
114898
  return mismatches.length > 0 ? mismatches.join("; ") : null;
114747
114899
  }
114900
+ function getBuiltinToolPermissionOutcome(args2) {
114901
+ if (args2.agentConfig?.cliType !== "builtin" || args2.agentConfig.agentType !== "grok" || isAskUserQuestionPermissionRequest(args2.request)) {
114902
+ return void 0;
114903
+ }
114904
+ const permission = args2.configOptions.find((option2) => option2.id === "permission_mode");
114905
+ if (permission?.type !== "select" || permission.currentValue !== "always-approve") {
114906
+ return void 0;
114907
+ }
114908
+ const allowOnce = args2.request.options.find((option2) => option2.kind === "allow_once");
114909
+ if (allowOnce) return {
114910
+ outcome: "selected",
114911
+ optionId: allowOnce.optionId
114912
+ };
114913
+ return args2.pending ? {
114914
+ outcome: "cancelled"
114915
+ } : void 0;
114916
+ }
114748
114917
  const VersionOneSchema = object$1({
114749
114918
  version: literal$1(1)
114750
114919
  });
@@ -115309,6 +115478,7 @@ ${incoming}`).output;
115309
115478
  sessionWorkdir = null;
115310
115479
  agentMcpCapabilities;
115311
115480
  configOptions = [];
115481
+ configOptionsListeners = /* @__PURE__ */ new Set();
115312
115482
  configOptionValues;
115313
115483
  legacySessionModelState = null;
115314
115484
  currentModel;
@@ -116147,6 +116317,7 @@ ${incoming}`).output;
116147
116317
  } else {
116148
116318
  this.currentModel = void 0;
116149
116319
  }
116320
+ for (const listener of this.configOptionsListeners) listener();
116150
116321
  }
116151
116322
  retainLegacyConfigOptionValue(configId, value) {
116152
116323
  this.configOptionValues[configId] = value;
@@ -116166,6 +116337,7 @@ ${incoming}`).output;
116166
116337
  }
116167
116338
  return option2;
116168
116339
  });
116340
+ for (const listener of this.configOptionsListeners) listener();
116169
116341
  }
116170
116342
  async startSession(stream2, workdir, resumeSessionId, timeoutOptions = {}, startupAbort, resolveSessionStart, forkSessionId, forkSessionTurnId) {
116171
116343
  const connection2 = new ClientSideConnection(() => this, stream2);
@@ -116810,6 +116982,21 @@ ${incoming}`).output;
116810
116982
  getConfigOptions() {
116811
116983
  return this.configOptions;
116812
116984
  }
116985
+ subscribeConfigOptions(listener) {
116986
+ this.configOptionsListeners.add(listener);
116987
+ return () => {
116988
+ this.configOptionsListeners.delete(listener);
116989
+ };
116990
+ }
116991
+ getAutomaticToolPermissionOutcome(request2, pending2) {
116992
+ if (request2.sessionId !== this.acpSessionId) return void 0;
116993
+ return getBuiltinToolPermissionOutcome({
116994
+ agentConfig: this.options.agentConfig,
116995
+ configOptions: this.configOptions,
116996
+ request: request2,
116997
+ pending: pending2
116998
+ });
116999
+ }
116813
117000
  findConfigOptionByCategory(category) {
116814
117001
  return this.configOptions.find((opt) => opt.category === category);
116815
117002
  }
@@ -118257,7 +118444,7 @@ ${error2.message}` : execaMessage;
118257
118444
  if (hasRequiredExeca) return execa$1.exports;
118258
118445
  hasRequiredExeca = 1;
118259
118446
  const path2 = path__default$1;
118260
- const childProcess = require$$1$8;
118447
+ const childProcess = require$$1$7;
118261
118448
  const crossSpawn2 = requireCrossSpawn();
118262
118449
  const stripFinalNewline2 = requireStripFinalNewline();
118263
118450
  const npmRunPath2 = requireNpmRunPath();
@@ -118594,8 +118781,8 @@ ${error2.message}` : execaMessage;
118594
118781
  stdout: null,
118595
118782
  stderr: null
118596
118783
  };
118597
- const isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof require$$0$c || isReadable(s) || isWritable(s));
118598
- const isReadable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter$1 && typeof s.pipe === "function" && s.pipe !== require$$0$c.Writable.prototype.pipe;
118784
+ const isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof require$$0$d || isReadable(s) || isWritable(s));
118785
+ const isReadable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter$1 && typeof s.pipe === "function" && s.pipe !== require$$0$d.Writable.prototype.pipe;
118599
118786
  const isWritable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter$1 && typeof s.write === "function" && typeof s.end === "function";
118600
118787
  const EOF$1 = Symbol("EOF");
118601
118788
  const MAYBE_EMIT_END = Symbol("maybeEmitEnd");
@@ -123413,7 +123600,7 @@ ${error2.message}` : execaMessage;
123413
123600
  if (!this[CHECKPATH](entry)) {
123414
123601
  return entry.resume();
123415
123602
  }
123416
- require$$0$b.equal(typeof entry.absolute, "string");
123603
+ require$$0$c.equal(typeof entry.absolute, "string");
123417
123604
  switch (entry.type) {
123418
123605
  case "Directory":
123419
123606
  case "GNUDumpDir":
@@ -130576,7 +130763,11 @@ ${fallbackStderrTail}` : errorMessage2;
130576
130763
  return {
130577
130764
  ...normalizeAcpSessionCapabilities(sessionResponse, {
130578
130765
  sessionFork: client2.supportsSessionFork?.() === true,
130579
- acknowledgedSteer: client2.supportsAcknowledgedSteer()
130766
+ acknowledgedSteer: client2.supportsAcknowledgedSteer(),
130767
+ agent: {
130768
+ cliType,
130769
+ agentType
130770
+ }
130580
130771
  }),
130581
130772
  capabilitySourceVersion
130582
130773
  };
@@ -130806,6 +130997,7 @@ ${fallbackStderrTail}` : errorMessage2;
130806
130997
  });
130807
130998
  }
130808
130999
  }
131000
+ collectedText = "";
130809
131001
  options.logger.debug(`[title-generator] Sending title prompt (acpSessionId=${acpSessionId})`);
130810
131002
  const response2 = await client2?.prompt(acpSessionId, prompt2);
130811
131003
  options.logger.debug(`[title-generator] Title prompt returned (acpSessionId=${acpSessionId})`);
@@ -131119,6 +131311,22 @@ ${fallbackStderrTail}` : errorMessage2;
131119
131311
  }
131120
131312
  return input2.status?.type === "requestPermission" || input2.status?.type === "running";
131121
131313
  };
131314
+ const markAssistantTurnFinished = (history, options) => {
131315
+ const { turnId, endedAt, permissionWaitMs } = options;
131316
+ for (let i2 = history.length - 1; i2 >= 0; i2--) {
131317
+ const entry = history[i2];
131318
+ if (entry && entry.role === "assistant" && (!turnId || entry.id === turnId)) {
131319
+ if (entry.finished === true) break;
131320
+ entry.finished = true;
131321
+ entry.endedAt = endedAt;
131322
+ if (permissionWaitMs !== void 0) {
131323
+ entry.permissionWaitMs = permissionWaitMs;
131324
+ }
131325
+ break;
131326
+ }
131327
+ }
131328
+ return history;
131329
+ };
131122
131330
  const tryExecTrimmed = async (exec2, command2, args2, workdir) => {
131123
131331
  try {
131124
131332
  const output = await exec2(command2, args2, workdir, false);
@@ -135423,6 +135631,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
135423
135631
  if (this.turnRuntimeBySession.get(options.sessionId) !== runtime || !runtime.promptInFlight || runtime.turnId !== previousTurnId || runtime.activePromptRun !== ownedPromptRun) {
135424
135632
  return reject2("stale-turn", "Steer application arrived after ownership changed");
135425
135633
  }
135634
+ runtime.invocation = {
135635
+ sourceTurnId: options.userTurnId,
135636
+ requesterUserId: options.userId,
135637
+ inputConfig: options.inputConfig
135638
+ };
135426
135639
  try {
135427
135640
  await this.finalizeYieldedTurnOutput(runtime, options.sessionId, previousTurnId);
135428
135641
  } catch (error2) {
@@ -135461,7 +135674,6 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
135461
135674
  runtime.activePromptRun = nextPromptRun;
135462
135675
  runtime.turnId = nextTurnId;
135463
135676
  runtime.userTurnId = options.userTurnId;
135464
- runtime.requesterUserId = options.userId;
135465
135677
  this.markCurrentTurn(options.sessionId, nextTurnId);
135466
135678
  ownedPromptRun.signalSuccessor();
135467
135679
  return {
@@ -135537,6 +135749,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
135537
135749
  sessionId,
135538
135750
  sessionDoc: options.sessionDoc,
135539
135751
  userTurnId,
135752
+ invocation: options.invocation,
135540
135753
  dispatchSource,
135541
135754
  unhandledErrorCode: "session_chat_failed",
135542
135755
  describeUnhandledError: (error2) => `[${sessionId}] Failed to process prepared session turn: ${formatErrorMessage(error2)}`
@@ -135596,12 +135809,13 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
135596
135809
  async evictForTurnStart(sessionId) {
135597
135810
  return await this.deps.evictForMemoryPressure(sessionId);
135598
135811
  }
135599
- createTurnRuntime(sessionId, turnId, userTurnId, session2) {
135812
+ createTurnRuntime(options) {
135600
135813
  return {
135601
- sessionId,
135602
- turnId,
135603
- userTurnId,
135604
- session: session2,
135814
+ sessionId: options.sessionId,
135815
+ turnId: options.turnId,
135816
+ userTurnId: options.userTurnId,
135817
+ invocation: options.invocation,
135818
+ session: options.session,
135605
135819
  promptStarted: false,
135606
135820
  promptInFlight: false,
135607
135821
  autoPromptInFlight: false,
@@ -136136,7 +136350,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136136
136350
  });
136137
136351
  }
136138
136352
  async runVisibleSessionTurn(options, body2) {
136139
- const { sessionId, sessionDoc, session: session2, userTurnId } = options;
136353
+ const { sessionId, sessionDoc, userTurnId } = options;
136140
136354
  const span2 = startTraceSpan(this.deps.logger, "execution.visible_turn", {
136141
136355
  sessionId,
136142
136356
  ...userTurnId ? {
@@ -136177,7 +136391,10 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136177
136391
  deferACPUpdateTarget: true
136178
136392
  });
136179
136393
  this.markCurrentTurn(sessionId, turnId);
136180
- runtime = this.createTurnRuntime(sessionId, turnId, userTurnId, session2);
136394
+ runtime = this.createTurnRuntime({
136395
+ ...options,
136396
+ turnId
136397
+ });
136181
136398
  this.registerTurnRuntime(runtime);
136182
136399
  } finally {
136183
136400
  releaseConflict();
@@ -136462,6 +136679,21 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136462
136679
  getActiveUserTurnId(sessionId) {
136463
136680
  return this.turnRuntimeBySession.get(sessionId)?.userTurnId;
136464
136681
  }
136682
+ getActiveInvocationContext(sessionId) {
136683
+ const runtime = this.turnRuntimeBySession.get(sessionId);
136684
+ if (!runtime) {
136685
+ return void 0;
136686
+ }
136687
+ const { invocation } = runtime;
136688
+ if (!invocation?.requesterUserId) {
136689
+ throw new Error(`Active invocation identity is unavailable for session ${sessionId}`);
136690
+ }
136691
+ return {
136692
+ requesterUserId: invocation.requesterUserId,
136693
+ sourceTurnId: invocation.sourceTurnId,
136694
+ inputConfig: invocation.inputConfig
136695
+ };
136696
+ }
136465
136697
  async setDispatchProcessing(sessionId, sessionDoc, userTurnId) {
136466
136698
  await this.setUserTurnStatus(sessionDoc, userTurnId, "processing");
136467
136699
  await this.upsertSessionMeta(sessionId, {
@@ -136847,7 +137079,6 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136847
137079
  });
136848
137080
  const runReadySessionTurn = (readySession, ctx) => gen(function* () {
136849
137081
  const { turnId, runtime, abortIfCancelled, openAssistantEntry, prompt: prompt2 } = ctx;
136850
- runtime.requesterUserId = message.userId;
136851
137082
  let activeSession = readySession;
136852
137083
  let staleAcpPromptRecoveryAttempted = false;
136853
137084
  let baseCommitHash = null;
@@ -137021,7 +137252,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
137021
137252
  yield* self2.tryPromise(() => runtime.yieldedFinalization);
137022
137253
  const completedTurnId = runtime.turnId;
137023
137254
  const completedUserTurnId = runtime.userTurnId ?? executionUserTurnId;
137024
- const completedRequesterUserId = runtime.requesterUserId ?? userId;
137255
+ const completedRequesterUserId = runtime.invocation?.requesterUserId ?? userId;
137025
137256
  const producedOutput = self2.turnProducedVisibleOutput(sessionId, completedTurnId);
137026
137257
  yield* self2.tryPromise(() => traceAsync(self2.deps.logger, "execution.mark_prompt_completed", {
137027
137258
  sessionId,
@@ -137094,6 +137325,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
137094
137325
  session: session2
137095
137326
  } : {},
137096
137327
  userTurnId: executionUserTurnId,
137328
+ invocation: {
137329
+ sourceTurnId: userTurnId,
137330
+ requesterUserId: userId,
137331
+ inputConfig: acpSessionConfig
137332
+ },
137097
137333
  ...dispatchOptions?.dispatchSource ? {
137098
137334
  dispatchSource: dispatchOptions.dispatchSource
137099
137335
  } : {},
@@ -137310,6 +137546,13 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
137310
137546
  sessionId,
137311
137547
  sessionDoc,
137312
137548
  userTurnId,
137549
+ ...userTurnId ? {
137550
+ invocation: {
137551
+ sourceTurnId: userTurnId,
137552
+ requesterUserId: message.userId,
137553
+ inputConfig: acpSessionConfig
137554
+ }
137555
+ } : {},
137313
137556
  ...dispatchOptions?.dispatchSource ? {
137314
137557
  dispatchSource: dispatchOptions.dispatchSource
137315
137558
  } : {},
@@ -137321,7 +137564,6 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
137321
137564
  },
137322
137565
  body: ({ turnId, runtime, setUnhandledErrorContext, bindSession, trackPendingSession, abortIfCancelled, openAssistantEntry, prompt: prompt2 }) => gen(function* () {
137323
137566
  setUnhandledErrorContext(turnErrorContext);
137324
- runtime.requesterUserId = message.userId;
137325
137567
  const memoryPressureResult = yield* self2.tryPromise(() => self2.evictForTurnStart(sessionId));
137326
137568
  if (memoryPressureResult.stillUnderPressure) {
137327
137569
  const failureMessage = self2.formatMemoryPressureFailureMessage(memoryPressureResult);
@@ -137458,7 +137700,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
137458
137700
  yield* self2.tryPromise(() => runtime.yieldedFinalization);
137459
137701
  const completedTurnId = runtime.turnId;
137460
137702
  const completedUserTurnId = runtime.userTurnId ?? userTurnId;
137461
- const completedRequesterUserId = runtime.requesterUserId ?? sessionConfig.requesterUserId;
137703
+ const completedRequesterUserId = runtime.invocation?.requesterUserId ?? sessionConfig.requesterUserId;
137462
137704
  const producedOutput = self2.turnProducedVisibleOutput(sessionId, completedTurnId);
137463
137705
  yield* self2.tryPromise(() => traceAsync(self2.deps.logger, "execution.mark_prompt_completed", {
137464
137706
  sessionId,
@@ -139325,6 +139567,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
139325
139567
  sessionId,
139326
139568
  sessionDoc,
139327
139569
  userTurnId: nextUserTurn.id,
139570
+ invocation: {
139571
+ sourceTurnId: nextUserTurn.id,
139572
+ requesterUserId: nextUserTurn.userId,
139573
+ inputConfig: nextUserTurn.inputConfig ?? {}
139574
+ },
139328
139575
  dispatchSource,
139329
139576
  accessPromise: executionAccessPromise,
139330
139577
  requestPromise,
@@ -141437,6 +141684,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
141437
141684
  const FrozenConfigSchema = object$1({
141438
141685
  agentConfigId: string$1().optional(),
141439
141686
  inputConfig: record$1(string$1(), unknown()),
141687
+ sourceTurnId: string$1().trim().min(1).optional(),
141440
141688
  targetDispatchConfigs: array$2(object$1({
141441
141689
  modeId: string$1().optional(),
141442
141690
  modelId: string$1().optional(),
@@ -141711,7 +141959,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
141711
141959
  const existing = this.getStored(input2.requesterSessionId, input2.operationId);
141712
141960
  if (existing) return {
141713
141961
  created: false,
141714
- operation: this.assertMatching(existing, input2.kind, fingerprint),
141962
+ operation: this.assertMatching(existing, input2.kind, fingerprint, input2.requesterUserId, frozenConfig.sourceTurnId),
141715
141963
  claimedItemIndexes: []
141716
141964
  };
141717
141965
  const inserted = this.db.prepare(`INSERT OR IGNORE INTO operations (
@@ -141733,7 +141981,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
141733
141981
  }
141734
141982
  return {
141735
141983
  created: inserted.changes === 1,
141736
- operation: this.assertMatching(operation, input2.kind, fingerprint),
141984
+ operation: this.assertMatching(operation, input2.kind, fingerprint, input2.requesterUserId, frozenConfig.sourceTurnId),
141737
141985
  claimedItemIndexes
141738
141986
  };
141739
141987
  });
@@ -141749,11 +141997,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
141749
141997
  }
141750
141998
  return operation;
141751
141999
  }
141752
- findMatchingRetry(requesterSessionId, operationId, kind, canonicalCommand) {
142000
+ findMatchingRetry(requesterSessionId, operationId, kind, canonicalCommand, requesterUserId, sourceTurnId) {
141753
142001
  const existing = this.getStored(requesterSessionId, operationId);
141754
142002
  if (!existing) return void 0;
141755
142003
  const fingerprint = fingerprintLodyCommand(kind, canonicalizeLodyCommand(canonicalCommand));
141756
- return this.assertMatching(existing, kind, fingerprint);
142004
+ return this.assertMatching(existing, kind, fingerprint, requesterUserId, sourceTurnId);
141757
142005
  }
141758
142006
  listActive(workspaceId, ownerMachineId) {
141759
142007
  const rows = this.db.prepare(`SELECT * FROM operations
@@ -141761,6 +142009,24 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
141761
142009
  ORDER BY created_at ASC, requester_session_id ASC, operation_id ASC`).all(workspaceId, ownerMachineId);
141762
142010
  return rows.map((row) => this.decodeOperation(row));
141763
142011
  }
142012
+ listPendingProgress(workspaceId, ownerMachineId) {
142013
+ return this.db.prepare(`SELECT operations.* FROM operations
142014
+ WHERE workspace_id = ? AND owner_machine_id = ? AND state = 'finished'
142015
+ AND kind IN ('session_create', 'session_create_many')
142016
+ AND NOT EXISTS (SELECT 1 FROM operation_progress_settlements p
142017
+ WHERE p.requester_session_id = operations.requester_session_id
142018
+ AND p.operation_id = operations.operation_id)
142019
+ ORDER BY created_at, requester_session_id, operation_id`).all(workspaceId, ownerMachineId).map((row) => this.decodeOperation(row));
142020
+ }
142021
+ settleProgress(requesterSessionId, operationId) {
142022
+ this.db.transaction(() => {
142023
+ this.db.prepare(`INSERT OR IGNORE INTO operation_progress_settlements
142024
+ (requester_session_id, operation_id)
142025
+ SELECT requester_session_id, operation_id FROM operations
142026
+ WHERE requester_session_id = ? AND operation_id = ? AND state = 'finished'
142027
+ AND kind IN ('session_create', 'session_create_many')`).run(requesterSessionId, operationId);
142028
+ }).immediate();
142029
+ }
141764
142030
  updateItems(requesterSessionId, operationId, items2) {
141765
142031
  array$2(OperationItemSchema).parse(items2);
141766
142032
  const result = this.db.prepare(`UPDATE operations SET items_json = ?
@@ -141918,8 +142184,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
141918
142184
  const row = this.db.prepare("SELECT * FROM operations WHERE requester_session_id = ? AND operation_id = ?").get(requesterSessionId, operationId);
141919
142185
  return row === void 0 ? void 0 : this.decodeOperation(row);
141920
142186
  }
141921
- assertMatching(operation, kind, fingerprint) {
141922
- if (operation.kind !== kind || operation.fingerprint !== fingerprint) {
142187
+ assertMatching(operation, kind, fingerprint, requesterUserId, sourceTurnId) {
142188
+ if (operation.kind !== kind || operation.fingerprint !== fingerprint || operation.requesterUserId !== requesterUserId || operation.frozenContinuationConfig.sourceTurnId !== sourceTurnId) {
141923
142189
  throw new LodyOperationStoreError("OPERATION_ID_REUSED", `Operation id ${operation.operationId} is already bound to different input.`, false);
141924
142190
  }
141925
142191
  return operation;
@@ -142004,6 +142270,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142004
142270
  this.db.transaction(() => {
142005
142271
  this.db.prepare(`DELETE FROM operations
142006
142272
  WHERE state = 'finished'
142273
+ AND (kind NOT IN ('session_create', 'session_create_many') OR EXISTS (
142274
+ SELECT 1 FROM operation_progress_settlements p
142275
+ WHERE p.requester_session_id = operations.requester_session_id
142276
+ AND p.operation_id = operations.operation_id
142277
+ ))
142007
142278
  AND EXISTS (
142008
142279
  SELECT 1 FROM deliveries
142009
142280
  WHERE deliveries.requester_session_id = operations.requester_session_id
@@ -142071,6 +142342,14 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142071
142342
  ON DELETE CASCADE
142072
142343
  );
142073
142344
 
142345
+ CREATE TABLE IF NOT EXISTS operation_progress_settlements (
142346
+ requester_session_id TEXT NOT NULL,
142347
+ operation_id TEXT NOT NULL,
142348
+ PRIMARY KEY (requester_session_id, operation_id),
142349
+ FOREIGN KEY (requester_session_id, operation_id)
142350
+ REFERENCES operations (requester_session_id, operation_id) ON DELETE CASCADE
142351
+ );
142352
+
142074
142353
  CREATE TABLE IF NOT EXISTS orchestration_meta (
142075
142354
  key TEXT PRIMARY KEY,
142076
142355
  value TEXT NOT NULL
@@ -142100,6 +142379,126 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142100
142379
  }).immediate();
142101
142380
  }
142102
142381
  }
142382
+ const getOperationProgressTurnId = (requesterSessionId, operationId) => `operation-progress:${requesterSessionId}:${operationId}`;
142383
+ const getOperationProgressTargetKey = (target) => `${target.sessionId}\0${target.userTurnId}`;
142384
+ const progressStatusRank = (status) => status === "created" ? 0 : status === "running" ? 1 : 2;
142385
+ const progressStatusForItem = (item, statusByTarget, materializedTargets) => {
142386
+ if (!("target" in item) || !item.target) return null;
142387
+ const key2 = getOperationProgressTargetKey(item.target);
142388
+ const targetStatus = statusByTarget?.get(key2);
142389
+ const wasMaterialized = targetStatus !== void 0 || materializedTargets?.has(key2);
142390
+ if (item.status === "succeeded") return item.status;
142391
+ if (item.status === "failed" || item.status === "cancelled") {
142392
+ if (targetStatus) return targetStatus;
142393
+ if (!wasMaterialized) return null;
142394
+ return item.status === "failed" && item.error.code === "TARGET_TIMEOUT" ? "created" : item.status;
142395
+ }
142396
+ if (!item.inputDurable && !wasMaterialized) return null;
142397
+ return targetStatus ?? "created";
142398
+ };
142399
+ const buildOperationProgressContent = (operation, statusByTarget, materializedTargets) => {
142400
+ if (operation.kind !== "session_create" && operation.kind !== "session_create_many") return null;
142401
+ const items2 = operation.items.reduce((acc, item) => {
142402
+ const status = progressStatusForItem(item, statusByTarget, materializedTargets);
142403
+ if (!status || !("target" in item) || !item.target) return acc;
142404
+ acc.push({
142405
+ target: item.target,
142406
+ ...item.label ? {
142407
+ label: item.label
142408
+ } : {},
142409
+ status
142410
+ });
142411
+ return acc;
142412
+ }, []);
142413
+ if (items2.length === 0) return null;
142414
+ return {
142415
+ type: "operation_progress",
142416
+ operationId: operation.operationId,
142417
+ operationKind: operation.kind,
142418
+ items: items2
142419
+ };
142420
+ };
142421
+ const mergeProgressItem = (existing, next2) => {
142422
+ if (existing && (progressStatusRank(existing.status) === 2 || progressStatusRank(existing.status) > progressStatusRank(next2.status))) return existing;
142423
+ return {
142424
+ ...existing,
142425
+ ...next2
142426
+ };
142427
+ };
142428
+ const mergeOperationProgressContent = (existing, next2) => {
142429
+ const mergedItems = /* @__PURE__ */ new Map();
142430
+ for (const item of existing?.items ?? []) {
142431
+ mergedItems.set(getOperationProgressTargetKey(item.target), item);
142432
+ }
142433
+ for (const item of next2.items) {
142434
+ const key2 = getOperationProgressTargetKey(item.target);
142435
+ mergedItems.set(key2, mergeProgressItem(mergedItems.get(key2), item));
142436
+ }
142437
+ return {
142438
+ ...next2,
142439
+ items: [
142440
+ ...mergedItems.values()
142441
+ ]
142442
+ };
142443
+ };
142444
+ const upsertOperationProgressHistory = async (sessionDoc, operation, now2 = getServerNow, statusByTarget) => {
142445
+ if (operation.kind !== "session_create" && operation.kind !== "session_create_many") return;
142446
+ const id2 = getOperationProgressTurnId(operation.requesterSessionId, operation.operationId);
142447
+ const duplicatePrefix = `${id2}:duplicate:`;
142448
+ const doc = sessionDoc.handle?.doc;
142449
+ if (doc) {
142450
+ const list2 = doc.getList("history");
142451
+ let seen = false;
142452
+ let renamed = false;
142453
+ for (let index = 0; index < list2.length; index++) {
142454
+ const row = list2.get(index);
142455
+ if (row?.get("id") !== id2 || row.get("role") !== "system") continue;
142456
+ if (seen) {
142457
+ row.set("id", `${duplicatePrefix}${row.id}`);
142458
+ renamed = true;
142459
+ }
142460
+ seen = true;
142461
+ }
142462
+ if (renamed) doc.commit();
142463
+ }
142464
+ const isProgressRow = (entry) => entry.role === "system" && (entry.id === id2 || entry.id.startsWith(duplicatePrefix));
142465
+ const timestamp2 = new Date(now2()).toISOString();
142466
+ await sessionDoc.updateHistory((history) => {
142467
+ const existingIndex = history.findIndex((entry2) => entry2.id === id2 && entry2.role === "system");
142468
+ const duplicates = history.filter(isProgressRow);
142469
+ const existing = duplicates[0];
142470
+ const existingProgress = duplicates.flatMap((entry2) => entry2.items ?? []).filter((item) => item.type === "operation_progress").reduce((merged2, item) => mergeOperationProgressContent(merged2, item), void 0);
142471
+ const materializedTargets = new Set((existingProgress?.items ?? []).map((item) => getOperationProgressTargetKey(item.target)));
142472
+ const content = buildOperationProgressContent(operation, statusByTarget, materializedTargets);
142473
+ if (!content) return history;
142474
+ const merged = mergeOperationProgressContent(existingProgress, content);
142475
+ const nextItems = [
142476
+ merged
142477
+ ];
142478
+ if (duplicates.length === 1 && existing && JSON.stringify(existing.items ?? []) === JSON.stringify(nextItems)) {
142479
+ return history;
142480
+ }
142481
+ const entry = {
142482
+ ...existing ?? {},
142483
+ id: id2,
142484
+ role: "system",
142485
+ userId: operation.requesterUserId,
142486
+ timestamp: existing?.timestamp ?? timestamp2,
142487
+ items: nextItems,
142488
+ fileDiff: existing?.fileDiff ?? [],
142489
+ finished: true
142490
+ };
142491
+ if (existingIndex < 0) return [
142492
+ ...history,
142493
+ entry
142494
+ ];
142495
+ return history.flatMap((candidate, index) => index === existingIndex ? [
142496
+ entry
142497
+ ] : isProgressRow(candidate) ? [] : [
142498
+ candidate
142499
+ ]);
142500
+ });
142501
+ };
142103
142502
  const TARGET_OUTPUT_PREVIEW_MAX_BYTES = 8 * 1024;
142104
142503
  const MATERIALIZATION_RETRY_MIN_MS = 1e3;
142105
142504
  const MATERIALIZATION_RETRY_MAX_MS = 3e4;
@@ -142169,6 +142568,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142169
142568
  metaWatch = null;
142170
142569
  store = null;
142171
142570
  storeWatch = null;
142571
+ progressRetryTimer = null;
142172
142572
  storeWakeTimer = null;
142173
142573
  started = false;
142174
142574
  materializationClaimToken = randomUUID();
@@ -142207,6 +142607,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142207
142607
  this.storeWatch = null;
142208
142608
  if (this.storeWakeTimer) clearTimeout(this.storeWakeTimer);
142209
142609
  this.storeWakeTimer = null;
142610
+ if (this.progressRetryTimer) clearTimeout(this.progressRetryTimer);
142611
+ this.progressRetryTimer = null;
142210
142612
  this.store?.close();
142211
142613
  this.store = null;
142212
142614
  for (const subscription of this.targetSubscriptions.values()) {
@@ -142268,6 +142670,20 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142268
142670
  for (const operation of active2) {
142269
142671
  await this.reconcileOperation(operation);
142270
142672
  }
142673
+ const pendingProgress = this.withStore((store) => store.listPendingProgress(this.options.workspaceId, this.options.machineId));
142674
+ for (const operation of pendingProgress) await this.writeOperationProgress(operation);
142675
+ if (this.withStore((store) => store.listPendingProgress(this.options.workspaceId, this.options.machineId)).length > 0) {
142676
+ if (!this.progressRetryTimer) {
142677
+ this.progressRetryTimer = setTimeout(() => {
142678
+ this.progressRetryTimer = null;
142679
+ void this.wake("progress-retry");
142680
+ }, 5e3);
142681
+ this.progressRetryTimer.unref?.();
142682
+ }
142683
+ } else if (this.progressRetryTimer) {
142684
+ clearTimeout(this.progressRetryTimer);
142685
+ this.progressRetryTimer = null;
142686
+ }
142271
142687
  const pendingDeliveries = this.withStore((store) => store.listPendingDeliveries(this.options.workspaceId));
142272
142688
  for (const delivery of pendingDeliveries) {
142273
142689
  this.enqueueDelivery(delivery, reason);
@@ -142293,9 +142709,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142293
142709
  return;
142294
142710
  }
142295
142711
  const changed = JSON.stringify(items2) !== JSON.stringify(operation.items);
142712
+ let latestOperation = operation;
142296
142713
  if (changed) {
142297
- this.withStore((store) => store.updateItems(operation.requesterSessionId, operation.operationId, items2));
142714
+ latestOperation = this.withStore((store) => store.updateItems(operation.requesterSessionId, operation.operationId, items2));
142298
142715
  }
142716
+ await this.writeOperationProgress(latestOperation);
142299
142717
  if (items2.every((item) => item.status !== "active")) {
142300
142718
  const completion = {
142301
142719
  type: "result",
@@ -142303,11 +142721,89 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142303
142721
  items: items2
142304
142722
  }
142305
142723
  };
142306
- this.withStore((store) => store.finish(operation.requesterSessionId, operation.operationId, completion));
142724
+ latestOperation = this.withStore((store) => store.finish(operation.requesterSessionId, operation.operationId, completion));
142725
+ await this.writeOperationProgress(latestOperation);
142307
142726
  this.clearDeadline(operation);
142308
142727
  this.clearOperationMaterializationRetries(operation);
142309
142728
  }
142310
142729
  }
142730
+ async writeOperationProgress(operation) {
142731
+ const ownerStore = this.store;
142732
+ if (!ownerStore) return;
142733
+ try {
142734
+ if (operation.kind !== "session_create" && operation.kind !== "session_create_many") return;
142735
+ const metaRecord = await this.options.workspaceDocument.repo.getDocMeta(getSessionRoomId(operation.requesterSessionId));
142736
+ if (!metaRecord?.meta || isLoroRepoDocDeleted(metaRecord)) return;
142737
+ const sessionDoc = await this.options.workspaceDocument.getOrCreateSessionDoc(operation.requesterSessionId);
142738
+ const statusByTarget = await this.collectOperationProgressTargetStatuses(operation);
142739
+ if (!this.started || this.store !== ownerStore) return;
142740
+ await upsertOperationProgressHistory(sessionDoc, operation, this.now, statusByTarget);
142741
+ if (operation.state === "finished" && this.progressIsSettled(operation, await sessionDoc.getHistory(), statusByTarget)) {
142742
+ await this.options.workspaceDocument.repo.flush();
142743
+ if (!this.started || this.store !== ownerStore) return;
142744
+ this.withStore((store) => store.settleProgress(operation.requesterSessionId, operation.operationId));
142745
+ }
142746
+ } catch (error2) {
142747
+ this.options.logger.warn(`[orchestration] Progress update failed for ${operation.operationId}; retrying on a later wake: ${error2 instanceof Error ? error2.message : String(error2)}`);
142748
+ }
142749
+ }
142750
+ progressIsSettled(operation, history, observed) {
142751
+ const row = history.find((entry) => entry.id === getOperationProgressTurnId(operation.requesterSessionId, operation.operationId));
142752
+ const content = row?.items?.find((item) => item.type === "operation_progress");
142753
+ const published = new Map((content?.items ?? []).map((item) => [
142754
+ getOperationProgressTargetKey(item.target),
142755
+ item.status
142756
+ ]));
142757
+ const expected = new Map(observed);
142758
+ for (const item of operation.items) {
142759
+ if (!("target" in item) || !item.target) continue;
142760
+ const key2 = getOperationProgressTargetKey(item.target);
142761
+ if (expected.has(key2)) continue;
142762
+ if (item.status === "succeeded" || item.status === "cancelled" || item.status === "failed" && item.error.code === "TARGET_FAILED") {
142763
+ if (item.status === "succeeded" || published.has(key2)) expected.set(key2, item.status);
142764
+ } else if (item.status === "active" && item.inputDurable) expected.set(key2, "created");
142765
+ }
142766
+ if (published.size !== expected.size) return false;
142767
+ return [
142768
+ ...expected
142769
+ ].every(([key2, status]) => status !== "created" && status !== "running" && published.get(key2) === status);
142770
+ }
142771
+ async collectOperationProgressTargetStatuses(operation) {
142772
+ const statuses = /* @__PURE__ */ new Map();
142773
+ await this.mapItemsWithConcurrency(operation.items, 5, async (item) => {
142774
+ if (!("target" in item) || !item.target) return;
142775
+ if (item.status === "active" && !item.inputDurable) return;
142776
+ const target = item.target;
142777
+ const metaRecord = await this.options.workspaceDocument.repo.getDocMeta(getSessionRoomId(target.sessionId));
142778
+ if (!metaRecord?.meta || isLoroRepoDocDeleted(metaRecord)) return;
142779
+ const meta = metaRecord.meta;
142780
+ const sessionDoc = await this.options.workspaceDocument.getOrCreateSessionDoc(target.sessionId);
142781
+ this.subscribeTarget(target.sessionId, sessionDoc);
142782
+ const history = await sessionDoc.getHistory();
142783
+ const userTurn = history.find((entry) => entry.id === target.userTurnId && entry.role === "user");
142784
+ if (!userTurn) return;
142785
+ const key2 = getOperationProgressTargetKey(target);
142786
+ if (userTurn.status === "failed") {
142787
+ statuses.set(key2, "failed");
142788
+ return;
142789
+ }
142790
+ if (userTurn.status === "canceled") {
142791
+ statuses.set(key2, "cancelled");
142792
+ return;
142793
+ }
142794
+ if (terminalAssistantFor(history, target.userTurnId)) {
142795
+ statuses.set(key2, "succeeded");
142796
+ return;
142797
+ }
142798
+ const execution = this.options.executionService.getExecutionSnapshot(target.sessionId);
142799
+ if (execution.activeTurnId === `assistant:${target.userTurnId}` || meta.processingUserMsgId === target.userTurnId || userTurn.status === "processing") {
142800
+ statuses.set(key2, "running");
142801
+ return;
142802
+ }
142803
+ statuses.set(key2, "created");
142804
+ });
142805
+ return statuses;
142806
+ }
142311
142807
  async reconcileItem(operation, item, index, isAtDeadline, signal) {
142312
142808
  if (item.status !== "active") return item;
142313
142809
  if (signal.aborted) return item;
@@ -142366,7 +142862,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142366
142862
  error: makeLodyError("TARGET_TIMEOUT", "Target input was not durably materialized before the Operation deadline.", false)
142367
142863
  };
142368
142864
  }
142369
- this.withStore((store) => store.markItemInputDurable(operation.requesterSessionId, operation.operationId, index, claimedMaterialization ? this.materializationClaimToken : void 0));
142865
+ const materializedOperation = this.withStore((store) => store.markItemInputDurable(operation.requesterSessionId, operation.operationId, index, claimedMaterialization ? this.materializationClaimToken : void 0));
142866
+ await this.writeOperationProgress(materializedOperation);
142370
142867
  this.clearMaterializationRetry(operation, index);
142371
142868
  item = {
142372
142869
  ...item,
@@ -142447,7 +142944,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142447
142944
  return meta.latestUserMsgId === userTurnId || meta.processingUserMsgId === userTurnId || meta.lastHandledUserMsgId === userTurnId || userTurn.status === "handled" || userTurn.status === "failed" || userTurn.status === "canceled" || terminalAssistantFor(history, userTurnId) !== void 0;
142448
142945
  }
142449
142946
  subscribeTarget(sessionId, sessionDoc) {
142450
- if (this.targetSubscriptions.has(sessionId)) return;
142947
+ if (!this.started || this.targetSubscriptions.has(sessionId)) return;
142451
142948
  const unsubscribe = sessionDoc.mirror?.subscribe(() => {
142452
142949
  void this.wake("target-history");
142453
142950
  }) ?? (() => {
@@ -142755,11 +143252,15 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142755
143252
  if (!operation.completion) {
142756
143253
  throw new Error(`Finished Operation ${operation.operationId} has no completion.`);
142757
143254
  }
143255
+ const progressMessageId = this.findProgressMessageId(await sessionDoc.getHistory(), operation);
142758
143256
  const item = {
142759
143257
  type: "operation_completion",
142760
143258
  deliveryId: delivery.deliveryId,
142761
143259
  operationId: operation.operationId,
142762
143260
  operationKind: operation.kind,
143261
+ ...progressMessageId ? {
143262
+ progressMessageId
143263
+ } : {},
142763
143264
  completion: operation.completion,
142764
143265
  ...!configAvailable ? {
142765
143266
  continuation: {
@@ -142774,6 +143275,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142774
143275
  const turn = {
142775
143276
  id: delivery.systemTurnId,
142776
143277
  role: "system",
143278
+ userId: operation.requesterUserId,
142777
143279
  timestamp: new Date(this.now()).toISOString(),
142778
143280
  items: [
142779
143281
  item
@@ -142791,6 +143293,25 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
142791
143293
  turn
142792
143294
  ]);
142793
143295
  }
143296
+ findProgressMessageId(history, operation) {
143297
+ if (operation.kind !== "session_create" && operation.kind !== "session_create_many") {
143298
+ return void 0;
143299
+ }
143300
+ const progressMessageId = getOperationProgressTurnId(operation.requesterSessionId, operation.operationId);
143301
+ const progress = history.find((entry) => entry.id === progressMessageId && entry.role === "system")?.items?.find((item) => item.type === "operation_progress" && item.operationId === operation.operationId);
143302
+ if (progress?.type !== "operation_progress") return void 0;
143303
+ const covered = new Map(progress.items.map((item) => [
143304
+ getOperationProgressTargetKey(item.target),
143305
+ item.status
143306
+ ]));
143307
+ const completion = operation.completion;
143308
+ const results = completion?.type === "result" ? completion.value.items : completion?.type === "cancelled" ? completion.partial?.items ?? [] : [];
143309
+ const complete2 = [
143310
+ ...operation.items,
143311
+ ...results
143312
+ ].every((item) => item.status === "succeeded" ? covered.get(getOperationProgressTargetKey(item.target)) === "succeeded" : item.status === "active" && item.inputDurable ? covered.has(getOperationProgressTargetKey(item.target)) : true);
143313
+ return complete2 ? progressMessageId : void 0;
143314
+ }
142794
143315
  getContinuationEvidence(history, systemTurnId) {
142795
143316
  const index = history.findIndex((entry) => entry.id === systemTurnId && entry.role === "system");
142796
143317
  if (index < 0) return null;
@@ -154640,6 +155161,9 @@ ${edit.newString}` : edit.newString;
154640
155161
  deliveryId: item.deliveryId,
154641
155162
  operationId: item.operationId,
154642
155163
  operationKind: item.operationKind,
155164
+ ...item.progressMessageId ? {
155165
+ progressMessageId: item.progressMessageId
155166
+ } : {},
154643
155167
  completion: item.completion,
154644
155168
  ...item.continuation ? {
154645
155169
  continuation: item.continuation
@@ -155623,13 +156147,25 @@ ${entry.text}`).join("\n\n");
155623
156147
  }
155624
156148
  }
155625
156149
  async function readSessionMachineAccess(args2) {
155626
- const requesterUserId = resolveSessionCommandRequesterUserId(args2.auth, args2.requesterUserId);
156150
+ const requester = resolveSessionRequester(args2.auth, args2.requesterUserId, args2.delegatedRequester);
156151
+ return await readResolvedSessionMachineAccess({
156152
+ auth: args2.auth,
156153
+ workspaceId: args2.workspaceId,
156154
+ machineId: args2.machineId,
156155
+ requester,
156156
+ ...args2.localProjectId ? {
156157
+ localProjectId: args2.localProjectId
156158
+ } : {}
156159
+ });
156160
+ }
156161
+ async function readResolvedSessionMachineAccess(args2) {
155627
156162
  try {
155628
- return await canRequestMachineForCliToken({
156163
+ const readAccess = args2.requester.isDelegated ? canUseMachineForCliToken : canRequestMachineForCliToken;
156164
+ return await readAccess({
155629
156165
  token: args2.auth.token,
155630
156166
  workspaceId: args2.workspaceId,
155631
156167
  machineId: args2.machineId,
155632
- requesterUserId,
156168
+ requesterUserId: args2.requester.userId,
155633
156169
  ...args2.localProjectId ? {
155634
156170
  localProjectId: args2.localProjectId
155635
156171
  } : {}
@@ -155641,7 +156177,7 @@ ${entry.text}`).join("\n\n");
155641
156177
  }
155642
156178
  }
155643
156179
  async function assertMachineAccess(args2) {
155644
- const access = await readSessionMachineAccess(args2);
156180
+ const access = await readResolvedSessionMachineAccess(args2);
155645
156181
  if (!access.allowed) {
155646
156182
  throw new Error(`Machine access denied for ${args2.machineId}: ${access.reason}`);
155647
156183
  }
@@ -155715,6 +156251,26 @@ ${entry.text}`).join("\n\n");
155715
156251
  }
155716
156252
  return auth.userId;
155717
156253
  }
156254
+ function resolveSessionRequester(auth, requesterUserId, delegatedRequester) {
156255
+ if (!delegatedRequester) {
156256
+ return {
156257
+ userId: resolveSessionCommandRequesterUserId(auth, requesterUserId),
156258
+ isDelegated: false
156259
+ };
156260
+ }
156261
+ const delegatedUserId = normalizeCliValue(delegatedRequester.userId);
156262
+ if (!delegatedUserId) {
156263
+ throw new Error("Delegated Session requester must identify a user.");
156264
+ }
156265
+ const requested = normalizeCliValue(requesterUserId);
156266
+ if (requested !== void 0 && requested !== delegatedUserId) {
156267
+ throw new Error("Requester identity must match the delegated Session requester.");
156268
+ }
156269
+ return {
156270
+ userId: delegatedUserId,
156271
+ isDelegated: true
156272
+ };
156273
+ }
155718
156274
  function resolveSessionCreateOwnerUserId(requesterUserId, sessionOwnerUserId) {
155719
156275
  return normalizeCliValue(sessionOwnerUserId) ?? requesterUserId;
155720
156276
  }
@@ -155741,11 +156297,11 @@ ${entry.text}`).join("\n\n");
155741
156297
  async function listAuthorizedMachineMetasForCreate(args2) {
155742
156298
  const rows = await Promise.all(args2.machines.map(async (machine) => ({
155743
156299
  machine,
155744
- access: await readSessionMachineAccess({
156300
+ access: await readResolvedSessionMachineAccess({
155745
156301
  auth: args2.auth,
155746
156302
  workspaceId: args2.workspaceId,
155747
156303
  machineId: machine.id,
155748
- requesterUserId: args2.requesterUserId
156304
+ requester: args2.requester
155749
156305
  })
155750
156306
  })));
155751
156307
  return filterAuthorizedMachineMetas(rows.map((row) => row.machine), new Set(rows.filter((row) => row.access.allowed).map((row) => row.machine.id)));
@@ -155753,11 +156309,11 @@ ${entry.text}`).join("\n\n");
155753
156309
  async function filterAuthorizedLocalProjectsForCreate(args2) {
155754
156310
  const rows = await Promise.all(args2.localProjects.map(async (project) => ({
155755
156311
  project,
155756
- access: await readSessionMachineAccess({
156312
+ access: await readResolvedSessionMachineAccess({
155757
156313
  auth: args2.auth,
155758
156314
  workspaceId: args2.workspaceId,
155759
156315
  machineId: args2.machineId,
155760
- requesterUserId: args2.requesterUserId,
156316
+ requester: args2.requester,
155761
156317
  localProjectId: project.id
155762
156318
  })
155763
156319
  })));
@@ -155772,7 +156328,7 @@ ${entry.text}`).join("\n\n");
155772
156328
  auth: args2.auth,
155773
156329
  workspaceId: args2.workspaceId,
155774
156330
  machines,
155775
- requesterUserId: args2.requesterUserId
156331
+ requester: args2.requester
155776
156332
  });
155777
156333
  if (authorizedMachines.length === 0) {
155778
156334
  throw new Error("No authorized machines are available in this workspace.");
@@ -155838,7 +156394,7 @@ ${entry.text}`).join("\n\n");
155838
156394
  const repos = await listWorkspaceGitHubRepositoriesForCliToken({
155839
156395
  token: args2.auth.token,
155840
156396
  workspaceId: args2.workspaceId,
155841
- requesterUserId: resolveSessionCommandRequesterUserId(args2.auth, args2.requesterUserId),
156397
+ requesterUserId: args2.requesterUserId,
155842
156398
  enabledOnly: true
155843
156399
  });
155844
156400
  const normalized = args2.repoFullName.toLowerCase();
@@ -155862,7 +156418,7 @@ ${entry.text}`).join("\n\n");
155862
156418
  }
155863
156419
  const response2 = await withMachineRpcClient(args2, async (client2) => await client2.requestLocalProjectGitState({
155864
156420
  localProjectId: args2.localProjectId,
155865
- requestedByUserId: resolveSessionCommandRequesterUserId(args2.auth, args2.requesterUserId),
156421
+ requestedByUserId: args2.requesterUserId,
155866
156422
  timeoutMs: 3e4
155867
156423
  }));
155868
156424
  if (!response2) {
@@ -155924,7 +156480,7 @@ ${entry.text}`).join("\n\n");
155924
156480
  return await listWorkspaceGitHubRepositoriesForCliToken({
155925
156481
  token: args2.auth.token,
155926
156482
  workspaceId: args2.workspaceId,
155927
- requesterUserId: resolveSessionCommandRequesterUserId(args2.auth, args2.requesterUserId),
156483
+ requesterUserId: args2.requesterUserId,
155928
156484
  enabledOnly: true
155929
156485
  });
155930
156486
  } catch (error2) {
@@ -155952,7 +156508,7 @@ ${entry.text}`).join("\n\n");
155952
156508
  } : {}
155953
156509
  });
155954
156510
  }
155955
- async function resolveLocalProjectRefOnMachineOrThrow(manager, workspaceId, auth, machineId, selector, requesterUserId, requestedBranch, useWorktree) {
156511
+ async function resolveLocalProjectRefOnMachineOrThrow(manager, workspaceId, auth, machineId, selector, requester, requestedBranch, useWorktree) {
155956
156512
  await syncMachineFlockDocsForRead(manager, workspaceId, [
155957
156513
  machineId
155958
156514
  ], "session.local-projects");
@@ -155965,7 +156521,7 @@ ${entry.text}`).join("\n\n");
155965
156521
  workspaceId,
155966
156522
  machineId,
155967
156523
  localProjects,
155968
- requesterUserId
156524
+ requester
155969
156525
  });
155970
156526
  if (authorizedLocalProjects.length === 0) {
155971
156527
  throw new Error("No authorized local projects are available on the target machine.");
@@ -155988,7 +156544,7 @@ ${entry.text}`).join("\n\n");
155988
156544
  machineId,
155989
156545
  localProjectId: project.id,
155990
156546
  localRootPath: project.rootPath,
155991
- requesterUserId,
156547
+ requesterUserId: requester.userId,
155992
156548
  requestedBranch,
155993
156549
  useWorktree
155994
156550
  });
@@ -156051,7 +156607,7 @@ ${entry.text}`).join("\n\n");
156051
156607
  async function resolveCreateContext(args2) {
156052
156608
  const workspaceId = args2.workspace.id;
156053
156609
  const agentSelector = resolveCreateAgentSelector(args2.options);
156054
- const requesterUserId = resolveSessionCommandRequesterUserId(args2.auth, args2.options.requesterUserId);
156610
+ const requesterUserId = args2.requester.userId;
156055
156611
  const parentSelector = normalizeCliValue(args2.options.parent);
156056
156612
  const currentSessionId = resolveCreateCurrentSessionId(args2.options);
156057
156613
  if (parentSelector && args2.options.useCurrentSessionAsParent === true) {
@@ -156077,14 +156633,14 @@ ${entry.text}`).join("\n\n");
156077
156633
  auth: args2.auth,
156078
156634
  machineSelector: args2.options.machine,
156079
156635
  defaultMachineId: args2.options.defaultMachineId,
156080
- requesterUserId,
156636
+ requester: args2.requester,
156081
156637
  parentSessionId
156082
156638
  });
156083
156639
  await assertMachineAccess({
156084
156640
  auth: args2.auth,
156085
156641
  workspaceId,
156086
156642
  machineId: targetMachine.id,
156087
- requesterUserId
156643
+ requester: args2.requester
156088
156644
  });
156089
156645
  if (args2.skipMachineAvailabilityCheck !== true) {
156090
156646
  await ensureTargetMachineOnline({
@@ -156138,13 +156694,13 @@ ${entry.text}`).join("\n\n");
156138
156694
  branch
156139
156695
  };
156140
156696
  } else if (normalizedLocalProject) {
156141
- project = await resolveLocalProjectRefOnMachineOrThrow(args2.manager, workspaceId, args2.auth, targetMachine.id, normalizedLocalProject, requesterUserId, requestedBranch, args2.options.worktree === true);
156697
+ project = await resolveLocalProjectRefOnMachineOrThrow(args2.manager, workspaceId, args2.auth, targetMachine.id, normalizedLocalProject, args2.requester, requestedBranch, args2.options.worktree === true);
156142
156698
  }
156143
156699
  await assertMachineAccess({
156144
156700
  auth: args2.auth,
156145
156701
  workspaceId,
156146
156702
  machineId: targetMachine.id,
156147
- requesterUserId,
156703
+ requester: args2.requester,
156148
156704
  localProjectId: project?.kind === "local" ? project.localProjectId : void 0
156149
156705
  });
156150
156706
  return {
@@ -156163,7 +156719,11 @@ ${entry.text}`).join("\n\n");
156163
156719
  };
156164
156720
  }
156165
156721
  async function validateSessionCreateOptions(args2) {
156166
- const resolved = await resolveCreateContext(args2);
156722
+ const requester = resolveSessionRequester(args2.auth, args2.options.requesterUserId, args2.options.delegatedRequester);
156723
+ const resolved = await resolveCreateContext({
156724
+ ...args2,
156725
+ requester
156726
+ });
156167
156727
  return await resolveEffectiveSessionCreateDispatchConfig({
156168
156728
  manager: args2.manager,
156169
156729
  workspaceId: args2.workspace.id,
@@ -156266,13 +156826,15 @@ ${entry.text}`).join("\n\n");
156266
156826
  sessionId: options.sessionId
156267
156827
  });
156268
156828
  }
156269
- const requesterUserId = resolveSessionCommandRequesterUserId(auth, options.requesterUserId);
156829
+ const requester = resolveSessionRequester(auth, options.requesterUserId, options.delegatedRequester);
156830
+ const requesterUserId = requester.userId;
156270
156831
  const sessionOwnerUserId = resolveSessionCreateOwnerUserId(requesterUserId, options.sessionOwnerUserId);
156271
156832
  const resolved = await resolveCreateContext({
156272
156833
  auth,
156273
156834
  workspace,
156274
156835
  manager,
156275
- options
156836
+ options,
156837
+ requester
156276
156838
  });
156277
156839
  const { targetMachine, agentConfig, project, parentSessionId, openedBySessionId, openedByRootSessionId, taskId } = resolved;
156278
156840
  const effectiveDispatchConfig = await resolveEffectiveSessionCreateDispatchConfig({
@@ -156433,8 +156995,17 @@ ${entry.text}`).join("\n\n");
156433
156995
  }
156434
156996
  }
156435
156997
  async function validateSessionChatTarget(args2) {
156998
+ const requester = resolveSessionRequester(args2.auth, args2.requesterUserIdOverride, args2.delegatedRequester);
156999
+ return await validateSessionChatTargetForRequester({
157000
+ auth: args2.auth,
157001
+ workspace: args2.workspace,
157002
+ manager: args2.manager,
157003
+ sessionId: args2.sessionId,
157004
+ requester
157005
+ });
157006
+ }
157007
+ async function validateSessionChatTargetForRequester(args2) {
156436
157008
  await syncWorkspaceMetaForRead(args2.manager, `session.chat:${args2.sessionId}:prewrite:meta`);
156437
- const requesterUserId = resolveSessionCommandRequesterUserId(args2.auth, args2.requesterUserIdOverride);
156438
157009
  const session2 = await resolveSessionMetaOrThrow(args2.manager, args2.sessionId);
156439
157010
  if (session2.isArchived) {
156440
157011
  throw new Error(`Session ${args2.sessionId} is archived. Restore it before chatting.`);
@@ -156443,7 +157014,7 @@ ${entry.text}`).join("\n\n");
156443
157014
  auth: args2.auth,
156444
157015
  workspaceId: args2.workspace.id,
156445
157016
  machineId: session2.machineId,
156446
- requesterUserId,
157017
+ requester: args2.requester,
156447
157018
  localProjectId: session2.project?.kind === "local" ? session2.project.localProjectId : void 0
156448
157019
  });
156449
157020
  await ensureTargetMachineOnline({
@@ -156453,14 +157024,15 @@ ${entry.text}`).join("\n\n");
156453
157024
  });
156454
157025
  return session2;
156455
157026
  }
156456
- async function sendSessionChatResult(auth, workspace, manager, sessionId, prompt2, dispatchConfig, structuredOutput, requesterUserIdOverride, orchestration) {
156457
- const requesterUserId = resolveSessionCommandRequesterUserId(auth, requesterUserIdOverride);
156458
- const session2 = await validateSessionChatTarget({
157027
+ async function sendSessionChatResult(auth, workspace, manager, sessionId, prompt2, dispatchConfig, structuredOutput, requesterUserIdOverride, orchestration, delegatedRequester) {
157028
+ const requester = resolveSessionRequester(auth, requesterUserIdOverride, delegatedRequester);
157029
+ const requesterUserId = requester.userId;
157030
+ const session2 = await validateSessionChatTargetForRequester({
156459
157031
  auth,
156460
157032
  workspace,
156461
157033
  manager,
156462
157034
  sessionId,
156463
- requesterUserIdOverride
157035
+ requester
156464
157036
  });
156465
157037
  if (dispatchConfig.modeId || dispatchConfig.modelId || dispatchConfig.configOptionValues) {
156466
157038
  const capability = await readAgentAcpCapability({
@@ -157112,6 +157684,7 @@ ${entry.text}`).join("\n\n");
157112
157684
  auth,
157113
157685
  workspaceId,
157114
157686
  machineId: session2.machineId,
157687
+ requester: resolveSessionRequester(auth),
157115
157688
  localProjectId: session2.project?.kind === "local" ? session2.project.localProjectId : void 0
157116
157689
  });
157117
157690
  const turnId = await resolveRunningAssistantTurnId(manager, sessionId);
@@ -157565,6 +158138,7 @@ ${entry.text}`).join("\n\n");
157565
158138
  resolveRenameArgs,
157566
158139
  resolveSessionCommandRequesterUserId,
157567
158140
  resolveSessionCreateOwnerUserId,
158141
+ resolveSessionRequester,
157568
158142
  resolveTurnDispatchConfig,
157569
158143
  resolveTurnDispatchConfigFromInputConfig,
157570
158144
  rollbackPendingSessionCreate,
@@ -161076,11 +161650,32 @@ ${entry.text}`).join("\n\n");
161076
161650
  };
161077
161651
  }
161078
161652
  limits;
161079
- async previewFile(request2, options = {}) {
161080
- const limits = options.sameMachine ? {
161081
- ...FILE_PREVIEW_V3_LOCAL_LIMITS,
161082
- ...this.deps.limits
161083
- } : this.limits;
161653
+ async resolveLocalFile(request2) {
161654
+ const workspace = await this.deps.resolveWorkspace(request2.sessionId);
161655
+ if (!workspace.ok) return filePreviewV3Error(workspace.code, {
161656
+ message: workspace.message
161657
+ });
161658
+ const resolution = resolveFilePreviewPath({
161659
+ workspaceRoot: workspace.workspaceRoot,
161660
+ requestedPath: request2.path,
161661
+ options: {
161662
+ ...this.deps.pathPolicy,
161663
+ allowArbitraryPaths: true
161664
+ }
161665
+ });
161666
+ if (!resolution.ok) return filePreviewV3Error(resolution.rejection.code, {
161667
+ message: resolution.rejection.message,
161668
+ path: request2.path
161669
+ });
161670
+ return {
161671
+ status: "local-file",
161672
+ path: resolution.resolved.reportedPath,
161673
+ absolutePath: resolution.resolved.absolutePath,
161674
+ external: resolution.resolved.external
161675
+ };
161676
+ }
161677
+ async previewFile(request2) {
161678
+ const limits = this.limits;
161084
161679
  const workspace = await this.deps.resolveWorkspace(request2.sessionId);
161085
161680
  if (!workspace.ok) {
161086
161681
  return filePreviewV3Error(workspace.code, {
@@ -161096,10 +161691,7 @@ ${entry.text}`).join("\n\n");
161096
161691
  extraRoots: this.deps.extraRoots
161097
161692
  },
161098
161693
  options: {
161099
- ...this.deps.pathPolicy,
161100
- ...options.allowArbitraryPaths ? {
161101
- allowArbitraryPaths: true
161102
- } : {}
161694
+ ...this.deps.pathPolicy
161103
161695
  }
161104
161696
  });
161105
161697
  if (!resolution.ok) {
@@ -161164,13 +161756,13 @@ ${entry.text}`).join("\n\n");
161164
161756
  };
161165
161757
  }
161166
161758
  if (isImageByName || hasBinaryNul(bytes)) {
161167
- return this.binaryOk(resolved, bytes, digest, limits, options.sameMachine === true);
161759
+ return this.binaryOk(resolved, bytes, digest, limits);
161168
161760
  }
161169
161761
  let text;
161170
161762
  try {
161171
161763
  text = decodeUtf8(bytes);
161172
161764
  } catch {
161173
- return this.binaryOk(resolved, bytes, digest, limits, options.sameMachine === true);
161765
+ return this.binaryOk(resolved, bytes, digest, limits);
161174
161766
  }
161175
161767
  let content;
161176
161768
  try {
@@ -161183,15 +161775,6 @@ ${entry.text}`).join("\n\n");
161183
161775
  limitBytes: limits.maxCompressedBytes
161184
161776
  });
161185
161777
  }
161186
- const payloadOverflow = options.sameMachine ? measurePayloadOverflow(content, FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) : null;
161187
- if (payloadOverflow !== null) {
161188
- return filePreviewV3Error("too_large", {
161189
- message: "File is too large to preview.",
161190
- path: resolved.reportedPath,
161191
- sizeBytes: bytes.byteLength,
161192
- limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
161193
- });
161194
- }
161195
161778
  return {
161196
161779
  status: "ok",
161197
161780
  v: FILE_PREVIEW_PROTOCOL_VERSION,
@@ -161207,7 +161790,7 @@ ${entry.text}`).join("\n\n");
161207
161790
  readonly: true
161208
161791
  };
161209
161792
  }
161210
- binaryOk(resolved, bytes, digest, limits, sameMachine) {
161793
+ binaryOk(resolved, bytes, digest, limits) {
161211
161794
  if (bytes.byteLength > limits.maxBinaryBytes) {
161212
161795
  return filePreviewV3Error("too_large", {
161213
161796
  message: "Binary file is too large to preview.",
@@ -161217,14 +161800,6 @@ ${entry.text}`).join("\n\n");
161217
161800
  });
161218
161801
  }
161219
161802
  const data = Buffer.from(bytes).toString("base64");
161220
- if (sameMachine && data.length > FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) {
161221
- return filePreviewV3Error("too_large", {
161222
- message: "Binary file is too large to preview.",
161223
- path: resolved.reportedPath,
161224
- sizeBytes: bytes.byteLength,
161225
- limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
161226
- });
161227
- }
161228
161803
  const mimeType = getImageMimeTypeForPath(resolved.reportedPath);
161229
161804
  return {
161230
161805
  status: "ok",
@@ -161265,10 +161840,6 @@ ${entry.text}`).join("\n\n");
161265
161840
  };
161266
161841
  }
161267
161842
  }
161268
- function measurePayloadOverflow(content, budgetBytes) {
161269
- const encodedBytes = content.encoding === "utf8-plain" ? Buffer.byteLength(JSON.stringify(content.text), "utf8") : content.data.length;
161270
- return encodedBytes > budgetBytes ? encodedBytes - budgetBytes : null;
161271
- }
161272
161843
  async function readFileWithinLimit(absolutePath, limitBytes) {
161273
161844
  const handle = await open(absolutePath, "r");
161274
161845
  try {
@@ -165630,7 +166201,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
165630
166201
  retryable: false
165631
166202
  };
165632
166203
  }
165633
- if (host !== "localhost" && require$$0$9.isIP(host) === 0) {
166204
+ if (host !== "localhost" && require$$0$a.isIP(host) === 0) {
165634
166205
  return {
165635
166206
  code: "host_not_loopback",
165636
166207
  message: `Preview target host must be a loopback address or "localhost", got ${target.host}.`,
@@ -165665,7 +166236,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
165665
166236
  host
165666
166237
  ];
165667
166238
  const probeTcpHost = async (host, port) => await new Promise((resolve2) => {
165668
- const socket = require$$0$9.createConnection({
166239
+ const socket = require$$0$a.createConnection({
165669
166240
  host,
165670
166241
  port
165671
166242
  });
@@ -168356,7 +168927,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
168356
168927
  };
168357
168928
  }
168358
168929
  });
168359
- this.sessionManager.setRequestPermissionHandler((sessionId, requestId, request2, agentClient) => this.handleAgentPermissionRequest(sessionId, requestId, request2, agentClient?.currentModel));
168930
+ this.sessionManager.setRequestPermissionHandler((sessionId, requestId, request2, agentClient) => this.handleAgentPermissionRequest(sessionId, requestId, request2, agentClient?.currentModel, agentClient));
168360
168931
  this.autoPromptRunner = new AutoPromptRunner({
168361
168932
  workspaceId: this.workspaceId,
168362
168933
  beginConversationTurn: (sessionId, userTurnId) => this.beginConversationTurn(sessionId, userTurnId),
@@ -168808,6 +169379,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
168808
169379
  static CODE_COLLAB_EVIDENCE_RETRY_MAX_DELAY_MS = 1600;
168809
169380
  static CONTEXT_WINDOW_USAGE_THROTTLE_MS = 400;
168810
169381
  permissionRequestStartTimes = /* @__PURE__ */ new Map();
169382
+ pendingPermissionRequests = /* @__PURE__ */ new Map();
168811
169383
  static MACHINE_ACCESS_REGISTRATION_CACHE_TTL_MS = 20 * 6e4;
168812
169384
  machineAccessRegistrationInFlight = null;
168813
169385
  machineAccessRegistrationExpiresAtMs = 0;
@@ -170247,6 +170819,9 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
170247
170819
  throw new Error(`Requester Session not found: ${operation.requesterSessionId}`);
170248
170820
  }
170249
170821
  const requester = requesterRecord.meta;
170822
+ const delegatedRequester = operation.frozenContinuationConfig.sourceTurnId ? {
170823
+ userId: operation.requesterUserId
170824
+ } : void 0;
170250
170825
  if (operation.kind === "session_create" || operation.kind === "session_create_many") {
170251
170826
  const runConfig = {
170252
170827
  ...typeof command2.modelId === "string" ? {
@@ -170275,8 +170850,12 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
170275
170850
  workspace: this.workspaceId,
170276
170851
  currentSessionId: operation.requesterSessionId,
170277
170852
  workspaceMetaPrewriteSatisfied: true,
170278
- requesterUserId: operation.requesterUserId,
170279
- sessionOwnerUserId: requester.userId,
170853
+ ...delegatedRequester ? {
170854
+ delegatedRequester
170855
+ } : {
170856
+ requesterUserId: operation.requesterUserId,
170857
+ sessionOwnerUserId: requester.userId
170858
+ },
170280
170859
  defaultMachineId: requester.machineId,
170281
170860
  sessionId: item.target.sessionId,
170282
170861
  userTurnId: item.target.userTurnId,
@@ -170309,11 +170888,11 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
170309
170888
  await sendSessionChatResult(auth, workspace, this.workspaceDocument, item.target.sessionId, prompt2, {
170310
170889
  ...resolveTurnDispatchConfig({}),
170311
170890
  taskToolsEnabled: operation.frozenContinuationConfig.inputConfig.taskToolsEnabled === true
170312
- }, void 0, operation.requesterUserId, {
170891
+ }, void 0, delegatedRequester ? void 0 : operation.requesterUserId, {
170313
170892
  userTurnId: item.target.userTurnId,
170314
170893
  chainDepth: operation.initiatorChainDepth + 1,
170315
170894
  bypassSessionQuota: shouldBypassSessionQuota(operation.kind)
170316
- });
170895
+ }, delegatedRequester);
170317
170896
  }
170318
170897
  async ensureMachineRegistered() {
170319
170898
  try {
@@ -172036,20 +172615,11 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
172036
172615
  await sessionDoc2.setLastMessageAt();
172037
172616
  }
172038
172617
  const sessionDoc = await this.workspaceDocument.getOrCreateSessionDoc(sessionId);
172039
- await sessionDoc.updateHistory((history) => {
172040
- for (let i2 = history.length - 1; i2 >= 0; i2--) {
172041
- const entry = history[i2];
172042
- if (entry && entry.role === "assistant" && (!turnId || entry.id === turnId)) {
172043
- entry.finished = true;
172044
- entry.endedAt = endedAt;
172045
- if (permissionWaitMs !== void 0) {
172046
- entry.permissionWaitMs = permissionWaitMs;
172047
- }
172048
- break;
172049
- }
172050
- }
172051
- return history;
172052
- });
172618
+ await sessionDoc.updateHistory((history) => markAssistantTurnFinished(history, {
172619
+ turnId,
172620
+ endedAt,
172621
+ permissionWaitMs
172622
+ }));
172053
172623
  await sessionDoc.waitUntilSynced();
172054
172624
  } catch (error2) {
172055
172625
  this.logger.error(`[${sessionId}] Failed to flush ACP updates during finalization:`, error2);
@@ -172643,12 +173213,23 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
172643
173213
  case "file/preview":
172644
173214
  await assertOwner(request2.params.sessionId);
172645
173215
  return await this.filePreviewService.previewFile(request2.params);
172646
- case "file/preview-local":
173216
+ case "file/resolve-local":
172647
173217
  await assertOwner(request2.params.sessionId);
172648
- return await this.filePreviewService.previewFile(request2.params, {
172649
- allowArbitraryPaths: true,
172650
- sameMachine: true
172651
- });
173218
+ return await this.filePreviewService.resolveLocalFile(request2.params);
173219
+ case "session/get-active-invocation-context": {
173220
+ const sessionId = request2.params.sessionId;
173221
+ const invocation = this.executionService.getActiveInvocationContext(sessionId);
173222
+ return invocation ? {
173223
+ type: "session/active-invocation-context",
173224
+ sessionId,
173225
+ active: true,
173226
+ ...invocation
173227
+ } : {
173228
+ type: "session/active-invocation-context",
173229
+ sessionId,
173230
+ active: false
173231
+ };
173232
+ }
172652
173233
  case "session/cancel": {
172653
173234
  const result = await this.executionService.cancelSession({
172654
173235
  type: "session/cancel",
@@ -173933,7 +174514,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
173933
174514
  cpuUsagePercent: totalCpus > 0 ? Math.min(100, loadAverage / totalCpus * 100) : 0
173934
174515
  };
173935
174516
  }
173936
- async handleAgentPermissionRequest(sessionId, requestId, request2, model) {
174517
+ async handleAgentPermissionRequest(sessionId, requestId, request2, model, agentClient) {
173937
174518
  const isAskUserQuestionRequest = isAskUserQuestionPermissionRequest(request2);
173938
174519
  const askUserQuestionMeta = isAskUserQuestionRequest ? parseAskUserQuestionPermissionMeta(request2._meta) : null;
173939
174520
  const permissionTimeoutMs = typeof askUserQuestionMeta?.autoResolveAt === "number" ? Math.min(PERMISSION_REQUEST_TIMEOUT_MS, Math.max(0, askUserQuestionMeta.autoResolveAt - getServerNow())) : PERMISSION_REQUEST_TIMEOUT_MS;
@@ -174008,6 +174589,28 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174008
174589
  }
174009
174590
  };
174010
174591
  }
174592
+ const automaticOutcome = isAskUserQuestionRequest ? void 0 : agentClient?.getAutomaticToolPermissionOutcome(request2, false);
174593
+ if (automaticOutcome) {
174594
+ try {
174595
+ await updatePermissionOutcomeInHistory(doc, requestId, automaticOutcome, this.logger);
174596
+ } catch (error2) {
174597
+ this.logger.error(`[${sessionId}] Failed to persist automatic permission outcome: ${formatErrorMessage(error2)}`);
174598
+ return {
174599
+ outcome: {
174600
+ outcome: "cancelled"
174601
+ }
174602
+ };
174603
+ }
174604
+ capturePermissionResolved("allow", {
174605
+ resolutionSource: "run_config_auto_approve"
174606
+ });
174607
+ return {
174608
+ outcome: automaticOutcome
174609
+ };
174610
+ }
174611
+ const pendingRequests = this.pendingPermissionRequests.get(sessionId) ?? /* @__PURE__ */ new Set();
174612
+ pendingRequests.add(requestId);
174613
+ this.pendingPermissionRequests.set(sessionId, pendingRequests);
174011
174614
  try {
174012
174615
  await doc.setStatus(SessionStatusFactory.requestPermission(), {
174013
174616
  awaitingUserSince: getServerNow()
@@ -174016,6 +174619,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174016
174619
  } catch (error2) {
174017
174620
  this.logger.error(`[${sessionId}] Failed to mark session as waiting for permission: ${formatErrorMessage(error2)}`);
174018
174621
  }
174622
+ let resolved = false;
174019
174623
  const permissionUserId = historyUserId ?? metaUserId ?? this.userId;
174020
174624
  const notificationService = this.notificationService;
174021
174625
  const workspaceSlug = this.workspaceSlug?.trim() || this.workspaceId;
@@ -174039,6 +174643,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174039
174643
  if (requestKind === "permission") {
174040
174644
  void (async () => {
174041
174645
  const historySynced = await doc.waitUntilSynced();
174646
+ if (resolved) return;
174042
174647
  if (!historySynced) {
174043
174648
  this.logger.debug(`[${sessionId}] Permission request history was not confirmed before Live Activity sync; sending notification fallback`);
174044
174649
  await notificationService.notifyPermissionRequested(notificationInput);
@@ -174047,6 +174652,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174047
174652
  const liveActivityResult = await this.syncLiveActivitySummary(permissionUserId, {
174048
174653
  permissionAlert: true
174049
174654
  });
174655
+ if (resolved) return;
174050
174656
  if (liveActivityResult.sent && !liveActivityResult.ended) {
174051
174657
  return;
174052
174658
  }
@@ -174061,11 +174667,13 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174061
174667
  }
174062
174668
  this.permissionRequestStartTimes.set(requestId, Date.now());
174063
174669
  return new Promise((resolve2) => {
174064
- let resolved = false;
174065
174670
  let timedOutResolution = false;
174066
174671
  let unsubscribe = null;
174672
+ let unsubscribeConfig;
174067
174673
  let timeoutId = null;
174068
174674
  const cleanup = () => {
174675
+ unsubscribeConfig?.();
174676
+ unsubscribeConfig = void 0;
174069
174677
  if (unsubscribe) {
174070
174678
  unsubscribe();
174071
174679
  unsubscribe = null;
@@ -174075,10 +174683,20 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174075
174683
  timeoutId = null;
174076
174684
  }
174077
174685
  };
174078
- const resolveWithOutcome = async (outcome, resolutionSource = "client") => {
174686
+ const resolveWithOutcome = async (outcome, resolutionSource = "client", persistOutcome = false) => {
174079
174687
  if (resolved) return;
174080
174688
  resolved = true;
174081
174689
  cleanup();
174690
+ if (persistOutcome) {
174691
+ try {
174692
+ await updatePermissionOutcomeInHistory(doc, requestId, outcome, this.logger);
174693
+ } catch (error2) {
174694
+ this.logger.error(`[${sessionId}] Failed to persist automatic permission outcome: ${formatErrorMessage(error2)}`);
174695
+ outcome = {
174696
+ outcome: "cancelled"
174697
+ };
174698
+ }
174699
+ }
174082
174700
  const requestStartTime = this.permissionRequestStartTimes.get(requestId);
174083
174701
  if (requestStartTime) {
174084
174702
  const waitMs = Date.now() - requestStartTime;
@@ -174087,10 +174705,14 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174087
174705
  this.permissionRequestStartTimes.delete(requestId);
174088
174706
  this.logger.debug(`[${sessionId}] Permission wait time: ${waitMs}ms (total: ${state2.permissionWaitMs}ms)`);
174089
174707
  }
174090
- try {
174091
- await doc.clearAwaitingUser();
174092
- } catch (error2) {
174093
- this.logger.debug(`[${sessionId}] Failed to clear awaitingUserSince: ${formatErrorMessage(error2)}`);
174708
+ pendingRequests.delete(requestId);
174709
+ if (pendingRequests.size === 0) {
174710
+ this.pendingPermissionRequests.delete(sessionId);
174711
+ try {
174712
+ await doc.clearAwaitingUser();
174713
+ } catch (error2) {
174714
+ this.logger.debug(`[${sessionId}] Failed to clear awaitingUserSince: ${formatErrorMessage(error2)}`);
174715
+ }
174094
174716
  }
174095
174717
  this.logger.info(`Permission resolved for session ${sessionId}: ${outcome.outcome}`);
174096
174718
  this.logger.debug(`[${sessionId}] Permission request ${requestId} resolved with outcome: ${outcome.outcome}`);
@@ -174109,7 +174731,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174109
174731
  try {
174110
174732
  const maybeGetStatus = doc.getStatus;
174111
174733
  const currentStatus = typeof maybeGetStatus === "function" ? await maybeGetStatus.call(doc) : "unknown";
174112
- if (shouldRestoreRunningAfterPermission({
174734
+ if (!this.pendingPermissionRequests.has(sessionId) && shouldRestoreRunningAfterPermission({
174113
174735
  hasActivePresence: this.hasSessionActivePresence(sessionId),
174114
174736
  status: currentStatus
174115
174737
  })) {
@@ -174137,7 +174759,23 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174137
174759
  checkForOutcome();
174138
174760
  });
174139
174761
  }
174140
- checkForOutcome();
174762
+ const checkAutomaticOutcome = (pending2) => {
174763
+ checkForOutcome();
174764
+ if (resolved || isAskUserQuestionRequest) return;
174765
+ const outcome = agentClient?.getAutomaticToolPermissionOutcome(request2, pending2);
174766
+ if (outcome) void resolveWithOutcome(outcome, "run_config_auto_approve", true);
174767
+ };
174768
+ if (agentClient && !isAskUserQuestionRequest) {
174769
+ let wasAutomatic = agentClient.getAutomaticToolPermissionOutcome(request2, true) !== void 0;
174770
+ unsubscribeConfig = agentClient.subscribeConfigOptions(() => {
174771
+ const isAutomatic = agentClient.getAutomaticToolPermissionOutcome(request2, true) !== void 0;
174772
+ const enabled2 = isAutomatic && !wasAutomatic;
174773
+ wasAutomatic = isAutomatic;
174774
+ if (enabled2) checkAutomaticOutcome(true);
174775
+ });
174776
+ }
174777
+ checkAutomaticOutcome(false);
174778
+ if (resolved) return;
174141
174779
  timeoutId = setTimeout(() => {
174142
174780
  void (async () => {
174143
174781
  if (resolved) return;
@@ -174675,6 +175313,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
174675
175313
  }
174676
175314
  cancelPendingPermissionRequests() {
174677
175315
  this.permissionRequestStartTimes.clear();
175316
+ this.pendingPermissionRequests.clear();
174678
175317
  }
174679
175318
  async cleanup() {
174680
175319
  this.logger.debug("Cleaning up message handler resources");
@@ -178389,7 +179028,7 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
178389
179028
  }
178390
179029
  InternalCodec.prototype.encoder = InternalEncoder;
178391
179030
  InternalCodec.prototype.decoder = InternalDecoder;
178392
- var StringDecoder2 = require$$1$3.StringDecoder;
179031
+ var StringDecoder2 = require$$1$2.StringDecoder;
178393
179032
  if (!StringDecoder2.prototype.end) StringDecoder2.prototype.end = function() {
178394
179033
  };
178395
179034
  function InternalDecoder(options, codec) {
@@ -183778,7 +184417,11 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
183778
184417
  acpSessionId = started.acpSessionId;
183779
184418
  acpCapabilities = normalizeAcpSessionCapabilities(started.sessionResponse, {
183780
184419
  sessionFork: started.client.supportsSessionFork(),
183781
- acknowledgedSteer: started.client.supportsAcknowledgedSteer()
184420
+ acknowledgedSteer: started.client.supportsAcknowledgedSteer(),
184421
+ agent: {
184422
+ cliType: this.config.agentCliType,
184423
+ agentType: this.config.agentType
184424
+ }
183782
184425
  });
183783
184426
  } catch (error2) {
183784
184427
  if (error2 instanceof AcpStartupProcessExitError || error2 instanceof AcpStartupProcessError) {
@@ -194035,23 +194678,48 @@ Shutting down gracefully${reason}...`);
194035
194678
  }
194036
194679
  const HOST_TCP_ADDRESS = "127.0.0.1";
194037
194680
  const HOST_REQUEST_TIMEOUT_MS = 800;
194681
+ const E2E_HOST_PORT_ENV = "LODY_E2E_LOCAL_CLI_HOST_PORT";
194682
+ const E2E_HOST_PIPE_ENV = "LODY_E2E_LOCAL_CLI_HOST_PIPE";
194683
+ const E2E_HOST_PIPE_PATTERN = /^\\\\\.\\pipe\\lody-e2e-[A-Za-z0-9-]{1,80}$/u;
194038
194684
  function getUserPipeSuffix() {
194039
194685
  if (typeof process.getuid === "function") return String(process.getuid());
194040
194686
  const userInfo2 = os__default.userInfo();
194041
194687
  return crypto__default$1.createHash("sha256").update(`${userInfo2.uid}:${userInfo2.username}:${os__default.homedir()}`).digest("hex").slice(0, 16);
194042
194688
  }
194689
+ function getE2eHostPort() {
194690
+ if (process.env.LODY_E2E !== "1") return null;
194691
+ const rawPort = process.env[E2E_HOST_PORT_ENV]?.trim();
194692
+ if (!rawPort) return null;
194693
+ if (!/^\d+$/u.test(rawPort)) {
194694
+ throw new Error(`${E2E_HOST_PORT_ENV} must be an integer between 1024 and 65535`);
194695
+ }
194696
+ const port = Number(rawPort);
194697
+ if (!Number.isSafeInteger(port) || port < 1024 || port > 65535) {
194698
+ throw new Error(`${E2E_HOST_PORT_ENV} must be an integer between 1024 and 65535`);
194699
+ }
194700
+ return port;
194701
+ }
194702
+ function getE2eHostPipe(nodePlatform = process.platform) {
194703
+ if (nodePlatform !== "win32" || process.env.LODY_E2E !== "1") return null;
194704
+ const pipe2 = process.env[E2E_HOST_PIPE_ENV]?.trim();
194705
+ if (!pipe2) return null;
194706
+ if (!E2E_HOST_PIPE_PATTERN.test(pipe2)) {
194707
+ throw new Error(`${E2E_HOST_PIPE_ENV} must use the \\\\.\\pipe\\lody-e2e-<id> namespace`);
194708
+ }
194709
+ return pipe2;
194710
+ }
194043
194711
  function getLocalCliHostEndpoint(platform2) {
194044
194712
  const profile = getInstallationProfile(platform2);
194045
194713
  if (process.platform === "win32") {
194046
194714
  return {
194047
194715
  kind: "pipe",
194048
- path: `\\\\.\\pipe\\${profile.namespace}-agent-host-${getUserPipeSuffix()}`
194716
+ path: getE2eHostPipe() ?? `\\\\.\\pipe\\${profile.namespace}-agent-host-${getUserPipeSuffix()}`
194049
194717
  };
194050
194718
  }
194051
194719
  return {
194052
194720
  kind: "tcp",
194053
194721
  host: HOST_TCP_ADDRESS,
194054
- port: profile.localCliHostPort
194722
+ port: getE2eHostPort() ?? profile.localCliHostPort
194055
194723
  };
194056
194724
  }
194057
194725
  function throwIfAborted(signal) {
@@ -195535,7 +196203,7 @@ Shutting down gracefully${reason}...`);
195535
196203
  const defaultOpts = {
195536
196204
  defaultWidth: 0,
195537
196205
  output: process.stdout,
195538
- tty: require$$1$2
196206
+ tty: require$$0$8
195539
196207
  };
195540
196208
  if (!options) {
195541
196209
  return defaultOpts;
@@ -204091,7 +204759,7 @@ ${page}${helpTipBottom}${choiceDescription}${error2}${ansiEscapes.cursorHide}`;
204091
204759
  }
204092
204760
  InternalCodec.prototype.encoder = InternalEncoder;
204093
204761
  InternalCodec.prototype.decoder = InternalDecoder;
204094
- var StringDecoder2 = require$$1$3.StringDecoder;
204762
+ var StringDecoder2 = require$$1$2.StringDecoder;
204095
204763
  if (!StringDecoder2.prototype.end) StringDecoder2.prototype.end = function() {
204096
204764
  };
204097
204765
  function InternalDecoder(options, codec) {
@@ -208197,7 +208865,7 @@ ${page}${helpTipBottom}${choiceDescription}${error2}${ansiEscapes.cursorHide}`;
208197
208865
  value: true
208198
208866
  });
208199
208867
  var chardet_1 = requireChardet();
208200
- var child_process_1 = require$$1$8;
208868
+ var child_process_1 = require$$1$7;
208201
208869
  var fs_1 = fs__default;
208202
208870
  var iconv_lite_1 = requireLib();
208203
208871
  var tmp_1 = requireTmp();
@@ -222286,7 +222954,7 @@ ${page}${helpTipBottom}${choiceDescription}${ansiEscapes.cursorHide}`;
222286
222954
  data = createReviewBundleSnapshot(bundle);
222287
222955
  }
222288
222956
  const { injectReviewSnapshot } = await import("./chunks/index-VoI6Ds2-.js");
222289
- const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-C_L6J8dc.js").then(async (m) => {
222957
+ const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-CEr3NCEE.js").then(async (m) => {
222290
222958
  await m.__tla;
222291
222959
  return m;
222292
222960
  });
@@ -241280,6 +241948,32 @@ ${result.stdout ?? ""}`;
241280
241948
  })))));
241281
241949
  return responses.map((response2) => LocalSessionControlResponseSchema.parse(response2));
241282
241950
  };
241951
+ const readActiveInvocationContext = async (ctx) => {
241952
+ const response2 = await runPromise(makeLocalControlClientAuto({
241953
+ socketPath: ctx.localControlSocketPath
241954
+ }).machineRpc({
241955
+ method: "session/get-active-invocation-context",
241956
+ machineId: ctx.machineId,
241957
+ workspaceId: ctx.workspaceId,
241958
+ params: {
241959
+ sessionId: ctx.sessionId
241960
+ }
241961
+ }, {
241962
+ timeoutMs: SESSION_CONTROL_TIMEOUT_MS
241963
+ }).pipe(catchTag("IpcTimeoutError", (error2) => fail(new Error(`local control timed out after ${SESSION_CONTROL_TIMEOUT_MS}ms`, {
241964
+ cause: error2
241965
+ }))), catchTag("IpcProtocolError", (error2) => fail(new Error(error2.message, {
241966
+ cause: error2
241967
+ })))));
241968
+ if (!response2.ok) {
241969
+ throw new Error(response2.error);
241970
+ }
241971
+ const invocation = SessionActiveInvocationContextResultSchema.parse(response2.result);
241972
+ if (invocation.sessionId !== ctx.sessionId) {
241973
+ throw new Error(`Active invocation context session mismatch: expected ${ctx.sessionId}, received ${invocation.sessionId}`);
241974
+ }
241975
+ return invocation;
241976
+ };
241283
241977
  const pickResponse = (responses, expectedType, label2) => {
241284
241978
  const found = responses.find((response2) => response2.type === expectedType);
241285
241979
  if (found === void 0) {
@@ -242053,33 +242747,33 @@ ${prompt2}` : prompt2;
242053
242747
  auth: args2.auth,
242054
242748
  workspaceId: args2.workspaceId,
242055
242749
  machineId: args2.machineId,
242056
- requesterUserId: args2.requesterUserId,
242750
+ delegatedRequester: args2.delegatedRequester,
242057
242751
  ...args2.localProjectId ? {
242058
242752
  localProjectId: args2.localProjectId
242059
242753
  } : {}
242060
242754
  });
242061
242755
  return access.allowed;
242062
242756
  };
242063
- const filterAuthorizedMachinesForOptions = async (auth, workspaceId, machines, requesterUserId) => {
242757
+ const filterAuthorizedMachinesForOptions = async (auth, workspaceId, machines, delegatedRequester) => {
242064
242758
  const rows = await Promise.all(machines.map(async (machine) => ({
242065
242759
  machine,
242066
242760
  allowed: await canUseMachineForOptions({
242067
242761
  auth,
242068
242762
  workspaceId,
242069
242763
  machineId: machine.id,
242070
- requesterUserId
242764
+ delegatedRequester
242071
242765
  })
242072
242766
  })));
242073
242767
  return rows.filter((row) => row.allowed).map((row) => row.machine);
242074
242768
  };
242075
- const filterAuthorizedLocalProjectsForOptions = async (auth, workspaceId, machineId, localProjects, requesterUserId) => {
242769
+ const filterAuthorizedLocalProjectsForOptions = async (auth, workspaceId, machineId, localProjects, delegatedRequester) => {
242076
242770
  const rows = await Promise.all(localProjects.map(async (project) => ({
242077
242771
  project,
242078
242772
  allowed: await canUseMachineForOptions({
242079
242773
  auth,
242080
242774
  workspaceId,
242081
242775
  machineId,
242082
- requesterUserId,
242776
+ delegatedRequester,
242083
242777
  localProjectId: project.id
242084
242778
  })
242085
242779
  })));
@@ -242097,54 +242791,61 @@ ${prompt2}` : prompt2;
242097
242791
  }
242098
242792
  return record2.meta;
242099
242793
  };
242100
- const bindMcpCreateContext = (options, auth, requester) => {
242101
- options.requesterUserId = auth.userId;
242102
- options.sessionOwnerUserId = requester.userId;
242794
+ const bindMcpCreateContext = (options, identity2, requester) => {
242795
+ options.delegatedRequester = toDelegatedSessionRequester(identity2);
242103
242796
  options.defaultMachineId = requester.machineId;
242104
242797
  };
242105
- const resolveInvokingHistoryInput = (history) => {
242106
- let assistantIndex = -1;
242107
- for (let index = history.length - 1; index >= 0; index -= 1) {
242108
- if (history[index]?.role === "assistant") {
242109
- assistantIndex = index;
242110
- break;
242111
- }
242798
+ const toDelegatedSessionRequester = (identity2) => ({
242799
+ userId: identity2.userId
242800
+ });
242801
+ const buildInvocationIdentity = (source) => {
242802
+ const userId = source.userId?.trim();
242803
+ if (!userId) {
242804
+ throw new LodyOperationStoreError("INVOKING_USER_UNAVAILABLE", `The driving Turn ${source.id} has no authenticated human identity.`, false);
242112
242805
  }
242113
- const assistant = assistantIndex >= 0 ? history[assistantIndex] : void 0;
242114
- if (assistant?.userTurnId) {
242115
- const linked = history.find((entry) => entry.id === assistant.userTurnId);
242116
- if (linked) return linked;
242806
+ return {
242807
+ userId,
242808
+ sourceTurnId: source.id
242809
+ };
242810
+ };
242811
+ const resolveInvokingTurnSource = async () => {
242812
+ const active2 = await readActiveInvocationContext(getSessionContext());
242813
+ if (!active2.active) {
242814
+ throw new LodyOperationStoreError("INVOKING_TURN_NOT_FOUND", "The exact Turn driving this MCP invocation is no longer active.", false);
242117
242815
  }
242118
- const inputsBeforeExecution = assistantIndex >= 0 ? history.slice(0, assistantIndex) : history;
242119
- return [
242120
- ...inputsBeforeExecution
242121
- ].reverse().find((entry) => entry.role === "user" || entry.role === "system");
242816
+ const inputConfig = normalizeSessionTurnInputConfig(active2.inputConfig) ?? (Object.keys(active2.inputConfig).length === 0 ? {} : void 0);
242817
+ if (!inputConfig) {
242818
+ throw new LodyOperationStoreError("INVOKING_TURN_NOT_FOUND", `The active Turn ${active2.sourceTurnId} has an invalid execution configuration.`, false);
242819
+ }
242820
+ return {
242821
+ id: active2.sourceTurnId,
242822
+ userId: active2.requesterUserId,
242823
+ inputConfig
242824
+ };
242122
242825
  };
242123
242826
  const assertInvokingTurnTaskToolsEnabled = async (manager, sessionId) => {
242124
242827
  const session2 = await readCurrentSessionMeta(manager, sessionId);
242125
242828
  if (!session2) {
242126
242829
  throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Requester Session not found: ${sessionId}`, false);
242127
242830
  }
242128
- const sessionDoc = await manager.getOrCreateSessionDoc(session2.id);
242129
- const source = resolveInvokingHistoryInput(await sessionDoc.getHistory());
242130
- if (source?.inputConfig?.taskToolsEnabled !== true) {
242831
+ const source = await resolveInvokingTurnSource();
242832
+ if (source.inputConfig.taskToolsEnabled !== true) {
242131
242833
  throw new LodyOperationStoreError("TASK_TOOLS_DISABLED", "Lody Task tools are disabled for the driving user turn.", false);
242132
242834
  }
242133
242835
  };
242134
- const resolveInvokingTurnContext = async (manager, session2) => {
242135
- const sessionDoc = await manager.getOrCreateSessionDoc(session2.id);
242136
- const history = await sessionDoc.getHistory();
242137
- const source = resolveInvokingHistoryInput(history);
242138
- const chainDepth = source?.inputConfig?.chainDepth ?? 0;
242836
+ const resolveInvokingTurnContext = async (session2) => {
242837
+ const source = await resolveInvokingTurnSource();
242838
+ const chainDepth = source.inputConfig.chainDepth ?? 0;
242139
242839
  if (chainDepth >= LODY_MAX_CHAIN_DEPTH) {
242140
242840
  throw new LodyOperationStoreError("CHAIN_DEPTH_EXCEEDED", `Asynchronous Command rejected at chain depth ${chainDepth}; V1 maximum is ${LODY_MAX_CHAIN_DEPTH}.`, false);
242141
242841
  }
242142
242842
  return {
242143
242843
  chainDepth,
242844
+ identity: buildInvocationIdentity(source),
242144
242845
  frozenInputConfig: {
242145
- ...source?.inputConfig ?? {},
242146
- cliType: source?.inputConfig?.cliType ?? session2.cliType,
242147
- agentType: source?.inputConfig?.agentType ?? session2.agentType,
242846
+ ...source.inputConfig,
242847
+ cliType: source.inputConfig.cliType ?? session2.cliType,
242848
+ agentType: source.inputConfig.agentType ?? session2.agentType,
242148
242849
  chainDepth
242149
242850
  }
242150
242851
  };
@@ -242317,12 +243018,14 @@ ${prompt2}` : prompt2;
242317
243018
  if (!currentSession) {
242318
243019
  throw new Error(`Session not found: ${ctx.sessionId}`);
242319
243020
  }
242320
- const requesterUserId = auth.userId;
243021
+ const invoking = await resolveInvokingTurnContext(currentSession);
243022
+ const requesterUserId = invoking.identity.userId;
243023
+ const delegatedRequester = toDelegatedSessionRequester(invoking.identity);
242321
243024
  const machineEntries = await listAliveDocMetas(manager, isMachineDocRoomId);
242322
243025
  const onlineMachineIds = await manager.getOnlineMachineIds();
242323
243026
  const isMachineOnline = (machineId) => machineId === auth.machineId || onlineMachineIds?.has(machineId) === true;
242324
243027
  const machineCandidates = selectMachineMetasForOptions(machineEntries.map((entry) => entry.meta), input2.machineId).filter((machine) => input2.machineId !== void 0 || isMachineOnline(machine.id));
242325
- const machines = await filterAuthorizedMachinesForOptions(auth, workspaceId, machineCandidates, requesterUserId);
243028
+ const machines = await filterAuthorizedMachinesForOptions(auth, workspaceId, machineCandidates, delegatedRequester);
242326
243029
  const selectedMachine = selectMachineForOptions(machines, input2.machineId, currentSession.machineId);
242327
243030
  await syncMachineFlockDocsForOptions(manager, workspaceId, [
242328
243031
  selectedMachine
@@ -242355,7 +243058,7 @@ ${prompt2}` : prompt2;
242355
243058
  }
242356
243059
  return currentLocalProjectId !== void 0 && project.id === currentLocalProjectId;
242357
243060
  });
242358
- const localProjects = (await filterAuthorizedLocalProjectsForOptions(auth, workspaceId, selectedMachine.id, localProjectCandidates, requesterUserId)).slice(0, MAX_MCP_CREATE_OPTION_MATCHES);
243061
+ const localProjects = (await filterAuthorizedLocalProjectsForOptions(auth, workspaceId, selectedMachine.id, localProjectCandidates, delegatedRequester)).slice(0, MAX_MCP_CREATE_OPTION_MATCHES);
242359
243062
  const summarizedLocalProjects = await Promise.all(localProjects.map((project) => summarizeLocalProjectForOptions(auth, workspaceId, selectedMachine, project, requesterUserId, isMachineOnline(selectedMachine.id))));
242360
243063
  const repoQuery = normalizeCliValue(input2.repoQuery)?.toLowerCase();
242361
243064
  const repos = repoQuery ? (await listWorkspaceGitHubRepositoriesForCliToken({
@@ -242401,16 +243104,18 @@ ${prompt2}` : prompt2;
242401
243104
  if (!currentSession) {
242402
243105
  throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Requester Session not found: ${ctx.sessionId}`, false);
242403
243106
  }
242404
- const invoking = await resolveInvokingTurnContext(manager, currentSession);
243107
+ const invoking = await resolveInvokingTurnContext(currentSession);
242405
243108
  const roleCatalog = args2.agentRoleId ? await loadWorkspaceAgentRoleCatalog(manager, workspace.id) : void 0;
242406
243109
  const resolved = resolveMcpSessionCreate(args2, invoking, currentSession, args2.agentRoleId ? roleCatalog?.get(args2.agentRoleId) : void 0);
242407
243110
  const canonicalCommand = buildResolvedMcpCreateCanonicalCommand(resolved, args2.deadlineSeconds);
242408
- const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_create", canonicalCommand));
242409
- if (retry2) return await withOperationStore((store) => store.snapshot(retry2));
243111
+ const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_create", canonicalCommand, invoking.identity.userId, invoking.identity.sourceTurnId));
243112
+ if (retry2) {
243113
+ return await withOperationStore((store) => store.snapshot(retry2));
243114
+ }
242410
243115
  const targetMachineId = resolved.input.machineId ?? currentSession.machineId;
242411
243116
  await assertMachineOnlineForSingleCommand(manager, targetMachineId, ctx);
242412
243117
  const createOptions = buildMcpCreateOptions(resolved.input, ctx);
242413
- bindMcpCreateContext(createOptions, auth, currentSession);
243118
+ bindMcpCreateContext(createOptions, invoking.identity, currentSession);
242414
243119
  bindAgentRoleCreateOptions(createOptions, resolved.role);
242415
243120
  createOptions.workspaceMetaPrewriteSatisfied = true;
242416
243121
  let effectiveDispatchConfig;
@@ -242437,7 +243142,7 @@ ${prompt2}` : prompt2;
242437
243142
  workspaceId: workspace.id,
242438
243143
  ownerMachineId: ctx.machineId,
242439
243144
  requesterSessionId: ctx.sessionId,
242440
- requesterUserId: auth.userId,
243145
+ requesterUserId: invoking.identity.userId,
242441
243146
  operationId: args2.operationId,
242442
243147
  kind: "session_create",
242443
243148
  canonicalCommand,
@@ -242446,6 +243151,7 @@ ${prompt2}` : prompt2;
242446
243151
  agentConfigId: currentSession.agentConfigId
242447
243152
  } : {},
242448
243153
  inputConfig: invoking.frozenInputConfig,
243154
+ sourceTurnId: invoking.identity.sourceTurnId,
242449
243155
  targetDispatchConfigs: [
242450
243156
  effectiveDispatchConfig
242451
243157
  ]
@@ -242505,6 +243211,7 @@ ${prompt2}` : prompt2;
242505
243211
  if (!currentSession) {
242506
243212
  throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Requester Session not found: ${ctx.sessionId}`, false);
242507
243213
  }
243214
+ const invoking = await resolveInvokingTurnContext(currentSession);
242508
243215
  const canonicalCommand = {
242509
243216
  sessionId: args2.sessionId,
242510
243217
  prompt: args2.prompt,
@@ -242512,8 +243219,10 @@ ${prompt2}` : prompt2;
242512
243219
  deadlineSeconds: args2.deadlineSeconds
242513
243220
  } : {}
242514
243221
  };
242515
- const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_chat", canonicalCommand));
242516
- if (retry2) return await withOperationStore((store) => store.snapshot(retry2));
243222
+ const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_chat", canonicalCommand, invoking.identity.userId, invoking.identity.sourceTurnId));
243223
+ if (retry2) {
243224
+ return await withOperationStore((store) => store.snapshot(retry2));
243225
+ }
242517
243226
  const targetSession = await readCurrentSessionMeta(manager, args2.sessionId);
242518
243227
  if (!targetSession) {
242519
243228
  throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Target Session not found: ${args2.sessionId}`, false);
@@ -242526,7 +243235,7 @@ ${prompt2}` : prompt2;
242526
243235
  workspace,
242527
243236
  manager,
242528
243237
  sessionId: targetSession.id,
242529
- requesterUserIdOverride: auth.userId
243238
+ delegatedRequester: toDelegatedSessionRequester(invoking.identity)
242530
243239
  });
242531
243240
  } catch (error2) {
242532
243241
  if (error2 instanceof WorkspaceSyncUnavailableError) {
@@ -242534,7 +243243,6 @@ ${prompt2}` : prompt2;
242534
243243
  }
242535
243244
  throw new LodyOperationStoreError("COMMAND_REJECTED", formatMcpErrorMessage(error2), false);
242536
243245
  }
242537
- const invoking = await resolveInvokingTurnContext(manager, currentSession);
242538
243246
  const preallocatedUserTurnId = randomUUID();
242539
243247
  const materializationClaimToken = randomUUID();
242540
243248
  const timing = operationDeadline(args2.deadlineSeconds);
@@ -242542,7 +243250,7 @@ ${prompt2}` : prompt2;
242542
243250
  workspaceId: workspace.id,
242543
243251
  ownerMachineId: ctx.machineId,
242544
243252
  requesterSessionId: ctx.sessionId,
242545
- requesterUserId: auth.userId,
243253
+ requesterUserId: invoking.identity.userId,
242546
243254
  operationId: args2.operationId,
242547
243255
  kind: "session_chat",
242548
243256
  canonicalCommand,
@@ -242550,7 +243258,8 @@ ${prompt2}` : prompt2;
242550
243258
  ...currentSession.agentConfigId ? {
242551
243259
  agentConfigId: currentSession.agentConfigId
242552
243260
  } : {},
242553
- inputConfig: invoking.frozenInputConfig
243261
+ inputConfig: invoking.frozenInputConfig,
243262
+ sourceTurnId: invoking.identity.sourceTurnId
242554
243263
  },
242555
243264
  initiatorChainDepth: invoking.chainDepth,
242556
243265
  ...timing,
@@ -242571,10 +243280,10 @@ ${prompt2}` : prompt2;
242571
243280
  const result = await sendSessionChatResult(auth, workspace, manager, pendingItem.target.sessionId, args2.prompt, {
242572
243281
  ...resolveTurnDispatchConfig({}),
242573
243282
  taskToolsEnabled: invoking.frozenInputConfig.taskToolsEnabled === true
242574
- }, void 0, auth.userId, {
243283
+ }, void 0, void 0, {
242575
243284
  userTurnId: pendingItem.target.userTurnId,
242576
243285
  chainDepth: invoking.chainDepth + 1
242577
- });
243286
+ }, toDelegatedSessionRequester(invoking.identity));
242578
243287
  if (result.userTurnId !== pendingItem.target.userTurnId) {
242579
243288
  throw new Error("Chat result did not preserve the preallocated target turn id.");
242580
243289
  }
@@ -242701,7 +243410,7 @@ ${prompt2}` : prompt2;
242701
243410
  ...args2.defaults ?? {},
242702
243411
  ...item
242703
243412
  }));
242704
- const invoking = await resolveInvokingTurnContext(manager, requester);
243413
+ const invoking = await resolveInvokingTurnContext(requester);
242705
243414
  const roleCatalog = expanded.some((item) => Boolean(item.agentRoleId)) ? await loadWorkspaceAgentRoleCatalog(manager, workspace.id) : void 0;
242706
243415
  const resolvedItems = expanded.map((item) => {
242707
243416
  if (!item.prompt) return {
@@ -242754,8 +243463,10 @@ ${prompt2}` : prompt2;
242754
243463
  deadlineSeconds: args2.deadlineSeconds
242755
243464
  } : {}
242756
243465
  };
242757
- const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_create_many", canonicalCommand));
242758
- if (retry2) return await withOperationStore((store) => store.snapshot(retry2));
243466
+ const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_create_many", canonicalCommand, invoking.identity.userId, invoking.identity.sourceTurnId));
243467
+ if (retry2) {
243468
+ return await withOperationStore((store) => store.snapshot(retry2));
243469
+ }
242759
243470
  const isMachineOnline = makeMachineOnlineLookupForMcp(manager, ctx);
242760
243471
  const validatedItems = await mapWithConcurrency(expanded, 5, async (item, index) => {
242761
243472
  const label2 = item.label;
@@ -242794,7 +243505,7 @@ ${prompt2}` : prompt2;
242794
243505
  };
242795
243506
  }
242796
243507
  const options = buildMcpCreateOptions(resolved.input, ctx);
242797
- bindMcpCreateContext(options, auth, requester);
243508
+ bindMcpCreateContext(options, invoking.identity, requester);
242798
243509
  bindAgentRoleCreateOptions(options, resolved.role);
242799
243510
  try {
242800
243511
  const effectiveDispatchConfig = await validateSessionCreateOptions({
@@ -242830,7 +243541,7 @@ ${prompt2}` : prompt2;
242830
243541
  workspaceId: workspace.id,
242831
243542
  ownerMachineId: ctx.machineId,
242832
243543
  requesterSessionId: ctx.sessionId,
242833
- requesterUserId: auth.userId,
243544
+ requesterUserId: invoking.identity.userId,
242834
243545
  operationId: args2.operationId,
242835
243546
  kind: "session_create_many",
242836
243547
  canonicalCommand,
@@ -242839,6 +243550,7 @@ ${prompt2}` : prompt2;
242839
243550
  agentConfigId: requester.agentConfigId
242840
243551
  } : {},
242841
243552
  inputConfig: invoking.frozenInputConfig,
243553
+ sourceTurnId: invoking.identity.sourceTurnId,
242842
243554
  targetDispatchConfigs
242843
243555
  },
242844
243556
  initiatorChainDepth: invoking.chainDepth,
@@ -242861,7 +243573,7 @@ ${prompt2}` : prompt2;
242861
243573
  }
242862
243574
  try {
242863
243575
  const options = buildMcpCreateOptions(resolved.input, ctx);
242864
- bindMcpCreateContext(options, auth, requester);
243576
+ bindMcpCreateContext(options, invoking.identity, requester);
242865
243577
  bindAgentRoleCreateOptions(options, resolved.role);
242866
243578
  options.sessionId = storedItem.target.sessionId;
242867
243579
  options.userTurnId = storedItem.target.userTurnId;
@@ -242903,15 +243615,17 @@ ${prompt2}` : prompt2;
242903
243615
  ...args2.defaults ?? {},
242904
243616
  ...item
242905
243617
  }));
243618
+ const invoking = await resolveInvokingTurnContext(requester);
242906
243619
  const canonicalCommand = {
242907
243620
  items: expanded,
242908
243621
  ...args2.deadlineSeconds !== void 0 ? {
242909
243622
  deadlineSeconds: args2.deadlineSeconds
242910
243623
  } : {}
242911
243624
  };
242912
- const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_chat_many", canonicalCommand));
242913
- if (retry2) return await withOperationStore((store) => store.snapshot(retry2));
242914
- const invoking = await resolveInvokingTurnContext(manager, requester);
243625
+ const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_chat_many", canonicalCommand, invoking.identity.userId, invoking.identity.sourceTurnId));
243626
+ if (retry2) {
243627
+ return await withOperationStore((store) => store.snapshot(retry2));
243628
+ }
242915
243629
  const isMachineOnline = makeMachineOnlineLookupForMcp(manager, ctx);
242916
243630
  const initialItems = await mapWithConcurrency(expanded, 5, async (item) => {
242917
243631
  if (!item.sessionId || !item.prompt) {
@@ -242933,7 +243647,7 @@ ${prompt2}` : prompt2;
242933
243647
  workspace,
242934
243648
  manager,
242935
243649
  sessionId: target.id,
242936
- requesterUserIdOverride: auth.userId
243650
+ delegatedRequester: toDelegatedSessionRequester(invoking.identity)
242937
243651
  });
242938
243652
  } catch (error2) {
242939
243653
  if (error2 instanceof WorkspaceSyncUnavailableError) {
@@ -242949,7 +243663,7 @@ ${prompt2}` : prompt2;
242949
243663
  workspaceId: workspace.id,
242950
243664
  ownerMachineId: ctx.machineId,
242951
243665
  requesterSessionId: ctx.sessionId,
242952
- requesterUserId: auth.userId,
243666
+ requesterUserId: invoking.identity.userId,
242953
243667
  operationId: args2.operationId,
242954
243668
  kind: "session_chat_many",
242955
243669
  canonicalCommand,
@@ -242957,7 +243671,8 @@ ${prompt2}` : prompt2;
242957
243671
  ...requester.agentConfigId ? {
242958
243672
  agentConfigId: requester.agentConfigId
242959
243673
  } : {},
242960
- inputConfig: invoking.frozenInputConfig
243674
+ inputConfig: invoking.frozenInputConfig,
243675
+ sourceTurnId: invoking.identity.sourceTurnId
242961
243676
  },
242962
243677
  initiatorChainDepth: invoking.chainDepth,
242963
243678
  ...timing,
@@ -242980,11 +243695,11 @@ ${prompt2}` : prompt2;
242980
243695
  await sendSessionChatResult(auth, workspace, manager, storedItem.target.sessionId, expandedItem.prompt, {
242981
243696
  ...resolveTurnDispatchConfig({}),
242982
243697
  taskToolsEnabled: invoking.frozenInputConfig.taskToolsEnabled === true
242983
- }, void 0, auth.userId, {
243698
+ }, void 0, void 0, {
242984
243699
  userTurnId: storedItem.target.userTurnId,
242985
243700
  chainDepth: invoking.chainDepth + 1,
242986
243701
  bypassSessionQuota: shouldBypassSessionQuota("session_chat_many")
242987
- });
243702
+ }, toDelegatedSessionRequester(invoking.identity));
242988
243703
  await withOperationStore((store) => store.markItemInputDurable(ctx.sessionId, args2.operationId, index, materializationClaimToken));
242989
243704
  return markOperationItemInputDurable(storedItem);
242990
243705
  } catch {
@@ -243467,11 +244182,11 @@ ${lines2.join("\n")}` : ""}${suffix}`);
243467
244182
  if (!currentSession) {
243468
244183
  throw new Error(`Session not found: ${ctx.sessionId}`);
243469
244184
  }
243470
- const invoking = args2.agentRoleId ? await resolveInvokingTurnContext(manager, currentSession) : void 0;
244185
+ const invoking = await resolveInvokingTurnContext(currentSession);
243471
244186
  const roleCatalog = args2.agentRoleId ? await loadWorkspaceAgentRoleCatalog(manager, workspace.id) : void 0;
243472
244187
  const resolved = resolveMcpSessionCreate(args2, invoking, currentSession, args2.agentRoleId ? roleCatalog?.get(args2.agentRoleId) : void 0);
243473
244188
  const options = buildMcpCreateOptions(resolved.input, ctx);
243474
- bindMcpCreateContext(options, auth, currentSession);
244189
+ bindMcpCreateContext(options, invoking.identity, currentSession);
243475
244190
  bindAgentRoleCreateOptions(options, resolved.role);
243476
244191
  options.workspaceMetaPrewriteSatisfied = true;
243477
244192
  const result = await createSessionResult(auth, workspace, manager, resolved.prompt, options, resolved.dispatchConfig, buildStructuredOutputOptions(args2));
@@ -243539,7 +244254,8 @@ ${lines2.join("\n")}` : ""}${suffix}`);
243539
244254
  throw new Error(`Session not found: ${sessionId}`);
243540
244255
  }
243541
244256
  assertDifferentMcpSession(currentSession, targetSession);
243542
- const result = await sendSessionChatResult(auth, workspace, manager, sessionId, args2.prompt, resolveTurnDispatchConfig({}), buildStructuredOutputOptions(args2), auth.userId);
244257
+ const invoking = await resolveInvokingTurnContext(currentSession);
244258
+ const result = await sendSessionChatResult(auth, workspace, manager, sessionId, args2.prompt, resolveTurnDispatchConfig({}), buildStructuredOutputOptions(args2), void 0, void 0, toDelegatedSessionRequester(invoking.identity));
243543
244259
  const response2 = {
243544
244260
  ok: true,
243545
244261
  sessionId: result.sessionId,
@@ -246079,7 +246795,7 @@ Other machines will not see it until this machine syncs.`);
246079
246795
  logger2.warn(`[dns] invalid LODY_DNS_RESULT_ORDER value; expected ipv4first|ipv6first|verbatim|node \u2014 falling back to ipv4first`);
246080
246796
  }
246081
246797
  try {
246082
- require$$1$7.setDefaultResultOrder(resolution.order);
246798
+ require$$1$6.setDefaultResultOrder(resolution.order);
246083
246799
  logger2.debug(`[dns] default DNS result order set to ${resolution.order} (${resolution.reason})`);
246084
246800
  } catch (error2) {
246085
246801
  logger2.debug(`[dns] failed to set DNS result order: ${error2 instanceof Error ? error2.message : String(error2)}`);