lody 0.91.0 → 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/chunks/{index-BNIS69wD.js → index-Cy4lnlSp.js} +41 -1
- package/dist/chunks/{review-viewer-BxVOWMjT.js → review-viewer-CEr3NCEE.js} +1 -1
- package/dist/claude-acp.js +54 -2
- package/dist/codex-acp.js +1 -1
- package/dist/grok-acp.js +50 -18
- package/dist/index.js +1199 -482
- package/package.json +1 -1
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$$
|
|
32
|
-
import require$$1$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
51
|
-
import require$$0$
|
|
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$
|
|
55
|
-
import require$$0$
|
|
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$
|
|
61
|
-
import require$$1$
|
|
62
|
-
import require$$1$
|
|
63
|
-
import require$$1$
|
|
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.
|
|
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 =
|
|
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.
|
|
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.
|
|
15107
|
+
package: "droid@0.212.0",
|
|
15076
15108
|
args: [
|
|
15077
15109
|
"exec",
|
|
15078
15110
|
"--output-format",
|
|
15079
|
-
"acp
|
|
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/
|
|
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
|
|
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
|
-
|
|
25274
|
-
let newlineIndex =
|
|
25275
|
-
|
|
25276
|
-
|
|
25277
|
-
|
|
25278
|
-
|
|
25279
|
-
|
|
25280
|
-
|
|
25281
|
-
|
|
25282
|
-
|
|
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
|
-
|
|
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 &&
|
|
25288
|
-
|
|
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$
|
|
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$
|
|
28306
|
-
if (env$
|
|
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$
|
|
28400
|
+
if (env$3.FORCE_COLOR === "false") {
|
|
28310
28401
|
return 0;
|
|
28311
28402
|
}
|
|
28312
|
-
return env$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
28380
|
-
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$
|
|
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$
|
|
28473
|
+
if (env$3.COLORTERM === "truecolor") {
|
|
28383
28474
|
return 3;
|
|
28384
28475
|
}
|
|
28385
|
-
if (env$
|
|
28476
|
+
if (env$3.TERM === "xterm-kitty") {
|
|
28386
28477
|
return 3;
|
|
28387
28478
|
}
|
|
28388
|
-
if (env$
|
|
28479
|
+
if (env$3.TERM === "xterm-ghostty") {
|
|
28389
28480
|
return 3;
|
|
28390
28481
|
}
|
|
28391
|
-
if (env$
|
|
28482
|
+
if (env$3.TERM === "wezterm") {
|
|
28392
28483
|
return 3;
|
|
28393
28484
|
}
|
|
28394
|
-
if ("TERM_PROGRAM" in env$
|
|
28395
|
-
const version2 = Number.parseInt((env$
|
|
28396
|
-
switch (env$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
28876
|
-
function requireHasFlag$
|
|
28877
|
-
if (hasRequiredHasFlag$
|
|
28878
|
-
hasRequiredHasFlag$
|
|
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$
|
|
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$
|
|
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$$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
49040
|
-
if ("CI" in env$
|
|
49041
|
-
for (const { 0: envName, 1: colors2 } of CI_ENVS_MAP) if (envName in env$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
-
|
|
82625
|
-
|
|
82626
|
-
|
|
82627
|
-
|
|
82628
|
-
|
|
82629
|
-
|
|
82630
|
-
|
|
82631
|
-
|
|
82632
|
-
|
|
82633
|
-
|
|
82634
|
-
|
|
82635
|
-
|
|
82636
|
-
}
|
|
82637
|
-
|
|
82638
|
-
|
|
82639
|
-
|
|
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 (
|
|
82653
|
-
|
|
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
|
-
|
|
82662
|
-
|
|
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
|
-
|
|
82673
|
-
|
|
82674
|
-
|
|
82675
|
-
|
|
82676
|
-
|
|
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 (
|
|
82779
|
+
if (hasFlag$1("color=256")) {
|
|
82680
82780
|
return 2;
|
|
82681
82781
|
}
|
|
82682
|
-
|
|
82683
|
-
|
|
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
|
-
|
|
82686
|
-
|
|
82687
|
-
|
|
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 (
|
|
82690
|
-
|
|
82691
|
-
|
|
82692
|
-
|
|
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
|
-
|
|
82697
|
-
|
|
82698
|
-
|
|
82699
|
-
|
|
82700
|
-
|
|
82701
|
-
|
|
82702
|
-
|
|
82703
|
-
|
|
82704
|
-
|
|
82705
|
-
|
|
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
|
-
|
|
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
|
-
|
|
82736
|
-
|
|
82737
|
-
return translateLevel2(level);
|
|
82848
|
+
if (new RegExp("-256(?:color)?$", "iv").test(env$1.TERM)) {
|
|
82849
|
+
return 2;
|
|
82738
82850
|
}
|
|
82739
|
-
|
|
82740
|
-
|
|
82741
|
-
|
|
82742
|
-
|
|
82743
|
-
|
|
82744
|
-
|
|
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$$
|
|
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 =
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
84934
|
+
const stream2 = require$$0$d;
|
|
84799
84935
|
const net$1 = net;
|
|
84800
|
-
const { Blob: Blob2 } = require$$0$
|
|
84801
|
-
const nodeUtil = require$$0$
|
|
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$
|
|
85316
|
-
const util2 = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
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+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/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$
|
|
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$
|
|
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$
|
|
87220
|
-
const { markAsUncloneable } = require$$1$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
88563
|
-
const nodeUtil = require$$0$
|
|
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$
|
|
88731
|
-
const { File: NodeFile } = require$$0$
|
|
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$
|
|
88969
|
-
const assert2 = require$$0$
|
|
88970
|
-
const { isErrored, isDisturbed } = require$$0$
|
|
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$
|
|
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$
|
|
90318
|
-
const { pipeline: pipeline2 } = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
92686
|
-
const { Readable: Readable2 } = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
93276
|
-
const { finished: finished2, PassThrough: PassThrough2 } = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
94509
|
-
const { Console } = require$$1$
|
|
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$
|
|
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$
|
|
95158
|
-
const util2 = require$$0$
|
|
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$
|
|
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$
|
|
95610
|
-
const { types: types2 } = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
97977
|
-
const { StringDecoder: StringDecoder2 } = require$$1$
|
|
97978
|
-
const { btoa: btoa2 } = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
100296
|
-
const assert2 = require$$0$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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 =
|
|
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
|
});
|
|
@@ -114805,6 +114974,7 @@ ${incoming}`).output;
|
|
|
114805
114974
|
modelUsage: record$1(string$1(), ModelUsageSchema).optional()
|
|
114806
114975
|
});
|
|
114807
114976
|
const RateLimitWindowSchema = object$1({
|
|
114977
|
+
label: string$1().optional(),
|
|
114808
114978
|
usedPercent: number$4().min(0).max(100),
|
|
114809
114979
|
windowDurationSeconds: number$4().nonnegative().nullable(),
|
|
114810
114980
|
resetsAtEpochSeconds: number$4().int().positive().nullable()
|
|
@@ -115308,6 +115478,7 @@ ${incoming}`).output;
|
|
|
115308
115478
|
sessionWorkdir = null;
|
|
115309
115479
|
agentMcpCapabilities;
|
|
115310
115480
|
configOptions = [];
|
|
115481
|
+
configOptionsListeners = /* @__PURE__ */ new Set();
|
|
115311
115482
|
configOptionValues;
|
|
115312
115483
|
legacySessionModelState = null;
|
|
115313
115484
|
currentModel;
|
|
@@ -116146,6 +116317,7 @@ ${incoming}`).output;
|
|
|
116146
116317
|
} else {
|
|
116147
116318
|
this.currentModel = void 0;
|
|
116148
116319
|
}
|
|
116320
|
+
for (const listener of this.configOptionsListeners) listener();
|
|
116149
116321
|
}
|
|
116150
116322
|
retainLegacyConfigOptionValue(configId, value) {
|
|
116151
116323
|
this.configOptionValues[configId] = value;
|
|
@@ -116165,6 +116337,7 @@ ${incoming}`).output;
|
|
|
116165
116337
|
}
|
|
116166
116338
|
return option2;
|
|
116167
116339
|
});
|
|
116340
|
+
for (const listener of this.configOptionsListeners) listener();
|
|
116168
116341
|
}
|
|
116169
116342
|
async startSession(stream2, workdir, resumeSessionId, timeoutOptions = {}, startupAbort, resolveSessionStart, forkSessionId, forkSessionTurnId) {
|
|
116170
116343
|
const connection2 = new ClientSideConnection(() => this, stream2);
|
|
@@ -116809,6 +116982,21 @@ ${incoming}`).output;
|
|
|
116809
116982
|
getConfigOptions() {
|
|
116810
116983
|
return this.configOptions;
|
|
116811
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
|
+
}
|
|
116812
117000
|
findConfigOptionByCategory(category) {
|
|
116813
117001
|
return this.configOptions.find((opt) => opt.category === category);
|
|
116814
117002
|
}
|
|
@@ -118256,7 +118444,7 @@ ${error2.message}` : execaMessage;
|
|
|
118256
118444
|
if (hasRequiredExeca) return execa$1.exports;
|
|
118257
118445
|
hasRequiredExeca = 1;
|
|
118258
118446
|
const path2 = path__default$1;
|
|
118259
|
-
const childProcess = require$$1$
|
|
118447
|
+
const childProcess = require$$1$7;
|
|
118260
118448
|
const crossSpawn2 = requireCrossSpawn();
|
|
118261
118449
|
const stripFinalNewline2 = requireStripFinalNewline();
|
|
118262
118450
|
const npmRunPath2 = requireNpmRunPath();
|
|
@@ -118593,8 +118781,8 @@ ${error2.message}` : execaMessage;
|
|
|
118593
118781
|
stdout: null,
|
|
118594
118782
|
stderr: null
|
|
118595
118783
|
};
|
|
118596
|
-
const isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof require$$0$
|
|
118597
|
-
const isReadable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter$1 && typeof s.pipe === "function" && s.pipe !== require$$0$
|
|
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;
|
|
118598
118786
|
const isWritable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter$1 && typeof s.write === "function" && typeof s.end === "function";
|
|
118599
118787
|
const EOF$1 = Symbol("EOF");
|
|
118600
118788
|
const MAYBE_EMIT_END = Symbol("maybeEmitEnd");
|
|
@@ -123412,7 +123600,7 @@ ${error2.message}` : execaMessage;
|
|
|
123412
123600
|
if (!this[CHECKPATH](entry)) {
|
|
123413
123601
|
return entry.resume();
|
|
123414
123602
|
}
|
|
123415
|
-
require$$0$
|
|
123603
|
+
require$$0$c.equal(typeof entry.absolute, "string");
|
|
123416
123604
|
switch (entry.type) {
|
|
123417
123605
|
case "Directory":
|
|
123418
123606
|
case "GNUDumpDir":
|
|
@@ -130575,7 +130763,11 @@ ${fallbackStderrTail}` : errorMessage2;
|
|
|
130575
130763
|
return {
|
|
130576
130764
|
...normalizeAcpSessionCapabilities(sessionResponse, {
|
|
130577
130765
|
sessionFork: client2.supportsSessionFork?.() === true,
|
|
130578
|
-
acknowledgedSteer: client2.supportsAcknowledgedSteer()
|
|
130766
|
+
acknowledgedSteer: client2.supportsAcknowledgedSteer(),
|
|
130767
|
+
agent: {
|
|
130768
|
+
cliType,
|
|
130769
|
+
agentType
|
|
130770
|
+
}
|
|
130579
130771
|
}),
|
|
130580
130772
|
capabilitySourceVersion
|
|
130581
130773
|
};
|
|
@@ -130805,6 +130997,7 @@ ${fallbackStderrTail}` : errorMessage2;
|
|
|
130805
130997
|
});
|
|
130806
130998
|
}
|
|
130807
130999
|
}
|
|
131000
|
+
collectedText = "";
|
|
130808
131001
|
options.logger.debug(`[title-generator] Sending title prompt (acpSessionId=${acpSessionId})`);
|
|
130809
131002
|
const response2 = await client2?.prompt(acpSessionId, prompt2);
|
|
130810
131003
|
options.logger.debug(`[title-generator] Title prompt returned (acpSessionId=${acpSessionId})`);
|
|
@@ -131118,6 +131311,22 @@ ${fallbackStderrTail}` : errorMessage2;
|
|
|
131118
131311
|
}
|
|
131119
131312
|
return input2.status?.type === "requestPermission" || input2.status?.type === "running";
|
|
131120
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
|
+
};
|
|
131121
131330
|
const tryExecTrimmed = async (exec2, command2, args2, workdir) => {
|
|
131122
131331
|
try {
|
|
131123
131332
|
const output = await exec2(command2, args2, workdir, false);
|
|
@@ -135422,6 +135631,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
135422
135631
|
if (this.turnRuntimeBySession.get(options.sessionId) !== runtime || !runtime.promptInFlight || runtime.turnId !== previousTurnId || runtime.activePromptRun !== ownedPromptRun) {
|
|
135423
135632
|
return reject2("stale-turn", "Steer application arrived after ownership changed");
|
|
135424
135633
|
}
|
|
135634
|
+
runtime.invocation = {
|
|
135635
|
+
sourceTurnId: options.userTurnId,
|
|
135636
|
+
requesterUserId: options.userId,
|
|
135637
|
+
inputConfig: options.inputConfig
|
|
135638
|
+
};
|
|
135425
135639
|
try {
|
|
135426
135640
|
await this.finalizeYieldedTurnOutput(runtime, options.sessionId, previousTurnId);
|
|
135427
135641
|
} catch (error2) {
|
|
@@ -135460,7 +135674,6 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
135460
135674
|
runtime.activePromptRun = nextPromptRun;
|
|
135461
135675
|
runtime.turnId = nextTurnId;
|
|
135462
135676
|
runtime.userTurnId = options.userTurnId;
|
|
135463
|
-
runtime.requesterUserId = options.userId;
|
|
135464
135677
|
this.markCurrentTurn(options.sessionId, nextTurnId);
|
|
135465
135678
|
ownedPromptRun.signalSuccessor();
|
|
135466
135679
|
return {
|
|
@@ -135536,6 +135749,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
135536
135749
|
sessionId,
|
|
135537
135750
|
sessionDoc: options.sessionDoc,
|
|
135538
135751
|
userTurnId,
|
|
135752
|
+
invocation: options.invocation,
|
|
135539
135753
|
dispatchSource,
|
|
135540
135754
|
unhandledErrorCode: "session_chat_failed",
|
|
135541
135755
|
describeUnhandledError: (error2) => `[${sessionId}] Failed to process prepared session turn: ${formatErrorMessage(error2)}`
|
|
@@ -135595,12 +135809,13 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
135595
135809
|
async evictForTurnStart(sessionId) {
|
|
135596
135810
|
return await this.deps.evictForMemoryPressure(sessionId);
|
|
135597
135811
|
}
|
|
135598
|
-
createTurnRuntime(
|
|
135812
|
+
createTurnRuntime(options) {
|
|
135599
135813
|
return {
|
|
135600
|
-
sessionId,
|
|
135601
|
-
turnId,
|
|
135602
|
-
userTurnId,
|
|
135603
|
-
|
|
135814
|
+
sessionId: options.sessionId,
|
|
135815
|
+
turnId: options.turnId,
|
|
135816
|
+
userTurnId: options.userTurnId,
|
|
135817
|
+
invocation: options.invocation,
|
|
135818
|
+
session: options.session,
|
|
135604
135819
|
promptStarted: false,
|
|
135605
135820
|
promptInFlight: false,
|
|
135606
135821
|
autoPromptInFlight: false,
|
|
@@ -136135,7 +136350,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
136135
136350
|
});
|
|
136136
136351
|
}
|
|
136137
136352
|
async runVisibleSessionTurn(options, body2) {
|
|
136138
|
-
const { sessionId, sessionDoc,
|
|
136353
|
+
const { sessionId, sessionDoc, userTurnId } = options;
|
|
136139
136354
|
const span2 = startTraceSpan(this.deps.logger, "execution.visible_turn", {
|
|
136140
136355
|
sessionId,
|
|
136141
136356
|
...userTurnId ? {
|
|
@@ -136176,7 +136391,10 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
136176
136391
|
deferACPUpdateTarget: true
|
|
136177
136392
|
});
|
|
136178
136393
|
this.markCurrentTurn(sessionId, turnId);
|
|
136179
|
-
runtime = this.createTurnRuntime(
|
|
136394
|
+
runtime = this.createTurnRuntime({
|
|
136395
|
+
...options,
|
|
136396
|
+
turnId
|
|
136397
|
+
});
|
|
136180
136398
|
this.registerTurnRuntime(runtime);
|
|
136181
136399
|
} finally {
|
|
136182
136400
|
releaseConflict();
|
|
@@ -136461,6 +136679,21 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
136461
136679
|
getActiveUserTurnId(sessionId) {
|
|
136462
136680
|
return this.turnRuntimeBySession.get(sessionId)?.userTurnId;
|
|
136463
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
|
+
}
|
|
136464
136697
|
async setDispatchProcessing(sessionId, sessionDoc, userTurnId) {
|
|
136465
136698
|
await this.setUserTurnStatus(sessionDoc, userTurnId, "processing");
|
|
136466
136699
|
await this.upsertSessionMeta(sessionId, {
|
|
@@ -136846,7 +137079,6 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
136846
137079
|
});
|
|
136847
137080
|
const runReadySessionTurn = (readySession, ctx) => gen(function* () {
|
|
136848
137081
|
const { turnId, runtime, abortIfCancelled, openAssistantEntry, prompt: prompt2 } = ctx;
|
|
136849
|
-
runtime.requesterUserId = message.userId;
|
|
136850
137082
|
let activeSession = readySession;
|
|
136851
137083
|
let staleAcpPromptRecoveryAttempted = false;
|
|
136852
137084
|
let baseCommitHash = null;
|
|
@@ -137020,7 +137252,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137020
137252
|
yield* self2.tryPromise(() => runtime.yieldedFinalization);
|
|
137021
137253
|
const completedTurnId = runtime.turnId;
|
|
137022
137254
|
const completedUserTurnId = runtime.userTurnId ?? executionUserTurnId;
|
|
137023
|
-
const completedRequesterUserId = runtime.requesterUserId ?? userId;
|
|
137255
|
+
const completedRequesterUserId = runtime.invocation?.requesterUserId ?? userId;
|
|
137024
137256
|
const producedOutput = self2.turnProducedVisibleOutput(sessionId, completedTurnId);
|
|
137025
137257
|
yield* self2.tryPromise(() => traceAsync(self2.deps.logger, "execution.mark_prompt_completed", {
|
|
137026
137258
|
sessionId,
|
|
@@ -137093,6 +137325,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137093
137325
|
session: session2
|
|
137094
137326
|
} : {},
|
|
137095
137327
|
userTurnId: executionUserTurnId,
|
|
137328
|
+
invocation: {
|
|
137329
|
+
sourceTurnId: userTurnId,
|
|
137330
|
+
requesterUserId: userId,
|
|
137331
|
+
inputConfig: acpSessionConfig
|
|
137332
|
+
},
|
|
137096
137333
|
...dispatchOptions?.dispatchSource ? {
|
|
137097
137334
|
dispatchSource: dispatchOptions.dispatchSource
|
|
137098
137335
|
} : {},
|
|
@@ -137309,6 +137546,13 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137309
137546
|
sessionId,
|
|
137310
137547
|
sessionDoc,
|
|
137311
137548
|
userTurnId,
|
|
137549
|
+
...userTurnId ? {
|
|
137550
|
+
invocation: {
|
|
137551
|
+
sourceTurnId: userTurnId,
|
|
137552
|
+
requesterUserId: message.userId,
|
|
137553
|
+
inputConfig: acpSessionConfig
|
|
137554
|
+
}
|
|
137555
|
+
} : {},
|
|
137312
137556
|
...dispatchOptions?.dispatchSource ? {
|
|
137313
137557
|
dispatchSource: dispatchOptions.dispatchSource
|
|
137314
137558
|
} : {},
|
|
@@ -137320,7 +137564,6 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137320
137564
|
},
|
|
137321
137565
|
body: ({ turnId, runtime, setUnhandledErrorContext, bindSession, trackPendingSession, abortIfCancelled, openAssistantEntry, prompt: prompt2 }) => gen(function* () {
|
|
137322
137566
|
setUnhandledErrorContext(turnErrorContext);
|
|
137323
|
-
runtime.requesterUserId = message.userId;
|
|
137324
137567
|
const memoryPressureResult = yield* self2.tryPromise(() => self2.evictForTurnStart(sessionId));
|
|
137325
137568
|
if (memoryPressureResult.stillUnderPressure) {
|
|
137326
137569
|
const failureMessage = self2.formatMemoryPressureFailureMessage(memoryPressureResult);
|
|
@@ -137457,7 +137700,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
137457
137700
|
yield* self2.tryPromise(() => runtime.yieldedFinalization);
|
|
137458
137701
|
const completedTurnId = runtime.turnId;
|
|
137459
137702
|
const completedUserTurnId = runtime.userTurnId ?? userTurnId;
|
|
137460
|
-
const completedRequesterUserId = runtime.requesterUserId ?? sessionConfig.requesterUserId;
|
|
137703
|
+
const completedRequesterUserId = runtime.invocation?.requesterUserId ?? sessionConfig.requesterUserId;
|
|
137461
137704
|
const producedOutput = self2.turnProducedVisibleOutput(sessionId, completedTurnId);
|
|
137462
137705
|
yield* self2.tryPromise(() => traceAsync(self2.deps.logger, "execution.mark_prompt_completed", {
|
|
137463
137706
|
sessionId,
|
|
@@ -139324,6 +139567,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
139324
139567
|
sessionId,
|
|
139325
139568
|
sessionDoc,
|
|
139326
139569
|
userTurnId: nextUserTurn.id,
|
|
139570
|
+
invocation: {
|
|
139571
|
+
sourceTurnId: nextUserTurn.id,
|
|
139572
|
+
requesterUserId: nextUserTurn.userId,
|
|
139573
|
+
inputConfig: nextUserTurn.inputConfig ?? {}
|
|
139574
|
+
},
|
|
139327
139575
|
dispatchSource,
|
|
139328
139576
|
accessPromise: executionAccessPromise,
|
|
139329
139577
|
requestPromise,
|
|
@@ -141436,6 +141684,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
141436
141684
|
const FrozenConfigSchema = object$1({
|
|
141437
141685
|
agentConfigId: string$1().optional(),
|
|
141438
141686
|
inputConfig: record$1(string$1(), unknown()),
|
|
141687
|
+
sourceTurnId: string$1().trim().min(1).optional(),
|
|
141439
141688
|
targetDispatchConfigs: array$2(object$1({
|
|
141440
141689
|
modeId: string$1().optional(),
|
|
141441
141690
|
modelId: string$1().optional(),
|
|
@@ -141710,7 +141959,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
141710
141959
|
const existing = this.getStored(input2.requesterSessionId, input2.operationId);
|
|
141711
141960
|
if (existing) return {
|
|
141712
141961
|
created: false,
|
|
141713
|
-
operation: this.assertMatching(existing, input2.kind, fingerprint),
|
|
141962
|
+
operation: this.assertMatching(existing, input2.kind, fingerprint, input2.requesterUserId, frozenConfig.sourceTurnId),
|
|
141714
141963
|
claimedItemIndexes: []
|
|
141715
141964
|
};
|
|
141716
141965
|
const inserted = this.db.prepare(`INSERT OR IGNORE INTO operations (
|
|
@@ -141732,7 +141981,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
141732
141981
|
}
|
|
141733
141982
|
return {
|
|
141734
141983
|
created: inserted.changes === 1,
|
|
141735
|
-
operation: this.assertMatching(operation, input2.kind, fingerprint),
|
|
141984
|
+
operation: this.assertMatching(operation, input2.kind, fingerprint, input2.requesterUserId, frozenConfig.sourceTurnId),
|
|
141736
141985
|
claimedItemIndexes
|
|
141737
141986
|
};
|
|
141738
141987
|
});
|
|
@@ -141748,11 +141997,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
141748
141997
|
}
|
|
141749
141998
|
return operation;
|
|
141750
141999
|
}
|
|
141751
|
-
findMatchingRetry(requesterSessionId, operationId, kind, canonicalCommand) {
|
|
142000
|
+
findMatchingRetry(requesterSessionId, operationId, kind, canonicalCommand, requesterUserId, sourceTurnId) {
|
|
141752
142001
|
const existing = this.getStored(requesterSessionId, operationId);
|
|
141753
142002
|
if (!existing) return void 0;
|
|
141754
142003
|
const fingerprint = fingerprintLodyCommand(kind, canonicalizeLodyCommand(canonicalCommand));
|
|
141755
|
-
return this.assertMatching(existing, kind, fingerprint);
|
|
142004
|
+
return this.assertMatching(existing, kind, fingerprint, requesterUserId, sourceTurnId);
|
|
141756
142005
|
}
|
|
141757
142006
|
listActive(workspaceId, ownerMachineId) {
|
|
141758
142007
|
const rows = this.db.prepare(`SELECT * FROM operations
|
|
@@ -141760,6 +142009,24 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
141760
142009
|
ORDER BY created_at ASC, requester_session_id ASC, operation_id ASC`).all(workspaceId, ownerMachineId);
|
|
141761
142010
|
return rows.map((row) => this.decodeOperation(row));
|
|
141762
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
|
+
}
|
|
141763
142030
|
updateItems(requesterSessionId, operationId, items2) {
|
|
141764
142031
|
array$2(OperationItemSchema).parse(items2);
|
|
141765
142032
|
const result = this.db.prepare(`UPDATE operations SET items_json = ?
|
|
@@ -141917,8 +142184,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
141917
142184
|
const row = this.db.prepare("SELECT * FROM operations WHERE requester_session_id = ? AND operation_id = ?").get(requesterSessionId, operationId);
|
|
141918
142185
|
return row === void 0 ? void 0 : this.decodeOperation(row);
|
|
141919
142186
|
}
|
|
141920
|
-
assertMatching(operation, kind, fingerprint) {
|
|
141921
|
-
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) {
|
|
141922
142189
|
throw new LodyOperationStoreError("OPERATION_ID_REUSED", `Operation id ${operation.operationId} is already bound to different input.`, false);
|
|
141923
142190
|
}
|
|
141924
142191
|
return operation;
|
|
@@ -142003,6 +142270,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142003
142270
|
this.db.transaction(() => {
|
|
142004
142271
|
this.db.prepare(`DELETE FROM operations
|
|
142005
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
|
+
))
|
|
142006
142278
|
AND EXISTS (
|
|
142007
142279
|
SELECT 1 FROM deliveries
|
|
142008
142280
|
WHERE deliveries.requester_session_id = operations.requester_session_id
|
|
@@ -142070,6 +142342,14 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142070
142342
|
ON DELETE CASCADE
|
|
142071
142343
|
);
|
|
142072
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
|
+
|
|
142073
142353
|
CREATE TABLE IF NOT EXISTS orchestration_meta (
|
|
142074
142354
|
key TEXT PRIMARY KEY,
|
|
142075
142355
|
value TEXT NOT NULL
|
|
@@ -142099,6 +142379,126 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142099
142379
|
}).immediate();
|
|
142100
142380
|
}
|
|
142101
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
|
+
};
|
|
142102
142502
|
const TARGET_OUTPUT_PREVIEW_MAX_BYTES = 8 * 1024;
|
|
142103
142503
|
const MATERIALIZATION_RETRY_MIN_MS = 1e3;
|
|
142104
142504
|
const MATERIALIZATION_RETRY_MAX_MS = 3e4;
|
|
@@ -142168,6 +142568,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142168
142568
|
metaWatch = null;
|
|
142169
142569
|
store = null;
|
|
142170
142570
|
storeWatch = null;
|
|
142571
|
+
progressRetryTimer = null;
|
|
142171
142572
|
storeWakeTimer = null;
|
|
142172
142573
|
started = false;
|
|
142173
142574
|
materializationClaimToken = randomUUID();
|
|
@@ -142206,6 +142607,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142206
142607
|
this.storeWatch = null;
|
|
142207
142608
|
if (this.storeWakeTimer) clearTimeout(this.storeWakeTimer);
|
|
142208
142609
|
this.storeWakeTimer = null;
|
|
142610
|
+
if (this.progressRetryTimer) clearTimeout(this.progressRetryTimer);
|
|
142611
|
+
this.progressRetryTimer = null;
|
|
142209
142612
|
this.store?.close();
|
|
142210
142613
|
this.store = null;
|
|
142211
142614
|
for (const subscription of this.targetSubscriptions.values()) {
|
|
@@ -142267,6 +142670,20 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142267
142670
|
for (const operation of active2) {
|
|
142268
142671
|
await this.reconcileOperation(operation);
|
|
142269
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
|
+
}
|
|
142270
142687
|
const pendingDeliveries = this.withStore((store) => store.listPendingDeliveries(this.options.workspaceId));
|
|
142271
142688
|
for (const delivery of pendingDeliveries) {
|
|
142272
142689
|
this.enqueueDelivery(delivery, reason);
|
|
@@ -142292,9 +142709,11 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142292
142709
|
return;
|
|
142293
142710
|
}
|
|
142294
142711
|
const changed = JSON.stringify(items2) !== JSON.stringify(operation.items);
|
|
142712
|
+
let latestOperation = operation;
|
|
142295
142713
|
if (changed) {
|
|
142296
|
-
this.withStore((store) => store.updateItems(operation.requesterSessionId, operation.operationId, items2));
|
|
142714
|
+
latestOperation = this.withStore((store) => store.updateItems(operation.requesterSessionId, operation.operationId, items2));
|
|
142297
142715
|
}
|
|
142716
|
+
await this.writeOperationProgress(latestOperation);
|
|
142298
142717
|
if (items2.every((item) => item.status !== "active")) {
|
|
142299
142718
|
const completion = {
|
|
142300
142719
|
type: "result",
|
|
@@ -142302,11 +142721,89 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142302
142721
|
items: items2
|
|
142303
142722
|
}
|
|
142304
142723
|
};
|
|
142305
|
-
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);
|
|
142306
142726
|
this.clearDeadline(operation);
|
|
142307
142727
|
this.clearOperationMaterializationRetries(operation);
|
|
142308
142728
|
}
|
|
142309
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
|
+
}
|
|
142310
142807
|
async reconcileItem(operation, item, index, isAtDeadline, signal) {
|
|
142311
142808
|
if (item.status !== "active") return item;
|
|
142312
142809
|
if (signal.aborted) return item;
|
|
@@ -142365,7 +142862,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142365
142862
|
error: makeLodyError("TARGET_TIMEOUT", "Target input was not durably materialized before the Operation deadline.", false)
|
|
142366
142863
|
};
|
|
142367
142864
|
}
|
|
142368
|
-
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);
|
|
142369
142867
|
this.clearMaterializationRetry(operation, index);
|
|
142370
142868
|
item = {
|
|
142371
142869
|
...item,
|
|
@@ -142446,7 +142944,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142446
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;
|
|
142447
142945
|
}
|
|
142448
142946
|
subscribeTarget(sessionId, sessionDoc) {
|
|
142449
|
-
if (this.targetSubscriptions.has(sessionId)) return;
|
|
142947
|
+
if (!this.started || this.targetSubscriptions.has(sessionId)) return;
|
|
142450
142948
|
const unsubscribe = sessionDoc.mirror?.subscribe(() => {
|
|
142451
142949
|
void this.wake("target-history");
|
|
142452
142950
|
}) ?? (() => {
|
|
@@ -142754,11 +143252,15 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142754
143252
|
if (!operation.completion) {
|
|
142755
143253
|
throw new Error(`Finished Operation ${operation.operationId} has no completion.`);
|
|
142756
143254
|
}
|
|
143255
|
+
const progressMessageId = this.findProgressMessageId(await sessionDoc.getHistory(), operation);
|
|
142757
143256
|
const item = {
|
|
142758
143257
|
type: "operation_completion",
|
|
142759
143258
|
deliveryId: delivery.deliveryId,
|
|
142760
143259
|
operationId: operation.operationId,
|
|
142761
143260
|
operationKind: operation.kind,
|
|
143261
|
+
...progressMessageId ? {
|
|
143262
|
+
progressMessageId
|
|
143263
|
+
} : {},
|
|
142762
143264
|
completion: operation.completion,
|
|
142763
143265
|
...!configAvailable ? {
|
|
142764
143266
|
continuation: {
|
|
@@ -142773,6 +143275,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142773
143275
|
const turn = {
|
|
142774
143276
|
id: delivery.systemTurnId,
|
|
142775
143277
|
role: "system",
|
|
143278
|
+
userId: operation.requesterUserId,
|
|
142776
143279
|
timestamp: new Date(this.now()).toISOString(),
|
|
142777
143280
|
items: [
|
|
142778
143281
|
item
|
|
@@ -142790,6 +143293,25 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
|
|
|
142790
143293
|
turn
|
|
142791
143294
|
]);
|
|
142792
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
|
+
}
|
|
142793
143315
|
getContinuationEvidence(history, systemTurnId) {
|
|
142794
143316
|
const index = history.findIndex((entry) => entry.id === systemTurnId && entry.role === "system");
|
|
142795
143317
|
if (index < 0) return null;
|
|
@@ -154639,6 +155161,9 @@ ${edit.newString}` : edit.newString;
|
|
|
154639
155161
|
deliveryId: item.deliveryId,
|
|
154640
155162
|
operationId: item.operationId,
|
|
154641
155163
|
operationKind: item.operationKind,
|
|
155164
|
+
...item.progressMessageId ? {
|
|
155165
|
+
progressMessageId: item.progressMessageId
|
|
155166
|
+
} : {},
|
|
154642
155167
|
completion: item.completion,
|
|
154643
155168
|
...item.continuation ? {
|
|
154644
155169
|
continuation: item.continuation
|
|
@@ -155622,13 +156147,25 @@ ${entry.text}`).join("\n\n");
|
|
|
155622
156147
|
}
|
|
155623
156148
|
}
|
|
155624
156149
|
async function readSessionMachineAccess(args2) {
|
|
155625
|
-
const
|
|
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) {
|
|
155626
156162
|
try {
|
|
155627
|
-
|
|
156163
|
+
const readAccess = args2.requester.isDelegated ? canUseMachineForCliToken : canRequestMachineForCliToken;
|
|
156164
|
+
return await readAccess({
|
|
155628
156165
|
token: args2.auth.token,
|
|
155629
156166
|
workspaceId: args2.workspaceId,
|
|
155630
156167
|
machineId: args2.machineId,
|
|
155631
|
-
requesterUserId,
|
|
156168
|
+
requesterUserId: args2.requester.userId,
|
|
155632
156169
|
...args2.localProjectId ? {
|
|
155633
156170
|
localProjectId: args2.localProjectId
|
|
155634
156171
|
} : {}
|
|
@@ -155640,7 +156177,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155640
156177
|
}
|
|
155641
156178
|
}
|
|
155642
156179
|
async function assertMachineAccess(args2) {
|
|
155643
|
-
const access = await
|
|
156180
|
+
const access = await readResolvedSessionMachineAccess(args2);
|
|
155644
156181
|
if (!access.allowed) {
|
|
155645
156182
|
throw new Error(`Machine access denied for ${args2.machineId}: ${access.reason}`);
|
|
155646
156183
|
}
|
|
@@ -155714,6 +156251,26 @@ ${entry.text}`).join("\n\n");
|
|
|
155714
156251
|
}
|
|
155715
156252
|
return auth.userId;
|
|
155716
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
|
+
}
|
|
155717
156274
|
function resolveSessionCreateOwnerUserId(requesterUserId, sessionOwnerUserId) {
|
|
155718
156275
|
return normalizeCliValue(sessionOwnerUserId) ?? requesterUserId;
|
|
155719
156276
|
}
|
|
@@ -155740,11 +156297,11 @@ ${entry.text}`).join("\n\n");
|
|
|
155740
156297
|
async function listAuthorizedMachineMetasForCreate(args2) {
|
|
155741
156298
|
const rows = await Promise.all(args2.machines.map(async (machine) => ({
|
|
155742
156299
|
machine,
|
|
155743
|
-
access: await
|
|
156300
|
+
access: await readResolvedSessionMachineAccess({
|
|
155744
156301
|
auth: args2.auth,
|
|
155745
156302
|
workspaceId: args2.workspaceId,
|
|
155746
156303
|
machineId: machine.id,
|
|
155747
|
-
|
|
156304
|
+
requester: args2.requester
|
|
155748
156305
|
})
|
|
155749
156306
|
})));
|
|
155750
156307
|
return filterAuthorizedMachineMetas(rows.map((row) => row.machine), new Set(rows.filter((row) => row.access.allowed).map((row) => row.machine.id)));
|
|
@@ -155752,11 +156309,11 @@ ${entry.text}`).join("\n\n");
|
|
|
155752
156309
|
async function filterAuthorizedLocalProjectsForCreate(args2) {
|
|
155753
156310
|
const rows = await Promise.all(args2.localProjects.map(async (project) => ({
|
|
155754
156311
|
project,
|
|
155755
|
-
access: await
|
|
156312
|
+
access: await readResolvedSessionMachineAccess({
|
|
155756
156313
|
auth: args2.auth,
|
|
155757
156314
|
workspaceId: args2.workspaceId,
|
|
155758
156315
|
machineId: args2.machineId,
|
|
155759
|
-
|
|
156316
|
+
requester: args2.requester,
|
|
155760
156317
|
localProjectId: project.id
|
|
155761
156318
|
})
|
|
155762
156319
|
})));
|
|
@@ -155771,7 +156328,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155771
156328
|
auth: args2.auth,
|
|
155772
156329
|
workspaceId: args2.workspaceId,
|
|
155773
156330
|
machines,
|
|
155774
|
-
|
|
156331
|
+
requester: args2.requester
|
|
155775
156332
|
});
|
|
155776
156333
|
if (authorizedMachines.length === 0) {
|
|
155777
156334
|
throw new Error("No authorized machines are available in this workspace.");
|
|
@@ -155837,7 +156394,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155837
156394
|
const repos = await listWorkspaceGitHubRepositoriesForCliToken({
|
|
155838
156395
|
token: args2.auth.token,
|
|
155839
156396
|
workspaceId: args2.workspaceId,
|
|
155840
|
-
requesterUserId:
|
|
156397
|
+
requesterUserId: args2.requesterUserId,
|
|
155841
156398
|
enabledOnly: true
|
|
155842
156399
|
});
|
|
155843
156400
|
const normalized = args2.repoFullName.toLowerCase();
|
|
@@ -155861,7 +156418,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155861
156418
|
}
|
|
155862
156419
|
const response2 = await withMachineRpcClient(args2, async (client2) => await client2.requestLocalProjectGitState({
|
|
155863
156420
|
localProjectId: args2.localProjectId,
|
|
155864
|
-
requestedByUserId:
|
|
156421
|
+
requestedByUserId: args2.requesterUserId,
|
|
155865
156422
|
timeoutMs: 3e4
|
|
155866
156423
|
}));
|
|
155867
156424
|
if (!response2) {
|
|
@@ -155923,7 +156480,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155923
156480
|
return await listWorkspaceGitHubRepositoriesForCliToken({
|
|
155924
156481
|
token: args2.auth.token,
|
|
155925
156482
|
workspaceId: args2.workspaceId,
|
|
155926
|
-
requesterUserId:
|
|
156483
|
+
requesterUserId: args2.requesterUserId,
|
|
155927
156484
|
enabledOnly: true
|
|
155928
156485
|
});
|
|
155929
156486
|
} catch (error2) {
|
|
@@ -155951,7 +156508,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155951
156508
|
} : {}
|
|
155952
156509
|
});
|
|
155953
156510
|
}
|
|
155954
|
-
async function resolveLocalProjectRefOnMachineOrThrow(manager, workspaceId, auth, machineId, selector,
|
|
156511
|
+
async function resolveLocalProjectRefOnMachineOrThrow(manager, workspaceId, auth, machineId, selector, requester, requestedBranch, useWorktree) {
|
|
155955
156512
|
await syncMachineFlockDocsForRead(manager, workspaceId, [
|
|
155956
156513
|
machineId
|
|
155957
156514
|
], "session.local-projects");
|
|
@@ -155964,7 +156521,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155964
156521
|
workspaceId,
|
|
155965
156522
|
machineId,
|
|
155966
156523
|
localProjects,
|
|
155967
|
-
|
|
156524
|
+
requester
|
|
155968
156525
|
});
|
|
155969
156526
|
if (authorizedLocalProjects.length === 0) {
|
|
155970
156527
|
throw new Error("No authorized local projects are available on the target machine.");
|
|
@@ -155987,7 +156544,7 @@ ${entry.text}`).join("\n\n");
|
|
|
155987
156544
|
machineId,
|
|
155988
156545
|
localProjectId: project.id,
|
|
155989
156546
|
localRootPath: project.rootPath,
|
|
155990
|
-
requesterUserId,
|
|
156547
|
+
requesterUserId: requester.userId,
|
|
155991
156548
|
requestedBranch,
|
|
155992
156549
|
useWorktree
|
|
155993
156550
|
});
|
|
@@ -156050,7 +156607,7 @@ ${entry.text}`).join("\n\n");
|
|
|
156050
156607
|
async function resolveCreateContext(args2) {
|
|
156051
156608
|
const workspaceId = args2.workspace.id;
|
|
156052
156609
|
const agentSelector = resolveCreateAgentSelector(args2.options);
|
|
156053
|
-
const requesterUserId =
|
|
156610
|
+
const requesterUserId = args2.requester.userId;
|
|
156054
156611
|
const parentSelector = normalizeCliValue(args2.options.parent);
|
|
156055
156612
|
const currentSessionId = resolveCreateCurrentSessionId(args2.options);
|
|
156056
156613
|
if (parentSelector && args2.options.useCurrentSessionAsParent === true) {
|
|
@@ -156076,14 +156633,14 @@ ${entry.text}`).join("\n\n");
|
|
|
156076
156633
|
auth: args2.auth,
|
|
156077
156634
|
machineSelector: args2.options.machine,
|
|
156078
156635
|
defaultMachineId: args2.options.defaultMachineId,
|
|
156079
|
-
|
|
156636
|
+
requester: args2.requester,
|
|
156080
156637
|
parentSessionId
|
|
156081
156638
|
});
|
|
156082
156639
|
await assertMachineAccess({
|
|
156083
156640
|
auth: args2.auth,
|
|
156084
156641
|
workspaceId,
|
|
156085
156642
|
machineId: targetMachine.id,
|
|
156086
|
-
|
|
156643
|
+
requester: args2.requester
|
|
156087
156644
|
});
|
|
156088
156645
|
if (args2.skipMachineAvailabilityCheck !== true) {
|
|
156089
156646
|
await ensureTargetMachineOnline({
|
|
@@ -156137,13 +156694,13 @@ ${entry.text}`).join("\n\n");
|
|
|
156137
156694
|
branch
|
|
156138
156695
|
};
|
|
156139
156696
|
} else if (normalizedLocalProject) {
|
|
156140
|
-
project = await resolveLocalProjectRefOnMachineOrThrow(args2.manager, workspaceId, args2.auth, targetMachine.id, normalizedLocalProject,
|
|
156697
|
+
project = await resolveLocalProjectRefOnMachineOrThrow(args2.manager, workspaceId, args2.auth, targetMachine.id, normalizedLocalProject, args2.requester, requestedBranch, args2.options.worktree === true);
|
|
156141
156698
|
}
|
|
156142
156699
|
await assertMachineAccess({
|
|
156143
156700
|
auth: args2.auth,
|
|
156144
156701
|
workspaceId,
|
|
156145
156702
|
machineId: targetMachine.id,
|
|
156146
|
-
|
|
156703
|
+
requester: args2.requester,
|
|
156147
156704
|
localProjectId: project?.kind === "local" ? project.localProjectId : void 0
|
|
156148
156705
|
});
|
|
156149
156706
|
return {
|
|
@@ -156162,7 +156719,11 @@ ${entry.text}`).join("\n\n");
|
|
|
156162
156719
|
};
|
|
156163
156720
|
}
|
|
156164
156721
|
async function validateSessionCreateOptions(args2) {
|
|
156165
|
-
const
|
|
156722
|
+
const requester = resolveSessionRequester(args2.auth, args2.options.requesterUserId, args2.options.delegatedRequester);
|
|
156723
|
+
const resolved = await resolveCreateContext({
|
|
156724
|
+
...args2,
|
|
156725
|
+
requester
|
|
156726
|
+
});
|
|
156166
156727
|
return await resolveEffectiveSessionCreateDispatchConfig({
|
|
156167
156728
|
manager: args2.manager,
|
|
156168
156729
|
workspaceId: args2.workspace.id,
|
|
@@ -156265,13 +156826,15 @@ ${entry.text}`).join("\n\n");
|
|
|
156265
156826
|
sessionId: options.sessionId
|
|
156266
156827
|
});
|
|
156267
156828
|
}
|
|
156268
|
-
const
|
|
156829
|
+
const requester = resolveSessionRequester(auth, options.requesterUserId, options.delegatedRequester);
|
|
156830
|
+
const requesterUserId = requester.userId;
|
|
156269
156831
|
const sessionOwnerUserId = resolveSessionCreateOwnerUserId(requesterUserId, options.sessionOwnerUserId);
|
|
156270
156832
|
const resolved = await resolveCreateContext({
|
|
156271
156833
|
auth,
|
|
156272
156834
|
workspace,
|
|
156273
156835
|
manager,
|
|
156274
|
-
options
|
|
156836
|
+
options,
|
|
156837
|
+
requester
|
|
156275
156838
|
});
|
|
156276
156839
|
const { targetMachine, agentConfig, project, parentSessionId, openedBySessionId, openedByRootSessionId, taskId } = resolved;
|
|
156277
156840
|
const effectiveDispatchConfig = await resolveEffectiveSessionCreateDispatchConfig({
|
|
@@ -156432,8 +156995,17 @@ ${entry.text}`).join("\n\n");
|
|
|
156432
156995
|
}
|
|
156433
156996
|
}
|
|
156434
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) {
|
|
156435
157008
|
await syncWorkspaceMetaForRead(args2.manager, `session.chat:${args2.sessionId}:prewrite:meta`);
|
|
156436
|
-
const requesterUserId = resolveSessionCommandRequesterUserId(args2.auth, args2.requesterUserIdOverride);
|
|
156437
157009
|
const session2 = await resolveSessionMetaOrThrow(args2.manager, args2.sessionId);
|
|
156438
157010
|
if (session2.isArchived) {
|
|
156439
157011
|
throw new Error(`Session ${args2.sessionId} is archived. Restore it before chatting.`);
|
|
@@ -156442,7 +157014,7 @@ ${entry.text}`).join("\n\n");
|
|
|
156442
157014
|
auth: args2.auth,
|
|
156443
157015
|
workspaceId: args2.workspace.id,
|
|
156444
157016
|
machineId: session2.machineId,
|
|
156445
|
-
|
|
157017
|
+
requester: args2.requester,
|
|
156446
157018
|
localProjectId: session2.project?.kind === "local" ? session2.project.localProjectId : void 0
|
|
156447
157019
|
});
|
|
156448
157020
|
await ensureTargetMachineOnline({
|
|
@@ -156452,14 +157024,15 @@ ${entry.text}`).join("\n\n");
|
|
|
156452
157024
|
});
|
|
156453
157025
|
return session2;
|
|
156454
157026
|
}
|
|
156455
|
-
async function sendSessionChatResult(auth, workspace, manager, sessionId, prompt2, dispatchConfig, structuredOutput, requesterUserIdOverride, orchestration) {
|
|
156456
|
-
const
|
|
156457
|
-
const
|
|
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({
|
|
156458
157031
|
auth,
|
|
156459
157032
|
workspace,
|
|
156460
157033
|
manager,
|
|
156461
157034
|
sessionId,
|
|
156462
|
-
|
|
157035
|
+
requester
|
|
156463
157036
|
});
|
|
156464
157037
|
if (dispatchConfig.modeId || dispatchConfig.modelId || dispatchConfig.configOptionValues) {
|
|
156465
157038
|
const capability = await readAgentAcpCapability({
|
|
@@ -157111,6 +157684,7 @@ ${entry.text}`).join("\n\n");
|
|
|
157111
157684
|
auth,
|
|
157112
157685
|
workspaceId,
|
|
157113
157686
|
machineId: session2.machineId,
|
|
157687
|
+
requester: resolveSessionRequester(auth),
|
|
157114
157688
|
localProjectId: session2.project?.kind === "local" ? session2.project.localProjectId : void 0
|
|
157115
157689
|
});
|
|
157116
157690
|
const turnId = await resolveRunningAssistantTurnId(manager, sessionId);
|
|
@@ -157564,6 +158138,7 @@ ${entry.text}`).join("\n\n");
|
|
|
157564
158138
|
resolveRenameArgs,
|
|
157565
158139
|
resolveSessionCommandRequesterUserId,
|
|
157566
158140
|
resolveSessionCreateOwnerUserId,
|
|
158141
|
+
resolveSessionRequester,
|
|
157567
158142
|
resolveTurnDispatchConfig,
|
|
157568
158143
|
resolveTurnDispatchConfigFromInputConfig,
|
|
157569
158144
|
rollbackPendingSessionCreate,
|
|
@@ -161075,11 +161650,32 @@ ${entry.text}`).join("\n\n");
|
|
|
161075
161650
|
};
|
|
161076
161651
|
}
|
|
161077
161652
|
limits;
|
|
161078
|
-
async
|
|
161079
|
-
const
|
|
161080
|
-
|
|
161081
|
-
|
|
161082
|
-
}
|
|
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;
|
|
161083
161679
|
const workspace = await this.deps.resolveWorkspace(request2.sessionId);
|
|
161084
161680
|
if (!workspace.ok) {
|
|
161085
161681
|
return filePreviewV3Error(workspace.code, {
|
|
@@ -161095,10 +161691,7 @@ ${entry.text}`).join("\n\n");
|
|
|
161095
161691
|
extraRoots: this.deps.extraRoots
|
|
161096
161692
|
},
|
|
161097
161693
|
options: {
|
|
161098
|
-
...this.deps.pathPolicy
|
|
161099
|
-
...options.allowArbitraryPaths ? {
|
|
161100
|
-
allowArbitraryPaths: true
|
|
161101
|
-
} : {}
|
|
161694
|
+
...this.deps.pathPolicy
|
|
161102
161695
|
}
|
|
161103
161696
|
});
|
|
161104
161697
|
if (!resolution.ok) {
|
|
@@ -161163,13 +161756,13 @@ ${entry.text}`).join("\n\n");
|
|
|
161163
161756
|
};
|
|
161164
161757
|
}
|
|
161165
161758
|
if (isImageByName || hasBinaryNul(bytes)) {
|
|
161166
|
-
return this.binaryOk(resolved, bytes, digest, limits
|
|
161759
|
+
return this.binaryOk(resolved, bytes, digest, limits);
|
|
161167
161760
|
}
|
|
161168
161761
|
let text;
|
|
161169
161762
|
try {
|
|
161170
161763
|
text = decodeUtf8(bytes);
|
|
161171
161764
|
} catch {
|
|
161172
|
-
return this.binaryOk(resolved, bytes, digest, limits
|
|
161765
|
+
return this.binaryOk(resolved, bytes, digest, limits);
|
|
161173
161766
|
}
|
|
161174
161767
|
let content;
|
|
161175
161768
|
try {
|
|
@@ -161182,15 +161775,6 @@ ${entry.text}`).join("\n\n");
|
|
|
161182
161775
|
limitBytes: limits.maxCompressedBytes
|
|
161183
161776
|
});
|
|
161184
161777
|
}
|
|
161185
|
-
const payloadOverflow = options.sameMachine ? measurePayloadOverflow(content, FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) : null;
|
|
161186
|
-
if (payloadOverflow !== null) {
|
|
161187
|
-
return filePreviewV3Error("too_large", {
|
|
161188
|
-
message: "File is too large to preview.",
|
|
161189
|
-
path: resolved.reportedPath,
|
|
161190
|
-
sizeBytes: bytes.byteLength,
|
|
161191
|
-
limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
161192
|
-
});
|
|
161193
|
-
}
|
|
161194
161778
|
return {
|
|
161195
161779
|
status: "ok",
|
|
161196
161780
|
v: FILE_PREVIEW_PROTOCOL_VERSION,
|
|
@@ -161206,7 +161790,7 @@ ${entry.text}`).join("\n\n");
|
|
|
161206
161790
|
readonly: true
|
|
161207
161791
|
};
|
|
161208
161792
|
}
|
|
161209
|
-
binaryOk(resolved, bytes, digest, limits
|
|
161793
|
+
binaryOk(resolved, bytes, digest, limits) {
|
|
161210
161794
|
if (bytes.byteLength > limits.maxBinaryBytes) {
|
|
161211
161795
|
return filePreviewV3Error("too_large", {
|
|
161212
161796
|
message: "Binary file is too large to preview.",
|
|
@@ -161216,14 +161800,6 @@ ${entry.text}`).join("\n\n");
|
|
|
161216
161800
|
});
|
|
161217
161801
|
}
|
|
161218
161802
|
const data = Buffer.from(bytes).toString("base64");
|
|
161219
|
-
if (sameMachine && data.length > FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES) {
|
|
161220
|
-
return filePreviewV3Error("too_large", {
|
|
161221
|
-
message: "Binary file is too large to preview.",
|
|
161222
|
-
path: resolved.reportedPath,
|
|
161223
|
-
sizeBytes: bytes.byteLength,
|
|
161224
|
-
limitBytes: FILE_PREVIEW_LOCAL_PAYLOAD_BUDGET_BYTES
|
|
161225
|
-
});
|
|
161226
|
-
}
|
|
161227
161803
|
const mimeType = getImageMimeTypeForPath(resolved.reportedPath);
|
|
161228
161804
|
return {
|
|
161229
161805
|
status: "ok",
|
|
@@ -161264,10 +161840,6 @@ ${entry.text}`).join("\n\n");
|
|
|
161264
161840
|
};
|
|
161265
161841
|
}
|
|
161266
161842
|
}
|
|
161267
|
-
function measurePayloadOverflow(content, budgetBytes) {
|
|
161268
|
-
const encodedBytes = content.encoding === "utf8-plain" ? Buffer.byteLength(JSON.stringify(content.text), "utf8") : content.data.length;
|
|
161269
|
-
return encodedBytes > budgetBytes ? encodedBytes - budgetBytes : null;
|
|
161270
|
-
}
|
|
161271
161843
|
async function readFileWithinLimit(absolutePath, limitBytes) {
|
|
161272
161844
|
const handle = await open(absolutePath, "r");
|
|
161273
161845
|
try {
|
|
@@ -165629,7 +166201,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165629
166201
|
retryable: false
|
|
165630
166202
|
};
|
|
165631
166203
|
}
|
|
165632
|
-
if (host !== "localhost" && require$$0$
|
|
166204
|
+
if (host !== "localhost" && require$$0$a.isIP(host) === 0) {
|
|
165633
166205
|
return {
|
|
165634
166206
|
code: "host_not_loopback",
|
|
165635
166207
|
message: `Preview target host must be a loopback address or "localhost", got ${target.host}.`,
|
|
@@ -165664,7 +166236,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
165664
166236
|
host
|
|
165665
166237
|
];
|
|
165666
166238
|
const probeTcpHost = async (host, port) => await new Promise((resolve2) => {
|
|
165667
|
-
const socket = require$$0$
|
|
166239
|
+
const socket = require$$0$a.createConnection({
|
|
165668
166240
|
host,
|
|
165669
166241
|
port
|
|
165670
166242
|
});
|
|
@@ -168355,7 +168927,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
168355
168927
|
};
|
|
168356
168928
|
}
|
|
168357
168929
|
});
|
|
168358
|
-
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));
|
|
168359
168931
|
this.autoPromptRunner = new AutoPromptRunner({
|
|
168360
168932
|
workspaceId: this.workspaceId,
|
|
168361
168933
|
beginConversationTurn: (sessionId, userTurnId) => this.beginConversationTurn(sessionId, userTurnId),
|
|
@@ -168807,6 +169379,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
168807
169379
|
static CODE_COLLAB_EVIDENCE_RETRY_MAX_DELAY_MS = 1600;
|
|
168808
169380
|
static CONTEXT_WINDOW_USAGE_THROTTLE_MS = 400;
|
|
168809
169381
|
permissionRequestStartTimes = /* @__PURE__ */ new Map();
|
|
169382
|
+
pendingPermissionRequests = /* @__PURE__ */ new Map();
|
|
168810
169383
|
static MACHINE_ACCESS_REGISTRATION_CACHE_TTL_MS = 20 * 6e4;
|
|
168811
169384
|
machineAccessRegistrationInFlight = null;
|
|
168812
169385
|
machineAccessRegistrationExpiresAtMs = 0;
|
|
@@ -170246,6 +170819,9 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
170246
170819
|
throw new Error(`Requester Session not found: ${operation.requesterSessionId}`);
|
|
170247
170820
|
}
|
|
170248
170821
|
const requester = requesterRecord.meta;
|
|
170822
|
+
const delegatedRequester = operation.frozenContinuationConfig.sourceTurnId ? {
|
|
170823
|
+
userId: operation.requesterUserId
|
|
170824
|
+
} : void 0;
|
|
170249
170825
|
if (operation.kind === "session_create" || operation.kind === "session_create_many") {
|
|
170250
170826
|
const runConfig = {
|
|
170251
170827
|
...typeof command2.modelId === "string" ? {
|
|
@@ -170274,8 +170850,12 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
170274
170850
|
workspace: this.workspaceId,
|
|
170275
170851
|
currentSessionId: operation.requesterSessionId,
|
|
170276
170852
|
workspaceMetaPrewriteSatisfied: true,
|
|
170277
|
-
|
|
170278
|
-
|
|
170853
|
+
...delegatedRequester ? {
|
|
170854
|
+
delegatedRequester
|
|
170855
|
+
} : {
|
|
170856
|
+
requesterUserId: operation.requesterUserId,
|
|
170857
|
+
sessionOwnerUserId: requester.userId
|
|
170858
|
+
},
|
|
170279
170859
|
defaultMachineId: requester.machineId,
|
|
170280
170860
|
sessionId: item.target.sessionId,
|
|
170281
170861
|
userTurnId: item.target.userTurnId,
|
|
@@ -170308,11 +170888,11 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
170308
170888
|
await sendSessionChatResult(auth, workspace, this.workspaceDocument, item.target.sessionId, prompt2, {
|
|
170309
170889
|
...resolveTurnDispatchConfig({}),
|
|
170310
170890
|
taskToolsEnabled: operation.frozenContinuationConfig.inputConfig.taskToolsEnabled === true
|
|
170311
|
-
}, void 0, operation.requesterUserId, {
|
|
170891
|
+
}, void 0, delegatedRequester ? void 0 : operation.requesterUserId, {
|
|
170312
170892
|
userTurnId: item.target.userTurnId,
|
|
170313
170893
|
chainDepth: operation.initiatorChainDepth + 1,
|
|
170314
170894
|
bypassSessionQuota: shouldBypassSessionQuota(operation.kind)
|
|
170315
|
-
});
|
|
170895
|
+
}, delegatedRequester);
|
|
170316
170896
|
}
|
|
170317
170897
|
async ensureMachineRegistered() {
|
|
170318
170898
|
try {
|
|
@@ -172035,20 +172615,11 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
172035
172615
|
await sessionDoc2.setLastMessageAt();
|
|
172036
172616
|
}
|
|
172037
172617
|
const sessionDoc = await this.workspaceDocument.getOrCreateSessionDoc(sessionId);
|
|
172038
|
-
await sessionDoc.updateHistory((history) => {
|
|
172039
|
-
|
|
172040
|
-
|
|
172041
|
-
|
|
172042
|
-
|
|
172043
|
-
entry.endedAt = endedAt;
|
|
172044
|
-
if (permissionWaitMs !== void 0) {
|
|
172045
|
-
entry.permissionWaitMs = permissionWaitMs;
|
|
172046
|
-
}
|
|
172047
|
-
break;
|
|
172048
|
-
}
|
|
172049
|
-
}
|
|
172050
|
-
return history;
|
|
172051
|
-
});
|
|
172618
|
+
await sessionDoc.updateHistory((history) => markAssistantTurnFinished(history, {
|
|
172619
|
+
turnId,
|
|
172620
|
+
endedAt,
|
|
172621
|
+
permissionWaitMs
|
|
172622
|
+
}));
|
|
172052
172623
|
await sessionDoc.waitUntilSynced();
|
|
172053
172624
|
} catch (error2) {
|
|
172054
172625
|
this.logger.error(`[${sessionId}] Failed to flush ACP updates during finalization:`, error2);
|
|
@@ -172642,12 +173213,23 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
172642
173213
|
case "file/preview":
|
|
172643
173214
|
await assertOwner(request2.params.sessionId);
|
|
172644
173215
|
return await this.filePreviewService.previewFile(request2.params);
|
|
172645
|
-
case "file/
|
|
173216
|
+
case "file/resolve-local":
|
|
172646
173217
|
await assertOwner(request2.params.sessionId);
|
|
172647
|
-
return await this.filePreviewService.
|
|
172648
|
-
|
|
172649
|
-
|
|
172650
|
-
|
|
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
|
+
}
|
|
172651
173233
|
case "session/cancel": {
|
|
172652
173234
|
const result = await this.executionService.cancelSession({
|
|
172653
173235
|
type: "session/cancel",
|
|
@@ -173932,7 +174514,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
173932
174514
|
cpuUsagePercent: totalCpus > 0 ? Math.min(100, loadAverage / totalCpus * 100) : 0
|
|
173933
174515
|
};
|
|
173934
174516
|
}
|
|
173935
|
-
async handleAgentPermissionRequest(sessionId, requestId, request2, model) {
|
|
174517
|
+
async handleAgentPermissionRequest(sessionId, requestId, request2, model, agentClient) {
|
|
173936
174518
|
const isAskUserQuestionRequest = isAskUserQuestionPermissionRequest(request2);
|
|
173937
174519
|
const askUserQuestionMeta = isAskUserQuestionRequest ? parseAskUserQuestionPermissionMeta(request2._meta) : null;
|
|
173938
174520
|
const permissionTimeoutMs = typeof askUserQuestionMeta?.autoResolveAt === "number" ? Math.min(PERMISSION_REQUEST_TIMEOUT_MS, Math.max(0, askUserQuestionMeta.autoResolveAt - getServerNow())) : PERMISSION_REQUEST_TIMEOUT_MS;
|
|
@@ -174007,6 +174589,28 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174007
174589
|
}
|
|
174008
174590
|
};
|
|
174009
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);
|
|
174010
174614
|
try {
|
|
174011
174615
|
await doc.setStatus(SessionStatusFactory.requestPermission(), {
|
|
174012
174616
|
awaitingUserSince: getServerNow()
|
|
@@ -174015,6 +174619,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174015
174619
|
} catch (error2) {
|
|
174016
174620
|
this.logger.error(`[${sessionId}] Failed to mark session as waiting for permission: ${formatErrorMessage(error2)}`);
|
|
174017
174621
|
}
|
|
174622
|
+
let resolved = false;
|
|
174018
174623
|
const permissionUserId = historyUserId ?? metaUserId ?? this.userId;
|
|
174019
174624
|
const notificationService = this.notificationService;
|
|
174020
174625
|
const workspaceSlug = this.workspaceSlug?.trim() || this.workspaceId;
|
|
@@ -174038,6 +174643,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174038
174643
|
if (requestKind === "permission") {
|
|
174039
174644
|
void (async () => {
|
|
174040
174645
|
const historySynced = await doc.waitUntilSynced();
|
|
174646
|
+
if (resolved) return;
|
|
174041
174647
|
if (!historySynced) {
|
|
174042
174648
|
this.logger.debug(`[${sessionId}] Permission request history was not confirmed before Live Activity sync; sending notification fallback`);
|
|
174043
174649
|
await notificationService.notifyPermissionRequested(notificationInput);
|
|
@@ -174046,6 +174652,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174046
174652
|
const liveActivityResult = await this.syncLiveActivitySummary(permissionUserId, {
|
|
174047
174653
|
permissionAlert: true
|
|
174048
174654
|
});
|
|
174655
|
+
if (resolved) return;
|
|
174049
174656
|
if (liveActivityResult.sent && !liveActivityResult.ended) {
|
|
174050
174657
|
return;
|
|
174051
174658
|
}
|
|
@@ -174060,11 +174667,13 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174060
174667
|
}
|
|
174061
174668
|
this.permissionRequestStartTimes.set(requestId, Date.now());
|
|
174062
174669
|
return new Promise((resolve2) => {
|
|
174063
|
-
let resolved = false;
|
|
174064
174670
|
let timedOutResolution = false;
|
|
174065
174671
|
let unsubscribe = null;
|
|
174672
|
+
let unsubscribeConfig;
|
|
174066
174673
|
let timeoutId = null;
|
|
174067
174674
|
const cleanup = () => {
|
|
174675
|
+
unsubscribeConfig?.();
|
|
174676
|
+
unsubscribeConfig = void 0;
|
|
174068
174677
|
if (unsubscribe) {
|
|
174069
174678
|
unsubscribe();
|
|
174070
174679
|
unsubscribe = null;
|
|
@@ -174074,10 +174683,20 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174074
174683
|
timeoutId = null;
|
|
174075
174684
|
}
|
|
174076
174685
|
};
|
|
174077
|
-
const resolveWithOutcome = async (outcome, resolutionSource = "client") => {
|
|
174686
|
+
const resolveWithOutcome = async (outcome, resolutionSource = "client", persistOutcome = false) => {
|
|
174078
174687
|
if (resolved) return;
|
|
174079
174688
|
resolved = true;
|
|
174080
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
|
+
}
|
|
174081
174700
|
const requestStartTime = this.permissionRequestStartTimes.get(requestId);
|
|
174082
174701
|
if (requestStartTime) {
|
|
174083
174702
|
const waitMs = Date.now() - requestStartTime;
|
|
@@ -174086,10 +174705,14 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174086
174705
|
this.permissionRequestStartTimes.delete(requestId);
|
|
174087
174706
|
this.logger.debug(`[${sessionId}] Permission wait time: ${waitMs}ms (total: ${state2.permissionWaitMs}ms)`);
|
|
174088
174707
|
}
|
|
174089
|
-
|
|
174090
|
-
|
|
174091
|
-
|
|
174092
|
-
|
|
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
|
+
}
|
|
174093
174716
|
}
|
|
174094
174717
|
this.logger.info(`Permission resolved for session ${sessionId}: ${outcome.outcome}`);
|
|
174095
174718
|
this.logger.debug(`[${sessionId}] Permission request ${requestId} resolved with outcome: ${outcome.outcome}`);
|
|
@@ -174108,7 +174731,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174108
174731
|
try {
|
|
174109
174732
|
const maybeGetStatus = doc.getStatus;
|
|
174110
174733
|
const currentStatus = typeof maybeGetStatus === "function" ? await maybeGetStatus.call(doc) : "unknown";
|
|
174111
|
-
if (shouldRestoreRunningAfterPermission({
|
|
174734
|
+
if (!this.pendingPermissionRequests.has(sessionId) && shouldRestoreRunningAfterPermission({
|
|
174112
174735
|
hasActivePresence: this.hasSessionActivePresence(sessionId),
|
|
174113
174736
|
status: currentStatus
|
|
174114
174737
|
})) {
|
|
@@ -174136,7 +174759,23 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174136
174759
|
checkForOutcome();
|
|
174137
174760
|
});
|
|
174138
174761
|
}
|
|
174139
|
-
|
|
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;
|
|
174140
174779
|
timeoutId = setTimeout(() => {
|
|
174141
174780
|
void (async () => {
|
|
174142
174781
|
if (resolved) return;
|
|
@@ -174674,6 +175313,7 @@ ${escapeHtmlScriptContent(VISUAL_ANNOTATION_INSPECTOR_BROWSER_SCRIPT)}
|
|
|
174674
175313
|
}
|
|
174675
175314
|
cancelPendingPermissionRequests() {
|
|
174676
175315
|
this.permissionRequestStartTimes.clear();
|
|
175316
|
+
this.pendingPermissionRequests.clear();
|
|
174677
175317
|
}
|
|
174678
175318
|
async cleanup() {
|
|
174679
175319
|
this.logger.debug("Cleaning up message handler resources");
|
|
@@ -178388,7 +179028,7 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
|
|
|
178388
179028
|
}
|
|
178389
179029
|
InternalCodec.prototype.encoder = InternalEncoder;
|
|
178390
179030
|
InternalCodec.prototype.decoder = InternalDecoder;
|
|
178391
|
-
var StringDecoder2 = require$$1$
|
|
179031
|
+
var StringDecoder2 = require$$1$2.StringDecoder;
|
|
178392
179032
|
if (!StringDecoder2.prototype.end) StringDecoder2.prototype.end = function() {
|
|
178393
179033
|
};
|
|
178394
179034
|
function InternalDecoder(options, codec) {
|
|
@@ -183777,7 +184417,11 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
|
|
|
183777
184417
|
acpSessionId = started.acpSessionId;
|
|
183778
184418
|
acpCapabilities = normalizeAcpSessionCapabilities(started.sessionResponse, {
|
|
183779
184419
|
sessionFork: started.client.supportsSessionFork(),
|
|
183780
|
-
acknowledgedSteer: started.client.supportsAcknowledgedSteer()
|
|
184420
|
+
acknowledgedSteer: started.client.supportsAcknowledgedSteer(),
|
|
184421
|
+
agent: {
|
|
184422
|
+
cliType: this.config.agentCliType,
|
|
184423
|
+
agentType: this.config.agentType
|
|
184424
|
+
}
|
|
183781
184425
|
});
|
|
183782
184426
|
} catch (error2) {
|
|
183783
184427
|
if (error2 instanceof AcpStartupProcessExitError || error2 instanceof AcpStartupProcessError) {
|
|
@@ -194034,23 +194678,48 @@ Shutting down gracefully${reason}...`);
|
|
|
194034
194678
|
}
|
|
194035
194679
|
const HOST_TCP_ADDRESS = "127.0.0.1";
|
|
194036
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;
|
|
194037
194684
|
function getUserPipeSuffix() {
|
|
194038
194685
|
if (typeof process.getuid === "function") return String(process.getuid());
|
|
194039
194686
|
const userInfo2 = os__default.userInfo();
|
|
194040
194687
|
return crypto__default$1.createHash("sha256").update(`${userInfo2.uid}:${userInfo2.username}:${os__default.homedir()}`).digest("hex").slice(0, 16);
|
|
194041
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
|
+
}
|
|
194042
194711
|
function getLocalCliHostEndpoint(platform2) {
|
|
194043
194712
|
const profile = getInstallationProfile(platform2);
|
|
194044
194713
|
if (process.platform === "win32") {
|
|
194045
194714
|
return {
|
|
194046
194715
|
kind: "pipe",
|
|
194047
|
-
path: `\\\\.\\pipe\\${profile.namespace}-agent-host-${getUserPipeSuffix()}`
|
|
194716
|
+
path: getE2eHostPipe() ?? `\\\\.\\pipe\\${profile.namespace}-agent-host-${getUserPipeSuffix()}`
|
|
194048
194717
|
};
|
|
194049
194718
|
}
|
|
194050
194719
|
return {
|
|
194051
194720
|
kind: "tcp",
|
|
194052
194721
|
host: HOST_TCP_ADDRESS,
|
|
194053
|
-
port: profile.localCliHostPort
|
|
194722
|
+
port: getE2eHostPort() ?? profile.localCliHostPort
|
|
194054
194723
|
};
|
|
194055
194724
|
}
|
|
194056
194725
|
function throwIfAborted(signal) {
|
|
@@ -195534,7 +196203,7 @@ Shutting down gracefully${reason}...`);
|
|
|
195534
196203
|
const defaultOpts = {
|
|
195535
196204
|
defaultWidth: 0,
|
|
195536
196205
|
output: process.stdout,
|
|
195537
|
-
tty: require$$
|
|
196206
|
+
tty: require$$0$8
|
|
195538
196207
|
};
|
|
195539
196208
|
if (!options) {
|
|
195540
196209
|
return defaultOpts;
|
|
@@ -204090,7 +204759,7 @@ ${page}${helpTipBottom}${choiceDescription}${error2}${ansiEscapes.cursorHide}`;
|
|
|
204090
204759
|
}
|
|
204091
204760
|
InternalCodec.prototype.encoder = InternalEncoder;
|
|
204092
204761
|
InternalCodec.prototype.decoder = InternalDecoder;
|
|
204093
|
-
var StringDecoder2 = require$$1$
|
|
204762
|
+
var StringDecoder2 = require$$1$2.StringDecoder;
|
|
204094
204763
|
if (!StringDecoder2.prototype.end) StringDecoder2.prototype.end = function() {
|
|
204095
204764
|
};
|
|
204096
204765
|
function InternalDecoder(options, codec) {
|
|
@@ -208196,7 +208865,7 @@ ${page}${helpTipBottom}${choiceDescription}${error2}${ansiEscapes.cursorHide}`;
|
|
|
208196
208865
|
value: true
|
|
208197
208866
|
});
|
|
208198
208867
|
var chardet_1 = requireChardet();
|
|
208199
|
-
var child_process_1 = require$$1$
|
|
208868
|
+
var child_process_1 = require$$1$7;
|
|
208200
208869
|
var fs_1 = fs__default;
|
|
208201
208870
|
var iconv_lite_1 = requireLib();
|
|
208202
208871
|
var tmp_1 = requireTmp();
|
|
@@ -222285,7 +222954,7 @@ ${page}${helpTipBottom}${choiceDescription}${ansiEscapes.cursorHide}`;
|
|
|
222285
222954
|
data = createReviewBundleSnapshot(bundle);
|
|
222286
222955
|
}
|
|
222287
222956
|
const { injectReviewSnapshot } = await import("./chunks/index-VoI6Ds2-.js");
|
|
222288
|
-
const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-
|
|
222957
|
+
const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-CEr3NCEE.js").then(async (m) => {
|
|
222289
222958
|
await m.__tla;
|
|
222290
222959
|
return m;
|
|
222291
222960
|
});
|
|
@@ -241279,6 +241948,32 @@ ${result.stdout ?? ""}`;
|
|
|
241279
241948
|
})))));
|
|
241280
241949
|
return responses.map((response2) => LocalSessionControlResponseSchema.parse(response2));
|
|
241281
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
|
+
};
|
|
241282
241977
|
const pickResponse = (responses, expectedType, label2) => {
|
|
241283
241978
|
const found = responses.find((response2) => response2.type === expectedType);
|
|
241284
241979
|
if (found === void 0) {
|
|
@@ -242052,33 +242747,33 @@ ${prompt2}` : prompt2;
|
|
|
242052
242747
|
auth: args2.auth,
|
|
242053
242748
|
workspaceId: args2.workspaceId,
|
|
242054
242749
|
machineId: args2.machineId,
|
|
242055
|
-
|
|
242750
|
+
delegatedRequester: args2.delegatedRequester,
|
|
242056
242751
|
...args2.localProjectId ? {
|
|
242057
242752
|
localProjectId: args2.localProjectId
|
|
242058
242753
|
} : {}
|
|
242059
242754
|
});
|
|
242060
242755
|
return access.allowed;
|
|
242061
242756
|
};
|
|
242062
|
-
const filterAuthorizedMachinesForOptions = async (auth, workspaceId, machines,
|
|
242757
|
+
const filterAuthorizedMachinesForOptions = async (auth, workspaceId, machines, delegatedRequester) => {
|
|
242063
242758
|
const rows = await Promise.all(machines.map(async (machine) => ({
|
|
242064
242759
|
machine,
|
|
242065
242760
|
allowed: await canUseMachineForOptions({
|
|
242066
242761
|
auth,
|
|
242067
242762
|
workspaceId,
|
|
242068
242763
|
machineId: machine.id,
|
|
242069
|
-
|
|
242764
|
+
delegatedRequester
|
|
242070
242765
|
})
|
|
242071
242766
|
})));
|
|
242072
242767
|
return rows.filter((row) => row.allowed).map((row) => row.machine);
|
|
242073
242768
|
};
|
|
242074
|
-
const filterAuthorizedLocalProjectsForOptions = async (auth, workspaceId, machineId, localProjects,
|
|
242769
|
+
const filterAuthorizedLocalProjectsForOptions = async (auth, workspaceId, machineId, localProjects, delegatedRequester) => {
|
|
242075
242770
|
const rows = await Promise.all(localProjects.map(async (project) => ({
|
|
242076
242771
|
project,
|
|
242077
242772
|
allowed: await canUseMachineForOptions({
|
|
242078
242773
|
auth,
|
|
242079
242774
|
workspaceId,
|
|
242080
242775
|
machineId,
|
|
242081
|
-
|
|
242776
|
+
delegatedRequester,
|
|
242082
242777
|
localProjectId: project.id
|
|
242083
242778
|
})
|
|
242084
242779
|
})));
|
|
@@ -242096,54 +242791,61 @@ ${prompt2}` : prompt2;
|
|
|
242096
242791
|
}
|
|
242097
242792
|
return record2.meta;
|
|
242098
242793
|
};
|
|
242099
|
-
const bindMcpCreateContext = (options,
|
|
242100
|
-
options.
|
|
242101
|
-
options.sessionOwnerUserId = requester.userId;
|
|
242794
|
+
const bindMcpCreateContext = (options, identity2, requester) => {
|
|
242795
|
+
options.delegatedRequester = toDelegatedSessionRequester(identity2);
|
|
242102
242796
|
options.defaultMachineId = requester.machineId;
|
|
242103
242797
|
};
|
|
242104
|
-
const
|
|
242105
|
-
|
|
242106
|
-
|
|
242107
|
-
|
|
242108
|
-
|
|
242109
|
-
|
|
242110
|
-
}
|
|
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);
|
|
242111
242805
|
}
|
|
242112
|
-
|
|
242113
|
-
|
|
242114
|
-
|
|
242115
|
-
|
|
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);
|
|
242116
242815
|
}
|
|
242117
|
-
const
|
|
242118
|
-
|
|
242119
|
-
|
|
242120
|
-
|
|
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
|
+
};
|
|
242121
242825
|
};
|
|
242122
242826
|
const assertInvokingTurnTaskToolsEnabled = async (manager, sessionId) => {
|
|
242123
242827
|
const session2 = await readCurrentSessionMeta(manager, sessionId);
|
|
242124
242828
|
if (!session2) {
|
|
242125
242829
|
throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Requester Session not found: ${sessionId}`, false);
|
|
242126
242830
|
}
|
|
242127
|
-
const
|
|
242128
|
-
|
|
242129
|
-
if (source?.inputConfig?.taskToolsEnabled !== true) {
|
|
242831
|
+
const source = await resolveInvokingTurnSource();
|
|
242832
|
+
if (source.inputConfig.taskToolsEnabled !== true) {
|
|
242130
242833
|
throw new LodyOperationStoreError("TASK_TOOLS_DISABLED", "Lody Task tools are disabled for the driving user turn.", false);
|
|
242131
242834
|
}
|
|
242132
242835
|
};
|
|
242133
|
-
const resolveInvokingTurnContext = async (
|
|
242134
|
-
const
|
|
242135
|
-
const
|
|
242136
|
-
const source = resolveInvokingHistoryInput(history);
|
|
242137
|
-
const chainDepth = source?.inputConfig?.chainDepth ?? 0;
|
|
242836
|
+
const resolveInvokingTurnContext = async (session2) => {
|
|
242837
|
+
const source = await resolveInvokingTurnSource();
|
|
242838
|
+
const chainDepth = source.inputConfig.chainDepth ?? 0;
|
|
242138
242839
|
if (chainDepth >= LODY_MAX_CHAIN_DEPTH) {
|
|
242139
242840
|
throw new LodyOperationStoreError("CHAIN_DEPTH_EXCEEDED", `Asynchronous Command rejected at chain depth ${chainDepth}; V1 maximum is ${LODY_MAX_CHAIN_DEPTH}.`, false);
|
|
242140
242841
|
}
|
|
242141
242842
|
return {
|
|
242142
242843
|
chainDepth,
|
|
242844
|
+
identity: buildInvocationIdentity(source),
|
|
242143
242845
|
frozenInputConfig: {
|
|
242144
|
-
...source
|
|
242145
|
-
cliType: source
|
|
242146
|
-
agentType: source
|
|
242846
|
+
...source.inputConfig,
|
|
242847
|
+
cliType: source.inputConfig.cliType ?? session2.cliType,
|
|
242848
|
+
agentType: source.inputConfig.agentType ?? session2.agentType,
|
|
242147
242849
|
chainDepth
|
|
242148
242850
|
}
|
|
242149
242851
|
};
|
|
@@ -242316,12 +243018,14 @@ ${prompt2}` : prompt2;
|
|
|
242316
243018
|
if (!currentSession) {
|
|
242317
243019
|
throw new Error(`Session not found: ${ctx.sessionId}`);
|
|
242318
243020
|
}
|
|
242319
|
-
const
|
|
243021
|
+
const invoking = await resolveInvokingTurnContext(currentSession);
|
|
243022
|
+
const requesterUserId = invoking.identity.userId;
|
|
243023
|
+
const delegatedRequester = toDelegatedSessionRequester(invoking.identity);
|
|
242320
243024
|
const machineEntries = await listAliveDocMetas(manager, isMachineDocRoomId);
|
|
242321
243025
|
const onlineMachineIds = await manager.getOnlineMachineIds();
|
|
242322
243026
|
const isMachineOnline = (machineId) => machineId === auth.machineId || onlineMachineIds?.has(machineId) === true;
|
|
242323
243027
|
const machineCandidates = selectMachineMetasForOptions(machineEntries.map((entry) => entry.meta), input2.machineId).filter((machine) => input2.machineId !== void 0 || isMachineOnline(machine.id));
|
|
242324
|
-
const machines = await filterAuthorizedMachinesForOptions(auth, workspaceId, machineCandidates,
|
|
243028
|
+
const machines = await filterAuthorizedMachinesForOptions(auth, workspaceId, machineCandidates, delegatedRequester);
|
|
242325
243029
|
const selectedMachine = selectMachineForOptions(machines, input2.machineId, currentSession.machineId);
|
|
242326
243030
|
await syncMachineFlockDocsForOptions(manager, workspaceId, [
|
|
242327
243031
|
selectedMachine
|
|
@@ -242354,7 +243058,7 @@ ${prompt2}` : prompt2;
|
|
|
242354
243058
|
}
|
|
242355
243059
|
return currentLocalProjectId !== void 0 && project.id === currentLocalProjectId;
|
|
242356
243060
|
});
|
|
242357
|
-
const localProjects = (await filterAuthorizedLocalProjectsForOptions(auth, workspaceId, selectedMachine.id, localProjectCandidates,
|
|
243061
|
+
const localProjects = (await filterAuthorizedLocalProjectsForOptions(auth, workspaceId, selectedMachine.id, localProjectCandidates, delegatedRequester)).slice(0, MAX_MCP_CREATE_OPTION_MATCHES);
|
|
242358
243062
|
const summarizedLocalProjects = await Promise.all(localProjects.map((project) => summarizeLocalProjectForOptions(auth, workspaceId, selectedMachine, project, requesterUserId, isMachineOnline(selectedMachine.id))));
|
|
242359
243063
|
const repoQuery = normalizeCliValue(input2.repoQuery)?.toLowerCase();
|
|
242360
243064
|
const repos = repoQuery ? (await listWorkspaceGitHubRepositoriesForCliToken({
|
|
@@ -242400,16 +243104,18 @@ ${prompt2}` : prompt2;
|
|
|
242400
243104
|
if (!currentSession) {
|
|
242401
243105
|
throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Requester Session not found: ${ctx.sessionId}`, false);
|
|
242402
243106
|
}
|
|
242403
|
-
const invoking = await resolveInvokingTurnContext(
|
|
243107
|
+
const invoking = await resolveInvokingTurnContext(currentSession);
|
|
242404
243108
|
const roleCatalog = args2.agentRoleId ? await loadWorkspaceAgentRoleCatalog(manager, workspace.id) : void 0;
|
|
242405
243109
|
const resolved = resolveMcpSessionCreate(args2, invoking, currentSession, args2.agentRoleId ? roleCatalog?.get(args2.agentRoleId) : void 0);
|
|
242406
243110
|
const canonicalCommand = buildResolvedMcpCreateCanonicalCommand(resolved, args2.deadlineSeconds);
|
|
242407
|
-
const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_create", canonicalCommand));
|
|
242408
|
-
if (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
|
+
}
|
|
242409
243115
|
const targetMachineId = resolved.input.machineId ?? currentSession.machineId;
|
|
242410
243116
|
await assertMachineOnlineForSingleCommand(manager, targetMachineId, ctx);
|
|
242411
243117
|
const createOptions = buildMcpCreateOptions(resolved.input, ctx);
|
|
242412
|
-
bindMcpCreateContext(createOptions,
|
|
243118
|
+
bindMcpCreateContext(createOptions, invoking.identity, currentSession);
|
|
242413
243119
|
bindAgentRoleCreateOptions(createOptions, resolved.role);
|
|
242414
243120
|
createOptions.workspaceMetaPrewriteSatisfied = true;
|
|
242415
243121
|
let effectiveDispatchConfig;
|
|
@@ -242436,7 +243142,7 @@ ${prompt2}` : prompt2;
|
|
|
242436
243142
|
workspaceId: workspace.id,
|
|
242437
243143
|
ownerMachineId: ctx.machineId,
|
|
242438
243144
|
requesterSessionId: ctx.sessionId,
|
|
242439
|
-
requesterUserId:
|
|
243145
|
+
requesterUserId: invoking.identity.userId,
|
|
242440
243146
|
operationId: args2.operationId,
|
|
242441
243147
|
kind: "session_create",
|
|
242442
243148
|
canonicalCommand,
|
|
@@ -242445,6 +243151,7 @@ ${prompt2}` : prompt2;
|
|
|
242445
243151
|
agentConfigId: currentSession.agentConfigId
|
|
242446
243152
|
} : {},
|
|
242447
243153
|
inputConfig: invoking.frozenInputConfig,
|
|
243154
|
+
sourceTurnId: invoking.identity.sourceTurnId,
|
|
242448
243155
|
targetDispatchConfigs: [
|
|
242449
243156
|
effectiveDispatchConfig
|
|
242450
243157
|
]
|
|
@@ -242504,6 +243211,7 @@ ${prompt2}` : prompt2;
|
|
|
242504
243211
|
if (!currentSession) {
|
|
242505
243212
|
throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Requester Session not found: ${ctx.sessionId}`, false);
|
|
242506
243213
|
}
|
|
243214
|
+
const invoking = await resolveInvokingTurnContext(currentSession);
|
|
242507
243215
|
const canonicalCommand = {
|
|
242508
243216
|
sessionId: args2.sessionId,
|
|
242509
243217
|
prompt: args2.prompt,
|
|
@@ -242511,8 +243219,10 @@ ${prompt2}` : prompt2;
|
|
|
242511
243219
|
deadlineSeconds: args2.deadlineSeconds
|
|
242512
243220
|
} : {}
|
|
242513
243221
|
};
|
|
242514
|
-
const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_chat", canonicalCommand));
|
|
242515
|
-
if (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
|
+
}
|
|
242516
243226
|
const targetSession = await readCurrentSessionMeta(manager, args2.sessionId);
|
|
242517
243227
|
if (!targetSession) {
|
|
242518
243228
|
throw new LodyOperationStoreError("SESSION_NOT_FOUND", `Target Session not found: ${args2.sessionId}`, false);
|
|
@@ -242525,7 +243235,7 @@ ${prompt2}` : prompt2;
|
|
|
242525
243235
|
workspace,
|
|
242526
243236
|
manager,
|
|
242527
243237
|
sessionId: targetSession.id,
|
|
242528
|
-
|
|
243238
|
+
delegatedRequester: toDelegatedSessionRequester(invoking.identity)
|
|
242529
243239
|
});
|
|
242530
243240
|
} catch (error2) {
|
|
242531
243241
|
if (error2 instanceof WorkspaceSyncUnavailableError) {
|
|
@@ -242533,7 +243243,6 @@ ${prompt2}` : prompt2;
|
|
|
242533
243243
|
}
|
|
242534
243244
|
throw new LodyOperationStoreError("COMMAND_REJECTED", formatMcpErrorMessage(error2), false);
|
|
242535
243245
|
}
|
|
242536
|
-
const invoking = await resolveInvokingTurnContext(manager, currentSession);
|
|
242537
243246
|
const preallocatedUserTurnId = randomUUID();
|
|
242538
243247
|
const materializationClaimToken = randomUUID();
|
|
242539
243248
|
const timing = operationDeadline(args2.deadlineSeconds);
|
|
@@ -242541,7 +243250,7 @@ ${prompt2}` : prompt2;
|
|
|
242541
243250
|
workspaceId: workspace.id,
|
|
242542
243251
|
ownerMachineId: ctx.machineId,
|
|
242543
243252
|
requesterSessionId: ctx.sessionId,
|
|
242544
|
-
requesterUserId:
|
|
243253
|
+
requesterUserId: invoking.identity.userId,
|
|
242545
243254
|
operationId: args2.operationId,
|
|
242546
243255
|
kind: "session_chat",
|
|
242547
243256
|
canonicalCommand,
|
|
@@ -242549,7 +243258,8 @@ ${prompt2}` : prompt2;
|
|
|
242549
243258
|
...currentSession.agentConfigId ? {
|
|
242550
243259
|
agentConfigId: currentSession.agentConfigId
|
|
242551
243260
|
} : {},
|
|
242552
|
-
inputConfig: invoking.frozenInputConfig
|
|
243261
|
+
inputConfig: invoking.frozenInputConfig,
|
|
243262
|
+
sourceTurnId: invoking.identity.sourceTurnId
|
|
242553
243263
|
},
|
|
242554
243264
|
initiatorChainDepth: invoking.chainDepth,
|
|
242555
243265
|
...timing,
|
|
@@ -242570,10 +243280,10 @@ ${prompt2}` : prompt2;
|
|
|
242570
243280
|
const result = await sendSessionChatResult(auth, workspace, manager, pendingItem.target.sessionId, args2.prompt, {
|
|
242571
243281
|
...resolveTurnDispatchConfig({}),
|
|
242572
243282
|
taskToolsEnabled: invoking.frozenInputConfig.taskToolsEnabled === true
|
|
242573
|
-
}, void 0,
|
|
243283
|
+
}, void 0, void 0, {
|
|
242574
243284
|
userTurnId: pendingItem.target.userTurnId,
|
|
242575
243285
|
chainDepth: invoking.chainDepth + 1
|
|
242576
|
-
});
|
|
243286
|
+
}, toDelegatedSessionRequester(invoking.identity));
|
|
242577
243287
|
if (result.userTurnId !== pendingItem.target.userTurnId) {
|
|
242578
243288
|
throw new Error("Chat result did not preserve the preallocated target turn id.");
|
|
242579
243289
|
}
|
|
@@ -242700,7 +243410,7 @@ ${prompt2}` : prompt2;
|
|
|
242700
243410
|
...args2.defaults ?? {},
|
|
242701
243411
|
...item
|
|
242702
243412
|
}));
|
|
242703
|
-
const invoking = await resolveInvokingTurnContext(
|
|
243413
|
+
const invoking = await resolveInvokingTurnContext(requester);
|
|
242704
243414
|
const roleCatalog = expanded.some((item) => Boolean(item.agentRoleId)) ? await loadWorkspaceAgentRoleCatalog(manager, workspace.id) : void 0;
|
|
242705
243415
|
const resolvedItems = expanded.map((item) => {
|
|
242706
243416
|
if (!item.prompt) return {
|
|
@@ -242753,8 +243463,10 @@ ${prompt2}` : prompt2;
|
|
|
242753
243463
|
deadlineSeconds: args2.deadlineSeconds
|
|
242754
243464
|
} : {}
|
|
242755
243465
|
};
|
|
242756
|
-
const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_create_many", canonicalCommand));
|
|
242757
|
-
if (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
|
+
}
|
|
242758
243470
|
const isMachineOnline = makeMachineOnlineLookupForMcp(manager, ctx);
|
|
242759
243471
|
const validatedItems = await mapWithConcurrency(expanded, 5, async (item, index) => {
|
|
242760
243472
|
const label2 = item.label;
|
|
@@ -242793,7 +243505,7 @@ ${prompt2}` : prompt2;
|
|
|
242793
243505
|
};
|
|
242794
243506
|
}
|
|
242795
243507
|
const options = buildMcpCreateOptions(resolved.input, ctx);
|
|
242796
|
-
bindMcpCreateContext(options,
|
|
243508
|
+
bindMcpCreateContext(options, invoking.identity, requester);
|
|
242797
243509
|
bindAgentRoleCreateOptions(options, resolved.role);
|
|
242798
243510
|
try {
|
|
242799
243511
|
const effectiveDispatchConfig = await validateSessionCreateOptions({
|
|
@@ -242829,7 +243541,7 @@ ${prompt2}` : prompt2;
|
|
|
242829
243541
|
workspaceId: workspace.id,
|
|
242830
243542
|
ownerMachineId: ctx.machineId,
|
|
242831
243543
|
requesterSessionId: ctx.sessionId,
|
|
242832
|
-
requesterUserId:
|
|
243544
|
+
requesterUserId: invoking.identity.userId,
|
|
242833
243545
|
operationId: args2.operationId,
|
|
242834
243546
|
kind: "session_create_many",
|
|
242835
243547
|
canonicalCommand,
|
|
@@ -242838,6 +243550,7 @@ ${prompt2}` : prompt2;
|
|
|
242838
243550
|
agentConfigId: requester.agentConfigId
|
|
242839
243551
|
} : {},
|
|
242840
243552
|
inputConfig: invoking.frozenInputConfig,
|
|
243553
|
+
sourceTurnId: invoking.identity.sourceTurnId,
|
|
242841
243554
|
targetDispatchConfigs
|
|
242842
243555
|
},
|
|
242843
243556
|
initiatorChainDepth: invoking.chainDepth,
|
|
@@ -242860,7 +243573,7 @@ ${prompt2}` : prompt2;
|
|
|
242860
243573
|
}
|
|
242861
243574
|
try {
|
|
242862
243575
|
const options = buildMcpCreateOptions(resolved.input, ctx);
|
|
242863
|
-
bindMcpCreateContext(options,
|
|
243576
|
+
bindMcpCreateContext(options, invoking.identity, requester);
|
|
242864
243577
|
bindAgentRoleCreateOptions(options, resolved.role);
|
|
242865
243578
|
options.sessionId = storedItem.target.sessionId;
|
|
242866
243579
|
options.userTurnId = storedItem.target.userTurnId;
|
|
@@ -242902,15 +243615,17 @@ ${prompt2}` : prompt2;
|
|
|
242902
243615
|
...args2.defaults ?? {},
|
|
242903
243616
|
...item
|
|
242904
243617
|
}));
|
|
243618
|
+
const invoking = await resolveInvokingTurnContext(requester);
|
|
242905
243619
|
const canonicalCommand = {
|
|
242906
243620
|
items: expanded,
|
|
242907
243621
|
...args2.deadlineSeconds !== void 0 ? {
|
|
242908
243622
|
deadlineSeconds: args2.deadlineSeconds
|
|
242909
243623
|
} : {}
|
|
242910
243624
|
};
|
|
242911
|
-
const retry2 = await withOperationStore((store) => store.findMatchingRetry(ctx.sessionId, args2.operationId, "session_chat_many", canonicalCommand));
|
|
242912
|
-
if (retry2)
|
|
242913
|
-
|
|
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
|
+
}
|
|
242914
243629
|
const isMachineOnline = makeMachineOnlineLookupForMcp(manager, ctx);
|
|
242915
243630
|
const initialItems = await mapWithConcurrency(expanded, 5, async (item) => {
|
|
242916
243631
|
if (!item.sessionId || !item.prompt) {
|
|
@@ -242932,7 +243647,7 @@ ${prompt2}` : prompt2;
|
|
|
242932
243647
|
workspace,
|
|
242933
243648
|
manager,
|
|
242934
243649
|
sessionId: target.id,
|
|
242935
|
-
|
|
243650
|
+
delegatedRequester: toDelegatedSessionRequester(invoking.identity)
|
|
242936
243651
|
});
|
|
242937
243652
|
} catch (error2) {
|
|
242938
243653
|
if (error2 instanceof WorkspaceSyncUnavailableError) {
|
|
@@ -242948,7 +243663,7 @@ ${prompt2}` : prompt2;
|
|
|
242948
243663
|
workspaceId: workspace.id,
|
|
242949
243664
|
ownerMachineId: ctx.machineId,
|
|
242950
243665
|
requesterSessionId: ctx.sessionId,
|
|
242951
|
-
requesterUserId:
|
|
243666
|
+
requesterUserId: invoking.identity.userId,
|
|
242952
243667
|
operationId: args2.operationId,
|
|
242953
243668
|
kind: "session_chat_many",
|
|
242954
243669
|
canonicalCommand,
|
|
@@ -242956,7 +243671,8 @@ ${prompt2}` : prompt2;
|
|
|
242956
243671
|
...requester.agentConfigId ? {
|
|
242957
243672
|
agentConfigId: requester.agentConfigId
|
|
242958
243673
|
} : {},
|
|
242959
|
-
inputConfig: invoking.frozenInputConfig
|
|
243674
|
+
inputConfig: invoking.frozenInputConfig,
|
|
243675
|
+
sourceTurnId: invoking.identity.sourceTurnId
|
|
242960
243676
|
},
|
|
242961
243677
|
initiatorChainDepth: invoking.chainDepth,
|
|
242962
243678
|
...timing,
|
|
@@ -242979,11 +243695,11 @@ ${prompt2}` : prompt2;
|
|
|
242979
243695
|
await sendSessionChatResult(auth, workspace, manager, storedItem.target.sessionId, expandedItem.prompt, {
|
|
242980
243696
|
...resolveTurnDispatchConfig({}),
|
|
242981
243697
|
taskToolsEnabled: invoking.frozenInputConfig.taskToolsEnabled === true
|
|
242982
|
-
}, void 0,
|
|
243698
|
+
}, void 0, void 0, {
|
|
242983
243699
|
userTurnId: storedItem.target.userTurnId,
|
|
242984
243700
|
chainDepth: invoking.chainDepth + 1,
|
|
242985
243701
|
bypassSessionQuota: shouldBypassSessionQuota("session_chat_many")
|
|
242986
|
-
});
|
|
243702
|
+
}, toDelegatedSessionRequester(invoking.identity));
|
|
242987
243703
|
await withOperationStore((store) => store.markItemInputDurable(ctx.sessionId, args2.operationId, index, materializationClaimToken));
|
|
242988
243704
|
return markOperationItemInputDurable(storedItem);
|
|
242989
243705
|
} catch {
|
|
@@ -243466,11 +244182,11 @@ ${lines2.join("\n")}` : ""}${suffix}`);
|
|
|
243466
244182
|
if (!currentSession) {
|
|
243467
244183
|
throw new Error(`Session not found: ${ctx.sessionId}`);
|
|
243468
244184
|
}
|
|
243469
|
-
const invoking =
|
|
244185
|
+
const invoking = await resolveInvokingTurnContext(currentSession);
|
|
243470
244186
|
const roleCatalog = args2.agentRoleId ? await loadWorkspaceAgentRoleCatalog(manager, workspace.id) : void 0;
|
|
243471
244187
|
const resolved = resolveMcpSessionCreate(args2, invoking, currentSession, args2.agentRoleId ? roleCatalog?.get(args2.agentRoleId) : void 0);
|
|
243472
244188
|
const options = buildMcpCreateOptions(resolved.input, ctx);
|
|
243473
|
-
bindMcpCreateContext(options,
|
|
244189
|
+
bindMcpCreateContext(options, invoking.identity, currentSession);
|
|
243474
244190
|
bindAgentRoleCreateOptions(options, resolved.role);
|
|
243475
244191
|
options.workspaceMetaPrewriteSatisfied = true;
|
|
243476
244192
|
const result = await createSessionResult(auth, workspace, manager, resolved.prompt, options, resolved.dispatchConfig, buildStructuredOutputOptions(args2));
|
|
@@ -243538,7 +244254,8 @@ ${lines2.join("\n")}` : ""}${suffix}`);
|
|
|
243538
244254
|
throw new Error(`Session not found: ${sessionId}`);
|
|
243539
244255
|
}
|
|
243540
244256
|
assertDifferentMcpSession(currentSession, targetSession);
|
|
243541
|
-
const
|
|
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));
|
|
243542
244259
|
const response2 = {
|
|
243543
244260
|
ok: true,
|
|
243544
244261
|
sessionId: result.sessionId,
|
|
@@ -246078,7 +246795,7 @@ Other machines will not see it until this machine syncs.`);
|
|
|
246078
246795
|
logger2.warn(`[dns] invalid LODY_DNS_RESULT_ORDER value; expected ipv4first|ipv6first|verbatim|node \u2014 falling back to ipv4first`);
|
|
246079
246796
|
}
|
|
246080
246797
|
try {
|
|
246081
|
-
require$$1$
|
|
246798
|
+
require$$1$6.setDefaultResultOrder(resolution.order);
|
|
246082
246799
|
logger2.debug(`[dns] default DNS result order set to ${resolution.order} (${resolution.reason})`);
|
|
246083
246800
|
} catch (error2) {
|
|
246084
246801
|
logger2.debug(`[dns] failed to set DNS result order: ${error2 instanceof Error ? error2.message : String(error2)}`);
|