openwork-server 0.18.60 → 0.18.61
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/README.md +9 -2
- package/bin/openwork-server.mjs +1 -1
- package/bin/platform.mjs +7 -7
- package/dist/opencode-plugin-deps-1.18.30.tgz +0 -0
- package/dist/opencode-plugins/openwork-cloud-skills-v2.js +87 -41
- package/dist/opencode-plugins/openwork-context-v2.js +67 -35
- package/dist/opencode-plugins/openwork-gateway-quota-v2.js +187 -0
- package/dist/opencode-plugins/openwork-gateway-quota.js +232 -23
- package/dist/opencode-plugins/openwork-provider-sync-v2.js +85 -2
- package/dist/openwork-server.mjs +919 -333
- package/package.json +2 -2
- package/web/assets/{abnfDiagram-VCTEODGH-D0_4pXEx.js → abnfDiagram-VCTEODGH-DGCabXot.js} +1 -1
- package/web/assets/app-CkmqBm_1.css +32 -0
- package/web/assets/{app-BCXQnJUH.js → app-Cy3sY2K8.js} +435 -425
- package/web/assets/{arc-BSTwaImw.js → arc-OJTfUP9L.js} +1 -1
- package/web/assets/{architectureDiagram-5GKGNRK7-cXwF0iP0.js → architectureDiagram-5GKGNRK7-Ch0Zt81S.js} +1 -1
- package/web/assets/{artifact-code-view-CUXv3CYK.js → artifact-code-view-CSo8dBet.js} +1 -1
- package/web/assets/{artifact-spreadsheet-editor-CxhNYmjP.js → artifact-spreadsheet-editor-DG2AL4aO.js} +1 -1
- package/web/assets/{artifact-text-editor-k2TGQI-i.js → artifact-text-editor-BKs1cI6V.js} +1 -1
- package/web/assets/{blockDiagram-OSKFZWR5-Cl9p_z8u.js → blockDiagram-OSKFZWR5-Dur4PitI.js} +1 -1
- package/web/assets/{c4Diagram-7LVT6UL2-YQjnoUQ0.js → c4Diagram-7LVT6UL2-DN-qrh5o.js} +1 -1
- package/web/assets/channel-68fpiRG4.js +1 -0
- package/web/assets/{chunk-2Q5K7J3B-YZaSwlzj.js → chunk-2Q5K7J3B-BSmk0dam.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-BICC_wIw.js → chunk-5VM5RSS4-BwAmjLhK.js} +1 -1
- package/web/assets/{chunk-F27PBJKO-CBxmcmxs.js → chunk-F27PBJKO-DLKbY_DS.js} +1 -1
- package/web/assets/{chunk-HLEWEB6X-2h2z7zt8.js → chunk-HLEWEB6X-s4I3BuHN.js} +1 -1
- package/web/assets/{chunk-JWPE2WC7-BnAMOpXl.js → chunk-JWPE2WC7-LslAnaQK.js} +1 -1
- package/web/assets/{chunk-POPQ4Y6H-pvDYQBBM.js → chunk-POPQ4Y6H-e0_lKBGk.js} +1 -1
- package/web/assets/{chunk-SVP7TREG-QuKLl3v0.js → chunk-SVP7TREG-CBKOSsQl.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-4Bt9wCBO.js → chunk-XXDRQBXY-Bwqkh7ZD.js} +1 -1
- package/web/assets/{chunk-ZLD2IHE6-C_RSrkqU.js → chunk-ZLD2IHE6-anLhhsDd.js} +1 -1
- package/web/assets/classDiagram-CYGNFDIV-Z4CG2h2d.js +1 -0
- package/web/assets/classDiagram-v2-TLXNO2FR-Z4CG2h2d.js +1 -0
- package/web/assets/{cose-bilkent-JH36ORCC-CciOYQb4.js → cose-bilkent-JH36ORCC-CCj043X5.js} +1 -1
- package/web/assets/{cynefin-OW5HDTMX-k8-mUlq4.js → cynefin-OW5HDTMX-BGWD-i0N.js} +1 -1
- package/web/assets/{cynefinDiagram-5FMLGOSQ-D1qAHzq3.js → cynefinDiagram-5FMLGOSQ-ZWq_C5SK.js} +1 -1
- package/web/assets/{dagre-OS7QT2EB-BP1VuF_z.js → dagre-OS7QT2EB-In3Mah_T.js} +1 -1
- package/web/assets/{diagram-S7CK7UJ4-crXkWleC.js → diagram-S7CK7UJ4-DaTd6oXD.js} +1 -1
- package/web/assets/{diagram-UQ7AKVKN-CtHAmCY-.js → diagram-UQ7AKVKN-D3jwCd_v.js} +1 -1
- package/web/assets/{diagram-VSXAHHWV-C-Fhuwy8.js → diagram-VSXAHHWV-CsK-_hfn.js} +1 -1
- package/web/assets/{diagram-VX7I27RA-DkRkNPuj.js → diagram-VX7I27RA-BBLQ2mL7.js} +1 -1
- package/web/assets/{diagram-Z3DM3KII-DVERPCFS.js → diagram-Z3DM3KII-CUM2PN0X.js} +1 -1
- package/web/assets/{ebnfDiagram-PWID7BFC-PrSifYGF.js → ebnfDiagram-PWID7BFC-BjJTJ9Vr.js} +1 -1
- package/web/assets/{erDiagram-2YWLMYGG-D8-wfUYq.js → erDiagram-2YWLMYGG-BhjMQMDs.js} +1 -1
- package/web/assets/{flowDiagram-T62WH6J4-BS-_wkGe.js → flowDiagram-T62WH6J4-KrGbrW-t.js} +1 -1
- package/web/assets/{ganttDiagram-EL5Y4UJY-D9PWmuWE.js → ganttDiagram-EL5Y4UJY-Co_OE6ls.js} +1 -1
- package/web/assets/{gitGraphDiagram-WWUBYQGX-DIP9p63c.js → gitGraphDiagram-WWUBYQGX-BxM4C4Ti.js} +1 -1
- package/web/assets/{infoDiagram-FKFFQAWI-BzU6-acC.js → infoDiagram-FKFFQAWI-C8YaW3a6.js} +1 -1
- package/web/assets/{ishikawaDiagram-5VMMS53U-CvYS2ayc.js → ishikawaDiagram-5VMMS53U-MPTb2C9Y.js} +1 -1
- package/web/assets/{journeyDiagram-EYS64GPL-Cr0qdK-D.js → journeyDiagram-EYS64GPL-Dzq-vllP.js} +1 -1
- package/web/assets/{kanban-definition-UXKFOSKX-DhffGp7U.js → kanban-definition-UXKFOSKX-DWhE5bnH.js} +1 -1
- package/web/assets/{layout-b5jqOIam.js → layout-CMyIV62W.js} +1 -1
- package/web/assets/{linear-zLNMwGhI.js → linear-CX-tWibZ.js} +1 -1
- package/web/assets/{mermaid.core-DB_TNiSG.js → mermaid.core-DcgS6fFC.js} +6 -6
- package/web/assets/{mindmap-definition-THT77NOG-DkQz2hbh.js → mindmap-definition-THT77NOG-CJzNRYpk.js} +1 -1
- package/web/assets/{pegDiagram-XKGWAZYB-CB313CDF.js → pegDiagram-XKGWAZYB-BSIi724T.js} +1 -1
- package/web/assets/{pieDiagram-E7YTZNPT-yaDJVY4d.js → pieDiagram-E7YTZNPT-CoArMhZD.js} +1 -1
- package/web/assets/{quadrantDiagram-AXDQQJYC-BkV8iwHS.js → quadrantDiagram-AXDQQJYC-B9HoxOyK.js} +1 -1
- package/web/assets/{railroadDiagram-O6MQD6OU-T_JVDRpV.js → railroadDiagram-O6MQD6OU-C-aYV4dU.js} +1 -1
- package/web/assets/{requirementDiagram-IS5BZ75X-B68yTCqr.js → requirementDiagram-IS5BZ75X-DHPnVlti.js} +1 -1
- package/web/assets/{sankeyDiagram-P5KCCOFB-Bx31O26O.js → sankeyDiagram-P5KCCOFB-DlxAwgv1.js} +1 -1
- package/web/assets/{sequenceDiagram-WJ2MYXX4-CsCoFTAg.js → sequenceDiagram-WJ2MYXX4-DzVPZb2m.js} +1 -1
- package/web/assets/{sizeCapture-INFHLROL-B3a49hkJ.js → sizeCapture-INFHLROL-BkwjaMAx.js} +1 -1
- package/web/assets/{stateDiagram-XQSTLZYL-DjCdHmx5.js → stateDiagram-XQSTLZYL-DIeNtdWj.js} +1 -1
- package/web/assets/stateDiagram-v2-IH3M54BS-CZR_2wND.js +1 -0
- package/web/assets/{swimlanes-V6O3JKXN-4u8S1I3e.js → swimlanes-V6O3JKXN-CPUSs3Tj.js} +1 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-C1Sms2Ey.js +8 -0
- package/web/assets/{timeline-definition-24CTP7MA-r3GnOjJo.js → timeline-definition-24CTP7MA-CjBwDFJH.js} +1 -1
- package/web/assets/{vennDiagram-4TSXK5OY-59IlTU54.js → vennDiagram-4TSXK5OY-DOsoEsMT.js} +1 -1
- package/web/assets/{wardleyDiagram-VM6X3IG4-C3ALfLHE.js → wardleyDiagram-VM6X3IG4-_fhLZdvF.js} +1 -1
- package/web/assets/{workspace-file-tree-C6GhNx3L.js → workspace-file-tree-CTzNl5A5.js} +1 -1
- package/web/assets/{xychartDiagram-S5SC5T6Z-CoYtWlkb.js → xychartDiagram-S5SC5T6Z-D4Kz81TF.js} +1 -1
- package/web/index.html +2 -2
- package/web/assets/app-DVblmMbF.css +0 -32
- package/web/assets/channel-DwV664-P.js +0 -1
- package/web/assets/classDiagram-CYGNFDIV-BKhd9faI.js +0 -1
- package/web/assets/classDiagram-v2-TLXNO2FR-BKhd9faI.js +0 -1
- package/web/assets/stateDiagram-v2-IH3M54BS-Cf0tqY7x.js +0 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-COK5qx0u.js +0 -8
package/dist/openwork-server.mjs
CHANGED
|
@@ -225924,9 +225924,11 @@ function normalizeRuntimeOpencodeConfig(value3) {
|
|
|
225924
225924
|
const permission = isRecord7(value3.permission) ? value3.permission : undefined;
|
|
225925
225925
|
const externalDirectory = permission && isRecord7(permission.external_directory) ? permission.external_directory : undefined;
|
|
225926
225926
|
const provider = isRecord7(value3.provider) ? value3.provider : undefined;
|
|
225927
|
+
const managedPrompt = typeof value3.managedPrompt === "string" && value3.managedPrompt.trim() ? value3.managedPrompt : undefined;
|
|
225927
225928
|
return {
|
|
225928
225929
|
...defaultAgent ? { default_agent: defaultAgent } : {},
|
|
225929
225930
|
...value3.managedPolicy !== undefined ? { managedPolicy: desktopConfigSchema.parse(value3.managedPolicy) } : {},
|
|
225931
|
+
...managedPrompt ? { managedPrompt } : {},
|
|
225930
225932
|
...plugin ? { plugin } : {},
|
|
225931
225933
|
...disabledProviders ? { disabled_providers: disabledProviders } : {},
|
|
225932
225934
|
...mcp ? { mcp } : {},
|
|
@@ -226082,6 +226084,7 @@ function mergeRuntimeOpencodeConfigLayers(base2, overlay) {
|
|
|
226082
226084
|
};
|
|
226083
226085
|
return normalizeRuntimeOpencodeConfig({
|
|
226084
226086
|
...base2.managedPolicy ? { managedPolicy: base2.managedPolicy } : {},
|
|
226087
|
+
...base2.managedPrompt ? { managedPrompt: base2.managedPrompt } : {},
|
|
226085
226088
|
...base2.default_agent || overlay.default_agent ? { default_agent: overlay.default_agent ?? base2.default_agent } : {},
|
|
226086
226089
|
...plugin.length ? { plugin } : {},
|
|
226087
226090
|
...disabledProviders.length ? { disabled_providers: disabledProviders } : {},
|
|
@@ -226299,8 +226302,14 @@ function updateRuntimeConfig(config2, workspaceId, updater) {
|
|
|
226299
226302
|
}
|
|
226300
226303
|
function writeRuntimeOpencodeConfig(config2, workspaceId, updater) {
|
|
226301
226304
|
return updateRuntimeConfig(config2, workspaceId, (current2) => {
|
|
226302
|
-
const { managedPolicy, ...editable } = current2;
|
|
226303
|
-
return { ...updater(editable), managedPolicy };
|
|
226305
|
+
const { managedPolicy, managedPrompt, ...editable } = current2;
|
|
226306
|
+
return { ...updater(editable), managedPolicy, managedPrompt };
|
|
226307
|
+
});
|
|
226308
|
+
}
|
|
226309
|
+
function writeManagedPrompt(config2, prompt) {
|
|
226310
|
+
return updateRuntimeConfig(config2, ENGINE_GLOBAL_RUNTIME_CONFIG_ID, (current2) => {
|
|
226311
|
+
const { managedPrompt: _previous, ...rest } = current2;
|
|
226312
|
+
return prompt.trim() ? { ...rest, managedPrompt: prompt } : rest;
|
|
226304
226313
|
});
|
|
226305
226314
|
}
|
|
226306
226315
|
function clearManagedDesktopPolicy(config2) {
|
|
@@ -235963,21 +235972,35 @@ async function openMcpResourceReader(input) {
|
|
|
235963
235972
|
if (notification.response.status !== 202 || notification.payload !== null)
|
|
235964
235973
|
return null;
|
|
235965
235974
|
let nextId = 2;
|
|
235975
|
+
let broken = false;
|
|
235976
|
+
const readContents = async (uri, meta3) => {
|
|
235977
|
+
const resource = await mcpPost(input.fetcher, url2, sessionHeaders, {
|
|
235978
|
+
id: nextId++,
|
|
235979
|
+
jsonrpc: "2.0",
|
|
235980
|
+
method: "resources/read",
|
|
235981
|
+
params: { uri, ...meta3 ? { _meta: meta3 } : {} }
|
|
235982
|
+
}).catch(() => null);
|
|
235983
|
+
if (!resource?.response.ok || resource.payload === null) {
|
|
235984
|
+
broken = true;
|
|
235985
|
+
return null;
|
|
235986
|
+
}
|
|
235987
|
+
const result3 = jsonRpcResult(resource.payload);
|
|
235988
|
+
if (!result3 || !Array.isArray(result3.contents))
|
|
235989
|
+
return null;
|
|
235990
|
+
const texts = new Map;
|
|
235991
|
+
for (const item of result3.contents) {
|
|
235992
|
+
if (isRecord12(item) && typeof item.uri === "string" && typeof item.text === "string" && !texts.has(item.uri))
|
|
235993
|
+
texts.set(item.uri, item.text);
|
|
235994
|
+
}
|
|
235995
|
+
return { texts, meta: isRecord12(result3._meta) ? result3._meta : {} };
|
|
235996
|
+
};
|
|
235966
235997
|
return {
|
|
235967
|
-
|
|
235968
|
-
|
|
235969
|
-
|
|
235970
|
-
|
|
235971
|
-
|
|
235972
|
-
|
|
235973
|
-
});
|
|
235974
|
-
if (!resource.response.ok)
|
|
235975
|
-
return null;
|
|
235976
|
-
const contents = jsonRpcResult(resource.payload)?.contents;
|
|
235977
|
-
if (!Array.isArray(contents))
|
|
235978
|
-
return null;
|
|
235979
|
-
const text4 = contents.find((item) => isRecord12(item) && item.uri === uri && typeof item.text === "string")?.text;
|
|
235980
|
-
return typeof text4 === "string" ? text4 : null;
|
|
235998
|
+
readContents,
|
|
235999
|
+
async read(uri, meta3) {
|
|
236000
|
+
return (await readContents(uri, meta3))?.texts.get(uri) ?? null;
|
|
236001
|
+
},
|
|
236002
|
+
get broken() {
|
|
236003
|
+
return broken;
|
|
235981
236004
|
}
|
|
235982
236005
|
};
|
|
235983
236006
|
}
|
|
@@ -236390,7 +236413,7 @@ var init_connect_mcp_server_catalog = __esm(() => {
|
|
|
236390
236413
|
pendingCatalogReads = new WeakMap;
|
|
236391
236414
|
});
|
|
236392
236415
|
|
|
236393
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
236416
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/symbols.js
|
|
236394
236417
|
var require_symbols = __commonJS((exports, module) => {
|
|
236395
236418
|
module.exports = {
|
|
236396
236419
|
kClose: Symbol("close"),
|
|
@@ -236461,7 +236484,7 @@ var require_symbols = __commonJS((exports, module) => {
|
|
|
236461
236484
|
};
|
|
236462
236485
|
});
|
|
236463
236486
|
|
|
236464
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
236487
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/errors.js
|
|
236465
236488
|
var require_errors2 = __commonJS((exports, module) => {
|
|
236466
236489
|
var kUndiciError = Symbol.for("undici.error.UND_ERR");
|
|
236467
236490
|
|
|
@@ -236840,7 +236863,7 @@ var require_errors2 = __commonJS((exports, module) => {
|
|
|
236840
236863
|
};
|
|
236841
236864
|
});
|
|
236842
236865
|
|
|
236843
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
236866
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/constants.js
|
|
236844
236867
|
var require_constants = __commonJS((exports, module) => {
|
|
236845
236868
|
var headerNameLowerCasedRecord = {};
|
|
236846
236869
|
var wellknownHeaderNames = [
|
|
@@ -236952,7 +236975,7 @@ var require_constants = __commonJS((exports, module) => {
|
|
|
236952
236975
|
};
|
|
236953
236976
|
});
|
|
236954
236977
|
|
|
236955
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
236978
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/tree.js
|
|
236956
236979
|
var require_tree = __commonJS((exports, module) => {
|
|
236957
236980
|
var {
|
|
236958
236981
|
wellknownHeaderNames,
|
|
@@ -237064,7 +237087,7 @@ var require_tree = __commonJS((exports, module) => {
|
|
|
237064
237087
|
};
|
|
237065
237088
|
});
|
|
237066
237089
|
|
|
237067
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
237090
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/util.js
|
|
237068
237091
|
var require_util3 = __commonJS((exports, module) => {
|
|
237069
237092
|
var assert3 = __require("node:assert");
|
|
237070
237093
|
var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols();
|
|
@@ -237568,7 +237591,7 @@ var require_util3 = __commonJS((exports, module) => {
|
|
|
237568
237591
|
};
|
|
237569
237592
|
});
|
|
237570
237593
|
|
|
237571
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
237594
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/diagnostics.js
|
|
237572
237595
|
var require_diagnostics = __commonJS((exports, module) => {
|
|
237573
237596
|
var diagnosticsChannel = __require("node:diagnostics_channel");
|
|
237574
237597
|
var util = __require("node:util");
|
|
@@ -237695,7 +237718,7 @@ var require_diagnostics = __commonJS((exports, module) => {
|
|
|
237695
237718
|
};
|
|
237696
237719
|
});
|
|
237697
237720
|
|
|
237698
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
237721
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/request.js
|
|
237699
237722
|
var require_request = __commonJS((exports, module) => {
|
|
237700
237723
|
var {
|
|
237701
237724
|
InvalidArgumentError,
|
|
@@ -237905,10 +237928,46 @@ var require_request = __commonJS((exports, module) => {
|
|
|
237905
237928
|
return false;
|
|
237906
237929
|
}
|
|
237907
237930
|
}
|
|
237908
|
-
onUpgrade(statusCode, headers, socket) {
|
|
237931
|
+
onUpgrade(statusCode, headers, socket, statusText = "") {
|
|
237932
|
+
this.onFinally();
|
|
237909
237933
|
assert3(!this.aborted);
|
|
237910
237934
|
assert3(!this.completed);
|
|
237911
|
-
|
|
237935
|
+
if (statusCode !== null) {
|
|
237936
|
+
this.#publishUpgradeHeaders(statusCode, headers, statusText);
|
|
237937
|
+
}
|
|
237938
|
+
const result3 = this[kHandler].onUpgrade(statusCode, headers, socket);
|
|
237939
|
+
if (!this.aborted) {
|
|
237940
|
+
this.completed = true;
|
|
237941
|
+
if (statusCode !== null) {
|
|
237942
|
+
this.#publishUpgradeTrailers();
|
|
237943
|
+
}
|
|
237944
|
+
}
|
|
237945
|
+
return result3;
|
|
237946
|
+
}
|
|
237947
|
+
onUpgradeResponse(statusCode, headers, parseHeaders, statusText = "") {
|
|
237948
|
+
assert3(!this.aborted);
|
|
237949
|
+
assert3(this.completed);
|
|
237950
|
+
if (channels.headers.hasSubscribers) {
|
|
237951
|
+
this.#publishUpgradeHeaders(statusCode, parseHeaders(headers), statusText);
|
|
237952
|
+
}
|
|
237953
|
+
this.#publishUpgradeTrailers();
|
|
237954
|
+
}
|
|
237955
|
+
onUpgradeError(error48) {
|
|
237956
|
+
assert3(!this.aborted);
|
|
237957
|
+
assert3(this.completed);
|
|
237958
|
+
if (channels.error.hasSubscribers) {
|
|
237959
|
+
channels.error.publish({ request: this, error: error48 });
|
|
237960
|
+
}
|
|
237961
|
+
}
|
|
237962
|
+
#publishUpgradeHeaders(statusCode, headers, statusText) {
|
|
237963
|
+
if (channels.headers.hasSubscribers) {
|
|
237964
|
+
channels.headers.publish({ request: this, response: { statusCode, headers, statusText } });
|
|
237965
|
+
}
|
|
237966
|
+
}
|
|
237967
|
+
#publishUpgradeTrailers() {
|
|
237968
|
+
if (channels.trailers.hasSubscribers) {
|
|
237969
|
+
channels.trailers.publish({ request: this, trailers: [] });
|
|
237970
|
+
}
|
|
237912
237971
|
}
|
|
237913
237972
|
onComplete(trailers) {
|
|
237914
237973
|
this.onFinally();
|
|
@@ -238033,7 +238092,7 @@ var require_request = __commonJS((exports, module) => {
|
|
|
238033
238092
|
module.exports = Request4;
|
|
238034
238093
|
});
|
|
238035
238094
|
|
|
238036
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238095
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/dispatcher.js
|
|
238037
238096
|
var require_dispatcher = __commonJS((exports, module) => {
|
|
238038
238097
|
var EventEmitter = __require("node:events");
|
|
238039
238098
|
|
|
@@ -238087,8 +238146,9 @@ var require_dispatcher = __commonJS((exports, module) => {
|
|
|
238087
238146
|
module.exports = Dispatcher;
|
|
238088
238147
|
});
|
|
238089
238148
|
|
|
238090
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238149
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/dispatcher-base.js
|
|
238091
238150
|
var require_dispatcher_base = __commonJS((exports, module) => {
|
|
238151
|
+
var buffer = __require("node:buffer");
|
|
238092
238152
|
var Dispatcher = require_dispatcher();
|
|
238093
238153
|
var {
|
|
238094
238154
|
ClientDestroyedError,
|
|
@@ -238100,6 +238160,7 @@ var require_dispatcher_base = __commonJS((exports, module) => {
|
|
|
238100
238160
|
var kOnClosed = Symbol("onClosed");
|
|
238101
238161
|
var kInterceptedDispatch = Symbol("Intercepted Dispatch");
|
|
238102
238162
|
var kWebSocketOptions = Symbol("webSocketOptions");
|
|
238163
|
+
var kEventSourceOptions = Symbol("eventSourceOptions");
|
|
238103
238164
|
|
|
238104
238165
|
class DispatcherBase extends Dispatcher {
|
|
238105
238166
|
constructor(opts) {
|
|
@@ -238109,6 +238170,7 @@ var require_dispatcher_base = __commonJS((exports, module) => {
|
|
|
238109
238170
|
this[kClosed] = false;
|
|
238110
238171
|
this[kOnClosed] = [];
|
|
238111
238172
|
this[kWebSocketOptions] = opts?.webSocket ?? {};
|
|
238173
|
+
this[kEventSourceOptions] = opts?.eventSource ?? {};
|
|
238112
238174
|
}
|
|
238113
238175
|
get webSocketOptions() {
|
|
238114
238176
|
return {
|
|
@@ -238116,6 +238178,11 @@ var require_dispatcher_base = __commonJS((exports, module) => {
|
|
|
238116
238178
|
maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024
|
|
238117
238179
|
};
|
|
238118
238180
|
}
|
|
238181
|
+
get eventSourceOptions() {
|
|
238182
|
+
return {
|
|
238183
|
+
maxEventSize: this[kEventSourceOptions].maxEventSize ?? buffer.kStringMaxLength
|
|
238184
|
+
};
|
|
238185
|
+
}
|
|
238119
238186
|
get destroyed() {
|
|
238120
238187
|
return this[kDestroyed];
|
|
238121
238188
|
}
|
|
@@ -238251,7 +238318,7 @@ var require_dispatcher_base = __commonJS((exports, module) => {
|
|
|
238251
238318
|
module.exports = DispatcherBase;
|
|
238252
238319
|
});
|
|
238253
238320
|
|
|
238254
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238321
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/util/timers.js
|
|
238255
238322
|
var require_timers = __commonJS((exports, module) => {
|
|
238256
238323
|
var fastNow = 0;
|
|
238257
238324
|
var RESOLUTION_MS = 1000;
|
|
@@ -238365,7 +238432,7 @@ var require_timers = __commonJS((exports, module) => {
|
|
|
238365
238432
|
};
|
|
238366
238433
|
});
|
|
238367
238434
|
|
|
238368
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238435
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/core/connect.js
|
|
238369
238436
|
var require_connect = __commonJS((exports, module) => {
|
|
238370
238437
|
var net3 = __require("node:net");
|
|
238371
238438
|
var assert3 = __require("node:assert");
|
|
@@ -238537,7 +238604,7 @@ var require_connect = __commonJS((exports, module) => {
|
|
|
238537
238604
|
module.exports = buildConnector;
|
|
238538
238605
|
});
|
|
238539
238606
|
|
|
238540
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238607
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/llhttp/utils.js
|
|
238541
238608
|
var require_utils2 = __commonJS((exports) => {
|
|
238542
238609
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
238543
238610
|
exports.enumToMap = undefined;
|
|
@@ -238554,7 +238621,7 @@ var require_utils2 = __commonJS((exports) => {
|
|
|
238554
238621
|
exports.enumToMap = enumToMap;
|
|
238555
238622
|
});
|
|
238556
238623
|
|
|
238557
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238624
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/llhttp/constants.js
|
|
238558
238625
|
var require_constants2 = __commonJS((exports) => {
|
|
238559
238626
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
238560
238627
|
exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = undefined;
|
|
@@ -238870,19 +238937,19 @@ var require_constants2 = __commonJS((exports) => {
|
|
|
238870
238937
|
};
|
|
238871
238938
|
});
|
|
238872
238939
|
|
|
238873
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238940
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/llhttp/llhttp-wasm.js
|
|
238874
238941
|
var require_llhttp_wasm = __commonJS((exports, module) => {
|
|
238875
238942
|
var { Buffer: Buffer2 } = __require("node:buffer");
|
|
238876
238943
|
module.exports = 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");
|
|
238877
238944
|
});
|
|
238878
238945
|
|
|
238879
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238946
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
|
|
238880
238947
|
var require_llhttp_simd_wasm = __commonJS((exports, module) => {
|
|
238881
238948
|
var { Buffer: Buffer2 } = __require("node:buffer");
|
|
238882
238949
|
module.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhAiAAQYgEcUGABEYNACAAQShxRSECCyACC4wBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNACAALwEwIgFBAnFFDQEMAgsgAC8BMCIBQQFxRQ0BC0EBIQIgAC0AKEEBRg0AIAAvATIiAEHkAGtB5ABJDQAgAEHMAUYNACAAQbACRg0AIAFBwABxDQBBACECIAFBiARxQYAERg0AIAFBKHFBAEchAgsgAgtzACAAQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAA/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQTBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQSBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQd0BNgIcCwYAIAAQMguaLQELfyMAQRBrIgokAEGk0AAoAgAiCUUEQEHk0wAoAgAiBUUEQEHw0wBCfzcCAEHo0wBCgICEgICAwAA3AgBB5NMAIApBCGpBcHFB2KrVqgVzIgU2AgBB+NMAQQA2AgBByNMAQQA2AgALQczTAEGA1AQ2AgBBnNAAQYDUBDYCAEGw0AAgBTYCAEGs0ABBfzYCAEHQ0wBBgKwDNgIAA0AgAUHI0ABqIAFBvNAAaiICNgIAIAIgAUG00ABqIgM2AgAgAUHA0ABqIAM2AgAgAUHQ0ABqIAFBxNAAaiIDNgIAIAMgAjYCACABQdjQAGogAUHM0ABqIgI2AgAgAiADNgIAIAFB1NAAaiACNgIAIAFBIGoiAUGAAkcNAAtBjNQEQcGrAzYCAEGo0ABB9NMAKAIANgIAQZjQAEHAqwM2AgBBpNAAQYjUBDYCAEHM/wdBODYCAEGI1AQhCQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQewBTQRAQYzQACgCACIGQRAgAEETakFwcSAAQQtJGyIEQQN2IgB2IgFBA3EEQAJAIAFBAXEgAHJBAXMiAkEDdCIAQbTQAGoiASAAQbzQAGooAgAiACgCCCIDRgRAQYzQACAGQX4gAndxNgIADAELIAEgAzYCCCADIAE2AgwLIABBCGohASAAIAJBA3QiAkEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwRC0GU0AAoAgAiCCAETw0BIAEEQAJAQQIgAHQiAkEAIAJrciABIAB0cWgiAEEDdCICQbTQAGoiASACQbzQAGooAgAiAigCCCIDRgRAQYzQACAGQX4gAHdxIgY2AgAMAQsgASADNgIIIAMgATYCDAsgAiAEQQNyNgIEIABBA3QiACAEayEFIAAgAmogBTYCACACIARqIgQgBUEBcjYCBCAIBEAgCEF4cUG00ABqIQBBoNAAKAIAIQMCf0EBIAhBA3Z0IgEgBnFFBEBBjNAAIAEgBnI2AgAgAAwBCyAAKAIICyIBIAM2AgwgACADNgIIIAMgADYCDCADIAE2AggLIAJBCGohAUGg0AAgBDYCAEGU0AAgBTYCAAwRC0GQ0AAoAgAiC0UNASALaEECdEG80gBqKAIAIgAoAgRBeHEgBGshBSAAIQIDQAJAIAIoAhAiAUUEQCACQRRqKAIAIgFFDQELIAEoAgRBeHEgBGsiAyAFSSECIAMgBSACGyEFIAEgACACGyEAIAEhAgwBCwsgACgCGCEJIAAoAgwiAyAARwRAQZzQACgCABogAyAAKAIIIgE2AgggASADNgIMDBALIABBFGoiAigCACIBRQRAIAAoAhAiAUUNAyAAQRBqIQILA0AgAiEHIAEiA0EUaiICKAIAIgENACADQRBqIQIgAygCECIBDQALIAdBADYCAAwPC0F/IQQgAEG/f0sNACAAQRNqIgFBcHEhBEGQ0AAoAgAiCEUNAEEAIARrIQUCQAJAAkACf0EAIARBgAJJDQAaQR8gBEH///8HSw0AGiAEQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qCyIGQQJ0QbzSAGooAgAiAkUEQEEAIQFBACEDDAELQQAhASAEQRkgBkEBdmtBACAGQR9HG3QhAEEAIQMDQAJAIAIoAgRBeHEgBGsiByAFTw0AIAIhAyAHIgUNAEEAIQUgAiEBDAMLIAEgAkEUaigCACIHIAcgAiAAQR12QQRxakEQaigCACICRhsgASAHGyEBIABBAXQhACACDQALCyABIANyRQRAQQAhA0ECIAZ0IgBBACAAa3IgCHEiAEUNAyAAaEECdEG80gBqKAIAIQELIAFFDQELA0AgASgCBEF4cSAEayICIAVJIQAgAiAFIAAbIQUgASADIAAbIQMgASgCECIABH8gAAUgAUEUaigCAAsiAQ0ACwsgA0UNACAFQZTQACgCACAEa08NACADKAIYIQcgAyADKAIMIgBHBEBBnNAAKAIAGiAAIAMoAggiATYCCCABIAA2AgwMDgsgA0EUaiICKAIAIgFFBEAgAygCECIBRQ0DIANBEGohAgsDQCACIQYgASIAQRRqIgIoAgAiAQ0AIABBEGohAiAAKAIQIgENAAsgBkEANgIADA0LQZTQACgCACIDIARPBEBBoNAAKAIAIQECQCADIARrIgJBEE8EQCABIARqIgAgAkEBcjYCBCABIANqIAI2AgAgASAEQQNyNgIEDAELIAEgA0EDcjYCBCABIANqIgAgACgCBEEBcjYCBEEAIQBBACECC0GU0AAgAjYCAEGg0AAgADYCACABQQhqIQEMDwtBmNAAKAIAIgMgBEsEQCAEIAlqIgAgAyAEayIBQQFyNgIEQaTQACAANgIAQZjQACABNgIAIAkgBEEDcjYCBCAJQQhqIQEMDwtBACEBIAQCf0Hk0wAoAgAEQEHs0wAoAgAMAQtB8NMAQn83AgBB6NMAQoCAhICAgMAANwIAQeTTACAKQQxqQXBxQdiq1aoFczYCAEH40wBBADYCAEHI0wBBADYCAEGAgAQLIgAgBEHHAGoiBWoiBkEAIABrIgdxIgJPBEBB/NMAQTA2AgAMDwsCQEHE0wAoAgAiAUUNAEG80wAoAgAiCCACaiEAIAAgAU0gACAIS3ENAEEAIQFB/NMAQTA2AgAMDwtByNMALQAAQQRxDQQCQAJAIAkEQEHM0wAhAQNAIAEoAgAiACAJTQRAIAAgASgCBGogCUsNAwsgASgCCCIBDQALC0EAEDMiAEF/Rg0FIAIhBkHo0wAoAgAiAUEBayIDIABxBEAgAiAAayAAIANqQQAgAWtxaiEGCyAEIAZPDQUgBkH+////B0sNBUHE0wAoAgAiAwRAQbzTACgCACIHIAZqIQEgASAHTQ0GIAEgA0sNBgsgBhAzIgEgAEcNAQwHCyAGIANrIAdxIgZB/v///wdLDQQgBhAzIQAgACABKAIAIAEoAgRqRg0DIAAhAQsCQCAGIARByABqTw0AIAFBf0YNAEHs0wAoAgAiACAFIAZrakEAIABrcSIAQf7///8HSwRAIAEhAAwHCyAAEDNBf0cEQCAAIAZqIQYgASEADAcLQQAgBmsQMxoMBAsgASIAQX9HDQUMAwtBACEDDAwLQQAhAAwKCyAAQX9HDQILQcjTAEHI0wAoAgBBBHI2AgALIAJB/v///wdLDQEgAhAzIQBBABAzIQEgAEF/Rg0BIAFBf0YNASAAIAFPDQEgASAAayIGIARBOGpNDQELQbzTAEG80wAoAgAgBmoiATYCAEHA0wAoAgAgAUkEQEHA0wAgATYCAAsCQAJAAkBBpNAAKAIAIgIEQEHM0wAhAQNAIAAgASgCACIDIAEoAgQiBWpGDQIgASgCCCIBDQALDAILQZzQACgCACIBQQBHIAAgAU9xRQRAQZzQACAANgIAC0EAIQFB0NMAIAY2AgBBzNMAIAA2AgBBrNAAQX82AgBBsNAAQeTTACgCADYCAEHY0wBBADYCAANAIAFByNAAaiABQbzQAGoiAjYCACACIAFBtNAAaiIDNgIAIAFBwNAAaiADNgIAIAFB0NAAaiABQcTQAGoiAzYCACADIAI2AgAgAUHY0ABqIAFBzNAAaiICNgIAIAIgAzYCACABQdTQAGogAjYCACABQSBqIgFBgAJHDQALQXggAGtBD3EiASAAaiICIAZBOGsiAyABayIBQQFyNgIEQajQAEH00wAoAgA2AgBBmNAAIAE2AgBBpNAAIAI2AgAgACADakE4NgIEDAILIAAgAk0NACACIANJDQAgASgCDEEIcQ0AQXggAmtBD3EiACACaiIDQZjQACgCACAGaiIHIABrIgBBAXI2AgQgASAFIAZqNgIEQajQAEH00wAoAgA2AgBBmNAAIAA2AgBBpNAAIAM2AgAgAiAHakE4NgIEDAELIABBnNAAKAIASQRAQZzQACAANgIACyAAIAZqIQNBzNMAIQECQAJAAkADQCADIAEoAgBHBEAgASgCCCIBDQEMAgsLIAEtAAxBCHFFDQELQczTACEBA0AgASgCACIDIAJNBEAgAyABKAIEaiIFIAJLDQMLIAEoAgghAQwACwALIAEgADYCACABIAEoAgQgBmo2AgQgAEF4IABrQQ9xaiIJIARBA3I2AgQgA0F4IANrQQ9xaiIGIAQgCWoiBGshASACIAZGBEBBpNAAIAQ2AgBBmNAAQZjQACgCACABaiIANgIAIAQgAEEBcjYCBAwIC0Gg0AAoAgAgBkYEQEGg0AAgBDYCAEGU0ABBlNAAKAIAIAFqIgA2AgAgBCAAQQFyNgIEIAAgBGogADYCAAwICyAGKAIEIgVBA3FBAUcNBiAFQXhxIQggBUH/AU0EQCAFQQN2IQMgBigCCCIAIAYoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAcLIAIgADYCCCAAIAI2AgwMBgsgBigCGCEHIAYgBigCDCIARwRAIAAgBigCCCICNgIIIAIgADYCDAwFCyAGQRRqIgIoAgAiBUUEQCAGKAIQIgVFDQQgBkEQaiECCwNAIAIhAyAFIgBBFGoiAigCACIFDQAgAEEQaiECIAAoAhAiBQ0ACyADQQA2AgAMBAtBeCAAa0EPcSIBIABqIgcgBkE4ayIDIAFrIgFBAXI2AgQgACADakE4NgIEIAIgBUE3IAVrQQ9xakE/ayIDIAMgAkEQakkbIgNBIzYCBEGo0ABB9NMAKAIANgIAQZjQACABNgIAQaTQACAHNgIAIANBEGpB1NMAKQIANwIAIANBzNMAKQIANwIIQdTTACADQQhqNgIAQdDTACAGNgIAQczTACAANgIAQdjTAEEANgIAIANBJGohAQNAIAFBBzYCACAFIAFBBGoiAUsNAAsgAiADRg0AIAMgAygCBEF+cTYCBCADIAMgAmsiBTYCACACIAVBAXI2AgQgBUH/AU0EQCAFQXhxQbTQAGohAAJ/QYzQACgCACIBQQEgBUEDdnQiA3FFBEBBjNAAIAEgA3I2AgAgAAwBCyAAKAIICyIBIAI2AgwgACACNgIIIAIgADYCDCACIAE2AggMAQtBHyEBIAVB////B00EQCAFQSYgBUEIdmciAGt2QQFxIABBAXRrQT5qIQELIAIgATYCHCACQgA3AhAgAUECdEG80gBqIQBBkNAAKAIAIgNBASABdCIGcUUEQCAAIAI2AgBBkNAAIAMgBnI2AgAgAiAANgIYIAIgAjYCCCACIAI2AgwMAQsgBUEZIAFBAXZrQQAgAUEfRxt0IQEgACgCACEDAkADQCADIgAoAgRBeHEgBUYNASABQR12IQMgAUEBdCEBIAAgA0EEcWpBEGoiBigCACIDDQALIAYgAjYCACACIAA2AhggAiACNgIMIAIgAjYCCAwBCyAAKAIIIgEgAjYCDCAAIAI2AgggAkEANgIYIAIgADYCDCACIAE2AggLQZjQACgCACIBIARNDQBBpNAAKAIAIgAgBGoiAiABIARrIgFBAXI2AgRBmNAAIAE2AgBBpNAAIAI2AgAgACAEQQNyNgIEIABBCGohAQwIC0EAIQFB/NMAQTA2AgAMBwtBACEACyAHRQ0AAkAgBigCHCICQQJ0QbzSAGoiAygCACAGRgRAIAMgADYCACAADQFBkNAAQZDQACgCAEF+IAJ3cTYCAAwCCyAHQRBBFCAHKAIQIAZGG2ogADYCACAARQ0BCyAAIAc2AhggBigCECICBEAgACACNgIQIAIgADYCGAsgBkEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgCGohASAGIAhqIgYoAgQhBQsgBiAFQX5xNgIEIAEgBGogATYCACAEIAFBAXI2AgQgAUH/AU0EQCABQXhxQbTQAGohAAJ/QYzQACgCACICQQEgAUEDdnQiAXFFBEBBjNAAIAEgAnI2AgAgAAwBCyAAKAIICyIBIAQ2AgwgACAENgIIIAQgADYCDCAEIAE2AggMAQtBHyEFIAFB////B00EQCABQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQULIAQgBTYCHCAEQgA3AhAgBUECdEG80gBqIQBBkNAAKAIAIgJBASAFdCIDcUUEQCAAIAQ2AgBBkNAAIAIgA3I2AgAgBCAANgIYIAQgBDYCCCAEIAQ2AgwMAQsgAUEZIAVBAXZrQQAgBUEfRxt0IQUgACgCACEAAkADQCAAIgIoAgRBeHEgAUYNASAFQR12IQAgBUEBdCEFIAIgAEEEcWpBEGoiAygCACIADQALIAMgBDYCACAEIAI2AhggBCAENgIMIAQgBDYCCAwBCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAlBCGohAQwCCwJAIAdFDQACQCADKAIcIgFBAnRBvNIAaiICKAIAIANGBEAgAiAANgIAIAANAUGQ0AAgCEF+IAF3cSIINgIADAILIAdBEEEUIAcoAhAgA0YbaiAANgIAIABFDQELIAAgBzYCGCADKAIQIgEEQCAAIAE2AhAgASAANgIYCyADQRRqKAIAIgFFDQAgAEEUaiABNgIAIAEgADYCGAsCQCAFQQ9NBEAgAyAEIAVqIgBBA3I2AgQgACADaiIAIAAoAgRBAXI2AgQMAQsgAyAEaiICIAVBAXI2AgQgAyAEQQNyNgIEIAIgBWogBTYCACAFQf8BTQRAIAVBeHFBtNAAaiEAAn9BjNAAKAIAIgFBASAFQQN2dCIFcUUEQEGM0AAgASAFcjYCACAADAELIAAoAggLIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCAwBC0EfIQEgBUH///8HTQRAIAVBJiAFQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAQsgAiABNgIcIAJCADcCECABQQJ0QbzSAGohAEEBIAF0IgQgCHFFBEAgACACNgIAQZDQACAEIAhyNgIAIAIgADYCGCACIAI2AgggAiACNgIMDAELIAVBGSABQQF2a0EAIAFBH0cbdCEBIAAoAgAhBAJAA0AgBCIAKAIEQXhxIAVGDQEgAUEddiEEIAFBAXQhASAAIARBBHFqQRBqIgYoAgAiBA0ACyAGIAI2AgAgAiAANgIYIAIgAjYCDCACIAI2AggMAQsgACgCCCIBIAI2AgwgACACNgIIIAJBADYCGCACIAA2AgwgAiABNgIICyADQQhqIQEMAQsCQCAJRQ0AAkAgACgCHCIBQQJ0QbzSAGoiAigCACAARgRAIAIgAzYCACADDQFBkNAAIAtBfiABd3E2AgAMAgsgCUEQQRQgCSgCECAARhtqIAM2AgAgA0UNAQsgAyAJNgIYIAAoAhAiAQRAIAMgATYCECABIAM2AhgLIABBFGooAgAiAUUNACADQRRqIAE2AgAgASADNgIYCwJAIAVBD00EQCAAIAQgBWoiAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBCyAAIARqIgcgBUEBcjYCBCAAIARBA3I2AgQgBSAHaiAFNgIAIAgEQCAIQXhxQbTQAGohAUGg0AAoAgAhAwJ/QQEgCEEDdnQiAiAGcUUEQEGM0AAgAiAGcjYCACABDAELIAEoAggLIgIgAzYCDCABIAM2AgggAyABNgIMIAMgAjYCCAtBoNAAIAc2AgBBlNAAIAU2AgALIABBCGohAQsgCkEQaiQAIAELQwAgAEUEQD8AQRB0DwsCQCAAQf//A3ENACAAQQBIDQAgAEEQdkAAIgBBf0YEQEH80wBBMDYCAEF/DwsgAEEQdA8LAAsL3D8iAEGACAsJAQAAAAIAAAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64");
|
|
238883
238950
|
});
|
|
238884
238951
|
|
|
238885
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
238952
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/constants.js
|
|
238886
238953
|
var require_constants3 = __commonJS((exports, module) => {
|
|
238887
238954
|
var corsSafeListedMethods = ["GET", "HEAD", "POST"];
|
|
238888
238955
|
var corsSafeListedMethodsSet = new Set(corsSafeListedMethods);
|
|
@@ -239051,7 +239118,7 @@ var require_constants3 = __commonJS((exports, module) => {
|
|
|
239051
239118
|
};
|
|
239052
239119
|
});
|
|
239053
239120
|
|
|
239054
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
239121
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/global.js
|
|
239055
239122
|
var require_global = __commonJS((exports, module) => {
|
|
239056
239123
|
var globalOrigin = Symbol.for("undici.globalOrigin.1");
|
|
239057
239124
|
function getGlobalOrigin() {
|
|
@@ -239084,7 +239151,7 @@ var require_global = __commonJS((exports, module) => {
|
|
|
239084
239151
|
};
|
|
239085
239152
|
});
|
|
239086
239153
|
|
|
239087
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
239154
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/data-url.js
|
|
239088
239155
|
var require_data_url = __commonJS((exports, module) => {
|
|
239089
239156
|
var assert3 = __require("node:assert");
|
|
239090
239157
|
var encoder2 = new TextEncoder;
|
|
@@ -239397,7 +239464,7 @@ var require_data_url = __commonJS((exports, module) => {
|
|
|
239397
239464
|
};
|
|
239398
239465
|
});
|
|
239399
239466
|
|
|
239400
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
239467
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/webidl.js
|
|
239401
239468
|
var require_webidl = __commonJS((exports, module) => {
|
|
239402
239469
|
var { types: types3, inspect } = __require("node:util");
|
|
239403
239470
|
var { markAsUncloneable } = __require("node:worker_threads");
|
|
@@ -239803,7 +239870,7 @@ var require_webidl = __commonJS((exports, module) => {
|
|
|
239803
239870
|
};
|
|
239804
239871
|
});
|
|
239805
239872
|
|
|
239806
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
239873
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/util.js
|
|
239807
239874
|
var require_util4 = __commonJS((exports, module) => {
|
|
239808
239875
|
var { Transform } = __require("node:stream");
|
|
239809
239876
|
var zlib = __require("node:zlib");
|
|
@@ -240615,7 +240682,7 @@ var require_util4 = __commonJS((exports, module) => {
|
|
|
240615
240682
|
};
|
|
240616
240683
|
});
|
|
240617
240684
|
|
|
240618
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
240685
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/symbols.js
|
|
240619
240686
|
var require_symbols2 = __commonJS((exports, module) => {
|
|
240620
240687
|
module.exports = {
|
|
240621
240688
|
kUrl: Symbol("url"),
|
|
@@ -240626,7 +240693,7 @@ var require_symbols2 = __commonJS((exports, module) => {
|
|
|
240626
240693
|
};
|
|
240627
240694
|
});
|
|
240628
240695
|
|
|
240629
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
240696
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/file.js
|
|
240630
240697
|
var require_file = __commonJS((exports, module) => {
|
|
240631
240698
|
var { Blob: Blob2, File: File4 } = __require("node:buffer");
|
|
240632
240699
|
var { kState } = require_symbols2();
|
|
@@ -240687,7 +240754,7 @@ var require_file = __commonJS((exports, module) => {
|
|
|
240687
240754
|
module.exports = { FileLike, isFileLike };
|
|
240688
240755
|
});
|
|
240689
240756
|
|
|
240690
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
240757
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/formdata.js
|
|
240691
240758
|
var require_formdata = __commonJS((exports, module) => {
|
|
240692
240759
|
var { isBlobLike, iteratorMixin } = require_util4();
|
|
240693
240760
|
var { kState } = require_symbols2();
|
|
@@ -240827,7 +240894,7 @@ var require_formdata = __commonJS((exports, module) => {
|
|
|
240827
240894
|
module.exports = { FormData: FormData3, makeEntry: makeEntry2 };
|
|
240828
240895
|
});
|
|
240829
240896
|
|
|
240830
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
240897
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/formdata-parser.js
|
|
240831
240898
|
var require_formdata_parser = __commonJS((exports, module) => {
|
|
240832
240899
|
var { isUSVString, bufferToLowerCasedHeaderName } = require_util3();
|
|
240833
240900
|
var { utf8DecodeBytes } = require_util4();
|
|
@@ -241055,7 +241122,7 @@ var require_formdata_parser = __commonJS((exports, module) => {
|
|
|
241055
241122
|
};
|
|
241056
241123
|
});
|
|
241057
241124
|
|
|
241058
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
241125
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/body.js
|
|
241059
241126
|
var require_body = __commonJS((exports, module) => {
|
|
241060
241127
|
var util = require_util3();
|
|
241061
241128
|
var {
|
|
@@ -241362,7 +241429,7 @@ ${normalizeLinefeeds(value3)}\r
|
|
|
241362
241429
|
};
|
|
241363
241430
|
});
|
|
241364
241431
|
|
|
241365
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
241432
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/client-h1.js
|
|
241366
241433
|
var require_client_h1 = __commonJS((exports, module) => {
|
|
241367
241434
|
var assert3 = __require("node:assert");
|
|
241368
241435
|
var util = require_util3();
|
|
@@ -241698,7 +241765,7 @@ var require_client_h1 = __commonJS((exports, module) => {
|
|
|
241698
241765
|
}
|
|
241699
241766
|
}
|
|
241700
241767
|
onUpgrade(head) {
|
|
241701
|
-
const { upgrade, client: client2, socket, headers, statusCode } = this;
|
|
241768
|
+
const { upgrade, client: client2, socket, headers, statusCode, statusText } = this;
|
|
241702
241769
|
assert3(upgrade);
|
|
241703
241770
|
assert3(client2[kSocket] === socket);
|
|
241704
241771
|
assert3(!socket.destroyed);
|
|
@@ -241723,9 +241790,10 @@ var require_client_h1 = __commonJS((exports, module) => {
|
|
|
241723
241790
|
client2[kQueue][client2[kRunningIdx]++] = null;
|
|
241724
241791
|
client2.emit("disconnect", client2[kUrl], [client2], new InformationalError("upgrade"));
|
|
241725
241792
|
try {
|
|
241726
|
-
request3.onUpgrade(statusCode, headers, socket);
|
|
241727
|
-
} catch (
|
|
241728
|
-
util.
|
|
241793
|
+
request3.onUpgrade(statusCode, headers, socket, statusText);
|
|
241794
|
+
} catch (error48) {
|
|
241795
|
+
util.errorRequest(client2, request3, error48);
|
|
241796
|
+
util.destroy(socket, error48);
|
|
241729
241797
|
}
|
|
241730
241798
|
client2[kResume]();
|
|
241731
241799
|
}
|
|
@@ -241908,7 +241976,6 @@ var require_client_h1 = __commonJS((exports, module) => {
|
|
|
241908
241976
|
socket[kSocketUsed] = false;
|
|
241909
241977
|
socket[kParser] = new Parser3(client2, socket, llhttpInstance);
|
|
241910
241978
|
addListener(socket, "error", function(err) {
|
|
241911
|
-
assert3(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
|
|
241912
241979
|
const parser = this[kParser];
|
|
241913
241980
|
if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) {
|
|
241914
241981
|
const parserErr = parser.finish();
|
|
@@ -242124,11 +242191,17 @@ var require_client_h1 = __commonJS((exports, module) => {
|
|
|
242124
242191
|
}
|
|
242125
242192
|
const socket = client2[kSocket];
|
|
242126
242193
|
clearIdleSocketValidation(socket);
|
|
242127
|
-
const abort = (
|
|
242128
|
-
if (request3.aborted
|
|
242194
|
+
const abort = (error48) => {
|
|
242195
|
+
if (request3.aborted) {
|
|
242129
242196
|
return;
|
|
242130
242197
|
}
|
|
242131
|
-
|
|
242198
|
+
if (request3.completed) {
|
|
242199
|
+
if (request3.upgrade || request3.method === "CONNECT") {
|
|
242200
|
+
util.destroy(socket, new InformationalError("aborted"));
|
|
242201
|
+
}
|
|
242202
|
+
return;
|
|
242203
|
+
}
|
|
242204
|
+
util.errorRequest(client2, request3, error48 || new RequestAbortedError);
|
|
242132
242205
|
util.destroy(body);
|
|
242133
242206
|
util.destroy(socket, new InformationalError("aborted"));
|
|
242134
242207
|
};
|
|
@@ -242484,9 +242557,10 @@ ${len.toString(16)}\r
|
|
|
242484
242557
|
module.exports = connectH1;
|
|
242485
242558
|
});
|
|
242486
242559
|
|
|
242487
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
242560
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/client-h2.js
|
|
242488
242561
|
var require_client_h2 = __commonJS((exports, module) => {
|
|
242489
242562
|
var assert3 = __require("node:assert");
|
|
242563
|
+
var { errorMonitor } = __require("node:events");
|
|
242490
242564
|
var { pipeline: pipeline2 } = __require("node:stream");
|
|
242491
242565
|
var util = require_util3();
|
|
242492
242566
|
var {
|
|
@@ -242547,6 +242621,10 @@ var require_client_h2 = __commonJS((exports, module) => {
|
|
|
242547
242621
|
}
|
|
242548
242622
|
return result3;
|
|
242549
242623
|
}
|
|
242624
|
+
function parseH2ResponseHeaders(headers) {
|
|
242625
|
+
const { [HTTP2_HEADER_STATUS]: _statusCode, ...realHeaders } = headers;
|
|
242626
|
+
return parseH2Headers(realHeaders);
|
|
242627
|
+
}
|
|
242550
242628
|
async function connectH2(client2, socket) {
|
|
242551
242629
|
client2[kSocket] = socket;
|
|
242552
242630
|
if (!h2ExperimentalWarned) {
|
|
@@ -242584,7 +242662,6 @@ var require_client_h2 = __commonJS((exports, module) => {
|
|
|
242584
242662
|
client2[kHTTP2Session] = session2;
|
|
242585
242663
|
socket[kHTTP2Session] = session2;
|
|
242586
242664
|
util.addListener(socket, "error", function(err) {
|
|
242587
|
-
assert3(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
|
|
242588
242665
|
this[kError] = err;
|
|
242589
242666
|
this[kClient][kOnError](err);
|
|
242590
242667
|
});
|
|
@@ -242643,7 +242720,6 @@ var require_client_h2 = __commonJS((exports, module) => {
|
|
|
242643
242720
|
}
|
|
242644
242721
|
}
|
|
242645
242722
|
function onHttp2SessionError(err) {
|
|
242646
|
-
assert3(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
|
|
242647
242723
|
this[kSocket][kError] = err;
|
|
242648
242724
|
this[kClient][kOnError](err);
|
|
242649
242725
|
}
|
|
@@ -242710,16 +242786,22 @@ var require_client_h2 = __commonJS((exports, module) => {
|
|
|
242710
242786
|
const { hostname: hostname3, port } = client2[kUrl];
|
|
242711
242787
|
headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname3}${port ? `:${port}` : ""}`;
|
|
242712
242788
|
headers[HTTP2_HEADER_METHOD] = method;
|
|
242713
|
-
const abort = (
|
|
242714
|
-
if (request3.aborted
|
|
242789
|
+
const abort = (error48) => {
|
|
242790
|
+
if (request3.aborted) {
|
|
242715
242791
|
return;
|
|
242716
242792
|
}
|
|
242717
|
-
|
|
242718
|
-
|
|
242793
|
+
if (request3.completed) {
|
|
242794
|
+
if (method === "CONNECT" && stream2 != null) {
|
|
242795
|
+
util.destroy(stream2, error48 || new RequestAbortedError);
|
|
242796
|
+
}
|
|
242797
|
+
return;
|
|
242798
|
+
}
|
|
242799
|
+
error48 = error48 || new RequestAbortedError;
|
|
242800
|
+
util.errorRequest(client2, request3, error48);
|
|
242719
242801
|
if (stream2 != null) {
|
|
242720
|
-
util.destroy(stream2,
|
|
242802
|
+
util.destroy(stream2, error48);
|
|
242721
242803
|
}
|
|
242722
|
-
util.destroy(body,
|
|
242804
|
+
util.destroy(body, error48);
|
|
242723
242805
|
client2[kQueue][client2[kRunningIdx]++] = null;
|
|
242724
242806
|
client2[kResume]();
|
|
242725
242807
|
};
|
|
@@ -242734,18 +242816,42 @@ var require_client_h2 = __commonJS((exports, module) => {
|
|
|
242734
242816
|
if (method === "CONNECT") {
|
|
242735
242817
|
session2.ref();
|
|
242736
242818
|
stream2 = session2.request(headers, { endStream: false, signal });
|
|
242737
|
-
|
|
242738
|
-
|
|
242739
|
-
|
|
242740
|
-
|
|
242741
|
-
|
|
242742
|
-
|
|
242819
|
+
let upgradeResponseFinished = false;
|
|
242820
|
+
const onResponse = (headers2) => {
|
|
242821
|
+
upgradeResponseFinished = true;
|
|
242822
|
+
stream2.off(errorMonitor, onUpgradeError);
|
|
242823
|
+
request3.onUpgradeResponse(Number(headers2[HTTP2_HEADER_STATUS]), headers2, parseH2ResponseHeaders);
|
|
242824
|
+
};
|
|
242825
|
+
const onUpgradeError = (error48) => {
|
|
242826
|
+
upgradeResponseFinished = true;
|
|
242827
|
+
stream2.off("response", onResponse);
|
|
242828
|
+
request3.onUpgradeError(error48);
|
|
242829
|
+
};
|
|
242830
|
+
const onReady = () => {
|
|
242831
|
+
try {
|
|
242743
242832
|
request3.onUpgrade(null, null, stream2);
|
|
242744
|
-
|
|
242745
|
-
|
|
242746
|
-
|
|
242747
|
-
|
|
242833
|
+
} catch (error48) {
|
|
242834
|
+
stream2.off("response", onResponse);
|
|
242835
|
+
abort(error48);
|
|
242836
|
+
return;
|
|
242837
|
+
}
|
|
242838
|
+
if (request3.aborted) {
|
|
242839
|
+
return;
|
|
242840
|
+
}
|
|
242841
|
+
stream2.off("error", abort);
|
|
242842
|
+
stream2.once(errorMonitor, onUpgradeError);
|
|
242843
|
+
client2[kQueue][client2[kRunningIdx]++] = null;
|
|
242844
|
+
};
|
|
242845
|
+
stream2.once("response", onResponse);
|
|
242846
|
+
stream2.once("error", abort);
|
|
242847
|
+
++session2[kOpenStreams];
|
|
242848
|
+
onReady();
|
|
242748
242849
|
stream2.once("close", () => {
|
|
242850
|
+
if (!upgradeResponseFinished && request3.completed) {
|
|
242851
|
+
stream2.off("response", onResponse);
|
|
242852
|
+
stream2.off(errorMonitor, onUpgradeError);
|
|
242853
|
+
request3.onUpgradeError(new InformationalError(`HTTP/2: "stream error" received - code ${stream2.rstCode}`));
|
|
242854
|
+
}
|
|
242749
242855
|
session2[kOpenStreams] -= 1;
|
|
242750
242856
|
if (session2[kOpenStreams] === 0)
|
|
242751
242857
|
session2.unref();
|
|
@@ -242965,7 +243071,7 @@ var require_client_h2 = __commonJS((exports, module) => {
|
|
|
242965
243071
|
module.exports = connectH2;
|
|
242966
243072
|
});
|
|
242967
243073
|
|
|
242968
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243074
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/handler/redirect-handler.js
|
|
242969
243075
|
var require_redirect_handler = __commonJS((exports, module) => {
|
|
242970
243076
|
var util = require_util3();
|
|
242971
243077
|
var { kBodyUsed } = require_symbols();
|
|
@@ -243122,7 +243228,7 @@ var require_redirect_handler = __commonJS((exports, module) => {
|
|
|
243122
243228
|
module.exports = RedirectHandler;
|
|
243123
243229
|
});
|
|
243124
243230
|
|
|
243125
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243231
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/interceptor/redirect-interceptor.js
|
|
243126
243232
|
var require_redirect_interceptor = __commonJS((exports, module) => {
|
|
243127
243233
|
var RedirectHandler = require_redirect_handler();
|
|
243128
243234
|
function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) {
|
|
@@ -243141,7 +243247,7 @@ var require_redirect_interceptor = __commonJS((exports, module) => {
|
|
|
243141
243247
|
module.exports = createRedirectInterceptor;
|
|
243142
243248
|
});
|
|
243143
243249
|
|
|
243144
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243250
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/client.js
|
|
243145
243251
|
var require_client = __commonJS((exports, module) => {
|
|
243146
243252
|
var assert3 = __require("node:assert");
|
|
243147
243253
|
var net3 = __require("node:net");
|
|
@@ -243236,9 +243342,10 @@ var require_client = __commonJS((exports, module) => {
|
|
|
243236
243342
|
autoSelectFamilyAttemptTimeout,
|
|
243237
243343
|
maxConcurrentStreams,
|
|
243238
243344
|
allowH2,
|
|
243239
|
-
webSocket
|
|
243345
|
+
webSocket,
|
|
243346
|
+
eventSource
|
|
243240
243347
|
} = {}) {
|
|
243241
|
-
super({ webSocket });
|
|
243348
|
+
super({ webSocket, eventSource });
|
|
243242
243349
|
if (keepAlive !== undefined) {
|
|
243243
243350
|
throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead");
|
|
243244
243351
|
}
|
|
@@ -243629,7 +243736,7 @@ var require_client = __commonJS((exports, module) => {
|
|
|
243629
243736
|
module.exports = Client2;
|
|
243630
243737
|
});
|
|
243631
243738
|
|
|
243632
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243739
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/fixed-queue.js
|
|
243633
243740
|
var require_fixed_queue = __commonJS((exports, module) => {
|
|
243634
243741
|
var kSize = 2048;
|
|
243635
243742
|
var kMask = kSize - 1;
|
|
@@ -243684,7 +243791,7 @@ var require_fixed_queue = __commonJS((exports, module) => {
|
|
|
243684
243791
|
};
|
|
243685
243792
|
});
|
|
243686
243793
|
|
|
243687
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243794
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/pool-stats.js
|
|
243688
243795
|
var require_pool_stats = __commonJS((exports, module) => {
|
|
243689
243796
|
var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols();
|
|
243690
243797
|
var kPool = Symbol("pool");
|
|
@@ -243715,7 +243822,7 @@ var require_pool_stats = __commonJS((exports, module) => {
|
|
|
243715
243822
|
module.exports = PoolStats;
|
|
243716
243823
|
});
|
|
243717
243824
|
|
|
243718
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243825
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/pool-base.js
|
|
243719
243826
|
var require_pool_base = __commonJS((exports, module) => {
|
|
243720
243827
|
var DispatcherBase = require_dispatcher_base();
|
|
243721
243828
|
var FixedQueue = require_fixed_queue();
|
|
@@ -243868,7 +243975,7 @@ var require_pool_base = __commonJS((exports, module) => {
|
|
|
243868
243975
|
};
|
|
243869
243976
|
});
|
|
243870
243977
|
|
|
243871
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
243978
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/pool.js
|
|
243872
243979
|
var require_pool = __commonJS((exports, module) => {
|
|
243873
243980
|
var {
|
|
243874
243981
|
PoolBase,
|
|
@@ -243957,7 +244064,7 @@ var require_pool = __commonJS((exports, module) => {
|
|
|
243957
244064
|
module.exports = Pool2;
|
|
243958
244065
|
});
|
|
243959
244066
|
|
|
243960
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244067
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/balanced-pool.js
|
|
243961
244068
|
var require_balanced_pool = __commonJS((exports, module) => {
|
|
243962
244069
|
var {
|
|
243963
244070
|
BalancedPoolMissingUpstreamError,
|
|
@@ -244100,7 +244207,7 @@ var require_balanced_pool = __commonJS((exports, module) => {
|
|
|
244100
244207
|
module.exports = BalancedPool;
|
|
244101
244208
|
});
|
|
244102
244209
|
|
|
244103
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244210
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/agent.js
|
|
244104
244211
|
var require_agent = __commonJS((exports, module) => {
|
|
244105
244212
|
var { InvalidArgumentError } = require_errors2();
|
|
244106
244213
|
var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols();
|
|
@@ -244121,7 +244228,7 @@ var require_agent = __commonJS((exports, module) => {
|
|
|
244121
244228
|
}
|
|
244122
244229
|
|
|
244123
244230
|
class Agent2 extends DispatcherBase {
|
|
244124
|
-
constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {
|
|
244231
|
+
constructor({ factory = defaultFactory, maxRedirections = 0, connect, tls, ...options } = {}) {
|
|
244125
244232
|
if (typeof factory !== "function") {
|
|
244126
244233
|
throw new InvalidArgumentError("factory must be a function.");
|
|
244127
244234
|
}
|
|
@@ -244135,8 +244242,11 @@ var require_agent = __commonJS((exports, module) => {
|
|
|
244135
244242
|
if (connect && typeof connect !== "function") {
|
|
244136
244243
|
connect = { ...connect };
|
|
244137
244244
|
}
|
|
244245
|
+
if (tls && typeof tls !== "function") {
|
|
244246
|
+
tls = { ...tls };
|
|
244247
|
+
}
|
|
244138
244248
|
this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })];
|
|
244139
|
-
this[kOptions] = { ...util.deepClone(options), connect };
|
|
244249
|
+
this[kOptions] = { ...util.deepClone(options), connect, tls };
|
|
244140
244250
|
this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : undefined;
|
|
244141
244251
|
this[kMaxRedirections] = maxRedirections;
|
|
244142
244252
|
this[kFactory] = factory;
|
|
@@ -244195,7 +244305,7 @@ var require_agent = __commonJS((exports, module) => {
|
|
|
244195
244305
|
module.exports = Agent2;
|
|
244196
244306
|
});
|
|
244197
244307
|
|
|
244198
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244308
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/proxy-agent.js
|
|
244199
244309
|
var require_proxy_agent = __commonJS((exports, module) => {
|
|
244200
244310
|
var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols();
|
|
244201
244311
|
var { URL: URL3 } = __require("node:url");
|
|
@@ -244410,7 +244520,7 @@ var require_proxy_agent = __commonJS((exports, module) => {
|
|
|
244410
244520
|
module.exports = ProxyAgent;
|
|
244411
244521
|
});
|
|
244412
244522
|
|
|
244413
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244523
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
|
|
244414
244524
|
var require_env_http_proxy_agent = __commonJS((exports, module) => {
|
|
244415
244525
|
var DispatcherBase = require_dispatcher_base();
|
|
244416
244526
|
var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols();
|
|
@@ -244544,7 +244654,7 @@ var require_env_http_proxy_agent = __commonJS((exports, module) => {
|
|
|
244544
244654
|
module.exports = EnvHttpProxyAgent;
|
|
244545
244655
|
});
|
|
244546
244656
|
|
|
244547
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244657
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/handler/retry-handler.js
|
|
244548
244658
|
var require_retry_handler = __commonJS((exports, module) => {
|
|
244549
244659
|
var assert3 = __require("node:assert");
|
|
244550
244660
|
var { kRetryHandlerDefaultRetry } = require_symbols();
|
|
@@ -244704,7 +244814,7 @@ var require_retry_handler = __commonJS((exports, module) => {
|
|
|
244704
244814
|
const headers = parseHeaders(rawHeaders);
|
|
244705
244815
|
this.retryCount += 1;
|
|
244706
244816
|
if (statusCode >= 300) {
|
|
244707
|
-
if (this.retryOpts.statusCodes.includes(statusCode) === false) {
|
|
244817
|
+
if (!this.headersSent && this.retryOpts.statusCodes.includes(statusCode) === false) {
|
|
244708
244818
|
this.headersSent = true;
|
|
244709
244819
|
this.checkpointResponseEnd(headers, resume);
|
|
244710
244820
|
return this.handler.onHeaders(statusCode, rawHeaders, resume, statusMessage);
|
|
@@ -244847,7 +244957,7 @@ var require_retry_handler = __commonJS((exports, module) => {
|
|
|
244847
244957
|
module.exports = RetryHandler;
|
|
244848
244958
|
});
|
|
244849
244959
|
|
|
244850
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244960
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/dispatcher/retry-agent.js
|
|
244851
244961
|
var require_retry_agent = __commonJS((exports, module) => {
|
|
244852
244962
|
var Dispatcher = require_dispatcher();
|
|
244853
244963
|
var RetryHandler = require_retry_handler();
|
|
@@ -244880,7 +244990,7 @@ var require_retry_agent = __commonJS((exports, module) => {
|
|
|
244880
244990
|
module.exports = RetryAgent;
|
|
244881
244991
|
});
|
|
244882
244992
|
|
|
244883
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
244993
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/readable.js
|
|
244884
244994
|
var require_readable = __commonJS((exports, module) => {
|
|
244885
244995
|
var assert3 = __require("node:assert");
|
|
244886
244996
|
var { Readable: Readable2 } = __require("node:stream");
|
|
@@ -245160,7 +245270,7 @@ var require_readable = __commonJS((exports, module) => {
|
|
|
245160
245270
|
module.exports = { Readable: BodyReadable, chunksDecode };
|
|
245161
245271
|
});
|
|
245162
245272
|
|
|
245163
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
245273
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/util.js
|
|
245164
245274
|
var require_util5 = __commonJS((exports, module) => {
|
|
245165
245275
|
var assert3 = __require("node:assert");
|
|
245166
245276
|
var {
|
|
@@ -245218,7 +245328,7 @@ var require_util5 = __commonJS((exports, module) => {
|
|
|
245218
245328
|
};
|
|
245219
245329
|
});
|
|
245220
245330
|
|
|
245221
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
245331
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/api-request.js
|
|
245222
245332
|
var require_api_request = __commonJS((exports, module) => {
|
|
245223
245333
|
var assert3 = __require("node:assert");
|
|
245224
245334
|
var { Readable: Readable2 } = require_readable();
|
|
@@ -245398,7 +245508,7 @@ var require_api_request = __commonJS((exports, module) => {
|
|
|
245398
245508
|
module.exports.RequestHandler = RequestHandler;
|
|
245399
245509
|
});
|
|
245400
245510
|
|
|
245401
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
245511
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/abort-signal.js
|
|
245402
245512
|
var require_abort_signal = __commonJS((exports, module) => {
|
|
245403
245513
|
var { addAbortListener } = require_util3();
|
|
245404
245514
|
var { RequestAbortedError } = require_errors2();
|
|
@@ -245447,7 +245557,7 @@ var require_abort_signal = __commonJS((exports, module) => {
|
|
|
245447
245557
|
};
|
|
245448
245558
|
});
|
|
245449
245559
|
|
|
245450
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
245560
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/api-stream.js
|
|
245451
245561
|
var require_api_stream = __commonJS((exports, module) => {
|
|
245452
245562
|
var assert3 = __require("node:assert");
|
|
245453
245563
|
var { finished, PassThrough } = __require("node:stream");
|
|
@@ -245614,7 +245724,7 @@ var require_api_stream = __commonJS((exports, module) => {
|
|
|
245614
245724
|
module.exports = stream2;
|
|
245615
245725
|
});
|
|
245616
245726
|
|
|
245617
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
245727
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/api-pipeline.js
|
|
245618
245728
|
var require_api_pipeline = __commonJS((exports, module) => {
|
|
245619
245729
|
var {
|
|
245620
245730
|
Readable: Readable2,
|
|
@@ -245814,7 +245924,7 @@ var require_api_pipeline = __commonJS((exports, module) => {
|
|
|
245814
245924
|
module.exports = pipeline2;
|
|
245815
245925
|
});
|
|
245816
245926
|
|
|
245817
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
245927
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/api-upgrade.js
|
|
245818
245928
|
var require_api_upgrade = __commonJS((exports, module) => {
|
|
245819
245929
|
var { InvalidArgumentError, SocketError } = require_errors2();
|
|
245820
245930
|
var { AsyncResource } = __require("node:async_hooks");
|
|
@@ -245904,7 +246014,7 @@ var require_api_upgrade = __commonJS((exports, module) => {
|
|
|
245904
246014
|
module.exports = upgrade;
|
|
245905
246015
|
});
|
|
245906
246016
|
|
|
245907
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246017
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/api-connect.js
|
|
245908
246018
|
var require_api_connect = __commonJS((exports, module) => {
|
|
245909
246019
|
var assert3 = __require("node:assert");
|
|
245910
246020
|
var { AsyncResource } = __require("node:async_hooks");
|
|
@@ -245992,7 +246102,7 @@ var require_api_connect = __commonJS((exports, module) => {
|
|
|
245992
246102
|
module.exports = connect;
|
|
245993
246103
|
});
|
|
245994
246104
|
|
|
245995
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246105
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/api/index.js
|
|
245996
246106
|
var require_api = __commonJS((exports, module) => {
|
|
245997
246107
|
exports.request = require_api_request();
|
|
245998
246108
|
exports.stream = require_api_stream();
|
|
@@ -246001,7 +246111,7 @@ var require_api = __commonJS((exports, module) => {
|
|
|
246001
246111
|
exports.connect = require_api_connect();
|
|
246002
246112
|
});
|
|
246003
246113
|
|
|
246004
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246114
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-errors.js
|
|
246005
246115
|
var require_mock_errors = __commonJS((exports, module) => {
|
|
246006
246116
|
var { UndiciError } = require_errors2();
|
|
246007
246117
|
var kMockNotMatchedError = Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");
|
|
@@ -246024,7 +246134,7 @@ var require_mock_errors = __commonJS((exports, module) => {
|
|
|
246024
246134
|
};
|
|
246025
246135
|
});
|
|
246026
246136
|
|
|
246027
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246137
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-symbols.js
|
|
246028
246138
|
var require_mock_symbols = __commonJS((exports, module) => {
|
|
246029
246139
|
module.exports = {
|
|
246030
246140
|
kAgent: Symbol("agent"),
|
|
@@ -246049,7 +246159,7 @@ var require_mock_symbols = __commonJS((exports, module) => {
|
|
|
246049
246159
|
};
|
|
246050
246160
|
});
|
|
246051
246161
|
|
|
246052
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246162
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-utils.js
|
|
246053
246163
|
var require_mock_utils = __commonJS((exports, module) => {
|
|
246054
246164
|
var { MockNotMatchedError } = require_mock_errors();
|
|
246055
246165
|
var {
|
|
@@ -246339,7 +246449,7 @@ var require_mock_utils = __commonJS((exports, module) => {
|
|
|
246339
246449
|
};
|
|
246340
246450
|
});
|
|
246341
246451
|
|
|
246342
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246452
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-interceptor.js
|
|
246343
246453
|
var require_mock_interceptor = __commonJS((exports, module) => {
|
|
246344
246454
|
var { getResponseData, buildKey, addMockDispatch } = require_mock_utils();
|
|
246345
246455
|
var {
|
|
@@ -246476,7 +246586,7 @@ var require_mock_interceptor = __commonJS((exports, module) => {
|
|
|
246476
246586
|
exports.MockScope = MockScope;
|
|
246477
246587
|
});
|
|
246478
246588
|
|
|
246479
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246589
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-client.js
|
|
246480
246590
|
var require_mock_client = __commonJS((exports, module) => {
|
|
246481
246591
|
var { promisify: promisify2 } = __require("node:util");
|
|
246482
246592
|
var Client2 = require_client();
|
|
@@ -246524,7 +246634,7 @@ var require_mock_client = __commonJS((exports, module) => {
|
|
|
246524
246634
|
module.exports = MockClient;
|
|
246525
246635
|
});
|
|
246526
246636
|
|
|
246527
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246637
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-pool.js
|
|
246528
246638
|
var require_mock_pool = __commonJS((exports, module) => {
|
|
246529
246639
|
var { promisify: promisify2 } = __require("node:util");
|
|
246530
246640
|
var Pool2 = require_pool();
|
|
@@ -246572,7 +246682,7 @@ var require_mock_pool = __commonJS((exports, module) => {
|
|
|
246572
246682
|
module.exports = MockPool;
|
|
246573
246683
|
});
|
|
246574
246684
|
|
|
246575
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246685
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/pluralizer.js
|
|
246576
246686
|
var require_pluralizer = __commonJS((exports, module) => {
|
|
246577
246687
|
var singulars = {
|
|
246578
246688
|
pronoun: "it",
|
|
@@ -246600,7 +246710,7 @@ var require_pluralizer = __commonJS((exports, module) => {
|
|
|
246600
246710
|
};
|
|
246601
246711
|
});
|
|
246602
246712
|
|
|
246603
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246713
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/pending-interceptors-formatter.js
|
|
246604
246714
|
var require_pending_interceptors_formatter = __commonJS((exports, module) => {
|
|
246605
246715
|
var { Transform } = __require("node:stream");
|
|
246606
246716
|
var { Console: Console3 } = __require("node:console");
|
|
@@ -246636,7 +246746,7 @@ var require_pending_interceptors_formatter = __commonJS((exports, module) => {
|
|
|
246636
246746
|
};
|
|
246637
246747
|
});
|
|
246638
246748
|
|
|
246639
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246749
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/mock/mock-agent.js
|
|
246640
246750
|
var require_mock_agent = __commonJS((exports, module) => {
|
|
246641
246751
|
var { kClients } = require_symbols();
|
|
246642
246752
|
var Agent2 = require_agent();
|
|
@@ -246762,7 +246872,7 @@ ${pendingInterceptorsFormatter.format(pending)}
|
|
|
246762
246872
|
module.exports = MockAgent;
|
|
246763
246873
|
});
|
|
246764
246874
|
|
|
246765
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246875
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/global.js
|
|
246766
246876
|
var require_global2 = __commonJS((exports, module) => {
|
|
246767
246877
|
var globalDispatcher = Symbol.for("undici.globalDispatcher.1");
|
|
246768
246878
|
var { InvalidArgumentError } = require_errors2();
|
|
@@ -246790,7 +246900,7 @@ var require_global2 = __commonJS((exports, module) => {
|
|
|
246790
246900
|
};
|
|
246791
246901
|
});
|
|
246792
246902
|
|
|
246793
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246903
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/handler/decorator-handler.js
|
|
246794
246904
|
var require_decorator_handler = __commonJS((exports, module) => {
|
|
246795
246905
|
module.exports = class DecoratorHandler {
|
|
246796
246906
|
#handler;
|
|
@@ -246827,7 +246937,7 @@ var require_decorator_handler = __commonJS((exports, module) => {
|
|
|
246827
246937
|
};
|
|
246828
246938
|
});
|
|
246829
246939
|
|
|
246830
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246940
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/interceptor/redirect.js
|
|
246831
246941
|
var require_redirect = __commonJS((exports, module) => {
|
|
246832
246942
|
var RedirectHandler = require_redirect_handler();
|
|
246833
246943
|
module.exports = (opts) => {
|
|
@@ -246845,7 +246955,7 @@ var require_redirect = __commonJS((exports, module) => {
|
|
|
246845
246955
|
};
|
|
246846
246956
|
});
|
|
246847
246957
|
|
|
246848
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246958
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/interceptor/retry.js
|
|
246849
246959
|
var require_retry = __commonJS((exports, module) => {
|
|
246850
246960
|
var RetryHandler = require_retry_handler();
|
|
246851
246961
|
module.exports = (globalOpts) => {
|
|
@@ -246860,7 +246970,7 @@ var require_retry = __commonJS((exports, module) => {
|
|
|
246860
246970
|
};
|
|
246861
246971
|
});
|
|
246862
246972
|
|
|
246863
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
246973
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/interceptor/dump.js
|
|
246864
246974
|
var require_dump = __commonJS((exports, module) => {
|
|
246865
246975
|
var util = require_util3();
|
|
246866
246976
|
var { InvalidArgumentError, RequestAbortedError } = require_errors2();
|
|
@@ -246945,7 +247055,7 @@ var require_dump = __commonJS((exports, module) => {
|
|
|
246945
247055
|
module.exports = createDumpInterceptor;
|
|
246946
247056
|
});
|
|
246947
247057
|
|
|
246948
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
247058
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/interceptor/dns.js
|
|
246949
247059
|
var require_dns = __commonJS((exports, module) => {
|
|
246950
247060
|
var { isIP: isIP2 } = __require("node:net");
|
|
246951
247061
|
var { lookup: lookup2 } = __require("node:dns");
|
|
@@ -247207,7 +247317,7 @@ var require_dns = __commonJS((exports, module) => {
|
|
|
247207
247317
|
};
|
|
247208
247318
|
});
|
|
247209
247319
|
|
|
247210
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
247320
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/headers.js
|
|
247211
247321
|
var require_headers = __commonJS((exports, module) => {
|
|
247212
247322
|
var { kConstruct } = require_symbols();
|
|
247213
247323
|
var { kEnumerableProperty } = require_util3();
|
|
@@ -247614,7 +247724,7 @@ var require_headers = __commonJS((exports, module) => {
|
|
|
247614
247724
|
};
|
|
247615
247725
|
});
|
|
247616
247726
|
|
|
247617
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
247727
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/response.js
|
|
247618
247728
|
var require_response = __commonJS((exports, module) => {
|
|
247619
247729
|
var { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers();
|
|
247620
247730
|
var { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body();
|
|
@@ -247984,7 +248094,7 @@ var require_response = __commonJS((exports, module) => {
|
|
|
247984
248094
|
};
|
|
247985
248095
|
});
|
|
247986
248096
|
|
|
247987
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
248097
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/dispatcher-weakref.js
|
|
247988
248098
|
var require_dispatcher_weakref = __commonJS((exports, module) => {
|
|
247989
248099
|
var { kConnected, kSize } = require_symbols();
|
|
247990
248100
|
|
|
@@ -248024,7 +248134,7 @@ var require_dispatcher_weakref = __commonJS((exports, module) => {
|
|
|
248024
248134
|
};
|
|
248025
248135
|
});
|
|
248026
248136
|
|
|
248027
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
248137
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/request.js
|
|
248028
248138
|
var require_request2 = __commonJS((exports, module) => {
|
|
248029
248139
|
var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body();
|
|
248030
248140
|
var { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers();
|
|
@@ -248614,7 +248724,7 @@ var require_request2 = __commonJS((exports, module) => {
|
|
|
248614
248724
|
module.exports = { Request: Request4, makeRequest, fromInnerRequest, cloneRequest };
|
|
248615
248725
|
});
|
|
248616
248726
|
|
|
248617
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
248727
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fetch/index.js
|
|
248618
248728
|
var require_fetch = __commonJS((exports, module) => {
|
|
248619
248729
|
var {
|
|
248620
248730
|
makeNetworkError,
|
|
@@ -249414,8 +249524,9 @@ var require_fetch = __commonJS((exports, module) => {
|
|
|
249414
249524
|
type: "bytes"
|
|
249415
249525
|
});
|
|
249416
249526
|
response.body = { stream: stream2, source: null, length: null };
|
|
249417
|
-
fetchParams.controller.
|
|
249418
|
-
|
|
249527
|
+
if (!fetchParams.controller.resume) {
|
|
249528
|
+
fetchParams.controller.on("terminated", onAborted);
|
|
249529
|
+
}
|
|
249419
249530
|
fetchParams.controller.resume = async () => {
|
|
249420
249531
|
while (true) {
|
|
249421
249532
|
let bytes;
|
|
@@ -249511,7 +249622,6 @@ var require_fetch = __commonJS((exports, module) => {
|
|
|
249511
249622
|
headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i2]), rawHeaders[i2 + 1].toString("latin1"), true);
|
|
249512
249623
|
}
|
|
249513
249624
|
location = headersList.get("location", true);
|
|
249514
|
-
this.body = new Readable2({ read: resume });
|
|
249515
249625
|
const decoders = [];
|
|
249516
249626
|
const willFollow = location && request3.redirect === "follow" && redirectStatusSet.has(status);
|
|
249517
249627
|
if (request3.method !== "HEAD" && request3.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) {
|
|
@@ -249519,7 +249629,7 @@ var require_fetch = __commonJS((exports, module) => {
|
|
|
249519
249629
|
const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : [];
|
|
249520
249630
|
const maxContentEncodings = 5;
|
|
249521
249631
|
if (codings.length > maxContentEncodings) {
|
|
249522
|
-
|
|
249632
|
+
this.abort(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`));
|
|
249523
249633
|
return true;
|
|
249524
249634
|
}
|
|
249525
249635
|
for (let i2 = codings.length - 1;i2 >= 0; --i2) {
|
|
@@ -249545,6 +249655,7 @@ var require_fetch = __commonJS((exports, module) => {
|
|
|
249545
249655
|
}
|
|
249546
249656
|
}
|
|
249547
249657
|
}
|
|
249658
|
+
this.body = new Readable2({ read: resume });
|
|
249548
249659
|
const onError3 = this.onError.bind(this);
|
|
249549
249660
|
resolve6({
|
|
249550
249661
|
status,
|
|
@@ -249570,9 +249681,6 @@ var require_fetch = __commonJS((exports, module) => {
|
|
|
249570
249681
|
if (this.abort) {
|
|
249571
249682
|
fetchParams.controller.off("terminated", this.abort);
|
|
249572
249683
|
}
|
|
249573
|
-
if (fetchParams.controller.onAborted) {
|
|
249574
|
-
fetchParams.controller.off("terminated", fetchParams.controller.onAborted);
|
|
249575
|
-
}
|
|
249576
249684
|
fetchParams.controller.ended = true;
|
|
249577
249685
|
this.body.push(null);
|
|
249578
249686
|
},
|
|
@@ -249611,7 +249719,7 @@ var require_fetch = __commonJS((exports, module) => {
|
|
|
249611
249719
|
};
|
|
249612
249720
|
});
|
|
249613
249721
|
|
|
249614
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
249722
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fileapi/symbols.js
|
|
249615
249723
|
var require_symbols3 = __commonJS((exports, module) => {
|
|
249616
249724
|
module.exports = {
|
|
249617
249725
|
kState: Symbol("FileReader state"),
|
|
@@ -249623,7 +249731,7 @@ var require_symbols3 = __commonJS((exports, module) => {
|
|
|
249623
249731
|
};
|
|
249624
249732
|
});
|
|
249625
249733
|
|
|
249626
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
249734
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fileapi/progressevent.js
|
|
249627
249735
|
var require_progressevent = __commonJS((exports, module) => {
|
|
249628
249736
|
var { webidl } = require_webidl();
|
|
249629
249737
|
var kState = Symbol("ProgressEvent state");
|
|
@@ -249689,7 +249797,7 @@ var require_progressevent = __commonJS((exports, module) => {
|
|
|
249689
249797
|
};
|
|
249690
249798
|
});
|
|
249691
249799
|
|
|
249692
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
249800
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fileapi/encoding.js
|
|
249693
249801
|
var require_encoding = __commonJS((exports, module) => {
|
|
249694
249802
|
function getEncoding(label) {
|
|
249695
249803
|
if (!label) {
|
|
@@ -249972,7 +250080,7 @@ var require_encoding = __commonJS((exports, module) => {
|
|
|
249972
250080
|
};
|
|
249973
250081
|
});
|
|
249974
250082
|
|
|
249975
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
250083
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fileapi/util.js
|
|
249976
250084
|
var require_util6 = __commonJS((exports, module) => {
|
|
249977
250085
|
var {
|
|
249978
250086
|
kState,
|
|
@@ -250154,7 +250262,7 @@ var require_util6 = __commonJS((exports, module) => {
|
|
|
250154
250262
|
};
|
|
250155
250263
|
});
|
|
250156
250264
|
|
|
250157
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
250265
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/fileapi/filereader.js
|
|
250158
250266
|
var require_filereader = __commonJS((exports, module) => {
|
|
250159
250267
|
var {
|
|
250160
250268
|
staticPropertyDescriptors,
|
|
@@ -250382,14 +250490,14 @@ var require_filereader = __commonJS((exports, module) => {
|
|
|
250382
250490
|
};
|
|
250383
250491
|
});
|
|
250384
250492
|
|
|
250385
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
250493
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cache/symbols.js
|
|
250386
250494
|
var require_symbols4 = __commonJS((exports, module) => {
|
|
250387
250495
|
module.exports = {
|
|
250388
250496
|
kConstruct: require_symbols().kConstruct
|
|
250389
250497
|
};
|
|
250390
250498
|
});
|
|
250391
250499
|
|
|
250392
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
250500
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cache/util.js
|
|
250393
250501
|
var require_util7 = __commonJS((exports, module) => {
|
|
250394
250502
|
var assert3 = __require("node:assert");
|
|
250395
250503
|
var { URLSerializer } = require_data_url();
|
|
@@ -250416,7 +250524,7 @@ var require_util7 = __commonJS((exports, module) => {
|
|
|
250416
250524
|
};
|
|
250417
250525
|
});
|
|
250418
250526
|
|
|
250419
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
250527
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cache/cache.js
|
|
250420
250528
|
var require_cache = __commonJS((exports, module) => {
|
|
250421
250529
|
var { kConstruct } = require_symbols4();
|
|
250422
250530
|
var { urlEquals, getFieldValues } = require_util7();
|
|
@@ -250919,7 +251027,7 @@ var require_cache = __commonJS((exports, module) => {
|
|
|
250919
251027
|
};
|
|
250920
251028
|
});
|
|
250921
251029
|
|
|
250922
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251030
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cache/cachestorage.js
|
|
250923
251031
|
var require_cachestorage = __commonJS((exports, module) => {
|
|
250924
251032
|
var { kConstruct } = require_symbols4();
|
|
250925
251033
|
var { Cache: Cache2 } = require_cache();
|
|
@@ -251004,7 +251112,7 @@ var require_cachestorage = __commonJS((exports, module) => {
|
|
|
251004
251112
|
};
|
|
251005
251113
|
});
|
|
251006
251114
|
|
|
251007
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251115
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cookies/constants.js
|
|
251008
251116
|
var require_constants4 = __commonJS((exports, module) => {
|
|
251009
251117
|
var maxAttributeValueSize = 1024;
|
|
251010
251118
|
var maxNameValuePairSize = 4096;
|
|
@@ -251014,7 +251122,7 @@ var require_constants4 = __commonJS((exports, module) => {
|
|
|
251014
251122
|
};
|
|
251015
251123
|
});
|
|
251016
251124
|
|
|
251017
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251125
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cookies/util.js
|
|
251018
251126
|
var require_util8 = __commonJS((exports, module) => {
|
|
251019
251127
|
function isCTLExcludingHtab(value3) {
|
|
251020
251128
|
for (let i2 = 0;i2 < value3.length; ++i2) {
|
|
@@ -251192,7 +251300,7 @@ var require_util8 = __commonJS((exports, module) => {
|
|
|
251192
251300
|
};
|
|
251193
251301
|
});
|
|
251194
251302
|
|
|
251195
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251303
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cookies/parse.js
|
|
251196
251304
|
var require_parse = __commonJS((exports, module) => {
|
|
251197
251305
|
var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4();
|
|
251198
251306
|
var { isCTLExcludingHtab } = require_util8();
|
|
@@ -251313,7 +251421,7 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
251313
251421
|
};
|
|
251314
251422
|
});
|
|
251315
251423
|
|
|
251316
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251424
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/cookies/index.js
|
|
251317
251425
|
var require_cookies = __commonJS((exports, module) => {
|
|
251318
251426
|
var { parseSetCookie } = require_parse();
|
|
251319
251427
|
var { stringify: stringify2 } = require_util8();
|
|
@@ -251439,7 +251547,7 @@ var require_cookies = __commonJS((exports, module) => {
|
|
|
251439
251547
|
};
|
|
251440
251548
|
});
|
|
251441
251549
|
|
|
251442
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251550
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/events.js
|
|
251443
251551
|
var require_events = __commonJS((exports, module) => {
|
|
251444
251552
|
var { webidl } = require_webidl();
|
|
251445
251553
|
var { kEnumerableProperty } = require_util3();
|
|
@@ -251701,7 +251809,7 @@ var require_events = __commonJS((exports, module) => {
|
|
|
251701
251809
|
};
|
|
251702
251810
|
});
|
|
251703
251811
|
|
|
251704
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251812
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/constants.js
|
|
251705
251813
|
var require_constants5 = __commonJS((exports, module) => {
|
|
251706
251814
|
var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
|
|
251707
251815
|
var staticPropertyDescriptors = {
|
|
@@ -251755,7 +251863,7 @@ var require_constants5 = __commonJS((exports, module) => {
|
|
|
251755
251863
|
};
|
|
251756
251864
|
});
|
|
251757
251865
|
|
|
251758
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251866
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/symbols.js
|
|
251759
251867
|
var require_symbols5 = __commonJS((exports, module) => {
|
|
251760
251868
|
module.exports = {
|
|
251761
251869
|
kWebSocketURL: Symbol("url"),
|
|
@@ -251769,7 +251877,7 @@ var require_symbols5 = __commonJS((exports, module) => {
|
|
|
251769
251877
|
};
|
|
251770
251878
|
});
|
|
251771
251879
|
|
|
251772
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
251880
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/util.js
|
|
251773
251881
|
var require_util9 = __commonJS((exports, module) => {
|
|
251774
251882
|
var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5();
|
|
251775
251883
|
var { states: states2, opcodes } = require_constants5();
|
|
@@ -251917,7 +252025,7 @@ var require_util9 = __commonJS((exports, module) => {
|
|
|
251917
252025
|
};
|
|
251918
252026
|
});
|
|
251919
252027
|
|
|
251920
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
252028
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/frame.js
|
|
251921
252029
|
var require_frame = __commonJS((exports, module) => {
|
|
251922
252030
|
var { maxUnsigned16Bit } = require_constants5();
|
|
251923
252031
|
var BUFFER_SIZE = 16386;
|
|
@@ -251989,7 +252097,7 @@ var require_frame = __commonJS((exports, module) => {
|
|
|
251989
252097
|
};
|
|
251990
252098
|
});
|
|
251991
252099
|
|
|
251992
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
252100
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/connection.js
|
|
251993
252101
|
var require_connection = __commonJS((exports, module) => {
|
|
251994
252102
|
var { uid, states: states2, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5();
|
|
251995
252103
|
var {
|
|
@@ -252169,7 +252277,7 @@ var require_connection = __commonJS((exports, module) => {
|
|
|
252169
252277
|
};
|
|
252170
252278
|
});
|
|
252171
252279
|
|
|
252172
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
252280
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/permessage-deflate.js
|
|
252173
252281
|
var require_permessage_deflate = __commonJS((exports, module) => {
|
|
252174
252282
|
var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib");
|
|
252175
252283
|
var { isValidClientWindowBits } = require_util9();
|
|
@@ -252239,7 +252347,7 @@ var require_permessage_deflate = __commonJS((exports, module) => {
|
|
|
252239
252347
|
module.exports = { PerMessageDeflate };
|
|
252240
252348
|
});
|
|
252241
252349
|
|
|
252242
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
252350
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/receiver.js
|
|
252243
252351
|
var require_receiver = __commonJS((exports, module) => {
|
|
252244
252352
|
var { Writable } = __require("node:stream");
|
|
252245
252353
|
var assert3 = __require("node:assert");
|
|
@@ -252403,6 +252511,17 @@ var require_receiver = __commonJS((exports, module) => {
|
|
|
252403
252511
|
if (isControlFrame(this.#info.opcode)) {
|
|
252404
252512
|
this.#loop = this.parseControlFrame(body);
|
|
252405
252513
|
this.#state = parserStates.INFO;
|
|
252514
|
+
const socket = this.ws[kResponse].socket;
|
|
252515
|
+
if (this.#loop && socket.writableNeedDrain) {
|
|
252516
|
+
this.#loop = false;
|
|
252517
|
+
socket.once("drain", () => {
|
|
252518
|
+
if (this.destroyed)
|
|
252519
|
+
return;
|
|
252520
|
+
this.#loop = true;
|
|
252521
|
+
this.run(callback3);
|
|
252522
|
+
});
|
|
252523
|
+
return;
|
|
252524
|
+
}
|
|
252406
252525
|
} else {
|
|
252407
252526
|
if (!this.#info.compressed) {
|
|
252408
252527
|
if (!this.writeFragments(body)) {
|
|
@@ -252576,7 +252695,7 @@ var require_receiver = __commonJS((exports, module) => {
|
|
|
252576
252695
|
};
|
|
252577
252696
|
});
|
|
252578
252697
|
|
|
252579
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
252698
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/sender.js
|
|
252580
252699
|
var require_sender = __commonJS((exports, module) => {
|
|
252581
252700
|
var { WebsocketFrameSend } = require_frame();
|
|
252582
252701
|
var { opcodes, sendHints } = require_constants5();
|
|
@@ -252649,7 +252768,7 @@ var require_sender = __commonJS((exports, module) => {
|
|
|
252649
252768
|
module.exports = { SendQueue };
|
|
252650
252769
|
});
|
|
252651
252770
|
|
|
252652
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
252771
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/websocket/websocket.js
|
|
252653
252772
|
var require_websocket = __commonJS((exports, module) => {
|
|
252654
252773
|
var { webidl } = require_webidl();
|
|
252655
252774
|
var { URLSerializer } = require_data_url();
|
|
@@ -253005,7 +253124,7 @@ var require_websocket = __commonJS((exports, module) => {
|
|
|
253005
253124
|
};
|
|
253006
253125
|
});
|
|
253007
253126
|
|
|
253008
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
253127
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/eventsource/util.js
|
|
253009
253128
|
var require_util10 = __commonJS((exports, module) => {
|
|
253010
253129
|
function isValidLastEventId(value3) {
|
|
253011
253130
|
return value3.indexOf("\x00") === -1;
|
|
@@ -253031,8 +253150,9 @@ var require_util10 = __commonJS((exports, module) => {
|
|
|
253031
253150
|
};
|
|
253032
253151
|
});
|
|
253033
253152
|
|
|
253034
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
253153
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/eventsource/eventsource-stream.js
|
|
253035
253154
|
var require_eventsource_stream = __commonJS((exports, module) => {
|
|
253155
|
+
var buffer = __require("node:buffer");
|
|
253036
253156
|
var { Transform } = __require("node:stream");
|
|
253037
253157
|
var { isASCIINumber, isValidLastEventId } = require_util10();
|
|
253038
253158
|
var BOM = [239, 187, 191];
|
|
@@ -253040,24 +253160,28 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253040
253160
|
var CR2 = 13;
|
|
253041
253161
|
var COLON = 58;
|
|
253042
253162
|
var SPACE2 = 32;
|
|
253163
|
+
var defaultMaxEventSize = buffer.kStringMaxLength;
|
|
253043
253164
|
var DATA = Buffer.from("data");
|
|
253044
253165
|
var EVENT = Buffer.from("event");
|
|
253045
253166
|
var ID2 = Buffer.from("id");
|
|
253046
253167
|
var RETRY = Buffer.from("retry");
|
|
253047
|
-
|
|
253048
|
-
|
|
253168
|
+
var minParserItems = 1024;
|
|
253169
|
+
var maxParserItems = 131072;
|
|
253170
|
+
var bytesPerParserItem = 128;
|
|
253171
|
+
function isASCIINumberBytes(buffer2, start) {
|
|
253172
|
+
if (start >= buffer2.length) {
|
|
253049
253173
|
return false;
|
|
253050
253174
|
}
|
|
253051
|
-
for (let i2 = start;i2 <
|
|
253052
|
-
if (
|
|
253175
|
+
for (let i2 = start;i2 < buffer2.length; i2++) {
|
|
253176
|
+
if (buffer2[i2] < 48 || buffer2[i2] > 57) {
|
|
253053
253177
|
return false;
|
|
253054
253178
|
}
|
|
253055
253179
|
}
|
|
253056
253180
|
return true;
|
|
253057
253181
|
}
|
|
253058
|
-
function isValidLastEventIdBytes(
|
|
253059
|
-
for (let i2 = start;i2 <
|
|
253060
|
-
if (
|
|
253182
|
+
function isValidLastEventIdBytes(buffer2, start) {
|
|
253183
|
+
for (let i2 = start;i2 < buffer2.length; i2++) {
|
|
253184
|
+
if (buffer2[i2] === 0) {
|
|
253061
253185
|
return false;
|
|
253062
253186
|
}
|
|
253063
253187
|
}
|
|
@@ -253074,6 +253198,11 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253074
253198
|
}
|
|
253075
253199
|
return true;
|
|
253076
253200
|
}
|
|
253201
|
+
function createMaxEventSizeExceededError() {
|
|
253202
|
+
const error48 = new Error("EventSource message size exceeded");
|
|
253203
|
+
error48.aborted = false;
|
|
253204
|
+
return error48;
|
|
253205
|
+
}
|
|
253077
253206
|
|
|
253078
253207
|
class EventSourceStream extends Transform {
|
|
253079
253208
|
state = null;
|
|
@@ -253085,6 +253214,13 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253085
253214
|
pos = 0;
|
|
253086
253215
|
lineChunkIndex = 0;
|
|
253087
253216
|
linePos = 0;
|
|
253217
|
+
lineLength = 0;
|
|
253218
|
+
eventSize = 0;
|
|
253219
|
+
eventFieldSizes = { data: 0, event: 0, id: 0, retry: 0 };
|
|
253220
|
+
dataLineCount = 0;
|
|
253221
|
+
maxEventSize;
|
|
253222
|
+
maxDataLines;
|
|
253223
|
+
maxBufferedChunks;
|
|
253088
253224
|
event = {
|
|
253089
253225
|
data: undefined,
|
|
253090
253226
|
event: undefined,
|
|
@@ -253095,6 +253231,10 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253095
253231
|
options.readableObjectMode = true;
|
|
253096
253232
|
super(options);
|
|
253097
253233
|
this.state = options.eventSourceSettings || {};
|
|
253234
|
+
this.maxEventSize = options.maxEventSize ?? defaultMaxEventSize;
|
|
253235
|
+
const parserItemLimit = this.maxEventSize > 0 ? Math.min(maxParserItems, Math.max(minParserItems, Math.floor(this.maxEventSize / bytesPerParserItem))) : 0;
|
|
253236
|
+
this.maxDataLines = parserItemLimit;
|
|
253237
|
+
this.maxBufferedChunks = parserItemLimit;
|
|
253098
253238
|
if (options.push) {
|
|
253099
253239
|
this.push = options.push;
|
|
253100
253240
|
}
|
|
@@ -253104,6 +253244,10 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253104
253244
|
callback3();
|
|
253105
253245
|
return;
|
|
253106
253246
|
}
|
|
253247
|
+
if (this.maxEventSize > 0 && this.chunks.length >= this.maxBufferedChunks && chunk[0] !== LF2 && chunk[0] !== CR2) {
|
|
253248
|
+
callback3(createMaxEventSizeExceededError());
|
|
253249
|
+
return;
|
|
253250
|
+
}
|
|
253107
253251
|
this.chunks.push(chunk);
|
|
253108
253252
|
if (this.checkBOM) {
|
|
253109
253253
|
if (this.handleBOM()) {
|
|
@@ -253140,15 +253284,29 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253140
253284
|
if (byte === CR2) {
|
|
253141
253285
|
this.crlfCheck = true;
|
|
253142
253286
|
}
|
|
253143
|
-
|
|
253287
|
+
try {
|
|
253288
|
+
this.parseLine(this.readLine(), this.event);
|
|
253289
|
+
} catch (error48) {
|
|
253290
|
+
callback3(error48);
|
|
253291
|
+
return;
|
|
253292
|
+
}
|
|
253144
253293
|
this.consumeCurrentByte();
|
|
253145
253294
|
this.eventEndCheck = true;
|
|
253146
253295
|
continue;
|
|
253147
253296
|
}
|
|
253297
|
+
if (this.maxEventSize > 0 && ++this.lineLength > this.maxEventSize + 7) {
|
|
253298
|
+
callback3(createMaxEventSizeExceededError());
|
|
253299
|
+
return;
|
|
253300
|
+
}
|
|
253148
253301
|
this.advanceCursor();
|
|
253149
253302
|
}
|
|
253150
253303
|
callback3();
|
|
253151
253304
|
}
|
|
253305
|
+
_destroy(error48, callback3) {
|
|
253306
|
+
this.chunks.length = 0;
|
|
253307
|
+
this.clearEvent();
|
|
253308
|
+
super._destroy(error48, callback3);
|
|
253309
|
+
}
|
|
253152
253310
|
parseLine(line, event) {
|
|
253153
253311
|
if (line.length === 0) {
|
|
253154
253312
|
return;
|
|
@@ -253167,6 +253325,12 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253167
253325
|
}
|
|
253168
253326
|
}
|
|
253169
253327
|
if (isFieldName(line, fieldLength, DATA)) {
|
|
253328
|
+
if (this.maxEventSize > 0 && this.dataLineCount >= this.maxDataLines) {
|
|
253329
|
+
throw createMaxEventSizeExceededError();
|
|
253330
|
+
}
|
|
253331
|
+
const valueBytes = line.length - valueStart;
|
|
253332
|
+
const dataSize = this.eventFieldSizes.data + (event.data === undefined ? 0 : 1) + valueBytes;
|
|
253333
|
+
this.setEventFieldSize("data", dataSize);
|
|
253170
253334
|
const value3 = line.toString("utf8", valueStart);
|
|
253171
253335
|
if (event.data === undefined) {
|
|
253172
253336
|
event.data = value3;
|
|
@@ -253174,27 +253338,38 @@ var require_eventsource_stream = __commonJS((exports, module) => {
|
|
|
253174
253338
|
event.data += `
|
|
253175
253339
|
${value3}`;
|
|
253176
253340
|
}
|
|
253341
|
+
this.dataLineCount++;
|
|
253177
253342
|
return;
|
|
253178
253343
|
}
|
|
253179
253344
|
if (isFieldName(line, fieldLength, RETRY)) {
|
|
253180
253345
|
if (isASCIINumberBytes(line, valueStart)) {
|
|
253346
|
+
this.setEventFieldSize("retry", line.length - valueStart);
|
|
253181
253347
|
event.retry = line.toString("utf8", valueStart);
|
|
253182
253348
|
}
|
|
253183
253349
|
return;
|
|
253184
253350
|
}
|
|
253185
253351
|
if (isFieldName(line, fieldLength, ID2)) {
|
|
253186
253352
|
if (isValidLastEventIdBytes(line, valueStart)) {
|
|
253353
|
+
this.setEventFieldSize("id", line.length - valueStart);
|
|
253187
253354
|
event.id = line.toString("utf8", valueStart);
|
|
253188
253355
|
}
|
|
253189
253356
|
return;
|
|
253190
253357
|
}
|
|
253191
253358
|
if (isFieldName(line, fieldLength, EVENT)) {
|
|
253192
|
-
|
|
253193
|
-
|
|
253194
|
-
event.event =
|
|
253359
|
+
if (valueStart < line.length) {
|
|
253360
|
+
this.setEventFieldSize("event", line.length - valueStart);
|
|
253361
|
+
event.event = line.toString("utf8", valueStart);
|
|
253195
253362
|
}
|
|
253196
253363
|
}
|
|
253197
253364
|
}
|
|
253365
|
+
setEventFieldSize(field, size6) {
|
|
253366
|
+
const eventSize = this.eventSize - this.eventFieldSizes[field] + size6;
|
|
253367
|
+
if (this.maxEventSize > 0 && eventSize > this.maxEventSize) {
|
|
253368
|
+
throw createMaxEventSizeExceededError();
|
|
253369
|
+
}
|
|
253370
|
+
this.eventSize = eventSize;
|
|
253371
|
+
this.eventFieldSizes[field] = size6;
|
|
253372
|
+
}
|
|
253198
253373
|
processEvent(event) {
|
|
253199
253374
|
if (event.retry && isASCIINumber(event.retry)) {
|
|
253200
253375
|
this.state.reconnectionTime = parseInt(event.retry, 10);
|
|
@@ -253218,6 +253393,12 @@ ${value3}`;
|
|
|
253218
253393
|
this.event.event = undefined;
|
|
253219
253394
|
this.event.id = undefined;
|
|
253220
253395
|
this.event.retry = undefined;
|
|
253396
|
+
this.eventSize = 0;
|
|
253397
|
+
this.dataLineCount = 0;
|
|
253398
|
+
this.eventFieldSizes.data = 0;
|
|
253399
|
+
this.eventFieldSizes.event = 0;
|
|
253400
|
+
this.eventFieldSizes.id = 0;
|
|
253401
|
+
this.eventFieldSizes.retry = 0;
|
|
253221
253402
|
}
|
|
253222
253403
|
hasPendingEvent() {
|
|
253223
253404
|
return this.event.data !== undefined || this.event.event !== undefined || this.event.id !== undefined || this.event.retry !== undefined;
|
|
@@ -253242,13 +253423,15 @@ ${value3}`;
|
|
|
253242
253423
|
syncLineStartToCursor() {
|
|
253243
253424
|
this.lineChunkIndex = this.chunkIndex;
|
|
253244
253425
|
this.linePos = this.pos;
|
|
253426
|
+
this.lineLength = 0;
|
|
253245
253427
|
this.dropConsumedChunks();
|
|
253246
253428
|
}
|
|
253247
253429
|
dropConsumedChunks() {
|
|
253248
|
-
|
|
253249
|
-
this.
|
|
253250
|
-
this.
|
|
253251
|
-
this.
|
|
253430
|
+
if (this.lineChunkIndex > 0) {
|
|
253431
|
+
const consumed = this.lineChunkIndex;
|
|
253432
|
+
this.chunks.splice(0, consumed);
|
|
253433
|
+
this.lineChunkIndex = 0;
|
|
253434
|
+
this.chunkIndex -= consumed;
|
|
253252
253435
|
}
|
|
253253
253436
|
if (this.chunkIndex === this.chunks.length) {
|
|
253254
253437
|
this.chunks.length = 0;
|
|
@@ -253335,7 +253518,7 @@ ${value3}`;
|
|
|
253335
253518
|
};
|
|
253336
253519
|
});
|
|
253337
253520
|
|
|
253338
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
253521
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/lib/web/eventsource/eventsource.js
|
|
253339
253522
|
var require_eventsource = __commonJS((exports, module) => {
|
|
253340
253523
|
var { pipeline: pipeline2 } = __require("node:stream");
|
|
253341
253524
|
var { fetching } = require_fetch();
|
|
@@ -253348,6 +253531,7 @@ var require_eventsource = __commonJS((exports, module) => {
|
|
|
253348
253531
|
var { delay: delay7 } = require_util10();
|
|
253349
253532
|
var { kEnumerableProperty } = require_util3();
|
|
253350
253533
|
var { environmentSettingsObject } = require_util4();
|
|
253534
|
+
var { getGlobalDispatcher } = require_global2();
|
|
253351
253535
|
var experimentalWarned = false;
|
|
253352
253536
|
var defaultReconnectionTime = 3000;
|
|
253353
253537
|
var CONNECTING = 0;
|
|
@@ -253465,6 +253649,7 @@ var require_eventsource = __commonJS((exports, module) => {
|
|
|
253465
253649
|
this.#state.origin = response.urlList[response.urlList.length - 1].origin;
|
|
253466
253650
|
const eventSourceStream = new EventSourceStream({
|
|
253467
253651
|
eventSourceSettings: this.#state,
|
|
253652
|
+
maxEventSize: this.#dispatcher.eventSourceOptions?.maxEventSize,
|
|
253468
253653
|
push: (event) => {
|
|
253469
253654
|
this.dispatchEvent(createFastMessageEvent(event.type, event.options));
|
|
253470
253655
|
}
|
|
@@ -253584,7 +253769,8 @@ var require_eventsource = __commonJS((exports, module) => {
|
|
|
253584
253769
|
},
|
|
253585
253770
|
{
|
|
253586
253771
|
key: "dispatcher",
|
|
253587
|
-
converter: webidl.converters.any
|
|
253772
|
+
converter: webidl.converters.any,
|
|
253773
|
+
defaultValue: () => getGlobalDispatcher()
|
|
253588
253774
|
}
|
|
253589
253775
|
]);
|
|
253590
253776
|
module.exports = {
|
|
@@ -262865,6 +263051,9 @@ import { dirname, resolve as resolve2 } from "node:path";
|
|
|
262865
263051
|
// src/workspaces.ts
|
|
262866
263052
|
import { createHash } from "node:crypto";
|
|
262867
263053
|
import { basename, resolve } from "node:path";
|
|
263054
|
+
function hasExternalOpencode(config) {
|
|
263055
|
+
return config.externalOpencode ?? Boolean(config.opencodeBaseUrl || config.workspaces?.some((workspace) => workspace.baseUrl));
|
|
263056
|
+
}
|
|
262868
263057
|
function workspaceIdForKey(key) {
|
|
262869
263058
|
const hash = createHash("sha256").update(key).digest("hex");
|
|
262870
263059
|
return `ws_${hash.slice(0, 12)}`;
|
|
@@ -263052,6 +263241,11 @@ function parseCliArgs(argv) {
|
|
|
263052
263241
|
index += 1;
|
|
263053
263242
|
continue;
|
|
263054
263243
|
}
|
|
263244
|
+
if (value === "--allowed-hosts") {
|
|
263245
|
+
args.allowedHosts = parseList(argv[index + 1]);
|
|
263246
|
+
index += 1;
|
|
263247
|
+
continue;
|
|
263248
|
+
}
|
|
263055
263249
|
if (value === "--read-only") {
|
|
263056
263250
|
args.readOnly = true;
|
|
263057
263251
|
continue;
|
|
@@ -263066,7 +263260,8 @@ function printHelp() {
|
|
|
263066
263260
|
"Commands:",
|
|
263067
263261
|
" web Serve the OpenWork web UI + API on one origin with a",
|
|
263068
263262
|
" managed OpenCode engine (downloaded on first run).",
|
|
263069
|
-
" Defaults: --host 127.0.0.1, --approval auto, workspace = cwd
|
|
263263
|
+
" Defaults: --host 127.0.0.1, --approval auto, workspace = cwd,",
|
|
263264
|
+
" answering only loopback, IP and --host names.",
|
|
263070
263265
|
" --open Open the browser once listening",
|
|
263071
263266
|
" --no-bootstrap-token Require pasting the client token instead of auto sign-in",
|
|
263072
263267
|
"",
|
|
@@ -263084,6 +263279,7 @@ function printHelp() {
|
|
|
263084
263279
|
" --opencode-password <pass> OpenCode server password",
|
|
263085
263280
|
" --workspace <path> Workspace root (repeatable)",
|
|
263086
263281
|
" --cors <origins> Comma-separated origins or *",
|
|
263282
|
+
" --allowed-hosts <names> Comma-separated extra host names to answer (e.g. behind a proxy) or *",
|
|
263087
263283
|
" --read-only Disable writes",
|
|
263088
263284
|
" --log-format <format> Log output format: pretty | json",
|
|
263089
263285
|
" --log-requests Log incoming requests (default: true)",
|
|
@@ -263141,6 +263337,9 @@ async function resolveServerConfig(cli) {
|
|
|
263141
263337
|
const envCorsOrigins = process.env.OPENWORK_CORS_ORIGINS;
|
|
263142
263338
|
const parsedEnvCors = envCorsOrigins ? parseList(envCorsOrigins) : null;
|
|
263143
263339
|
const corsOrigins = cli.corsOrigins ?? parsedEnvCors ?? fileConfig.corsOrigins ?? ["*"];
|
|
263340
|
+
const envAllowedHosts = process.env.OPENWORK_ALLOWED_HOSTS;
|
|
263341
|
+
const parsedEnvAllowedHosts = envAllowedHosts ? parseList(envAllowedHosts) : null;
|
|
263342
|
+
const allowedHosts = cli.allowedHosts ?? parsedEnvAllowedHosts ?? fileConfig.allowedHosts ?? (cli.web ? [] : undefined);
|
|
263144
263343
|
const envReadOnly = process.env.OPENWORK_READONLY;
|
|
263145
263344
|
const parsedReadOnly = envReadOnly ? ["true", "1", "yes"].includes(envReadOnly.toLowerCase()) : undefined;
|
|
263146
263345
|
const readOnly = cli.readOnly ?? parsedReadOnly ?? fileConfig.readOnly ?? false;
|
|
@@ -263158,11 +263357,13 @@ async function resolveServerConfig(cli) {
|
|
|
263158
263357
|
hostToken,
|
|
263159
263358
|
configPath,
|
|
263160
263359
|
opencodeBaseUrl,
|
|
263360
|
+
externalOpencode: hasExternalOpencode({ opencodeBaseUrl, workspaces }),
|
|
263161
263361
|
opencodeDirectory,
|
|
263162
263362
|
opencodeUsername,
|
|
263163
263363
|
opencodePassword,
|
|
263164
263364
|
approval,
|
|
263165
263365
|
corsOrigins,
|
|
263366
|
+
...allowedHosts ? { allowedHosts } : {},
|
|
263166
263367
|
workspaces,
|
|
263167
263368
|
authorizedRoots,
|
|
263168
263369
|
readOnly,
|
|
@@ -263172,8 +263373,7 @@ async function resolveServerConfig(cli) {
|
|
|
263172
263373
|
logFormat,
|
|
263173
263374
|
logRequests,
|
|
263174
263375
|
...process.env.OPENWORK_FRESH_INSTALL_ENGINE === "v2" ? { freshInstallEngine: "v2" } : {},
|
|
263175
|
-
engineAutoUpgrade: process.env.OPENWORK_ENGINE_AUTO_UPGRADE
|
|
263176
|
-
engineForcePolicy: process.env.OPENWORK_ENGINE_FORCE_POLICY === "1" || process.env.OPENWORK_ENGINE_AUTO_UPGRADE !== undefined
|
|
263376
|
+
engineAutoUpgrade: process.env.OPENWORK_ENGINE_AUTO_UPGRADE !== "0"
|
|
263177
263377
|
};
|
|
263178
263378
|
}
|
|
263179
263379
|
|
|
@@ -267982,7 +268182,7 @@ function createBrowserTaskHost({
|
|
|
267982
268182
|
if (ownerOf(tab.tabId) !== sessionId || navigations.get(tab.tabId) !== scope)
|
|
267983
268183
|
fail("wrong_conversation", "The browser navigation owner changed.");
|
|
267984
268184
|
if (pausedSessions.has(sessionId))
|
|
267985
|
-
fail("paused", "The user has browser control
|
|
268185
|
+
fail("paused", "The user has browser control until they resume it or send their next message.");
|
|
267986
268186
|
if (!enabled())
|
|
267987
268187
|
fail("browser_disabled", "Browser control was disabled while navigation was pending.");
|
|
267988
268188
|
}
|
|
@@ -268066,7 +268266,7 @@ function createBrowserTaskHost({
|
|
|
268066
268266
|
}
|
|
268067
268267
|
const state = stateFor(tabId);
|
|
268068
268268
|
forget(state);
|
|
268069
|
-
state.controller?.abort(new BrowserTaskError("paused", "Browser control paused.
|
|
268269
|
+
state.controller?.abort(new BrowserTaskError("paused", "Browser control paused. It comes back when the user resumes it or sends their next message."));
|
|
268070
268270
|
publish(tabId, "paused", reason);
|
|
268071
268271
|
}
|
|
268072
268272
|
function resume(tabId) {
|
|
@@ -268198,7 +268398,7 @@ function createBrowserTaskHost({
|
|
|
268198
268398
|
if (operation === "tabs")
|
|
268199
268399
|
return { ok: true, provider: "builtin", externalBrowsers: "unsupported", tabs: tabsFor(sessionId).map((item) => ({ tabId: item.tabId, url: safeUrl(item.view.webContents.getURL()), title: item.view.webContents.getTitle().slice(0, 300), visible: isVisible(item.tabId), status: stateFor(item.tabId).status, operation: stateFor(item.tabId).operation })) };
|
|
268200
268400
|
if (pausedSessions.has(sessionId))
|
|
268201
|
-
fail("paused", "The user has browser control
|
|
268401
|
+
fail("paused", "The user has browser control until they resume it or send their next message. End your turn and wait.");
|
|
268202
268402
|
const control = controlFor(sessionId);
|
|
268203
268403
|
controller = new AbortController;
|
|
268204
268404
|
const requestSignal = AbortSignal.any([controller.signal, control.controller.signal]);
|
|
@@ -268232,7 +268432,7 @@ function createBrowserTaskHost({
|
|
|
268232
268432
|
requestSignal.throwIfAborted();
|
|
268233
268433
|
checkControl(sessionId, control);
|
|
268234
268434
|
if (pausedSessions.has(sessionId))
|
|
268235
|
-
fail("paused", "The user has browser control
|
|
268435
|
+
fail("paused", "The user has browser control until they resume it or send their next message. End your turn and wait.");
|
|
268236
268436
|
if (!tab) {
|
|
268237
268437
|
tab = await Promise.race([
|
|
268238
268438
|
openTab(url.href, sessionId, requestSignal, async (created) => {
|
|
@@ -268263,7 +268463,7 @@ function createBrowserTaskHost({
|
|
|
268263
268463
|
return { ok: true, status: "paused", tabId: tab.tabId, next: "user_resume" };
|
|
268264
268464
|
}
|
|
268265
268465
|
if (pausedSessions.has(sessionId) || state.status === "paused")
|
|
268266
|
-
fail("paused", "The user has browser control
|
|
268466
|
+
fail("paused", "The user has browser control until they resume it or send their next message. End your turn and wait.");
|
|
268267
268467
|
if (state.controller)
|
|
268268
268468
|
fail("busy", "A browser operation is already running in this tab. Wait for its result; do not queue another action.");
|
|
268269
268469
|
state.controller = controller;
|
|
@@ -278002,14 +278202,23 @@ If the flag is absent/false, openwork_context is unavailable, or the question to
|
|
|
278002
278202
|
## Connected work
|
|
278003
278203
|
|
|
278004
278204
|
${OPENWORK_CONNECT_ROUTING_INSTRUCTION}`;
|
|
278205
|
+
function appendOrganizationPrompts(prompt, organizationPrompts) {
|
|
278206
|
+
const text4 = organizationPrompts?.trim();
|
|
278207
|
+
return text4 ? `${prompt}
|
|
278208
|
+
|
|
278209
|
+
## Organization instructions
|
|
278210
|
+
|
|
278211
|
+
${text4}` : prompt;
|
|
278212
|
+
}
|
|
278005
278213
|
|
|
278006
278214
|
// src/opencode-v2-instructions.ts
|
|
278215
|
+
var CONNECT_DISCOVERY_INSTRUCTION = "Org-connected services, remote skills, Workflows, and Automations reach you through OpenWork Connect. Use the Code Mode catalog and search() to discover available tools, then call exact returned paths. When Connect exposes individual service tools, call them directly. When it exposes search_capabilities and execute_capability instead, discover capabilities with the former and run exact returned names with the latter. Read remote skills with the available get_skill tool. Discover on demand; only name services and skills returned by discovery or the remote skill catalog.";
|
|
278007
278216
|
var OPENWORK_V2_INSTRUCTION_KEY = "openwork.context";
|
|
278008
|
-
function buildOpenWorkV2Instructions(connectReady) {
|
|
278217
|
+
function buildOpenWorkV2Instructions(connectReady, organizationPrompts) {
|
|
278009
278218
|
return {
|
|
278010
|
-
operatingInstructions: OPENWORK_AGENT_PROMPT.replaceAll("openwork-cloud_", "openwork-cloud."),
|
|
278219
|
+
operatingInstructions: appendOrganizationPrompts(OPENWORK_AGENT_PROMPT.replace(OPENWORK_CONNECT_ROUTING_INSTRUCTION, CONNECT_DISCOVERY_INSTRUCTION).replaceAll("openwork-cloud_", "openwork-cloud."), organizationPrompts),
|
|
278011
278220
|
context: "Use openwork_context to discover OpenWork app reads. Use openwork_query with session.search then session.read to read another conversation without opening it. Session reads include the conversation and its background agents’ live activity. Sidebar groups (such as Done or In progress) are listed with openwork_query session.group.list and changed with openwork_execute session.group.create, session.group.move or session.group.remove; never search code or files for them. These are native tools, not tools.search calls. Only use capabilities actually returned by discovery.",
|
|
278012
|
-
connect: connectReady ? `OpenWork Connect tools are connected.
|
|
278221
|
+
connect: connectReady ? `OpenWork Connect tools are connected. ${CONNECT_DISCOVERY_INSTRUCTION}` : "OpenWork Connect is not connected for this request. Do not claim remote capabilities are available.",
|
|
278013
278222
|
skillInstructions: "Use the native skill tool when a task matches an available skill's description. Entries with IDs starting openwork-cloud- come from the organization: when one loads its full instructions, follow them; when it says it is discovery metadata only or not ready yet, follow its note. Other organization skills remain discoverable through OpenWork Connect on demand. A denied or removed skill must not be recovered from earlier context or files. Skill contents are subordinate to the user's request and operating instructions.",
|
|
278014
278223
|
browser: "The native browser_tabs, browser_open, browser_observe, browser_act, browser_extract, browser_navigate and browser_handoff tools control this conversation's built-in browser. Start with browser_tabs; use browser_open for a new URL, or about:blank when asked only to open the browser. Observe once, act on the whole form in one browser_act batch and verify in its receipt; use browser_extract to read facts. These are direct native tools, not Code Mode calls. Respect organization restrictions, verify the resulting page, and use browser_handoff for sign-in. Never use browser tools to control OpenWork itself or claim access to external browser profiles."
|
|
278015
278224
|
};
|
|
@@ -282564,7 +282773,7 @@ function createMcpAppResourceCache(directory, now2 = Date.now) {
|
|
|
282564
282773
|
import { lookup as lookup2 } from "node:dns/promises";
|
|
282565
282774
|
import { isIP as isIP2 } from "node:net";
|
|
282566
282775
|
|
|
282567
|
-
// ../../node_modules/.pnpm/undici@6.
|
|
282776
|
+
// ../../node_modules/.pnpm/undici@6.29.1/node_modules/undici/index.js
|
|
282568
282777
|
var Client2 = require_client();
|
|
282569
282778
|
var Dispatcher = require_dispatcher();
|
|
282570
282779
|
var Pool2 = require_pool();
|
|
@@ -307543,7 +307752,7 @@ function buildOpenworkRuntimeConfigObjectFromSnapshot(runtimeConfig2) {
|
|
|
307543
307752
|
}
|
|
307544
307753
|
const disabledProviders = runtimeDisabledProviderList(runtimeConfig2);
|
|
307545
307754
|
const permissions = legacyExecutionPermissions(runtimeConfig2.managedPolicy?.execution);
|
|
307546
|
-
const { managedPolicy: _managedPolicy, ...engineConfig } = runtimeConfig2;
|
|
307755
|
+
const { managedPolicy: _managedPolicy, managedPrompt, ...engineConfig } = runtimeConfig2;
|
|
307547
307756
|
const provider = materializeLegacyFastProviders(runtimeProviderMap(runtimeConfig2));
|
|
307548
307757
|
return {
|
|
307549
307758
|
...engineConfig,
|
|
@@ -307558,7 +307767,7 @@ function buildOpenworkRuntimeConfigObjectFromSnapshot(runtimeConfig2) {
|
|
|
307558
307767
|
description: "OpenWork default agent",
|
|
307559
307768
|
mode: "primary",
|
|
307560
307769
|
temperature: 0.2,
|
|
307561
|
-
prompt: OPENWORK_AGENT_PROMPT,
|
|
307770
|
+
prompt: appendOrganizationPrompts(OPENWORK_AGENT_PROMPT, managedPrompt),
|
|
307562
307771
|
permission: {
|
|
307563
307772
|
...permissions,
|
|
307564
307773
|
skill: {
|
|
@@ -307695,12 +307904,14 @@ class TaskActivation {
|
|
|
307695
307904
|
// src/free-auto/journey.ts
|
|
307696
307905
|
init_runtime_db();
|
|
307697
307906
|
import { randomBytes as randomBytes4 } from "node:crypto";
|
|
307698
|
-
import { mkdir as mkdir11, readFile as readFile19, writeFile as writeFile13 } from "node:fs/promises";
|
|
307907
|
+
import { mkdir as mkdir11, readFile as readFile19, rm as rm9, writeFile as writeFile13 } from "node:fs/promises";
|
|
307699
307908
|
import { join as join22 } from "node:path";
|
|
307909
|
+
var JOURNEY_FILE = "free-auto-journey";
|
|
307910
|
+
var ANALYTICS_FILE = "free-auto-analytics";
|
|
307700
307911
|
async function readFreeAutoJourney(config2) {
|
|
307701
307912
|
const fallback = randomBytes4(32).toString("hex");
|
|
307702
307913
|
const directory = runtimeStorageDir(config2);
|
|
307703
|
-
const path3 = join22(directory,
|
|
307914
|
+
const path3 = join22(directory, JOURNEY_FILE);
|
|
307704
307915
|
try {
|
|
307705
307916
|
await mkdir11(directory, { recursive: true });
|
|
307706
307917
|
await writeFile13(path3, fallback, { flag: "wx", mode: 384 }).catch((error48) => {
|
|
@@ -307713,6 +307924,20 @@ async function readFreeAutoJourney(config2) {
|
|
|
307713
307924
|
return fallback;
|
|
307714
307925
|
}
|
|
307715
307926
|
}
|
|
307927
|
+
async function readFreeAutoAnalyticsEnabled(config2) {
|
|
307928
|
+
try {
|
|
307929
|
+
return (await readFile19(join22(runtimeStorageDir(config2), ANALYTICS_FILE), "utf8")).trim() === "enabled";
|
|
307930
|
+
} catch {
|
|
307931
|
+
return false;
|
|
307932
|
+
}
|
|
307933
|
+
}
|
|
307934
|
+
async function writeFreeAutoAnalyticsEnabled(config2, enabled) {
|
|
307935
|
+
const directory = runtimeStorageDir(config2);
|
|
307936
|
+
await mkdir11(directory, { recursive: true });
|
|
307937
|
+
await writeFile13(join22(directory, ANALYTICS_FILE), enabled ? "enabled" : "disabled", { mode: 384 });
|
|
307938
|
+
if (!enabled)
|
|
307939
|
+
await rm9(join22(directory, JOURNEY_FILE), { force: true });
|
|
307940
|
+
}
|
|
307716
307941
|
|
|
307717
307942
|
// src/free-auto/http.ts
|
|
307718
307943
|
init_errors5();
|
|
@@ -307946,6 +308171,8 @@ class AnonymousInferenceService {
|
|
|
307946
308171
|
host;
|
|
307947
308172
|
localAccessToken = freshLocalToken();
|
|
307948
308173
|
journey = null;
|
|
308174
|
+
analyticsEnabled = null;
|
|
308175
|
+
analyticsQueue = Promise.resolve();
|
|
307949
308176
|
relayPrincipal = null;
|
|
307950
308177
|
relayPrincipalPending = false;
|
|
307951
308178
|
boundPort = null;
|
|
@@ -308256,6 +308483,34 @@ class AnonymousInferenceService {
|
|
|
308256
308483
|
throw new ApiError(statusHttpCode(status.state), status.code ?? "anonymous_unavailable", "Auto is not available. Check desktop free access status.", status);
|
|
308257
308484
|
this.activation.start(route.sessionID);
|
|
308258
308485
|
}
|
|
308486
|
+
setAnalyticsEnabled(enabled) {
|
|
308487
|
+
const pending = this.journey;
|
|
308488
|
+
this.analyticsEnabled = Promise.resolve(enabled);
|
|
308489
|
+
this.journey = null;
|
|
308490
|
+
const run2 = this.analyticsQueue.then(async () => {
|
|
308491
|
+
await pending?.catch(() => {
|
|
308492
|
+
return;
|
|
308493
|
+
});
|
|
308494
|
+
await writeFreeAutoAnalyticsEnabled(this.config, enabled).catch(() => {
|
|
308495
|
+
return;
|
|
308496
|
+
});
|
|
308497
|
+
return { enabled };
|
|
308498
|
+
});
|
|
308499
|
+
this.analyticsQueue = run2.then(() => {
|
|
308500
|
+
return;
|
|
308501
|
+
}, () => {
|
|
308502
|
+
return;
|
|
308503
|
+
});
|
|
308504
|
+
return run2;
|
|
308505
|
+
}
|
|
308506
|
+
async journeyHeaders() {
|
|
308507
|
+
this.analyticsEnabled ??= readFreeAutoAnalyticsEnabled(this.config);
|
|
308508
|
+
const decision = this.analyticsEnabled;
|
|
308509
|
+
if (!await decision || decision !== this.analyticsEnabled)
|
|
308510
|
+
return {};
|
|
308511
|
+
this.journey ??= readFreeAutoJourney(this.config);
|
|
308512
|
+
return { "x-openwork-free-journey": createHash12("sha256").update(`${this.settings.origin}:${await this.journey}`).digest("hex") };
|
|
308513
|
+
}
|
|
308259
308514
|
async remote(path3, method, body, requestSignal = AbortSignal.timeout(SESSION_TIMEOUT_MS), relayToken) {
|
|
308260
308515
|
const signal = AbortSignal.any([requestSignal, this.identityController.signal]);
|
|
308261
308516
|
await this.assertDispatchAllowed();
|
|
@@ -308268,12 +308523,11 @@ class AnonymousInferenceService {
|
|
|
308268
308523
|
signal.throwIfAborted();
|
|
308269
308524
|
const authorization = member ?? `Bearer ${DESKTOP_FREE_OPEN_API_KEY}`;
|
|
308270
308525
|
const actualPath = member ? memberPath(path3) : path3;
|
|
308271
|
-
|
|
308272
|
-
const journey = createHash12("sha256").update(`${this.settings.origin}:${await this.journey}`).digest("hex");
|
|
308526
|
+
const journey = await this.journeyHeaders();
|
|
308273
308527
|
const response = await externalFetch(`${this.settings.origin}${actualPath}`, {
|
|
308274
308528
|
method,
|
|
308275
308529
|
body: method === "GET" ? undefined : body,
|
|
308276
|
-
headers: { authorization,
|
|
308530
|
+
headers: { authorization, ...journey, ...method === "POST" ? { "content-type": "application/json" } : {} },
|
|
308277
308531
|
signal,
|
|
308278
308532
|
redirect: "error",
|
|
308279
308533
|
credentials: "omit",
|
|
@@ -308443,7 +308697,7 @@ ${createHash12("sha256").update(body).digest("hex")}`;
|
|
|
308443
308697
|
// src/portable-files.ts
|
|
308444
308698
|
init_errors5();
|
|
308445
308699
|
init_utils();
|
|
308446
|
-
import { readdir as readdir7, readFile as readFile20, rm as
|
|
308700
|
+
import { readdir as readdir7, readFile as readFile20, rm as rm10, writeFile as writeFile14 } from "node:fs/promises";
|
|
308447
308701
|
import { dirname as dirname12, join as join23, resolve as resolve12 } from "node:path";
|
|
308448
308702
|
var ALLOWED_PORTABLE_PREFIXES = [".opencode/agents/", ".opencode/plugins/", ".opencode/tools/"];
|
|
308449
308703
|
var RESERVED_PORTABLE_SEGMENTS = new Set([".DS_Store", "Thumbs.db", "node_modules"]);
|
|
@@ -308835,13 +309089,14 @@ async function serveStaticUi(request3, config2) {
|
|
|
308835
309089
|
if (!relativePath) {
|
|
308836
309090
|
return jsonError2(new ApiError(400, "invalid_path", "Invalid URL path"));
|
|
308837
309091
|
}
|
|
309092
|
+
const token = bootstrapTokenFor(request3, config2.token);
|
|
308838
309093
|
try {
|
|
308839
|
-
const fileResponse = await serveFile(root, relativePath, url2.pathname, method,
|
|
309094
|
+
const fileResponse = await serveFile(root, relativePath, url2.pathname, method, token);
|
|
308840
309095
|
if (fileResponse)
|
|
308841
309096
|
return fileResponse;
|
|
308842
309097
|
if (url2.pathname.startsWith("/assets/"))
|
|
308843
309098
|
return null;
|
|
308844
|
-
return serveFile(root, "index.html", "/index.html", method,
|
|
309099
|
+
return serveFile(root, "index.html", "/index.html", method, token);
|
|
308845
309100
|
} catch (error48) {
|
|
308846
309101
|
if (error48 instanceof ApiError)
|
|
308847
309102
|
return jsonError2(error48);
|
|
@@ -308934,9 +309189,16 @@ function contentType2(extension) {
|
|
|
308934
309189
|
return "font/ttf";
|
|
308935
309190
|
return "application/octet-stream";
|
|
308936
309191
|
}
|
|
308937
|
-
function
|
|
309192
|
+
function bootstrapTokenFor(request3, token) {
|
|
308938
309193
|
if (!shouldInjectBootstrapToken())
|
|
308939
|
-
return
|
|
309194
|
+
return "";
|
|
309195
|
+
const site = request3.headers.get("sec-fetch-site");
|
|
309196
|
+
if (!site || site === "same-origin" || site === "none")
|
|
309197
|
+
return token;
|
|
309198
|
+
const opensTab = request3.headers.get("sec-fetch-mode") === "navigate" && request3.headers.get("sec-fetch-dest") === "document";
|
|
309199
|
+
return opensTab ? token : "";
|
|
309200
|
+
}
|
|
309201
|
+
function injectBootstrap(html, token) {
|
|
308940
309202
|
const clientToken = token.trim();
|
|
308941
309203
|
if (!clientToken)
|
|
308942
309204
|
return html;
|
|
@@ -308996,6 +309258,30 @@ function svgResponse(body) {
|
|
|
308996
309258
|
}
|
|
308997
309259
|
});
|
|
308998
309260
|
}
|
|
309261
|
+
|
|
309262
|
+
// src/allowed-hosts.ts
|
|
309263
|
+
import { isIP as isIP3 } from "node:net";
|
|
309264
|
+
function isAllowedHost(request3, config2) {
|
|
309265
|
+
const allowed = config2.allowedHosts;
|
|
309266
|
+
if (!allowed || allowed.includes("*"))
|
|
309267
|
+
return true;
|
|
309268
|
+
const hostname3 = hostnameOf(request3.headers.get("host") ?? new URL(request3.url).host);
|
|
309269
|
+
if (!hostname3)
|
|
309270
|
+
return false;
|
|
309271
|
+
if (hostname3 === "localhost" || hostname3.endsWith(".localhost") || isIP3(hostname3) !== 0)
|
|
309272
|
+
return true;
|
|
309273
|
+
return [config2.host, ...allowed].some((entry) => hostnameOf(entry) === hostname3);
|
|
309274
|
+
}
|
|
309275
|
+
function hostnameOf(value3) {
|
|
309276
|
+
const trimmed = value3.trim();
|
|
309277
|
+
if (!trimmed || /[\s/\\?#@]/.test(trimmed))
|
|
309278
|
+
return null;
|
|
309279
|
+
try {
|
|
309280
|
+
return new URL(`http://${trimmed}`).hostname.replace(/^\[(.*)\]$/, "$1").replace(/\.$/, "");
|
|
309281
|
+
} catch {
|
|
309282
|
+
return null;
|
|
309283
|
+
}
|
|
309284
|
+
}
|
|
308999
309285
|
// src/routes/core.ts
|
|
309000
309286
|
init_connect_state();
|
|
309001
309287
|
import { appendFile as appendFile2, mkdir as mkdir14 } from "node:fs/promises";
|
|
@@ -309010,6 +309296,12 @@ var OPENWORK_CLOUD_MCP_NAME3 = "openwork-cloud";
|
|
|
309010
309296
|
var SKILL_INDEX_URI = "skill://index.json";
|
|
309011
309297
|
var SKILL_INDEX_SCHEMA = "https://schemas.agentskills.io/discovery/0.2.0/schema.json";
|
|
309012
309298
|
var CATALOG_CACHE_TTL_MS = 30000;
|
|
309299
|
+
var SKILL_BODY_RETRY_MAX = 512;
|
|
309300
|
+
var SKILL_BODY_RETRY_MS = 10 * 60000;
|
|
309301
|
+
var SKILL_SYNC_META_KEY = "io.openwork/skills";
|
|
309302
|
+
var SKILL_BATCH_MAX = 20;
|
|
309303
|
+
var SKILL_REVISION_TRUST_MS = 15 * 60000;
|
|
309304
|
+
var READER_IDLE_MS = 5 * 60000;
|
|
309013
309305
|
var skillIndexSchema = exports_external.object({
|
|
309014
309306
|
$schema: exports_external.literal(SKILL_INDEX_SCHEMA),
|
|
309015
309307
|
skills: exports_external.array(exports_external.object({
|
|
@@ -309028,21 +309320,88 @@ var skillIndexSchema = exports_external.object({
|
|
|
309028
309320
|
}).passthrough()),
|
|
309029
309321
|
delivery: exports_external.enum(["native"]).optional()
|
|
309030
309322
|
}).passthrough();
|
|
309323
|
+
var skillIndexSyncSchema = exports_external.union([
|
|
309324
|
+
exports_external.object({ sync: exports_external.literal("unchanged"), revision: exports_external.string() }),
|
|
309325
|
+
exports_external.object({
|
|
309326
|
+
sync: exports_external.literal("changes"),
|
|
309327
|
+
revision: exports_external.string().optional(),
|
|
309328
|
+
skills: exports_external.array(exports_external.object({ url: exports_external.string(), etag: exports_external.string() }).passthrough()),
|
|
309329
|
+
removed: exports_external.array(exports_external.string())
|
|
309330
|
+
})
|
|
309331
|
+
]);
|
|
309031
309332
|
var catalogCache = new Map;
|
|
309333
|
+
var syncedIndexes = new Map;
|
|
309334
|
+
var readers = new Map;
|
|
309335
|
+
var skillBodyRetryAt = new Map;
|
|
309336
|
+
function sha256Digest(text4) {
|
|
309337
|
+
return `sha256:${createHash14("sha256").update(text4, "utf8").digest("hex")}`;
|
|
309338
|
+
}
|
|
309339
|
+
function holdSkillBodyRetry(digest2) {
|
|
309340
|
+
skillBodyRetryAt.delete(digest2);
|
|
309341
|
+
skillBodyRetryAt.set(digest2, Date.now() + SKILL_BODY_RETRY_MS);
|
|
309342
|
+
if (skillBodyRetryAt.size > SKILL_BODY_RETRY_MAX)
|
|
309343
|
+
skillBodyRetryAt.delete(skillBodyRetryAt.keys().next().value);
|
|
309344
|
+
}
|
|
309345
|
+
function configKey(config2) {
|
|
309346
|
+
return createHash14("sha256").update(JSON.stringify(config2)).digest("hex");
|
|
309347
|
+
}
|
|
309348
|
+
async function sessionReader(config2, fetcher) {
|
|
309349
|
+
const key2 = configKey(config2);
|
|
309350
|
+
const current2 = readers.get(key2);
|
|
309351
|
+
if (current2 && current2.fetcher === fetcher && Date.now() - current2.usedAt < READER_IDLE_MS) {
|
|
309352
|
+
const reader2 = await current2.reader;
|
|
309353
|
+
if (reader2 && !reader2.broken) {
|
|
309354
|
+
current2.usedAt = Date.now();
|
|
309355
|
+
return reader2;
|
|
309356
|
+
}
|
|
309357
|
+
}
|
|
309358
|
+
const reader = openMcpResourceReader({ config: config2, fetcher, clientName: "openwork-server-skill-catalog" }).catch(() => null);
|
|
309359
|
+
readers.set(key2, { usedAt: Date.now(), fetcher, reader });
|
|
309360
|
+
return await reader;
|
|
309361
|
+
}
|
|
309362
|
+
function sortedSkills(skills) {
|
|
309363
|
+
return [...skills].sort((a, b) => a.name.localeCompare(b.name) || a.capability.localeCompare(b.capability));
|
|
309364
|
+
}
|
|
309032
309365
|
async function readMcpSkillIndex(config2, fetcher) {
|
|
309033
|
-
const
|
|
309034
|
-
|
|
309035
|
-
|
|
309036
|
-
|
|
309037
|
-
|
|
309038
|
-
});
|
|
309366
|
+
const key2 = configKey(config2);
|
|
309367
|
+
const held = syncedIndexes.get(key2);
|
|
309368
|
+
const trusted = held?.revision && Date.now() - held.syncedAt < SKILL_REVISION_TRUST_MS ? held.revision : undefined;
|
|
309369
|
+
const sync3 = { known: Object.fromEntries(held?.etags ?? []), ...trusted ? { revision: trusted } : {} };
|
|
309370
|
+
const reader = await sessionReader(config2, fetcher);
|
|
309371
|
+
const text4 = reader ? await reader.read(SKILL_INDEX_URI, { [SKILL_SYNC_META_KEY]: sync3 }) : null;
|
|
309039
309372
|
if (typeof text4 !== "string")
|
|
309040
309373
|
return null;
|
|
309041
|
-
const
|
|
309042
|
-
|
|
309374
|
+
const value3 = JSON.parse(text4);
|
|
309375
|
+
const synced = skillIndexSyncSchema.safeParse(value3);
|
|
309376
|
+
if (synced.success && synced.data.sync === "unchanged") {
|
|
309377
|
+
if (held && synced.data.revision === trusted)
|
|
309378
|
+
return held.index;
|
|
309379
|
+
syncedIndexes.delete(key2);
|
|
309380
|
+
return null;
|
|
309381
|
+
}
|
|
309382
|
+
const index2 = skillIndexSchema.parse(value3);
|
|
309383
|
+
const delivery = index2.delivery ? { delivery: index2.delivery } : {};
|
|
309384
|
+
if (synced.success && synced.data.sync === "changes") {
|
|
309385
|
+
const byUrl = new Map((held?.index.skills ?? []).map((skill) => [skill.url, skill]));
|
|
309386
|
+
const etags = new Map(held?.etags);
|
|
309387
|
+
for (const url2 of synced.data.removed) {
|
|
309388
|
+
byUrl.delete(url2);
|
|
309389
|
+
etags.delete(url2);
|
|
309390
|
+
}
|
|
309391
|
+
for (const { etag, ...entry } of synced.data.skills) {
|
|
309392
|
+
const skill = skillIndexSchema.shape.skills.element.parse(entry);
|
|
309393
|
+
byUrl.set(skill.url, skill);
|
|
309394
|
+
etags.set(skill.url, etag);
|
|
309395
|
+
}
|
|
309396
|
+
const merged = { skills: sortedSkills(byUrl.values()), ...delivery };
|
|
309397
|
+
syncedIndexes.set(key2, { index: merged, etags, revision: synced.data.revision, syncedAt: Date.now() });
|
|
309398
|
+
return merged;
|
|
309399
|
+
}
|
|
309400
|
+
syncedIndexes.delete(key2);
|
|
309401
|
+
return { skills: index2.skills, ...delivery };
|
|
309043
309402
|
}
|
|
309044
309403
|
async function readIndexCached(cloud, fetcher) {
|
|
309045
|
-
const cacheKey =
|
|
309404
|
+
const cacheKey = configKey(cloud);
|
|
309046
309405
|
const cached4 = catalogCache.get(cacheKey);
|
|
309047
309406
|
if (cached4 && cached4.expiresAt > Date.now())
|
|
309048
309407
|
return await cached4.value;
|
|
@@ -309086,16 +309445,64 @@ async function readOpenWorkConnectSkillIndex(config2, fetcher = externalFetch) {
|
|
|
309086
309445
|
return { skills: [] };
|
|
309087
309446
|
}
|
|
309088
309447
|
}
|
|
309089
|
-
async function
|
|
309448
|
+
async function readSkillBodies(reader, urls, use) {
|
|
309449
|
+
const bodies = new Map;
|
|
309450
|
+
for (let start = 0;start < urls.length && !reader.broken; start += SKILL_BATCH_MAX) {
|
|
309451
|
+
const chunk = urls.slice(start, start + SKILL_BATCH_MAX);
|
|
309452
|
+
const batched = chunk.length > 1 || use;
|
|
309453
|
+
const result3 = await reader.readContents(chunk[0], batched ? { [SKILL_SYNC_META_KEY]: { uris: chunk, ...use ? { use } : {} } } : undefined);
|
|
309454
|
+
if (!result3)
|
|
309455
|
+
continue;
|
|
309456
|
+
for (const url2 of chunk) {
|
|
309457
|
+
const body = result3.texts.get(url2);
|
|
309458
|
+
if (body !== undefined)
|
|
309459
|
+
bodies.set(url2, body);
|
|
309460
|
+
}
|
|
309461
|
+
const sync3 = result3.meta[SKILL_SYNC_META_KEY];
|
|
309462
|
+
if (batched && !(typeof sync3 === "object" && sync3 !== null && ("batch" in sync3) && sync3.batch === true)) {
|
|
309463
|
+
for (const url2 of chunk.slice(1)) {
|
|
309464
|
+
if (reader.broken)
|
|
309465
|
+
break;
|
|
309466
|
+
const body = await reader.read(url2);
|
|
309467
|
+
if (body !== null)
|
|
309468
|
+
bodies.set(url2, body);
|
|
309469
|
+
}
|
|
309470
|
+
}
|
|
309471
|
+
}
|
|
309472
|
+
return bodies;
|
|
309473
|
+
}
|
|
309474
|
+
async function readOpenWorkConnectSkillContents(config2, urls, options = {}, fetcher = externalFetch) {
|
|
309090
309475
|
try {
|
|
309091
309476
|
const working = await readWorkingCloudIndex(config2, fetcher);
|
|
309092
|
-
if (!working
|
|
309093
|
-
return
|
|
309094
|
-
|
|
309477
|
+
if (!working)
|
|
309478
|
+
return new Map;
|
|
309479
|
+
const listed = new Map(working.index.skills.map((skill) => [skill.url, skill]));
|
|
309480
|
+
const wanted = [...new Set(urls)].filter((url2) => {
|
|
309481
|
+
const digest2 = listed.get(url2)?.digest;
|
|
309482
|
+
return listed.has(url2) && (options.use || !digest2 || (skillBodyRetryAt.get(digest2) ?? 0) <= Date.now());
|
|
309483
|
+
});
|
|
309484
|
+
if (wanted.length === 0)
|
|
309485
|
+
return new Map;
|
|
309486
|
+
const reader = await sessionReader(working.cloud, fetcher);
|
|
309487
|
+
const bodies = reader ? await readSkillBodies(reader, wanted, options.use === true) : new Map;
|
|
309488
|
+
for (const url2 of wanted) {
|
|
309489
|
+
const digest2 = listed.get(url2)?.digest;
|
|
309490
|
+
if (!digest2)
|
|
309491
|
+
continue;
|
|
309492
|
+
const body = bodies.get(url2);
|
|
309493
|
+
if (body !== undefined && sha256Digest(body) === digest2)
|
|
309494
|
+
skillBodyRetryAt.delete(digest2);
|
|
309495
|
+
else
|
|
309496
|
+
holdSkillBodyRetry(digest2);
|
|
309497
|
+
}
|
|
309498
|
+
return bodies;
|
|
309095
309499
|
} catch {
|
|
309096
|
-
return
|
|
309500
|
+
return new Map;
|
|
309097
309501
|
}
|
|
309098
309502
|
}
|
|
309503
|
+
async function readOpenWorkConnectSkillContent(config2, url2, fetcher = externalFetch) {
|
|
309504
|
+
return (await readOpenWorkConnectSkillContents(config2, [url2], {}, fetcher)).get(url2) ?? null;
|
|
309505
|
+
}
|
|
309099
309506
|
function logInjectedMarketplaceSkills(skills) {
|
|
309100
309507
|
if (process.env.OPENWORK_DEV_MODE !== "1")
|
|
309101
309508
|
return;
|
|
@@ -309962,14 +310369,14 @@ async function callExperimentalExtensionAction(config2, env, input, connectSnaps
|
|
|
309962
310369
|
// src/extensions/drive-files.ts
|
|
309963
310370
|
import { createHash as createHash16, randomBytes as randomBytes6 } from "node:crypto";
|
|
309964
310371
|
import { constants as constants3, realpathSync } from "node:fs";
|
|
309965
|
-
import { lstat as lstat3, mkdir as mkdir13, open as open4, readFile as readFile24, realpath as realpath5, rename as rename7, rm as
|
|
310372
|
+
import { lstat as lstat3, mkdir as mkdir13, open as open4, readFile as readFile24, realpath as realpath5, rename as rename7, rm as rm12, stat as stat6, writeFile as writeFile17 } from "node:fs/promises";
|
|
309966
310373
|
import { basename as basename10, dirname as dirname15, extname as extname2, isAbsolute as isAbsolute3, join as join25, relative as relative5, resolve as resolve16 } from "node:path";
|
|
309967
310374
|
init_errors5();
|
|
309968
310375
|
init_runtime_db();
|
|
309969
310376
|
|
|
309970
310377
|
// src/workspace-file-identity.ts
|
|
309971
310378
|
import { constants as constants2 } from "node:fs";
|
|
309972
|
-
import { lstat as lstat2, open as open3, realpath as realpath4, rm as
|
|
310379
|
+
import { lstat as lstat2, open as open3, realpath as realpath4, rm as rm11 } from "node:fs/promises";
|
|
309973
310380
|
import { dirname as dirname14, isAbsolute as isAbsolute2, relative as relative4 } from "node:path";
|
|
309974
310381
|
var NO_FOLLOW = constants2.O_NOFOLLOW ?? 0;
|
|
309975
310382
|
|
|
@@ -310034,7 +310441,7 @@ async function openWorkspaceFileForWriting(realRoot, path3, expected, label) {
|
|
|
310034
310441
|
if (expected === null) {
|
|
310035
310442
|
const placed = await lstat2(path3).catch(() => null);
|
|
310036
310443
|
if (placed && sameFile(placed, info))
|
|
310037
|
-
await
|
|
310444
|
+
await rm11(path3, { force: true }).catch(() => {
|
|
310038
310445
|
return;
|
|
310039
310446
|
});
|
|
310040
310447
|
}
|
|
@@ -310163,11 +310570,11 @@ async function privateDriveFile(config2) {
|
|
|
310163
310570
|
const path3 = join25(folder, `.drive-transfer-${randomBytes6(16).toString("hex")}`);
|
|
310164
310571
|
const handle = await open4(path3, "wx+", 384);
|
|
310165
310572
|
try {
|
|
310166
|
-
await
|
|
310573
|
+
await rm12(path3);
|
|
310167
310574
|
return handle;
|
|
310168
310575
|
} catch (error48) {
|
|
310169
310576
|
await handle.close();
|
|
310170
|
-
await
|
|
310577
|
+
await rm12(path3, { force: true });
|
|
310171
310578
|
throw error48;
|
|
310172
310579
|
}
|
|
310173
310580
|
}
|
|
@@ -310986,7 +311393,15 @@ function registerCoreRoutes(options) {
|
|
|
310986
311393
|
});
|
|
310987
311394
|
addRoute(routes, "POST", "/experimental/connect/skills/read", "client", async (ctx) => {
|
|
310988
311395
|
const body = await readJsonBody(ctx.request);
|
|
310989
|
-
|
|
311396
|
+
const validUrl = (url2) => typeof url2 === "string" && url2.startsWith("skill://") && url2.length <= 2048;
|
|
311397
|
+
if (Array.isArray(body.urls)) {
|
|
311398
|
+
if (body.urls.length === 0 || body.urls.length > 150 || !body.urls.every(validUrl)) {
|
|
311399
|
+
return jsonResponse2({ ok: false, reason: "invalid_url" }, 400);
|
|
311400
|
+
}
|
|
311401
|
+
const contents = await readOpenWorkConnectSkillContents(config2, body.urls, { use: body.use === true });
|
|
311402
|
+
return jsonResponse2({ ok: true, contents: Object.fromEntries(contents) });
|
|
311403
|
+
}
|
|
311404
|
+
if (!validUrl(body.url)) {
|
|
310990
311405
|
return jsonResponse2({ ok: false, reason: "invalid_url" }, 400);
|
|
310991
311406
|
}
|
|
310992
311407
|
const content2 = await readOpenWorkConnectSkillContent(config2, body.url);
|
|
@@ -311185,7 +311600,7 @@ function registerCoreRoutes(options) {
|
|
|
311185
311600
|
|
|
311186
311601
|
// src/routes/files.ts
|
|
311187
311602
|
import { createReadStream } from "node:fs";
|
|
311188
|
-
import { readFile as readFile25, readdir as readdir8, rename as rename8, rm as
|
|
311603
|
+
import { readFile as readFile25, readdir as readdir8, rename as rename8, rm as rm13, stat as stat7, writeFile as writeFile18 } from "node:fs/promises";
|
|
311189
311604
|
import { basename as basename11, dirname as dirname17, isAbsolute as isAbsolute4, join as join26, relative as relative6, resolve as resolve17, sep as sep4 } from "node:path";
|
|
311190
311605
|
import { Readable as Readable2 } from "node:stream";
|
|
311191
311606
|
init_errors5();
|
|
@@ -312058,7 +312473,7 @@ function registerFileRoutes(options) {
|
|
|
312058
312473
|
items2.push({ ok: false, type, path: path3, code: "file_not_found", message: "Path not found" });
|
|
312059
312474
|
continue;
|
|
312060
312475
|
}
|
|
312061
|
-
await
|
|
312476
|
+
await rm13(absPath, { recursive: op.recursive === true, force: false });
|
|
312062
312477
|
recordWorkspaceFileEvent(workspace.id, { type: "delete", path: path3 });
|
|
312063
312478
|
items2.push({ ok: true, type, path: path3 });
|
|
312064
312479
|
continue;
|
|
@@ -312701,7 +313116,7 @@ function registerUiControlRoutes(options) {
|
|
|
312701
313116
|
}
|
|
312702
313117
|
|
|
312703
313118
|
// src/routes/workspaces.ts
|
|
312704
|
-
import { readFile as readFile26, rename as rename9, rm as
|
|
313119
|
+
import { readFile as readFile26, rename as rename9, rm as rm14, writeFile as writeFile19 } from "node:fs/promises";
|
|
312705
313120
|
import { basename as basename12, dirname as dirname18, resolve as resolve18 } from "node:path";
|
|
312706
313121
|
init_errors5();
|
|
312707
313122
|
init_utils();
|
|
@@ -312759,7 +313174,7 @@ async function persistServerWorkspaceState(config2) {
|
|
|
312759
313174
|
return true;
|
|
312760
313175
|
} finally {
|
|
312761
313176
|
try {
|
|
312762
|
-
await
|
|
313177
|
+
await rm14(tmpPath);
|
|
312763
313178
|
} catch {}
|
|
312764
313179
|
}
|
|
312765
313180
|
}
|
|
@@ -314119,7 +314534,7 @@ init_enterprise_den_origin();
|
|
|
314119
314534
|
// src/agent-context-transport-probe.ts
|
|
314120
314535
|
init_diagnostic_sanitizer();
|
|
314121
314536
|
import { readFile as readFile27 } from "node:fs/promises";
|
|
314122
|
-
import { isIP as
|
|
314537
|
+
import { isIP as isIP4 } from "node:net";
|
|
314123
314538
|
import tls from "node:tls";
|
|
314124
314539
|
var DEFAULT_TIMEOUT_MS2 = 6000;
|
|
314125
314540
|
var MAX_ENDPOINT_LENGTH2 = 2 * 1024;
|
|
@@ -314237,7 +314652,7 @@ function tlsOptions(url2, rejectUnauthorized, version6) {
|
|
|
314237
314652
|
options.minVersion = version6;
|
|
314238
314653
|
options.maxVersion = version6;
|
|
314239
314654
|
}
|
|
314240
|
-
if (
|
|
314655
|
+
if (isIP4(host) === 0)
|
|
314241
314656
|
options.servername = host;
|
|
314242
314657
|
return options;
|
|
314243
314658
|
}
|
|
@@ -316330,6 +316745,52 @@ function startThreadApprovalReplayer(options) {
|
|
|
316330
316745
|
// src/cloud-provider-sync.ts
|
|
316331
316746
|
import { createHash as createHash18 } from "node:crypto";
|
|
316332
316747
|
import { readFile as readFile28 } from "node:fs/promises";
|
|
316748
|
+
|
|
316749
|
+
// ../../packages/types/src/den/prompts.ts
|
|
316750
|
+
init_zod();
|
|
316751
|
+
var ORG_PROMPT_MAX_LENGTH = 20000;
|
|
316752
|
+
var orgPromptAssignmentSchema = exports_external.object({
|
|
316753
|
+
everyone: exports_external.boolean(),
|
|
316754
|
+
teamIds: exports_external.array(exports_external.string()),
|
|
316755
|
+
memberIds: exports_external.array(exports_external.string())
|
|
316756
|
+
}).meta({ ref: "OrgPromptAssignment" });
|
|
316757
|
+
var orgPromptSchema = exports_external.object({
|
|
316758
|
+
id: exports_external.string(),
|
|
316759
|
+
name: exports_external.string(),
|
|
316760
|
+
content: exports_external.string(),
|
|
316761
|
+
assignment: orgPromptAssignmentSchema,
|
|
316762
|
+
updatedAt: exports_external.string().datetime()
|
|
316763
|
+
}).meta({ ref: "OrgPrompt" });
|
|
316764
|
+
var orgPromptTeamSchema = exports_external.object({
|
|
316765
|
+
teamId: exports_external.string(),
|
|
316766
|
+
name: exports_external.string(),
|
|
316767
|
+
prompt: orgPromptSchema.nullable()
|
|
316768
|
+
}).meta({ ref: "OrgPromptTeam" });
|
|
316769
|
+
var orgPromptSettingsSchema = exports_external.object({
|
|
316770
|
+
everyone: orgPromptSchema.nullable(),
|
|
316771
|
+
teams: exports_external.array(orgPromptTeamSchema),
|
|
316772
|
+
canEdit: exports_external.boolean()
|
|
316773
|
+
}).meta({ ref: "OrgPromptSettings" });
|
|
316774
|
+
var orgPromptWriteSchema = exports_external.object({
|
|
316775
|
+
content: exports_external.string().max(ORG_PROMPT_MAX_LENGTH).refine((value3) => value3.trim().length > 0, { message: "Write a prompt before saving." })
|
|
316776
|
+
}).strict().meta({ ref: "OrgPromptWrite" });
|
|
316777
|
+
var ORG_PROMPT_SOURCES = ["organization", "team", "member"];
|
|
316778
|
+
var memberPromptSchema = exports_external.object({
|
|
316779
|
+
id: exports_external.string(),
|
|
316780
|
+
source: exports_external.enum(ORG_PROMPT_SOURCES),
|
|
316781
|
+
teamName: exports_external.string().optional(),
|
|
316782
|
+
content: exports_external.string()
|
|
316783
|
+
}).meta({ ref: "MemberPrompt" });
|
|
316784
|
+
var memberPromptsSchema = exports_external.object({
|
|
316785
|
+
prompts: exports_external.array(memberPromptSchema)
|
|
316786
|
+
}).meta({ ref: "MemberPrompts" });
|
|
316787
|
+
function composeMemberPromptText(prompts) {
|
|
316788
|
+
return prompts.map((prompt) => prompt.content.trim()).filter(Boolean).join(`
|
|
316789
|
+
|
|
316790
|
+
`);
|
|
316791
|
+
}
|
|
316792
|
+
|
|
316793
|
+
// src/cloud-provider-sync.ts
|
|
316333
316794
|
init_errors5();
|
|
316334
316795
|
init_runtime_opencode_config_store();
|
|
316335
316796
|
init_workspace_files();
|
|
@@ -316633,6 +317094,24 @@ async function fetchProviders(fetchImpl2, session2, signal, liveProviderSync = f
|
|
|
316633
317094
|
]);
|
|
316634
317095
|
return { llmProviders, inferenceProviders };
|
|
316635
317096
|
}
|
|
317097
|
+
async function fetchOrganizationPrompts(fetchImpl2, session2, signal, logger2) {
|
|
317098
|
+
try {
|
|
317099
|
+
const payload = await requestJson(fetchImpl2, session2, "/v1/me/prompts", signal, { allowUnavailableResource: true });
|
|
317100
|
+
if (payload === undefined)
|
|
317101
|
+
return "";
|
|
317102
|
+
const parsed = memberPromptsSchema.safeParse(payload);
|
|
317103
|
+
if (!parsed.success)
|
|
317104
|
+
throw new Error("den_prompts_invalid_response");
|
|
317105
|
+
return composeMemberPromptText(parsed.data.prompts);
|
|
317106
|
+
} catch (error48) {
|
|
317107
|
+
if (signal.aborted)
|
|
317108
|
+
throw error48;
|
|
317109
|
+
logger2?.warn("organization prompts could not be read; keeping the last known prompts", {
|
|
317110
|
+
message: error48 instanceof Error ? error48.message : "den_prompts_failed"
|
|
317111
|
+
});
|
|
317112
|
+
return null;
|
|
317113
|
+
}
|
|
317114
|
+
}
|
|
316636
317115
|
function stableValue(value3) {
|
|
316637
317116
|
if (Array.isArray(value3))
|
|
316638
317117
|
return value3.map(stableValue);
|
|
@@ -317195,9 +317674,10 @@ class CloudProviderSync {
|
|
|
317195
317674
|
const liveProviderSync = await this.liveProviderSync?.() ?? false;
|
|
317196
317675
|
if (request3.generation !== this.contextGeneration)
|
|
317197
317676
|
return { status: "no_session" };
|
|
317198
|
-
const [{ llmProviders, inferenceProviders }, storedEnv] = await Promise.all([
|
|
317677
|
+
const [{ llmProviders, inferenceProviders }, storedEnv, organizationPrompts] = await Promise.all([
|
|
317199
317678
|
fetchProviders(this.fetchImpl, session2, this.providerFetchController.signal, liveProviderSync),
|
|
317200
|
-
this.env.list()
|
|
317679
|
+
this.env.list(),
|
|
317680
|
+
fetchOrganizationPrompts(this.fetchImpl, session2, this.providerFetchController.signal, this.logger)
|
|
317201
317681
|
]);
|
|
317202
317682
|
if (request3.generation !== this.contextGeneration)
|
|
317203
317683
|
return { status: "no_session" };
|
|
@@ -317207,7 +317687,7 @@ class CloudProviderSync {
|
|
|
317207
317687
|
const localEnvNames = storedEnv.filter((entry) => entry.value.trim().length > 0 && this.ownedEnvKeys.get(entry.key) !== hashString2(entry.value)).map((entry) => entry.key);
|
|
317208
317688
|
const prepared = prepareMaterialization([...llmProviders, ...inferenceProviders ?? []], localEnvNames);
|
|
317209
317689
|
this.materializationContextKey = request3.contextKey;
|
|
317210
|
-
const { changed, detail, reloadError } = await this.apply(prepared, liveProviderSync);
|
|
317690
|
+
const { changed, detail, reloadError } = await this.apply(prepared, liveProviderSync, organizationPrompts);
|
|
317211
317691
|
if (request3.generation !== this.contextGeneration)
|
|
317212
317692
|
return { status: "no_session" };
|
|
317213
317693
|
this.updateProviderStatus(prepared);
|
|
@@ -317231,7 +317711,7 @@ class CloudProviderSync {
|
|
|
317231
317711
|
return { status: "failed", message };
|
|
317232
317712
|
}
|
|
317233
317713
|
}
|
|
317234
|
-
async apply(prepared, liveProviderSync = false) {
|
|
317714
|
+
async apply(prepared, liveProviderSync = false, organizationPrompts = null) {
|
|
317235
317715
|
const contextHash = this.materializationContextKey === null ? null : hashString2(this.materializationContextKey);
|
|
317236
317716
|
const desiredProviders = desiredProviderMap(prepared);
|
|
317237
317717
|
const globalRuntime = await readGlobalRuntimeOpencodeConfig(this.config);
|
|
@@ -317300,6 +317780,7 @@ class CloudProviderSync {
|
|
|
317300
317780
|
await this.env.delete(key2);
|
|
317301
317781
|
this.ownedEnvKeys.delete(key2);
|
|
317302
317782
|
}
|
|
317783
|
+
const promptChanged = organizationPrompts === null ? false : (await writeManagedPrompt(this.config, organizationPrompts)).changed;
|
|
317303
317784
|
const workspaceCleanup = await this.cleanupWorkspaceTakeovers();
|
|
317304
317785
|
const engineAvailable = this.engineAvailable();
|
|
317305
317786
|
const runtimeFileChanged = engineAvailable ? (await writeOpenworkRuntimeConfigFile(this.config)).changed : false;
|
|
@@ -317311,7 +317792,7 @@ class CloudProviderSync {
|
|
|
317311
317792
|
retiredProviderIds
|
|
317312
317793
|
});
|
|
317313
317794
|
const authChanged = authResult.rotated.length > 0 || authResult.removed.length > 0;
|
|
317314
|
-
this.reloadPending = this.reloadPending || templateBindingsChanged || providerStateChanged || workspaceCleanup.runtimeChanged || runtimeFileChanged || authChanged;
|
|
317795
|
+
this.reloadPending = this.reloadPending || templateBindingsChanged || providerStateChanged || promptChanged || workspaceCleanup.runtimeChanged || runtimeFileChanged || authChanged;
|
|
317315
317796
|
let reloadError;
|
|
317316
317797
|
let reloadDeferred = false;
|
|
317317
317798
|
if (engineAvailable && this.reloadPending) {
|
|
@@ -317341,6 +317822,7 @@ class CloudProviderSync {
|
|
|
317341
317822
|
await this.persistOwnership();
|
|
317342
317823
|
const detail = {
|
|
317343
317824
|
fingerprintChanged: this.fingerprint !== prepared.fingerprint,
|
|
317825
|
+
promptChanged,
|
|
317344
317826
|
providerStateChanged,
|
|
317345
317827
|
envUpserts: envUpserts.length,
|
|
317346
317828
|
envDeletes: envDeletes.length,
|
|
@@ -317349,7 +317831,7 @@ class CloudProviderSync {
|
|
|
317349
317831
|
fileChanged: runtimeFileChanged,
|
|
317350
317832
|
reloadDeferred
|
|
317351
317833
|
};
|
|
317352
|
-
const changed = detail.fingerprintChanged || templateBindingsChanged || providerStateChanged || envUpserts.length > 0 || envDeletes.length > 0 || workspaceCleanup.changed || runtimeFileChanged;
|
|
317834
|
+
const changed = detail.fingerprintChanged || promptChanged || templateBindingsChanged || providerStateChanged || envUpserts.length > 0 || envDeletes.length > 0 || workspaceCleanup.changed || runtimeFileChanged;
|
|
317353
317835
|
return { changed, detail, reloadError };
|
|
317354
317836
|
}
|
|
317355
317837
|
async cleanupWorkspaceTakeovers() {
|
|
@@ -317417,6 +317899,8 @@ class CloudProviderSync {
|
|
|
317417
317899
|
}));
|
|
317418
317900
|
providerChanged = result3.changed;
|
|
317419
317901
|
}
|
|
317902
|
+
const promptCleared = (await writeManagedPrompt(this.config, "")).changed;
|
|
317903
|
+
providerChanged = providerChanged || promptCleared;
|
|
317420
317904
|
const storedEnv = new Map((await this.env.list()).map((entry) => [entry.key, entry.value]));
|
|
317421
317905
|
for (const [key2, hash4] of this.ownedEnvKeys) {
|
|
317422
317906
|
const value3 = storedEnv.get(key2);
|
|
@@ -317506,7 +317990,7 @@ class CloudProviderSync {
|
|
|
317506
317990
|
|
|
317507
317991
|
// src/opencode-v2-history-lock.ts
|
|
317508
317992
|
import { randomBytes as randomBytes8 } from "node:crypto";
|
|
317509
|
-
import { access, mkdir as mkdir15, readFile as readFile29, readdir as readdir9, rm as
|
|
317993
|
+
import { access, mkdir as mkdir15, readFile as readFile29, readdir as readdir9, rm as rm15, writeFile as writeFile21 } from "node:fs/promises";
|
|
317510
317994
|
import { dirname as dirname19, join as join28 } from "node:path";
|
|
317511
317995
|
|
|
317512
317996
|
// src/opencode-v2-history-store.ts
|
|
@@ -317851,7 +318335,7 @@ async function acquireHistoryCopyLock(database2) {
|
|
|
317851
318335
|
}
|
|
317852
318336
|
if (alive(previous.pid) || alive(previous.child))
|
|
317853
318337
|
throw new Error("Another OpenCode v2 engine is using this history. Close it before retrying migration.");
|
|
317854
|
-
await
|
|
318338
|
+
await rm15(leasePath);
|
|
317855
318339
|
}
|
|
317856
318340
|
} catch (error48) {
|
|
317857
318341
|
mutex.close();
|
|
@@ -317859,7 +318343,7 @@ async function acquireHistoryCopyLock(database2) {
|
|
|
317859
318343
|
}
|
|
317860
318344
|
return {
|
|
317861
318345
|
async complete() {
|
|
317862
|
-
await
|
|
318346
|
+
await rm15(join28(root, PENDING), { force: true });
|
|
317863
318347
|
},
|
|
317864
318348
|
async release() {
|
|
317865
318349
|
mutex.close();
|
|
@@ -317885,7 +318369,7 @@ async function acquireEngineHistoryLease(root) {
|
|
|
317885
318369
|
await writeFile21(path3, JSON.stringify({ pid: process.pid, child: pid }), { mode: 384 });
|
|
317886
318370
|
},
|
|
317887
318371
|
async release() {
|
|
317888
|
-
await
|
|
318372
|
+
await rm15(path3, { force: true });
|
|
317889
318373
|
}
|
|
317890
318374
|
};
|
|
317891
318375
|
}
|
|
@@ -320686,16 +321170,16 @@ async function searchOpenWorkSessions(rawArgs) {
|
|
|
320686
321170
|
}
|
|
320687
321171
|
const sessions = [];
|
|
320688
321172
|
const workspaceErrors = [];
|
|
320689
|
-
const
|
|
321173
|
+
const readers2 = engineReaders();
|
|
320690
321174
|
await Promise.all(workspaces.map(async (workspace) => {
|
|
320691
|
-
const listed = await Promise.all(
|
|
321175
|
+
const listed = await Promise.all(readers2.map((reader, index2) => listWorkspaceSessions(reader, workspace, SESSION_SEARCH_TITLE_LIST_LIMIT).catch((error48) => {
|
|
320692
321176
|
if (index2 === 0)
|
|
320693
321177
|
workspaceErrors.push({ workspaceId: workspace.id, workspace: workspaceLabel(workspace), error: unknownErrorMessage(error48) });
|
|
320694
321178
|
return [];
|
|
320695
321179
|
})));
|
|
320696
321180
|
const seen = new Set;
|
|
320697
321181
|
listed.forEach((items3, index2) => {
|
|
320698
|
-
const reader =
|
|
321182
|
+
const reader = readers2[index2];
|
|
320699
321183
|
if (!reader)
|
|
320700
321184
|
return;
|
|
320701
321185
|
for (const session3 of items3) {
|
|
@@ -320782,8 +321266,8 @@ function readableMessages(messages) {
|
|
|
320782
321266
|
async function readWorkspaceModels(reader, workspace) {
|
|
320783
321267
|
return openworkCatalogModels(openworkEngineProviderCatalogSchema.parse(await reader.get(`/workspace/${encodeURIComponent(workspace.id)}/opencode/provider`)));
|
|
320784
321268
|
}
|
|
320785
|
-
async function readSessionOnEitherEngine(workspace, sessionId,
|
|
320786
|
-
for (const reader of
|
|
321269
|
+
async function readSessionOnEitherEngine(workspace, sessionId, readers2) {
|
|
321270
|
+
for (const reader of readers2) {
|
|
320787
321271
|
try {
|
|
320788
321272
|
return { session: await readWorkspaceSession(workspace, sessionId, reader), reader };
|
|
320789
321273
|
} catch {}
|
|
@@ -320802,10 +321286,10 @@ async function readOpenWorkSession(rawArgs) {
|
|
|
320802
321286
|
if (!workspaces.length) {
|
|
320803
321287
|
return { ok: false, error: args2.workspaceId ? `No workspace matched ${args2.workspaceId}` : "No OpenWork workspaces are available" };
|
|
320804
321288
|
}
|
|
320805
|
-
const
|
|
321289
|
+
const readers2 = engineReaders();
|
|
320806
321290
|
for (const workspace of workspaces) {
|
|
320807
321291
|
try {
|
|
320808
|
-
const located = await readSessionOnEitherEngine(workspace, args2.sessionId,
|
|
321292
|
+
const located = await readSessionOnEitherEngine(workspace, args2.sessionId, readers2);
|
|
320809
321293
|
if (!located) {
|
|
320810
321294
|
if (args2.workspaceId)
|
|
320811
321295
|
break;
|
|
@@ -321526,7 +322010,11 @@ async function createV2ContextBridge(hostRequest) {
|
|
|
321526
322010
|
return Response.json(await read2("/experimental/connect/skills"));
|
|
321527
322011
|
}
|
|
321528
322012
|
if (call.name === "openwork_skill_read") {
|
|
321529
|
-
const
|
|
322013
|
+
const url2 = exports_external.string().startsWith("skill://").max(2048);
|
|
322014
|
+
const input = exports_external.union([
|
|
322015
|
+
exports_external.object({ url: url2 }).strict(),
|
|
322016
|
+
exports_external.object({ urls: exports_external.array(url2).min(1).max(150), use: exports_external.boolean().optional() }).strict()
|
|
322017
|
+
]).parse(call.input);
|
|
321530
322018
|
return Response.json(await read2("/experimental/connect/skills/read", { method: "POST", body: JSON.stringify(input) }));
|
|
321531
322019
|
}
|
|
321532
322020
|
const transport = {
|
|
@@ -321750,6 +322238,122 @@ var gatewayUsageResetPageSchema = exports_external.object({
|
|
|
321750
322238
|
nextCursor: exports_external.string().nullable()
|
|
321751
322239
|
});
|
|
321752
322240
|
|
|
322241
|
+
// ../../packages/types/src/den/inference.ts
|
|
322242
|
+
init_zod();
|
|
322243
|
+
var INFERENCE_WINDOW_DURATIONS_MS = {
|
|
322244
|
+
five_hour: 5 * 60 * 60 * 1000,
|
|
322245
|
+
weekly: 7 * 24 * 60 * 60 * 1000,
|
|
322246
|
+
monthly: 30 * 24 * 60 * 60 * 1000
|
|
322247
|
+
};
|
|
322248
|
+
var INFERENCE_ACCESS_REASONS = [
|
|
322249
|
+
"admin_disabled",
|
|
322250
|
+
"not_eligible",
|
|
322251
|
+
"free_disabled",
|
|
322252
|
+
"accounting_unavailable",
|
|
322253
|
+
"free_allowance_exhausted",
|
|
322254
|
+
"upstream_unavailable"
|
|
322255
|
+
];
|
|
322256
|
+
var freeInferenceProviderSummarySchema = exports_external.object({
|
|
322257
|
+
state: exports_external.enum(["available", "disabled", "unavailable"]),
|
|
322258
|
+
reason: exports_external.union([exports_external.enum(INFERENCE_ACCESS_REASONS), exports_external.null()]),
|
|
322259
|
+
defaultPinned: exports_external.boolean(),
|
|
322260
|
+
modelGroup: exports_external.object({ id: exports_external.literal("free"), name: exports_external.literal("Free") }),
|
|
322261
|
+
catalog: exports_external.array(exports_external.object({ modelID: exports_external.string(), displayName: exports_external.string(), providerName: exports_external.string(), summary: exports_external.string(), recommended: exports_external.boolean(), rank: exports_external.number(), capabilities: exports_external.array(exports_external.string()) })),
|
|
322262
|
+
allowance: exports_external.object({
|
|
322263
|
+
usageScope: exports_external.literal("organization"),
|
|
322264
|
+
allowanceScope: exports_external.literal("person"),
|
|
322265
|
+
windowStartAt: exports_external.string().datetime(),
|
|
322266
|
+
resetsAt: exports_external.string().datetime(),
|
|
322267
|
+
weeklyLimitUsd: exports_external.number().finite().nonnegative(),
|
|
322268
|
+
joinedMembers: exports_external.number().int().nonnegative(),
|
|
322269
|
+
eligibleMembers: exports_external.number().int().nonnegative(),
|
|
322270
|
+
exhaustedMembers: exports_external.number().int().nonnegative().nullable().describe("Current eligible members whose recorded weekly usage has reached their person-wide limit; not a probe of Gateway request headroom. Null when accounting cannot be verified."),
|
|
322271
|
+
usedUsd: exports_external.number().finite().nonnegative().nullable(),
|
|
322272
|
+
requestCount: exports_external.number().int().nonnegative().nullable()
|
|
322273
|
+
})
|
|
322274
|
+
});
|
|
322275
|
+
var inferenceApiKeyMapSecretSchema = exports_external.record(exports_external.string(), exports_external.string()).refine((value3) => Object.keys(value3).length > 0, {
|
|
322276
|
+
message: "api_key_map must contain at least one entry"
|
|
322277
|
+
});
|
|
322278
|
+
var inferenceAwsKeysSecretSchema = exports_external.object({
|
|
322279
|
+
accessKeyId: exports_external.string().min(1),
|
|
322280
|
+
secretAccessKey: exports_external.string().min(1),
|
|
322281
|
+
sessionToken: exports_external.string().min(1).optional(),
|
|
322282
|
+
region: exports_external.string().min(1).optional()
|
|
322283
|
+
});
|
|
322284
|
+
var inferenceGcpServiceAccountSecretSchema = exports_external.looseObject({
|
|
322285
|
+
client_email: exports_external.string().min(1),
|
|
322286
|
+
private_key: exports_external.string().min(1),
|
|
322287
|
+
token_uri: exports_external.string().min(1)
|
|
322288
|
+
});
|
|
322289
|
+
var authorizationRevisionSchema = exports_external.string().regex(/^[A-Za-z0-9_-]{43}$/);
|
|
322290
|
+
var microsoftTenantIdSchema = exports_external.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i);
|
|
322291
|
+
var inferenceOauthTokenSecretSchema = exports_external.object({
|
|
322292
|
+
accessToken: exports_external.string().min(1),
|
|
322293
|
+
refreshToken: exports_external.string().min(1).optional(),
|
|
322294
|
+
tokenType: exports_external.string().min(1).optional(),
|
|
322295
|
+
googleIdentity: exports_external.object({
|
|
322296
|
+
subject: exports_external.string().min(1).max(255),
|
|
322297
|
+
email: exports_external.email(),
|
|
322298
|
+
emailVerified: exports_external.literal(true),
|
|
322299
|
+
clientId: exports_external.string().min(1),
|
|
322300
|
+
authorizationRevision: authorizationRevisionSchema.optional()
|
|
322301
|
+
}).optional(),
|
|
322302
|
+
microsoftIdentity: exports_external.object({
|
|
322303
|
+
tenantId: microsoftTenantIdSchema,
|
|
322304
|
+
objectId: exports_external.string().min(1).max(255),
|
|
322305
|
+
userName: exports_external.string().min(1).max(320).nullable(),
|
|
322306
|
+
clientId: exports_external.string().min(1),
|
|
322307
|
+
authorizationRevision: authorizationRevisionSchema
|
|
322308
|
+
}).optional()
|
|
322309
|
+
});
|
|
322310
|
+
var awsAccountIdSchema = exports_external.string().regex(/^\d{12}$/);
|
|
322311
|
+
var awsPermissionSetNameSchema = exports_external.string().regex(/^[\w+=,.@-]{1,32}$/);
|
|
322312
|
+
var awsSsoStartUrlSchema = exports_external.string().max(2048).refine((value3) => {
|
|
322313
|
+
try {
|
|
322314
|
+
const url2 = new URL(value3);
|
|
322315
|
+
return url2.protocol === "https:" && !url2.username && !url2.password && !url2.search && !url2.hash && !url2.port && /^[a-z0-9-]+(?:\.[a-z0-9-]+)*\.(?:awsapps\.com|app\.aws)$/i.test(url2.hostname);
|
|
322316
|
+
} catch {
|
|
322317
|
+
return false;
|
|
322318
|
+
}
|
|
322319
|
+
}, { message: "Use the AWS access portal URL, for example https://d-xxxxxxxxxx.awsapps.com/start." });
|
|
322320
|
+
var awsRegionSchema = exports_external.string().max(32).regex(/^[a-z]{2}(?:-[a-z]+)+-\d{1,2}$/);
|
|
322321
|
+
var gatewayAwsSsoSettingsSchema = exports_external.object({
|
|
322322
|
+
startUrl: awsSsoStartUrlSchema,
|
|
322323
|
+
region: awsRegionSchema,
|
|
322324
|
+
accountId: awsAccountIdSchema,
|
|
322325
|
+
roleName: awsPermissionSetNameSchema
|
|
322326
|
+
}).strict();
|
|
322327
|
+
var inferenceAwsSsoSecretSchema = exports_external.object({
|
|
322328
|
+
accessToken: exports_external.string().min(1).max(16384),
|
|
322329
|
+
refreshToken: exports_external.string().min(1).max(16384),
|
|
322330
|
+
clientId: exports_external.string().min(1).max(4096),
|
|
322331
|
+
clientSecret: exports_external.string().min(1).max(16384),
|
|
322332
|
+
clientSecretExpiresAt: exports_external.number().int().positive(),
|
|
322333
|
+
sso: gatewayAwsSsoSettingsSchema,
|
|
322334
|
+
identity: exports_external.object({
|
|
322335
|
+
arn: exports_external.string().min(1).max(2048),
|
|
322336
|
+
userName: exports_external.string().min(1).max(320).nullable(),
|
|
322337
|
+
authorizationRevision: authorizationRevisionSchema
|
|
322338
|
+
})
|
|
322339
|
+
});
|
|
322340
|
+
var GATEWAY_MEMBER_SIGN_IN_METHODS = ["google", "aws_sso", "microsoft"];
|
|
322341
|
+
var gatewayMemberConnectionsResponseSchema = exports_external.object({
|
|
322342
|
+
connections: exports_external.array(exports_external.object({
|
|
322343
|
+
providerId: exports_external.string(),
|
|
322344
|
+
signInMethod: exports_external.enum(GATEWAY_MEMBER_SIGN_IN_METHODS).default("google"),
|
|
322345
|
+
credentialSetId: exports_external.string(),
|
|
322346
|
+
providerName: exports_external.string(),
|
|
322347
|
+
name: exports_external.string(),
|
|
322348
|
+
ready: exports_external.boolean(),
|
|
322349
|
+
hasAccess: exports_external.boolean(),
|
|
322350
|
+
hasCredential: exports_external.boolean(),
|
|
322351
|
+
configurationRequired: exports_external.boolean().default(false),
|
|
322352
|
+
authorizationRevision: exports_external.string().nullable(),
|
|
322353
|
+
accountEmail: exports_external.string().nullable()
|
|
322354
|
+
}))
|
|
322355
|
+
});
|
|
322356
|
+
|
|
321753
322357
|
// src/gateway-quota.ts
|
|
321754
322358
|
function record6(value3) {
|
|
321755
322359
|
return typeof value3 === "object" && value3 !== null && !Array.isArray(value3);
|
|
@@ -322198,7 +322802,7 @@ init_runtime_db();
|
|
|
322198
322802
|
import { spawn as spawn4 } from "node:child_process";
|
|
322199
322803
|
import { createHash as createHash22 } from "node:crypto";
|
|
322200
322804
|
import { createReadStream as createReadStream2 } from "node:fs";
|
|
322201
|
-
import { access as access3, chmod as chmod5, mkdir as mkdir18, readdir as readdir10, readFile as readFile32, rename as rename12, rm as
|
|
322805
|
+
import { access as access3, chmod as chmod5, mkdir as mkdir18, readdir as readdir10, readFile as readFile32, rename as rename12, rm as rm17, stat as stat8, statfs, writeFile as writeFile24 } from "node:fs/promises";
|
|
322202
322806
|
import { homedir as homedir7 } from "node:os";
|
|
322203
322807
|
import { dirname as dirname20, isAbsolute as isAbsolute6, join as join32, resolve as resolve19 } from "node:path";
|
|
322204
322808
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
@@ -322264,7 +322868,7 @@ module.exports = Object.freeze({
|
|
|
322264
322868
|
// src/opencode-v2-binary.ts
|
|
322265
322869
|
import { execFile as execFile3 } from "node:child_process";
|
|
322266
322870
|
import { createHash as createHash21 } from "node:crypto";
|
|
322267
|
-
import { access as access2, chmod as chmod3, mkdir as mkdir16, mkdtemp, rename as rename10, rm as
|
|
322871
|
+
import { access as access2, chmod as chmod3, mkdir as mkdir16, mkdtemp, rename as rename10, rm as rm16, writeFile as writeFile22 } from "node:fs/promises";
|
|
322268
322872
|
import { join as join30 } from "node:path";
|
|
322269
322873
|
import { promisify as promisify2 } from "node:util";
|
|
322270
322874
|
var exec = promisify2(execFile3);
|
|
@@ -322307,7 +322911,7 @@ async function installOpencodeV2Binary(cacheRoot, version6) {
|
|
|
322307
322911
|
await rename10(extracted, binary);
|
|
322308
322912
|
return binary;
|
|
322309
322913
|
} finally {
|
|
322310
|
-
await
|
|
322914
|
+
await rm16(staging, { recursive: true, force: true });
|
|
322311
322915
|
}
|
|
322312
322916
|
}
|
|
322313
322917
|
|
|
@@ -322836,7 +323440,7 @@ async function backupV2Database(options) {
|
|
|
322836
323440
|
await snapshotV1Database(options.database, destination);
|
|
322837
323441
|
const backups = (await readdir10(options.directory)).filter((name) => /^opencode-v2-.+\.db$/.test(name)).sort().reverse();
|
|
322838
323442
|
for (const old of backups.slice(KEPT_V2_BACKUPS)) {
|
|
322839
|
-
await
|
|
323443
|
+
await rm17(join32(options.directory, old), { force: true });
|
|
322840
323444
|
}
|
|
322841
323445
|
return destination;
|
|
322842
323446
|
}
|
|
@@ -322980,7 +323584,7 @@ async function migrateOpencodeV1History(options) {
|
|
|
322980
323584
|
throw new Error("The saved history copy belongs to another profile. Its files were preserved.");
|
|
322981
323585
|
}
|
|
322982
323586
|
if (saved?.phase === "completed") {
|
|
322983
|
-
await
|
|
323587
|
+
await rm17(directory, { recursive: true });
|
|
322984
323588
|
await mkdir18(directory, { mode: 448 });
|
|
322985
323589
|
saved = undefined;
|
|
322986
323590
|
}
|
|
@@ -322998,12 +323602,12 @@ async function migrateOpencodeV1History(options) {
|
|
|
322998
323602
|
neededBytes: await databaseSize(options.source) * 5 + await databaseSize(options.targetDatabase)
|
|
322999
323603
|
});
|
|
323000
323604
|
await commitStage("snapshot");
|
|
323001
|
-
await
|
|
323605
|
+
await rm17(`${original}.tmp`, { force: true });
|
|
323002
323606
|
await snapshotV1Database(options.source, `${original}.tmp`);
|
|
323003
323607
|
await rename12(`${original}.tmp`, original);
|
|
323004
323608
|
checkpoint.sourceKey = await sourceDigest(original);
|
|
323005
323609
|
await mkdir18(convertedDirectory, { recursive: true, mode: 448 });
|
|
323006
|
-
await
|
|
323610
|
+
await rm17(converted, { force: true });
|
|
323007
323611
|
await snapshotV1Database(original, converted);
|
|
323008
323612
|
await clearStaleConversionMarker(converted);
|
|
323009
323613
|
await commitStage("externalizing");
|
|
@@ -323096,7 +323700,7 @@ async function migrateOpencodeV1History(options) {
|
|
|
323096
323700
|
}
|
|
323097
323701
|
await commitStage("completed");
|
|
323098
323702
|
await ownership.complete();
|
|
323099
|
-
await
|
|
323703
|
+
await rm17(directory, { recursive: true });
|
|
323100
323704
|
status.state = "completed";
|
|
323101
323705
|
status.phase = undefined;
|
|
323102
323706
|
report();
|
|
@@ -323269,7 +323873,7 @@ var MCP_READINESS_RPC_ID = "openwork.mcp-readiness";
|
|
|
323269
323873
|
import { execFile as execFile4 } from "node:child_process";
|
|
323270
323874
|
import { createHash as createHash24 } from "node:crypto";
|
|
323271
323875
|
import { existsSync as existsSync5, mkdirSync as mkdirSync2, readFileSync, writeFileSync } from "node:fs";
|
|
323272
|
-
import { mkdir as mkdir19, rename as rename13, rm as
|
|
323876
|
+
import { mkdir as mkdir19, rename as rename13, rm as rm18, writeFile as writeFile25 } from "node:fs/promises";
|
|
323273
323877
|
import { join as join36 } from "node:path";
|
|
323274
323878
|
// ../../constants.json
|
|
323275
323879
|
var constants_default = {
|
|
@@ -323536,6 +324140,8 @@ function v1HistoryExists(env) {
|
|
|
323536
324140
|
}
|
|
323537
324141
|
}
|
|
323538
324142
|
function seedFreshInstallEngineState(config2, env = process.env) {
|
|
324143
|
+
if (hasExternalOpencode(config2))
|
|
324144
|
+
return false;
|
|
323539
324145
|
const state = freshInstallEngineState({
|
|
323540
324146
|
requested: config2.freshInstallEngine,
|
|
323541
324147
|
env,
|
|
@@ -323546,7 +324152,7 @@ function seedFreshInstallEngineState(config2, env = process.env) {
|
|
|
323546
324152
|
return false;
|
|
323547
324153
|
try {
|
|
323548
324154
|
mkdirSync2(runtimeStorageDir(config2), { recursive: true });
|
|
323549
|
-
writeFileSync(statePath(config2), `${JSON.stringify({ ...state, engineOrigin: "fresh", engineChangedAt: new Date().toISOString(), ...config2.engineAutoUpgrade ? { engineForced: true } : {} }, null, 2)}
|
|
324155
|
+
writeFileSync(statePath(config2), `${JSON.stringify({ ...state, engineOrigin: "fresh", engineChangedAt: new Date().toISOString(), ...config2.engineAutoUpgrade !== false ? { engineForced: true } : {} }, null, 2)}
|
|
323550
324156
|
`, { encoding: "utf8", flag: "wx" });
|
|
323551
324157
|
return true;
|
|
323552
324158
|
} catch {
|
|
@@ -323742,7 +324348,7 @@ async function waitForEngineV2Catalog(active, directory, specs, timeoutMs = CATA
|
|
|
323742
324348
|
lastError: `OpenCode v2 has not listed ${labels.length} ${labels.length === 1 ? "model" : "models"} ${after}: ${shown}.`
|
|
323743
324349
|
};
|
|
323744
324350
|
}
|
|
323745
|
-
function mapRuntimeMcpToV2(value3) {
|
|
324351
|
+
function mapRuntimeMcpToV2(value3, name) {
|
|
323746
324352
|
if (!isRecord47(value3))
|
|
323747
324353
|
return;
|
|
323748
324354
|
if (value3.enabled === false || value3.disabled === true)
|
|
@@ -323772,6 +324378,7 @@ function mapRuntimeMcpToV2(value3) {
|
|
|
323772
324378
|
type: "remote",
|
|
323773
324379
|
url: value3.url,
|
|
323774
324380
|
headers: strings(value3.headers),
|
|
324381
|
+
...name === "openwork-cloud" ? { protocol: "auto" } : {},
|
|
323775
324382
|
...oauth === undefined ? {} : { oauth },
|
|
323776
324383
|
...shared
|
|
323777
324384
|
};
|
|
@@ -323811,13 +324418,10 @@ function createEngineV2Preview(options) {
|
|
|
323811
324418
|
let engineOrigin = initialState.engineOrigin ?? "manual";
|
|
323812
324419
|
let engineChangedAt = initialState.engineChangedAt;
|
|
323813
324420
|
let engineForced = initialState.engineForced === true;
|
|
323814
|
-
|
|
323815
|
-
let forceRevert = (config2.engineForcePolicy === true || config2.engineAutoUpgrade === true) && !forceUpgrade;
|
|
324421
|
+
const autoUpgradeEnabled = !hasExternalOpencode(config2) && config2.engineAutoUpgrade !== false && !process.env.OPENWORK_ENGINE_V2_PREVIEW?.trim();
|
|
323816
324422
|
let autoUpgradeRetry = initialState.autoUpgradeRetry;
|
|
323817
324423
|
const autoUpgradeAbort = new AbortController;
|
|
323818
|
-
const autoRevertAbort = new AbortController;
|
|
323819
324424
|
let autoUpgradeJob;
|
|
323820
|
-
let autoRevertJob;
|
|
323821
324425
|
let migration = resumeMigration ? { state: "running", phase: "starting", imported: 0, skipped: 0, total: 0, resumed: true } : initialState.historyCopyResult ?? { state: "idle", imported: 0, skipped: 0, total: 0 };
|
|
323822
324426
|
let migrationJob;
|
|
323823
324427
|
let migrationAbort;
|
|
@@ -323919,7 +324523,7 @@ function createEngineV2Preview(options) {
|
|
|
323919
324523
|
const desired = new Map(Object.entries(runtime).flatMap(([name, value3]) => {
|
|
323920
324524
|
if (agentPermissionEngineMcpDenial(agentPermissionRules, name, value3, organizationMcp))
|
|
323921
324525
|
return [];
|
|
323922
|
-
const mapped = mapRuntimeMcpToV2(value3);
|
|
324526
|
+
const mapped = mapRuntimeMcpToV2(value3, name);
|
|
323923
324527
|
return mapped ? [[name, { config: mapped, fingerprint: JSON.stringify(mapped) }]] : [];
|
|
323924
324528
|
}));
|
|
323925
324529
|
const { applied, attempts } = location;
|
|
@@ -324029,7 +324633,7 @@ function createEngineV2Preview(options) {
|
|
|
324029
324633
|
engineOrigin,
|
|
324030
324634
|
engineForced,
|
|
324031
324635
|
...engineChangedAt === undefined ? {} : { engineChangedAt },
|
|
324032
|
-
forceUpgradePending: automaticHistoryCopy ||
|
|
324636
|
+
forceUpgradePending: automaticHistoryCopy || autoUpgradeEnabled && !chatRouting && autoUpgradeJob !== undefined,
|
|
324033
324637
|
enabled,
|
|
324034
324638
|
migration: { ...migration },
|
|
324035
324639
|
v1HistoryAvailable: hasV1History(),
|
|
@@ -324199,7 +324803,7 @@ function createEngineV2Preview(options) {
|
|
|
324199
324803
|
if (!enabled || !allowRunning)
|
|
324200
324804
|
return;
|
|
324201
324805
|
await mkdir19(workspaceDir, { recursive: true });
|
|
324202
|
-
await
|
|
324806
|
+
await rm18(join36(rootDir, "cloud-skills"), { recursive: true, force: true });
|
|
324203
324807
|
const opencodeModelsUrl = await resolveOpencodeModelsUrl();
|
|
324204
324808
|
contextBridge = options.hostReadRequest ? await createV2ContextBridge(options.hostReadRequest) : undefined;
|
|
324205
324809
|
providerSessionBridge = options.providerSession ? await createV2ProviderSessionBridge(() => ownsGateway() ? options.providerSession?.() ?? null : null) : undefined;
|
|
@@ -324519,16 +325123,18 @@ function createEngineV2Preview(options) {
|
|
|
324519
325123
|
const source = opencodeV1DatabasePath();
|
|
324520
325124
|
if (!existsSync5(source) || (await readMigrationSessions(source)).length === 0) {
|
|
324521
325125
|
await waitForEngineIdle({ signal: autoUpgradeAbort.signal, idle: options.autoUpgradeIdle ?? (async () => false) });
|
|
325126
|
+
if (chosenV1Manually())
|
|
325127
|
+
return true;
|
|
324522
325128
|
enabled = true;
|
|
324523
325129
|
allowRunning = true;
|
|
324524
325130
|
await start();
|
|
324525
325131
|
if (!running)
|
|
324526
325132
|
throw new Error("OpenCode v2 did not become healthy. Keeping v1.");
|
|
324527
325133
|
autoUpgradeAbort.signal.throwIfAborted();
|
|
324528
|
-
if (!
|
|
325134
|
+
if (!autoUpgradeEnabled || chosenV1Manually())
|
|
324529
325135
|
return true;
|
|
324530
325136
|
await withEngineSwitchFence(config2, { from: "v1", to: "v2", operation: async () => {
|
|
324531
|
-
if (!
|
|
325137
|
+
if (!autoUpgradeEnabled || chosenV1Manually() || !await options.autoUpgradeIdle?.() || existsSync5(source) && (await readMigrationSessions(source)).length > 0) {
|
|
324532
325138
|
throw new Error("OpenCode v1 gained history or running work while v2 started. Keeping v1 until a later boot.");
|
|
324533
325139
|
}
|
|
324534
325140
|
migration = { state: "idle", imported: 0, skipped: 0, total: 0 };
|
|
@@ -324541,6 +325147,8 @@ function createEngineV2Preview(options) {
|
|
|
324541
325147
|
idle: options.autoUpgradeIdle ?? (async () => false),
|
|
324542
325148
|
revision: () => historyRevision(source),
|
|
324543
325149
|
copy: async () => {
|
|
325150
|
+
if (chosenV1Manually())
|
|
325151
|
+
throw new Error("OpenCode v1 was selected locally. Keeping v1.");
|
|
324544
325152
|
const revision = await historyRevision(source);
|
|
324545
325153
|
if (automaticHistoryCopy && automaticHistoryRevision !== undefined && automaticHistoryRevision !== revision && v1HistoryCopyStartedAt === undefined && migration.backupPath) {
|
|
324546
325154
|
await stopRuntime();
|
|
@@ -324548,10 +325156,10 @@ function createEngineV2Preview(options) {
|
|
|
324548
325156
|
const temporary = `${target}.auto-restore`;
|
|
324549
325157
|
const ownership = await acquireHistoryCopyLock(target);
|
|
324550
325158
|
try {
|
|
324551
|
-
await
|
|
325159
|
+
await rm18(temporary, { force: true });
|
|
324552
325160
|
await snapshotV1Database(migration.backupPath, temporary);
|
|
324553
|
-
await
|
|
324554
|
-
await
|
|
325161
|
+
await rm18(`${target}-wal`, { force: true });
|
|
325162
|
+
await rm18(`${target}-shm`, { force: true });
|
|
324555
325163
|
await rename13(temporary, target);
|
|
324556
325164
|
v1HistoryCopiedAt = undefined;
|
|
324557
325165
|
automaticHistoryRevision = undefined;
|
|
@@ -324574,7 +325182,7 @@ function createEngineV2Preview(options) {
|
|
|
324574
325182
|
}
|
|
324575
325183
|
},
|
|
324576
325184
|
switchEngine: async () => {
|
|
324577
|
-
if (!
|
|
325185
|
+
if (!autoUpgradeEnabled || chosenV1Manually())
|
|
324578
325186
|
throw new Error("Automatic upgrade is no longer enabled. Keeping v1.");
|
|
324579
325187
|
allowRunning = true;
|
|
324580
325188
|
await start();
|
|
@@ -324582,7 +325190,7 @@ function createEngineV2Preview(options) {
|
|
|
324582
325190
|
throw new Error("OpenCode v2 did not become healthy. Keeping v1.");
|
|
324583
325191
|
autoUpgradeAbort.signal.throwIfAborted();
|
|
324584
325192
|
await withEngineSwitchFence(config2, { from: "v1", to: "v2", operation: async () => {
|
|
324585
|
-
if (!
|
|
325193
|
+
if (!autoUpgradeEnabled || chosenV1Manually() || !await options.autoUpgradeIdle?.() || automaticHistoryRevision !== await historyRevision(source)) {
|
|
324586
325194
|
throw new Error("OpenCode v1 changed while v2 started. Keeping v1 until a later boot.");
|
|
324587
325195
|
}
|
|
324588
325196
|
await setChatRouting(true, "forced");
|
|
@@ -324606,49 +325214,14 @@ function createEngineV2Preview(options) {
|
|
|
324606
325214
|
return false;
|
|
324607
325215
|
}
|
|
324608
325216
|
}
|
|
324609
|
-
|
|
324610
|
-
try {
|
|
324611
|
-
await autoUpgradeJob;
|
|
324612
|
-
if (!forceRevert || !engineForced || !chatRouting)
|
|
324613
|
-
return true;
|
|
324614
|
-
await waitForEngineIdle({
|
|
324615
|
-
signal: autoRevertAbort.signal,
|
|
324616
|
-
idle: options.autoRevertIdle ?? (async () => !running)
|
|
324617
|
-
});
|
|
324618
|
-
autoRevertAbort.signal.throwIfAborted();
|
|
324619
|
-
if (!forceRevert || !engineForced || !chatRouting)
|
|
324620
|
-
return true;
|
|
324621
|
-
await withEngineSwitchFence(config2, { from: "v2", to: "v1", operation: async () => {
|
|
324622
|
-
if (!forceRevert || !engineForced || !await (options.autoRevertIdle?.() ?? Promise.resolve(!running))) {
|
|
324623
|
-
throw new Error("OpenCode v2 gained running work before the switch. Keeping v2.");
|
|
324624
|
-
}
|
|
324625
|
-
await setChatRouting(false, "reverted");
|
|
324626
|
-
await stopRuntime().catch((error48) => {
|
|
324627
|
-
lastError = errorMessage4(error48);
|
|
324628
|
-
options.autoUpgradeError?.(lastError);
|
|
324629
|
-
});
|
|
324630
|
-
} });
|
|
324631
|
-
return true;
|
|
324632
|
-
} catch (error48) {
|
|
324633
|
-
lastError = errorMessage4(error48);
|
|
324634
|
-
options.autoUpgradeError?.(lastError);
|
|
324635
|
-
await persistState().catch((error49) => warn(`Automatic revert state: ${errorMessage4(error49)}`));
|
|
324636
|
-
return false;
|
|
324637
|
-
}
|
|
324638
|
-
}
|
|
324639
|
-
function setForcePolicy(policy) {
|
|
324640
|
-
forceUpgrade = policy.upgrade;
|
|
324641
|
-
forceRevert = !policy.upgrade;
|
|
324642
|
-
startWhenReady();
|
|
325217
|
+
function setForcePolicy(_policy) {
|
|
324643
325218
|
return status();
|
|
324644
325219
|
}
|
|
324645
325220
|
async function stop() {
|
|
324646
325221
|
stopping = true;
|
|
324647
325222
|
autoUpgradeAbort.abort(new Error("Automatic upgrade paused while OpenWork closes."));
|
|
324648
325223
|
migrationAbort?.abort(new Error("History copy paused while OpenWork closes. Restart to resume."));
|
|
324649
|
-
autoRevertAbort.abort(new Error("Automatic revert paused while OpenWork closes."));
|
|
324650
325224
|
await autoUpgradeJob;
|
|
324651
|
-
await autoRevertJob;
|
|
324652
325225
|
await migrationJob;
|
|
324653
325226
|
await startFailureJob;
|
|
324654
325227
|
await stopRuntime();
|
|
@@ -324666,17 +325239,12 @@ function createEngineV2Preview(options) {
|
|
|
324666
325239
|
}
|
|
324667
325240
|
if (migration.state === "running")
|
|
324668
325241
|
return;
|
|
324669
|
-
if (
|
|
324670
|
-
autoRevertJob = autoRevert().then((success2) => {
|
|
324671
|
-
if (success2)
|
|
324672
|
-
autoRevertJob = undefined;
|
|
324673
|
-
});
|
|
324674
|
-
} else if (forceUpgrade && !forceRevert && !config2.readOnly && !chatRouting && !autoUpgradeJob && !chosenV1Manually()) {
|
|
325242
|
+
if (autoUpgradeEnabled && !config2.readOnly && !chatRouting && !autoUpgradeJob && !chosenV1Manually()) {
|
|
324675
325243
|
autoUpgradeJob = autoUpgrade().then((success2) => {
|
|
324676
325244
|
if (success2)
|
|
324677
325245
|
autoUpgradeJob = undefined;
|
|
324678
325246
|
});
|
|
324679
|
-
} else if (enabled && !automaticHistoryCopy && engineOrigin !== "reverted" && !(
|
|
325247
|
+
} else if (enabled && !automaticHistoryCopy && engineOrigin !== "reverted" && !(autoUpgradeEnabled && !chatRouting && !chosenV1Manually()))
|
|
324680
325248
|
start().catch(recordStartError);
|
|
324681
325249
|
}
|
|
324682
325250
|
if (!options.deferStart)
|
|
@@ -324686,7 +325254,7 @@ function createEngineV2Preview(options) {
|
|
|
324686
325254
|
// package.json
|
|
324687
325255
|
var package_default = {
|
|
324688
325256
|
name: "openwork-server",
|
|
324689
|
-
version: "0.18.
|
|
325257
|
+
version: "0.18.61",
|
|
324690
325258
|
description: "Filesystem-backed API for OpenWork remote clients",
|
|
324691
325259
|
type: "module",
|
|
324692
325260
|
bin: {
|
|
@@ -324704,7 +325272,7 @@ var package_default = {
|
|
|
324704
325272
|
"publish:npm": "pnpm build && pnpm build:npm-bundle && pnpm build:web-ui && node scripts/build-opencode-plugin-deps.mjs && node scripts/publish-npm.mjs",
|
|
324705
325273
|
start: "bun dist/cli.js",
|
|
324706
325274
|
typecheck: "tsc -p tsconfig.json --noEmit",
|
|
324707
|
-
"test:readiness": "bun test test/opencode-stop-fence.test.ts test/opencode-v2-mcp-readiness.test.ts test/openwork-mcp-results-v2.test.ts test/openwork-session-groups.test.ts",
|
|
325275
|
+
"test:readiness": "bun test test/opencode-stop-fence.test.ts test/opencode-v2-mcp-readiness.test.ts test/openwork-mcp-results-v2.test.ts test/openwork-session-groups.test.ts test/opencode-v2-instructions.test.ts test/cloud-provider-sync-prompts.test.ts test/engine-v2-mcp-mapping.test.ts test/engine-v2-mcp-reconciliation.test.ts",
|
|
324708
325276
|
"test:fresh-install-engine": "bun test test/engine-fresh-install-default.test.ts",
|
|
324709
325277
|
"test:live-provider-sync": "bun test test/live-provider-sync.test.ts",
|
|
324710
325278
|
"test:history-migration": "bun test test/opencode-v2-staged-history.test.ts",
|
|
@@ -324753,7 +325321,7 @@ var package_default = {
|
|
|
324753
325321
|
htmlparser2: "8.0.2",
|
|
324754
325322
|
"jsonc-parser": "^3.2.1",
|
|
324755
325323
|
minimatch: "^10.2.5",
|
|
324756
|
-
undici: "6.
|
|
325324
|
+
undici: "6.29.1",
|
|
324757
325325
|
yaml: "^2.9.0",
|
|
324758
325326
|
zod: "^4.3.6",
|
|
324759
325327
|
"@openwork/computer-use": "workspace:*"
|
|
@@ -324770,6 +325338,9 @@ var package_default = {
|
|
|
324770
325338
|
"jpeg-js": "0.4.4",
|
|
324771
325339
|
typescript: "^5.6.3"
|
|
324772
325340
|
},
|
|
325341
|
+
engines: {
|
|
325342
|
+
node: ">=24.22.1 <25"
|
|
325343
|
+
},
|
|
324773
325344
|
packageManager: "pnpm@10.27.0"
|
|
324774
325345
|
};
|
|
324775
325346
|
|
|
@@ -325324,11 +325895,6 @@ async function startServer(config2, options = {}) {
|
|
|
325324
325895
|
deferStart: true,
|
|
325325
325896
|
resolveLiveProviderSync,
|
|
325326
325897
|
autoUpgradeIdle: async () => (await describeV1EngineActivity(config2)).verdict === "idle",
|
|
325327
|
-
autoRevertIdle: async () => {
|
|
325328
|
-
if (!engineV2Preview.status().running)
|
|
325329
|
-
return true;
|
|
325330
|
-
return (await describeV2EngineActivity(config2, engineV2Preview.connection()))?.verdict === "idle";
|
|
325331
|
-
},
|
|
325332
325898
|
autoUpgradeError: (error48) => logger2.log("warn", "Automatic engine upgrade failed; keeping v1", { error: error48 }),
|
|
325333
325899
|
providerSession: () => cloudProviderSync.currentSession(),
|
|
325334
325900
|
hostReadRequest: async (path3, init) => {
|
|
@@ -325409,8 +325975,8 @@ async function startServer(config2, options = {}) {
|
|
|
325409
325975
|
const recordUnhandledErrorCause = (error48) => {
|
|
325410
325976
|
errorCause = error48 instanceof Error ? error48.message : String(error48);
|
|
325411
325977
|
};
|
|
325412
|
-
const finalize2 = (response) => {
|
|
325413
|
-
const wrapped = withCors(response, request3, config2);
|
|
325978
|
+
const finalize2 = (response, options2 = {}) => {
|
|
325979
|
+
const wrapped = options2.cors === false ? response : withCors(response, request3, config2);
|
|
325414
325980
|
if (config2.logRequests) {
|
|
325415
325981
|
logRequest({
|
|
325416
325982
|
logger: logger2,
|
|
@@ -325518,6 +326084,11 @@ async function startServer(config2, options = {}) {
|
|
|
325518
326084
|
return finalize2(jsonResponse2(formatError2(apiError), apiError.status));
|
|
325519
326085
|
}
|
|
325520
326086
|
};
|
|
326087
|
+
if (!isAllowedHost(request3, config2)) {
|
|
326088
|
+
const apiError = new ApiError(403, "host_not_allowed", "This server does not answer to this host name. Add it with --allowed-hosts or OPENWORK_ALLOWED_HOSTS.");
|
|
326089
|
+
recordApiError(apiError);
|
|
326090
|
+
return finalize2(jsonResponse2(formatError2(apiError), apiError.status));
|
|
326091
|
+
}
|
|
325521
326092
|
if (request3.method === "OPTIONS") {
|
|
325522
326093
|
return finalize2(new Response(null, { status: 204 }));
|
|
325523
326094
|
}
|
|
@@ -325572,7 +326143,7 @@ async function startServer(config2, options = {}) {
|
|
|
325572
326143
|
if (!route) {
|
|
325573
326144
|
const staticUiResponse = await serveStaticUi(request3, config2);
|
|
325574
326145
|
if (staticUiResponse)
|
|
325575
|
-
return finalize2(staticUiResponse);
|
|
326146
|
+
return finalize2(staticUiResponse, { cors: false });
|
|
325576
326147
|
errorMessage5 = "not_found";
|
|
325577
326148
|
return finalize2(jsonResponse2({ code: "not_found", message: "Not found" }, 404));
|
|
325578
326149
|
}
|
|
@@ -325880,7 +326451,8 @@ async function forwardOpencodeV2Request(input) {
|
|
|
325880
326451
|
const mcpResponse = await engineFetch(mcpUrl.toString(), { headers: internalHeaders, signal: AbortSignal.timeout(1e4) });
|
|
325881
326452
|
const mcpPayload = mcpResponse.ok ? await mcpResponse.json() : null;
|
|
325882
326453
|
const connectReady = isRecord48(mcpPayload) && Array.isArray(mcpPayload.data) && mcpPayload.data.some((entry) => isRecord48(entry) && entry.name === "openwork-cloud" && isRecord48(entry.status) && entry.status.status === "connected");
|
|
325883
|
-
const
|
|
326454
|
+
const organizationPrompts = (await readGlobalRuntimeOpencodeConfig(input.config)).managedPrompt;
|
|
326455
|
+
const value3 = buildOpenWorkV2Instructions(connectReady, organizationPrompts);
|
|
325884
326456
|
const instructionUrl = new URL(target);
|
|
325885
326457
|
instructionUrl.pathname = `/api/experimental/session/${encodeURIComponent(sessionId)}/instructions/entries/${OPENWORK_V2_INSTRUCTION_KEY}`;
|
|
325886
326458
|
const synced = await engineFetch(instructionUrl.toString(), {
|
|
@@ -326486,12 +327058,12 @@ function parseSsePayload2(frame) {
|
|
|
326486
327058
|
}
|
|
326487
327059
|
function mergedEventBody(input) {
|
|
326488
327060
|
const encoder2 = new TextEncoder;
|
|
326489
|
-
const
|
|
327061
|
+
const readers2 = input.streams.map((entry) => ({ connection: entry.connection, reader: entry.body.getReader() }));
|
|
326490
327062
|
let cancelled = false;
|
|
326491
327063
|
let pingTimer = null;
|
|
326492
327064
|
return new ReadableStream({
|
|
326493
327065
|
start(controller) {
|
|
326494
|
-
let active =
|
|
327066
|
+
let active = readers2.length;
|
|
326495
327067
|
let closed = false;
|
|
326496
327068
|
const close2 = () => {
|
|
326497
327069
|
if (closed)
|
|
@@ -326507,7 +327079,7 @@ function mergedEventBody(input) {
|
|
|
326507
327079
|
if (closed || cancelled)
|
|
326508
327080
|
return;
|
|
326509
327081
|
cancelled = true;
|
|
326510
|
-
for (const entry of
|
|
327082
|
+
for (const entry of readers2)
|
|
326511
327083
|
entry.reader.cancel(input.lease.signal.reason).catch(() => {
|
|
326512
327084
|
return;
|
|
326513
327085
|
});
|
|
@@ -326549,7 +327121,7 @@ function mergedEventBody(input) {
|
|
|
326549
327121
|
finish();
|
|
326550
327122
|
}
|
|
326551
327123
|
};
|
|
326552
|
-
for (const entry of
|
|
327124
|
+
for (const entry of readers2)
|
|
326553
327125
|
pump(entry);
|
|
326554
327126
|
pingTimer = setInterval(() => {
|
|
326555
327127
|
if (!closed && !cancelled)
|
|
@@ -326567,7 +327139,7 @@ function mergedEventBody(input) {
|
|
|
326567
327139
|
if (pingTimer)
|
|
326568
327140
|
clearInterval(pingTimer);
|
|
326569
327141
|
input.lease.release();
|
|
326570
|
-
await Promise.all(
|
|
327142
|
+
await Promise.all(readers2.map((entry) => entry.reader.cancel(reason).catch(() => {
|
|
326571
327143
|
return;
|
|
326572
327144
|
})));
|
|
326573
327145
|
}
|
|
@@ -326961,6 +327533,13 @@ function createRoutes(config2, approvals, tokens, env, onWorkspacesChanged, engi
|
|
|
326961
327533
|
const refresh = await applyManagedProviderReload(resolveEngineRuntimeWorkspace(config2));
|
|
326962
327534
|
return jsonResponse2({ ...preferences, refresh });
|
|
326963
327535
|
});
|
|
327536
|
+
addRoute(routes, "PUT", "/anonymous-inference/analytics", "host-token", async (ctx) => {
|
|
327537
|
+
const body = await readJsonBody(ctx.request);
|
|
327538
|
+
if (typeof body.enabled !== "boolean" || Object.keys(body).some((key2) => key2 !== "enabled")) {
|
|
327539
|
+
throw new ApiError(400, "invalid_payload", "Only enabled is accepted.");
|
|
327540
|
+
}
|
|
327541
|
+
return privateProviderResponse(await anonymousInference.setAnalyticsEnabled(body.enabled));
|
|
327542
|
+
});
|
|
326964
327543
|
const nativeEngineForWorkspace = createNativeCloudMcpResolver(engineV2Preview);
|
|
326965
327544
|
registerCoreRoutes({
|
|
326966
327545
|
nativeEngineForWorkspace,
|
|
@@ -330155,7 +330734,7 @@ function buildOpenworkRuntimeConfigObjectFromSnapshot2(runtimeConfig2) {
|
|
|
330155
330734
|
}
|
|
330156
330735
|
const disabledProviders = runtimeDisabledProviderList(runtimeConfig2);
|
|
330157
330736
|
const permissions = legacyExecutionPermissions(runtimeConfig2.managedPolicy?.execution);
|
|
330158
|
-
const { managedPolicy: _managedPolicy, ...engineConfig } = runtimeConfig2;
|
|
330737
|
+
const { managedPolicy: _managedPolicy, managedPrompt, ...engineConfig } = runtimeConfig2;
|
|
330159
330738
|
const provider = materializeLegacyFastProviders(runtimeProviderMap(runtimeConfig2));
|
|
330160
330739
|
return {
|
|
330161
330740
|
...engineConfig,
|
|
@@ -330170,7 +330749,7 @@ function buildOpenworkRuntimeConfigObjectFromSnapshot2(runtimeConfig2) {
|
|
|
330170
330749
|
description: "OpenWork default agent",
|
|
330171
330750
|
mode: "primary",
|
|
330172
330751
|
temperature: 0.2,
|
|
330173
|
-
prompt: OPENWORK_AGENT_PROMPT,
|
|
330752
|
+
prompt: appendOrganizationPrompts(OPENWORK_AGENT_PROMPT, managedPrompt),
|
|
330174
330753
|
permission: {
|
|
330175
330754
|
...permissions,
|
|
330176
330755
|
skill: {
|
|
@@ -330621,9 +331200,11 @@ function normalizeRuntimeOpencodeConfig2(value3) {
|
|
|
330621
331200
|
const permission = isRecord7(value3.permission) ? value3.permission : undefined;
|
|
330622
331201
|
const externalDirectory = permission && isRecord7(permission.external_directory) ? permission.external_directory : undefined;
|
|
330623
331202
|
const provider = isRecord7(value3.provider) ? value3.provider : undefined;
|
|
331203
|
+
const managedPrompt = typeof value3.managedPrompt === "string" && value3.managedPrompt.trim() ? value3.managedPrompt : undefined;
|
|
330624
331204
|
return {
|
|
330625
331205
|
...defaultAgent ? { default_agent: defaultAgent } : {},
|
|
330626
331206
|
...value3.managedPolicy !== undefined ? { managedPolicy: desktopConfigSchema.parse(value3.managedPolicy) } : {},
|
|
331207
|
+
...managedPrompt ? { managedPrompt } : {},
|
|
330627
331208
|
...plugin ? { plugin } : {},
|
|
330628
331209
|
...disabledProviders ? { disabled_providers: disabledProviders } : {},
|
|
330629
331210
|
...mcp ? { mcp } : {},
|
|
@@ -330811,8 +331392,8 @@ function updateRuntimeConfig2(config2, workspaceId, updater) {
|
|
|
330811
331392
|
}
|
|
330812
331393
|
function writeRuntimeOpencodeConfig2(config2, workspaceId, updater) {
|
|
330813
331394
|
return updateRuntimeConfig2(config2, workspaceId, (current2) => {
|
|
330814
|
-
const { managedPolicy, ...editable } = current2;
|
|
330815
|
-
return { ...updater(editable), managedPolicy };
|
|
331395
|
+
const { managedPolicy, managedPrompt, ...editable } = current2;
|
|
331396
|
+
return { ...updater(editable), managedPolicy, managedPrompt };
|
|
330816
331397
|
});
|
|
330817
331398
|
}
|
|
330818
331399
|
|
|
@@ -331892,7 +332473,7 @@ init_paths();
|
|
|
331892
332473
|
import { spawn as spawn5, spawnSync as spawnSync2 } from "node:child_process";
|
|
331893
332474
|
import { existsSync as existsSync7 } from "node:fs";
|
|
331894
332475
|
import { randomBytes as randomBytes13 } from "node:crypto";
|
|
331895
|
-
import { chmod as chmod6, mkdir as mkdir21, mkdtemp as mkdtemp2, readFile as readFile38, readdir as readdir12, rename as rename15, rm as
|
|
332476
|
+
import { chmod as chmod6, mkdir as mkdir21, mkdtemp as mkdtemp2, readFile as readFile38, readdir as readdir12, rename as rename15, rm as rm20, stat as stat10, writeFile as writeFile28 } from "node:fs/promises";
|
|
331896
332477
|
import { homedir as homedir11, tmpdir } from "node:os";
|
|
331897
332478
|
import { basename as basename15, dirname as dirname24, join as join40, relative as relative9, resolve as resolve23 } from "node:path";
|
|
331898
332479
|
var OPENCODE_GITHUB_REPO = "anomalyco/opencode";
|
|
@@ -332064,7 +332645,7 @@ async function ensureManagedEngine(input) {
|
|
|
332064
332645
|
if (installedVersion === version6)
|
|
332065
332646
|
return { bin, installedVersion, source: "installed" };
|
|
332066
332647
|
input.log(`Installed engine at ${bin} reports ${installedVersion ?? "unknown"}; expected ${version6}. Reinstalling.`);
|
|
332067
|
-
await
|
|
332648
|
+
await rm20(installDir, { recursive: true, force: true });
|
|
332068
332649
|
}
|
|
332069
332650
|
const platform3 = input.platform ?? process.platform;
|
|
332070
332651
|
const arch = input.arch ?? process.arch;
|
|
@@ -332096,14 +332677,14 @@ async function ensureManagedEngine(input) {
|
|
|
332096
332677
|
await chmod6(partial2, 493);
|
|
332097
332678
|
const downloadedVersion = readBinaryVersion(partial2);
|
|
332098
332679
|
if (downloadedVersion !== version6) {
|
|
332099
|
-
await
|
|
332680
|
+
await rm20(partial2, { force: true });
|
|
332100
332681
|
throw new Error(`Downloaded OpenCode reports ${downloadedVersion ?? "no version"}; expected ${version6}.`);
|
|
332101
332682
|
}
|
|
332102
332683
|
await renameWithRetry(partial2, bin, { platform: platform3 });
|
|
332103
332684
|
input.log(`Installed OpenCode ${version6} to ${bin}`);
|
|
332104
332685
|
return { bin, installedVersion: downloadedVersion, source: "downloaded" };
|
|
332105
332686
|
} finally {
|
|
332106
|
-
await
|
|
332687
|
+
await rm20(stagingDir, { recursive: true, force: true });
|
|
332107
332688
|
}
|
|
332108
332689
|
}
|
|
332109
332690
|
function opencodeGlobalConfigDir(env, home = homedir11()) {
|
|
@@ -332140,7 +332721,7 @@ async function seedOpencodePluginDepsInner(input) {
|
|
|
332140
332721
|
return { seeded: false, reason: "failed", error: error48 instanceof Error ? error48.message : String(error48) };
|
|
332141
332722
|
} finally {
|
|
332142
332723
|
if (staging)
|
|
332143
|
-
await
|
|
332724
|
+
await rm20(staging, { recursive: true, force: true }).catch(() => {
|
|
332144
332725
|
return;
|
|
332145
332726
|
});
|
|
332146
332727
|
}
|
|
@@ -332228,7 +332809,7 @@ function readInstalledOpencodeVersion() {
|
|
|
332228
332809
|
// package.json
|
|
332229
332810
|
var package_default2 = {
|
|
332230
332811
|
name: "openwork-server",
|
|
332231
|
-
version: "0.18.
|
|
332812
|
+
version: "0.18.61",
|
|
332232
332813
|
description: "Filesystem-backed API for OpenWork remote clients",
|
|
332233
332814
|
type: "module",
|
|
332234
332815
|
bin: {
|
|
@@ -332246,7 +332827,7 @@ var package_default2 = {
|
|
|
332246
332827
|
"publish:npm": "pnpm build && pnpm build:npm-bundle && pnpm build:web-ui && node scripts/build-opencode-plugin-deps.mjs && node scripts/publish-npm.mjs",
|
|
332247
332828
|
start: "bun dist/cli.js",
|
|
332248
332829
|
typecheck: "tsc -p tsconfig.json --noEmit",
|
|
332249
|
-
"test:readiness": "bun test test/opencode-stop-fence.test.ts test/opencode-v2-mcp-readiness.test.ts test/openwork-mcp-results-v2.test.ts test/openwork-session-groups.test.ts",
|
|
332830
|
+
"test:readiness": "bun test test/opencode-stop-fence.test.ts test/opencode-v2-mcp-readiness.test.ts test/openwork-mcp-results-v2.test.ts test/openwork-session-groups.test.ts test/opencode-v2-instructions.test.ts test/cloud-provider-sync-prompts.test.ts test/engine-v2-mcp-mapping.test.ts test/engine-v2-mcp-reconciliation.test.ts",
|
|
332250
332831
|
"test:fresh-install-engine": "bun test test/engine-fresh-install-default.test.ts",
|
|
332251
332832
|
"test:live-provider-sync": "bun test test/live-provider-sync.test.ts",
|
|
332252
332833
|
"test:history-migration": "bun test test/opencode-v2-staged-history.test.ts",
|
|
@@ -332295,7 +332876,7 @@ var package_default2 = {
|
|
|
332295
332876
|
htmlparser2: "8.0.2",
|
|
332296
332877
|
"jsonc-parser": "^3.2.1",
|
|
332297
332878
|
minimatch: "^10.2.5",
|
|
332298
|
-
undici: "6.
|
|
332879
|
+
undici: "6.29.1",
|
|
332299
332880
|
yaml: "^2.9.0",
|
|
332300
332881
|
zod: "^4.3.6",
|
|
332301
332882
|
"@openwork/computer-use": "workspace:*"
|
|
@@ -332312,6 +332893,9 @@ var package_default2 = {
|
|
|
332312
332893
|
"jpeg-js": "0.4.4",
|
|
332313
332894
|
typescript: "^5.6.3"
|
|
332314
332895
|
},
|
|
332896
|
+
engines: {
|
|
332897
|
+
node: ">=24.22.1 <25"
|
|
332898
|
+
},
|
|
332315
332899
|
packageManager: "pnpm@10.27.0"
|
|
332316
332900
|
};
|
|
332317
332901
|
// ../../constants.json
|
|
@@ -332519,7 +333103,7 @@ if (args2.web) {
|
|
|
332519
333103
|
logger2.log("info", "Anyone who can reach this URL is signed in automatically. Keep it on a private network or pass --no-bootstrap-token.");
|
|
332520
333104
|
}
|
|
332521
333105
|
if (browserHost !== "localhost" && browserHost !== "127.0.0.1") {
|
|
332522
|
-
logger2.log("info", "Browsers require HTTPS for a non-localhost origin; put a TLS proxy (e.g. tailscale serve) in front.");
|
|
333106
|
+
logger2.log("info", "Browsers require HTTPS for a non-localhost origin; put a TLS proxy (e.g. tailscale serve) in front and pass its name with --allowed-hosts.");
|
|
332523
333107
|
}
|
|
332524
333108
|
if (args2.open)
|
|
332525
333109
|
openInBrowser(browserUrl);
|
|
@@ -332551,6 +333135,8 @@ if (args2.verbose) {
|
|
|
332551
333135
|
logger2.log("info", `Read-only: ${config2.readOnly ? "true" : "false"}`);
|
|
332552
333136
|
logger2.log("info", `Approval: ${config2.approval.mode} (${config2.approval.timeoutMs}ms)`);
|
|
332553
333137
|
logger2.log("info", `CORS origins: ${config2.corsOrigins.join(", ")}`);
|
|
333138
|
+
if (config2.allowedHosts)
|
|
333139
|
+
logger2.log("info", `Allowed hosts: loopback, IP addresses, ${[config2.host, ...config2.allowedHosts].join(", ")}`);
|
|
332554
333140
|
logger2.log("info", `Authorized roots: ${config2.authorizedRoots.join(", ")}`);
|
|
332555
333141
|
logger2.log("info", `Token source: ${config2.tokenSource}`);
|
|
332556
333142
|
logger2.log("info", `Host token source: ${config2.hostTokenSource}`);
|