pi-outpost 0.5.7 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/pi-outpost.mjs +95 -5
- package/dist/pi-outpost.sea.mjs +374327 -0
- package/dist/sea-prep.blob +0 -0
- package/dist/web/assets/{abnfDiagram-VRR7QNED-Ddbaevlx.js → abnfDiagram-VRR7QNED-H5_VO-B1.js} +1 -1
- package/dist/web/assets/{arc-DKRCl6TA.js → arc-CE2zETyi.js} +1 -1
- package/dist/web/assets/architecture-TIHT7OUA-quq76HPk.js +1 -0
- package/dist/web/assets/{architectureDiagram-ZJ3FMSHR-9NxjIUZS.js → architectureDiagram-ZJ3FMSHR-CIvYQchB.js} +1 -1
- package/dist/web/assets/{blockDiagram-677ZJIJ3-RZPAuAVe.js → blockDiagram-677ZJIJ3-DGQEZrPB.js} +1 -1
- package/dist/web/assets/{c4Diagram-LMCZKHZV-CtnM3Ckx.js → c4Diagram-LMCZKHZV-BirInSYC.js} +1 -1
- package/dist/web/assets/channel-CZQNpXwJ.js +1 -0
- package/dist/web/assets/{chunk-32BRIVSS-QnUqBdzD.js → chunk-32BRIVSS-B7fJk0ll.js} +1 -1
- package/dist/web/assets/{chunk-52WLFC77-EpnBnafN.js → chunk-52WLFC77-C56wZyRg.js} +1 -1
- package/dist/web/assets/{chunk-C7G6YPKG--UKrostC.js → chunk-C7G6YPKG-BVEnGhWm.js} +1 -1
- package/dist/web/assets/{chunk-EX3LRPZG-Ce4UE9ek.js → chunk-EX3LRPZG-qrTscY2a.js} +1 -1
- package/dist/web/assets/{chunk-FWX5IMBZ-CpoeAqxN.js → chunk-FWX5IMBZ-DE1AOCYK.js} +2 -2
- package/dist/web/assets/{chunk-HOUHSVGY-C_0OHgvt.js → chunk-HOUHSVGY-ByqVYtdv.js} +1 -1
- package/dist/web/assets/{chunk-ICXQ74PX-BuQxyBm4.js → chunk-ICXQ74PX-DXqI_eYD.js} +1 -1
- package/dist/web/assets/{chunk-MOJQB5TN-nQbQpJtl.js → chunk-MOJQB5TN-CtF6fAD2.js} +1 -1
- package/dist/web/assets/{chunk-OGEWGWER-qmp8nYAi.js → chunk-OGEWGWER-BN9LPPms.js} +1 -1
- package/dist/web/assets/{chunk-PUDLZKDR-CfrXFVaP.js → chunk-PUDLZKDR-W3AI4jJR.js} +1 -1
- package/dist/web/assets/{chunk-Q4XR5HBZ-B_ZVMZ1_.js → chunk-Q4XR5HBZ-DyN60MoF.js} +1 -1
- package/dist/web/assets/{chunk-RYQCIY6F-BNLDnl1E.js → chunk-RYQCIY6F-BasDWW7n.js} +1 -1
- package/dist/web/assets/{chunk-V7JOEXUC-CCJ4gaG4.js → chunk-V7JOEXUC-o82vAXi1.js} +1 -1
- package/dist/web/assets/{chunk-VAUOI2AC-DH_aJUsJ.js → chunk-VAUOI2AC-C9EyY67a.js} +1 -1
- package/dist/web/assets/{chunk-VR4S4FIN-BvhW0AYV.js → chunk-VR4S4FIN-CeQJxF3W.js} +1 -1
- package/dist/web/assets/{chunk-WYO6CB5R-BnZu-GH5.js → chunk-WYO6CB5R-krESB1wz.js} +3 -3
- package/dist/web/assets/{chunk-XXDRQBXY-CIhKgouH.js → chunk-XXDRQBXY-DwNOw26j.js} +1 -1
- package/dist/web/assets/{chunk-ZGVPDNZ5-CG5sR8Hi.js → chunk-ZGVPDNZ5-Ch60IWeh.js} +1 -1
- package/dist/web/assets/classDiagram-OUVF2IWQ-cofE0NaO.js +1 -0
- package/dist/web/assets/classDiagram-v2-EOCWNBFH-cofE0NaO.js +1 -0
- package/dist/web/assets/{core-DY7rIyDC.js → core-BYdjv-3f.js} +1 -1
- package/dist/web/assets/{cose-bilkent-JH36ORCC-Dr8iIC07.js → cose-bilkent-JH36ORCC-7oO-5ii0.js} +1 -1
- package/dist/web/assets/{cynefin-VYW2F7L2-Csc5Skqi.js → cynefin-VYW2F7L2-BXr0328D.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-TSTJHNR4-sGiyDLSd.js → cynefinDiagram-TSTJHNR4-BjcrCkzf.js} +1 -1
- package/dist/web/assets/{dagre-VKFMJZFB-C5vxZhtT.js → dagre-VKFMJZFB-C6__cGMT.js} +1 -1
- package/dist/web/assets/{diagram-FQU43EPY-8B2nlFf4.js → diagram-FQU43EPY-Cv5jVU9J.js} +1 -1
- package/dist/web/assets/{diagram-G47NLZAW-C6vzPEqq.js → diagram-G47NLZAW-Cr471EU0.js} +1 -1
- package/dist/web/assets/{diagram-NH7WQ7WH-Cug03yLJ.js → diagram-NH7WQ7WH-goB_dq72.js} +1 -1
- package/dist/web/assets/{diagram-OA4YK3LP-CucHVkAE.js → diagram-OA4YK3LP-DmY1Aze_.js} +1 -1
- package/dist/web/assets/{diagram-WEI45ONY-CrS4YdfL.js → diagram-WEI45ONY-WkHev95e.js} +1 -1
- package/dist/web/assets/{dist-4WHbW7kW.js → dist-eoi0_oI4.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-CCIWWBDH-CXGiUUds.js → ebnfDiagram-CCIWWBDH-9LnP4grp.js} +1 -1
- package/dist/web/assets/{erDiagram-Q63AITRT-By3BwsLJ.js → erDiagram-Q63AITRT-DLfvk9F1.js} +1 -1
- package/dist/web/assets/eventmodeling-45OFAUF4-B5yLU1sh.js +1 -0
- package/dist/web/assets/flowDiagram-23GEKE2U-YSOb8q4v.js +1 -0
- package/dist/web/assets/{ganttDiagram-NO4QXBWP-7cpdUdRJ.js → ganttDiagram-NO4QXBWP-BmevG3Zb.js} +1 -1
- package/dist/web/assets/{gitGraph-TEB2WS4Q-8uES_n1N.js → gitGraph-TEB2WS4Q-DJhMk0an.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-IHSO6WYX-5Ob04v9V.js → gitGraphDiagram-IHSO6WYX-m9L6aHPB.js} +1 -1
- package/dist/web/assets/index-B1kaPMNw.css +2 -0
- package/dist/web/assets/{index-DpbRLjEE.js → index-CATcFyvk.js} +7 -7
- package/dist/web/assets/{info-DKCQHKI2-CwnMgns7.js → info-DKCQHKI2-B4Vc-IRj.js} +1 -1
- package/dist/web/assets/{infoDiagram-FWYZ7A6U-ClO-D-F6.js → infoDiagram-FWYZ7A6U-Ba1fhnL8.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-FXEZZL3T-D-Ze2Ql8.js → ishikawaDiagram-FXEZZL3T-ChAwvE3-.js} +1 -1
- package/dist/web/assets/{journeyDiagram-5HDEW3XC-Tc3Wdzm9.js → journeyDiagram-5HDEW3XC-BirgNixk.js} +1 -1
- package/dist/web/assets/{kanban-definition-HUTT4EX6-CcVQNWZZ.js → kanban-definition-HUTT4EX6-Chp-drog.js} +1 -1
- package/dist/web/assets/{line-LCszX-93.js → line-D_9HoxN3.js} +1 -1
- package/dist/web/assets/{linear-D4uAB447.js → linear-DgrpbYUZ.js} +1 -1
- package/dist/web/assets/{mermaid-parser.core-DEPnbzQd.js → mermaid-parser.core-BqDBKvZM.js} +3 -3
- package/dist/web/assets/{mermaid.core-BwWIg80u.js → mermaid.core-BhqnioBn.js} +3 -3
- package/dist/web/assets/{mindmap-definition-LN4V7U3C-B0t31b8v.js → mindmap-definition-LN4V7U3C-JRUH2JOn.js} +1 -1
- package/dist/web/assets/{packet-7NZHBO7P-Cq4ml33w.js → packet-7NZHBO7P-BgUQPLIU.js} +1 -1
- package/dist/web/assets/{pegDiagram-2B236MQR-GehivSub.js → pegDiagram-2B236MQR-VvS6nn8t.js} +1 -1
- package/dist/web/assets/{pie-RZYD4A2V-hKQqRwR1.js → pie-RZYD4A2V-B2jlWZgR.js} +1 -1
- package/dist/web/assets/{pieDiagram-ENE6RG2P-Di20TWWF.js → pieDiagram-ENE6RG2P-BKW9rLOB.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-ABIIQ3AL-BS2DM0o1.js → quadrantDiagram-ABIIQ3AL-VnibnYiD.js} +1 -1
- package/dist/web/assets/{radar-I7S5WNFK-DIelC7WS.js → radar-I7S5WNFK-DMqKgGE4.js} +1 -1
- package/dist/web/assets/{railroad-3IZDKUUU-BGqOpgb2.js → railroad-3IZDKUUU-CQISkGus.js} +1 -1
- package/dist/web/assets/railroad-abnf-AHOZXSZD-Cqb4QybP.js +1 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-B2HJhkLZ.js +1 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-BAkQmUhL.js +1 -0
- package/dist/web/assets/{railroadDiagram-RFXS5EU6-JnUSd2SZ.js → railroadDiagram-RFXS5EU6-B2mmn-YE.js} +1 -1
- package/dist/web/assets/{requirementDiagram-TGXJPOKE-BOl8gS8C.js → requirementDiagram-TGXJPOKE-Dr95ZcIq.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-HTMAVEWB-DcywXXIN.js → sankeyDiagram-HTMAVEWB-BdQaFrYL.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-DBY2YBRQ-ONvF5cHm.js → sequenceDiagram-DBY2YBRQ-Bw4pvzkf.js} +1 -1
- package/dist/web/assets/{src-BuJdKDww.js → src-D_DMwmBd.js} +1 -1
- package/dist/web/assets/{stateDiagram-2N3HPSRC-xg3Onc8v.js → stateDiagram-2N3HPSRC-Q0qvHsf_.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-6OUMAXLB-ChUyBpFH.js +1 -0
- package/dist/web/assets/{swimlanes-5IMT3BWC-DPJceuSw.js → swimlanes-5IMT3BWC-K22dJ96l.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-G3AALYLV-0kss8Lg_.js +8 -0
- package/dist/web/assets/{timeline-definition-FHXFAJF6-4Q0cNBZa.js → timeline-definition-FHXFAJF6-DBnf2O5F.js} +1 -1
- package/dist/web/assets/{treeView-QDETBFTQ-BFyEFFDW.js → treeView-QDETBFTQ-vEgp8rG6.js} +1 -1
- package/dist/web/assets/{treemap-6X3UGDF4-CLak8Uij.js → treemap-6X3UGDF4-DTG5XbMU.js} +1 -1
- package/dist/web/assets/{vennDiagram-L72KCM5P-CnMeax8n.js → vennDiagram-L72KCM5P-yvzldEn_.js} +1 -1
- package/dist/web/assets/{wardley-OPB4EBWU-CUMtRrUi.js → wardley-OPB4EBWU-CiJqxxnE.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-EHGQE667-CzFqvDxe.js → wardleyDiagram-EHGQE667-CGhW5qOc.js} +1 -1
- package/dist/web/assets/{xychartDiagram-FW5EYKEG-C86ZCbK8.js → xychartDiagram-FW5EYKEG-DuI96QQ9.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/architecture-TIHT7OUA-CXs7lqrB.js +0 -1
- package/dist/web/assets/channel-BRTsEjH0.js +0 -1
- package/dist/web/assets/classDiagram-OUVF2IWQ-oxDyX2ry.js +0 -1
- package/dist/web/assets/classDiagram-v2-EOCWNBFH-oxDyX2ry.js +0 -1
- package/dist/web/assets/eventmodeling-45OFAUF4-BBqgpOjt.js +0 -1
- package/dist/web/assets/flowDiagram-23GEKE2U-DUiF3T5Y.js +0 -1
- package/dist/web/assets/index-Bz_82pCM.css +0 -2
- package/dist/web/assets/railroad-abnf-AHOZXSZD-CY8YCNrM.js +0 -1
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-DK8c1XBp.js +0 -1
- package/dist/web/assets/railroad-peg-LSFZ7HO6-3FkEERnx.js +0 -1
- package/dist/web/assets/stateDiagram-v2-6OUMAXLB-D1aOFa-9.js +0 -1
- package/dist/web/assets/swimlanesDiagram-G3AALYLV-BDD3cg35.js +0 -8
package/dist/pi-outpost.mjs
CHANGED
|
@@ -36973,7 +36973,8 @@ import {
|
|
|
36973
36973
|
createAgentSessionRuntime,
|
|
36974
36974
|
createAgentSessionServices,
|
|
36975
36975
|
getAgentDir as getAgentDir2,
|
|
36976
|
-
SessionManager
|
|
36976
|
+
SessionManager,
|
|
36977
|
+
VERSION as PI_SDK_VERSION
|
|
36977
36978
|
} from "@earendil-works/pi-coding-agent";
|
|
36978
36979
|
|
|
36979
36980
|
// ../shared/src/protocol.ts
|
|
@@ -37152,6 +37153,15 @@ function loadConfig(launchDir, flags = {}, env2 = process.env) {
|
|
|
37152
37153
|
fail(`sandbox.writableRoot does not exist: ${config2.sandbox.writableRoot}`);
|
|
37153
37154
|
}
|
|
37154
37155
|
}
|
|
37156
|
+
if (raw.sandboxLocks !== void 0) {
|
|
37157
|
+
const locks = asObject(raw.sandboxLocks, "sandboxLocks");
|
|
37158
|
+
config2.sandboxLocks = {
|
|
37159
|
+
root: optionalBoolean(locks, "root", false),
|
|
37160
|
+
allowWrite: optionalBoolean(locks, "allowWrite", false),
|
|
37161
|
+
allowBash: optionalBoolean(locks, "allowBash", false),
|
|
37162
|
+
writableRoot: optionalBoolean(locks, "writableRoot", false)
|
|
37163
|
+
};
|
|
37164
|
+
}
|
|
37155
37165
|
config2.tools = optionalStringArray(raw, "tools");
|
|
37156
37166
|
config2.noExtensions = optionalBoolean(raw, "noExtensions", false);
|
|
37157
37167
|
config2.extensionPaths = (optionalStringArray(raw, "extensionPaths") ?? []).map(resolve2);
|
|
@@ -50569,7 +50579,7 @@ function searchSessions(sessions, query, limit) {
|
|
|
50569
50579
|
var seaExtensionFactories = [];
|
|
50570
50580
|
|
|
50571
50581
|
// ../server/src/index.ts
|
|
50572
|
-
var VERSION2 = true ? "0.
|
|
50582
|
+
var VERSION2 = true ? "0.6.1" : "dev";
|
|
50573
50583
|
var LAUNCH_DIR = process.env.INIT_CWD ?? process.cwd();
|
|
50574
50584
|
function complain(error) {
|
|
50575
50585
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -50790,6 +50800,8 @@ var WEB_UI_CONTEXT = [
|
|
|
50790
50800
|
"Images in the workspace (including ones you create) display inline in the conversation when referenced with a relative path: . Prefer showing an image that way over describing it.",
|
|
50791
50801
|
"Avoid terminal-only affordances: no 'open this file in your editor' or 'run this command to view' phrasing, no ASCII art where a mermaid diagram or an image file works better."
|
|
50792
50802
|
].join("\n");
|
|
50803
|
+
var DEBUG = process.env.PI_OUTPOST_DEBUG ? console.log : () => {
|
|
50804
|
+
};
|
|
50793
50805
|
var createRuntime = async ({
|
|
50794
50806
|
cwd,
|
|
50795
50807
|
sessionManager,
|
|
@@ -50819,6 +50831,14 @@ var createRuntime = async ({
|
|
|
50819
50831
|
...extraFactories.length > 0 ? { extensionFactories: extraFactories } : {}
|
|
50820
50832
|
}
|
|
50821
50833
|
});
|
|
50834
|
+
const extResult = services.resourceLoader.getExtensions();
|
|
50835
|
+
if (extResult.errors.length > 0) {
|
|
50836
|
+
for (const err of extResult.errors) {
|
|
50837
|
+
console.error("[pi-outpost] Extension error:", err.path, err.error);
|
|
50838
|
+
}
|
|
50839
|
+
} else {
|
|
50840
|
+
DEBUG("[pi-outpost] No extension errors. Loaded:", extResult.extensions.length, "extensions");
|
|
50841
|
+
}
|
|
50822
50842
|
return {
|
|
50823
50843
|
...await createAgentSessionFromServices({
|
|
50824
50844
|
services,
|
|
@@ -50928,7 +50948,20 @@ function snapshot() {
|
|
|
50928
50948
|
contextUsage: contextUsage(),
|
|
50929
50949
|
writableRoot: WRITABLE_ROOT,
|
|
50930
50950
|
gitAvailable: GIT !== null,
|
|
50931
|
-
credentials: credentialStatus()
|
|
50951
|
+
credentials: credentialStatus(),
|
|
50952
|
+
extensionPaths: session.extensionRunner.getExtensionPaths(),
|
|
50953
|
+
versions: { piOutpost: VERSION2, piSdk: PI_SDK_VERSION },
|
|
50954
|
+
sandbox: (() => {
|
|
50955
|
+
const v2 = config.sandbox ? {
|
|
50956
|
+
root: config.sandbox.root,
|
|
50957
|
+
allowWrite: config.sandbox.allowWrite ?? false,
|
|
50958
|
+
allowBash: config.sandbox.allowBash ?? false,
|
|
50959
|
+
writableRoot: config.sandbox.writableRoot,
|
|
50960
|
+
locks: config.sandboxLocks
|
|
50961
|
+
} : void 0;
|
|
50962
|
+
console.log("[snapshot] sandbox =", JSON.stringify(v2));
|
|
50963
|
+
return v2;
|
|
50964
|
+
})()
|
|
50932
50965
|
};
|
|
50933
50966
|
}
|
|
50934
50967
|
var clients = /* @__PURE__ */ new Set();
|
|
@@ -51162,13 +51195,19 @@ async function bindExtensionsForSession() {
|
|
|
51162
51195
|
var pendingFileMutations = /* @__PURE__ */ new Map();
|
|
51163
51196
|
async function announceFileChange(args) {
|
|
51164
51197
|
const targetPath = args?.path;
|
|
51198
|
+
console.log("[announceFileChange] args type=", typeof args, "targetPath=", targetPath);
|
|
51165
51199
|
if (typeof targetPath !== "string") return;
|
|
51166
51200
|
try {
|
|
51167
51201
|
const resolved = await realResolve(path8.resolve(BROWSER_ROOT, targetPath));
|
|
51168
|
-
if (!isWithin(BROWSER_ROOT, resolved))
|
|
51202
|
+
if (!isWithin(BROWSER_ROOT, resolved)) {
|
|
51203
|
+
console.log("[announceFileChange] not within BROWSER_ROOT, skipping");
|
|
51204
|
+
return;
|
|
51205
|
+
}
|
|
51169
51206
|
const relPath = path8.relative(BROWSER_ROOT, resolved).split(path8.sep).join("/");
|
|
51207
|
+
console.log("[announceFileChange] broadcasting file_changed path=", relPath);
|
|
51170
51208
|
broadcast({ type: "file_changed", path: relPath });
|
|
51171
|
-
} catch {
|
|
51209
|
+
} catch (e) {
|
|
51210
|
+
console.log("[announceFileChange] error:", e);
|
|
51172
51211
|
}
|
|
51173
51212
|
}
|
|
51174
51213
|
function bindSession() {
|
|
@@ -51311,6 +51350,45 @@ async function handleSetCredential(socket, provider, apiKey) {
|
|
|
51311
51350
|
await runtime.services.modelRuntime.refresh();
|
|
51312
51351
|
await adoptUsableModel(socket);
|
|
51313
51352
|
}
|
|
51353
|
+
async function handleUpdateConfig(socket, newSandbox) {
|
|
51354
|
+
if (replacingSession) {
|
|
51355
|
+
send(socket, { type: "error", message: "Session change already in progress" });
|
|
51356
|
+
return;
|
|
51357
|
+
}
|
|
51358
|
+
const locks = config.sandboxLocks ?? {};
|
|
51359
|
+
const mergedSandbox = {
|
|
51360
|
+
root: locks.root ? config.sandbox.root : newSandbox.root,
|
|
51361
|
+
allowWrite: locks.allowWrite ? config.sandbox.allowWrite : newSandbox.allowWrite,
|
|
51362
|
+
allowBash: locks.allowBash ? config.sandbox.allowBash : newSandbox.allowBash,
|
|
51363
|
+
writableRoot: locks.writableRoot ? config.sandbox.writableRoot : newSandbox.writableRoot
|
|
51364
|
+
};
|
|
51365
|
+
replacingSession = true;
|
|
51366
|
+
try {
|
|
51367
|
+
config.sandbox = {
|
|
51368
|
+
root: mergedSandbox.root,
|
|
51369
|
+
allowWrite: mergedSandbox.allowWrite,
|
|
51370
|
+
allowBash: mergedSandbox.allowBash,
|
|
51371
|
+
writableRoot: mergedSandbox.writableRoot,
|
|
51372
|
+
readExceptions: config.sandbox?.readExceptions ?? []
|
|
51373
|
+
};
|
|
51374
|
+
BROWSER_ROOT = await resolveBrowserRoot(config);
|
|
51375
|
+
WRITABLE_ROOT = await resolveWritableRoot(config, BROWSER_ROOT);
|
|
51376
|
+
GIT = await probeGit(BROWSER_ROOT);
|
|
51377
|
+
sandboxedTools = config.sandbox ? await createSandboxedTools(config.sandbox) : void 0;
|
|
51378
|
+
const { cancelled } = await runtime.newSession();
|
|
51379
|
+
if (!cancelled) await rebindAndAnnounce();
|
|
51380
|
+
} catch (error) {
|
|
51381
|
+
reportError(error);
|
|
51382
|
+
try {
|
|
51383
|
+
const { cancelled } = await runtime.newSession();
|
|
51384
|
+
if (!cancelled) await rebindAndAnnounce();
|
|
51385
|
+
} catch (recoveryError) {
|
|
51386
|
+
reportError(recoveryError);
|
|
51387
|
+
}
|
|
51388
|
+
} finally {
|
|
51389
|
+
replacingSession = false;
|
|
51390
|
+
}
|
|
51391
|
+
}
|
|
51314
51392
|
async function handleDeclareProvider(socket, declaration) {
|
|
51315
51393
|
try {
|
|
51316
51394
|
runtime.services.modelRuntime.registerProvider(declaration.provider, providerConfig(declaration));
|
|
@@ -51847,6 +51925,18 @@ function handleClientMessage(socket, raw) {
|
|
|
51847
51925
|
...message.compat ? { compat: message.compat } : {}
|
|
51848
51926
|
}).catch(reportError);
|
|
51849
51927
|
break;
|
|
51928
|
+
case "update_config": {
|
|
51929
|
+
if (config.sandbox === void 0) {
|
|
51930
|
+
send(socket, { type: "error", message: "No sandbox configured \u2014 cannot update" });
|
|
51931
|
+
return;
|
|
51932
|
+
}
|
|
51933
|
+
if (typeof message.sandbox?.root !== "string" || typeof message.sandbox.allowWrite !== "boolean" || typeof message.sandbox.allowBash !== "boolean" || message.sandbox.writableRoot !== void 0 && typeof message.sandbox.writableRoot !== "string") {
|
|
51934
|
+
send(socket, { type: "error", message: "Invalid sandbox config" });
|
|
51935
|
+
return;
|
|
51936
|
+
}
|
|
51937
|
+
handleUpdateConfig(socket, message.sandbox).catch(reportError);
|
|
51938
|
+
break;
|
|
51939
|
+
}
|
|
51850
51940
|
}
|
|
51851
51941
|
}
|
|
51852
51942
|
handleWsConnection = (socket) => {
|