pi-outpost 0.6.0 → 0.6.2
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 +88 -4
- package/dist/pi-outpost.sea.mjs +88 -4
- 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
|
@@ -37152,6 +37152,15 @@ function loadConfig(launchDir, flags = {}, env2 = process.env) {
|
|
|
37152
37152
|
fail(`sandbox.writableRoot does not exist: ${config2.sandbox.writableRoot}`);
|
|
37153
37153
|
}
|
|
37154
37154
|
}
|
|
37155
|
+
if (raw.sandboxLocks !== void 0) {
|
|
37156
|
+
const locks = asObject(raw.sandboxLocks, "sandboxLocks");
|
|
37157
|
+
config2.sandboxLocks = {
|
|
37158
|
+
root: optionalBoolean(locks, "root", false),
|
|
37159
|
+
allowWrite: optionalBoolean(locks, "allowWrite", false),
|
|
37160
|
+
allowBash: optionalBoolean(locks, "allowBash", false),
|
|
37161
|
+
writableRoot: optionalBoolean(locks, "writableRoot", false)
|
|
37162
|
+
};
|
|
37163
|
+
}
|
|
37155
37164
|
config2.tools = optionalStringArray(raw, "tools");
|
|
37156
37165
|
config2.noExtensions = optionalBoolean(raw, "noExtensions", false);
|
|
37157
37166
|
config2.extensionPaths = (optionalStringArray(raw, "extensionPaths") ?? []).map(resolve2);
|
|
@@ -50569,7 +50578,8 @@ function searchSessions(sessions, query, limit) {
|
|
|
50569
50578
|
var seaExtensionFactories = [];
|
|
50570
50579
|
|
|
50571
50580
|
// ../server/src/index.ts
|
|
50572
|
-
var VERSION2 = true ? "0.6.
|
|
50581
|
+
var VERSION2 = true ? "0.6.2" : "dev";
|
|
50582
|
+
var PI_SDK_VERSION = true ? "0.80.9" : "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);
|
|
@@ -50766,6 +50776,10 @@ app.get("/files/raw", async (req, reply) => {
|
|
|
50766
50776
|
});
|
|
50767
50777
|
var hasIndexHtml = (candidate) => fs7.stat(path8.join(candidate, "index.html")).then((s) => s.isFile()).catch(() => false);
|
|
50768
50778
|
var webDistCandidates = process.env.PI_OUTPOST_WEB_DIST ? [path8.resolve(process.env.PI_OUTPOST_WEB_DIST)] : [
|
|
50779
|
+
// Prefer the production build (Vite output) over the source web/ directory,
|
|
50780
|
+
// which contains a Vite-dev index.html referencing /src/main.tsx — that file
|
|
50781
|
+
// would be served as application/octet-stream and fail ESM module loading.
|
|
50782
|
+
path8.resolve(import.meta.dirname, "./web/dist"),
|
|
50769
50783
|
path8.resolve(import.meta.dirname, "./web"),
|
|
50770
50784
|
path8.resolve(import.meta.dirname, "../../web/dist")
|
|
50771
50785
|
];
|
|
@@ -50938,7 +50952,20 @@ function snapshot() {
|
|
|
50938
50952
|
contextUsage: contextUsage(),
|
|
50939
50953
|
writableRoot: WRITABLE_ROOT,
|
|
50940
50954
|
gitAvailable: GIT !== null,
|
|
50941
|
-
credentials: credentialStatus()
|
|
50955
|
+
credentials: credentialStatus(),
|
|
50956
|
+
extensionPaths: session.extensionRunner.getExtensionPaths(),
|
|
50957
|
+
versions: { piOutpost: VERSION2, piSdk: PI_SDK_VERSION },
|
|
50958
|
+
sandbox: (() => {
|
|
50959
|
+
const v2 = config.sandbox ? {
|
|
50960
|
+
root: config.sandbox.root,
|
|
50961
|
+
allowWrite: config.sandbox.allowWrite ?? false,
|
|
50962
|
+
allowBash: config.sandbox.allowBash ?? false,
|
|
50963
|
+
writableRoot: config.sandbox.writableRoot,
|
|
50964
|
+
locks: config.sandboxLocks
|
|
50965
|
+
} : void 0;
|
|
50966
|
+
console.log("[snapshot] sandbox =", JSON.stringify(v2));
|
|
50967
|
+
return v2;
|
|
50968
|
+
})()
|
|
50942
50969
|
};
|
|
50943
50970
|
}
|
|
50944
50971
|
var clients = /* @__PURE__ */ new Set();
|
|
@@ -51172,13 +51199,19 @@ async function bindExtensionsForSession() {
|
|
|
51172
51199
|
var pendingFileMutations = /* @__PURE__ */ new Map();
|
|
51173
51200
|
async function announceFileChange(args) {
|
|
51174
51201
|
const targetPath = args?.path;
|
|
51202
|
+
console.log("[announceFileChange] args type=", typeof args, "targetPath=", targetPath);
|
|
51175
51203
|
if (typeof targetPath !== "string") return;
|
|
51176
51204
|
try {
|
|
51177
51205
|
const resolved = await realResolve(path8.resolve(BROWSER_ROOT, targetPath));
|
|
51178
|
-
if (!isWithin(BROWSER_ROOT, resolved))
|
|
51206
|
+
if (!isWithin(BROWSER_ROOT, resolved)) {
|
|
51207
|
+
console.log("[announceFileChange] not within BROWSER_ROOT, skipping");
|
|
51208
|
+
return;
|
|
51209
|
+
}
|
|
51179
51210
|
const relPath = path8.relative(BROWSER_ROOT, resolved).split(path8.sep).join("/");
|
|
51211
|
+
console.log("[announceFileChange] broadcasting file_changed path=", relPath);
|
|
51180
51212
|
broadcast({ type: "file_changed", path: relPath });
|
|
51181
|
-
} catch {
|
|
51213
|
+
} catch (e) {
|
|
51214
|
+
console.log("[announceFileChange] error:", e);
|
|
51182
51215
|
}
|
|
51183
51216
|
}
|
|
51184
51217
|
function bindSession() {
|
|
@@ -51321,6 +51354,45 @@ async function handleSetCredential(socket, provider, apiKey) {
|
|
|
51321
51354
|
await runtime.services.modelRuntime.refresh();
|
|
51322
51355
|
await adoptUsableModel(socket);
|
|
51323
51356
|
}
|
|
51357
|
+
async function handleUpdateConfig(socket, newSandbox) {
|
|
51358
|
+
if (replacingSession) {
|
|
51359
|
+
send(socket, { type: "error", message: "Session change already in progress" });
|
|
51360
|
+
return;
|
|
51361
|
+
}
|
|
51362
|
+
const locks = config.sandboxLocks ?? {};
|
|
51363
|
+
const mergedSandbox = {
|
|
51364
|
+
root: locks.root ? config.sandbox.root : newSandbox.root,
|
|
51365
|
+
allowWrite: locks.allowWrite ? config.sandbox.allowWrite : newSandbox.allowWrite,
|
|
51366
|
+
allowBash: locks.allowBash ? config.sandbox.allowBash : newSandbox.allowBash,
|
|
51367
|
+
writableRoot: locks.writableRoot ? config.sandbox.writableRoot : newSandbox.writableRoot
|
|
51368
|
+
};
|
|
51369
|
+
replacingSession = true;
|
|
51370
|
+
try {
|
|
51371
|
+
config.sandbox = {
|
|
51372
|
+
root: mergedSandbox.root,
|
|
51373
|
+
allowWrite: mergedSandbox.allowWrite,
|
|
51374
|
+
allowBash: mergedSandbox.allowBash,
|
|
51375
|
+
writableRoot: mergedSandbox.writableRoot,
|
|
51376
|
+
readExceptions: config.sandbox?.readExceptions ?? []
|
|
51377
|
+
};
|
|
51378
|
+
BROWSER_ROOT = await resolveBrowserRoot(config);
|
|
51379
|
+
WRITABLE_ROOT = await resolveWritableRoot(config, BROWSER_ROOT);
|
|
51380
|
+
GIT = await probeGit(BROWSER_ROOT);
|
|
51381
|
+
sandboxedTools = config.sandbox ? await createSandboxedTools(config.sandbox) : void 0;
|
|
51382
|
+
const { cancelled } = await runtime.newSession();
|
|
51383
|
+
if (!cancelled) await rebindAndAnnounce();
|
|
51384
|
+
} catch (error) {
|
|
51385
|
+
reportError(error);
|
|
51386
|
+
try {
|
|
51387
|
+
const { cancelled } = await runtime.newSession();
|
|
51388
|
+
if (!cancelled) await rebindAndAnnounce();
|
|
51389
|
+
} catch (recoveryError) {
|
|
51390
|
+
reportError(recoveryError);
|
|
51391
|
+
}
|
|
51392
|
+
} finally {
|
|
51393
|
+
replacingSession = false;
|
|
51394
|
+
}
|
|
51395
|
+
}
|
|
51324
51396
|
async function handleDeclareProvider(socket, declaration) {
|
|
51325
51397
|
try {
|
|
51326
51398
|
runtime.services.modelRuntime.registerProvider(declaration.provider, providerConfig(declaration));
|
|
@@ -51857,6 +51929,18 @@ function handleClientMessage(socket, raw) {
|
|
|
51857
51929
|
...message.compat ? { compat: message.compat } : {}
|
|
51858
51930
|
}).catch(reportError);
|
|
51859
51931
|
break;
|
|
51932
|
+
case "update_config": {
|
|
51933
|
+
if (config.sandbox === void 0) {
|
|
51934
|
+
send(socket, { type: "error", message: "No sandbox configured \u2014 cannot update" });
|
|
51935
|
+
return;
|
|
51936
|
+
}
|
|
51937
|
+
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") {
|
|
51938
|
+
send(socket, { type: "error", message: "Invalid sandbox config" });
|
|
51939
|
+
return;
|
|
51940
|
+
}
|
|
51941
|
+
handleUpdateConfig(socket, message.sandbox).catch(reportError);
|
|
51942
|
+
break;
|
|
51943
|
+
}
|
|
51860
51944
|
}
|
|
51861
51945
|
}
|
|
51862
51946
|
handleWsConnection = (socket) => {
|
package/dist/pi-outpost.sea.mjs
CHANGED
|
@@ -371721,6 +371721,15 @@ function loadConfig(launchDir, flags = {}, env4 = process.env) {
|
|
|
371721
371721
|
fail2(`sandbox.writableRoot does not exist: ${config3.sandbox.writableRoot}`);
|
|
371722
371722
|
}
|
|
371723
371723
|
}
|
|
371724
|
+
if (raw.sandboxLocks !== void 0) {
|
|
371725
|
+
const locks = asObject(raw.sandboxLocks, "sandboxLocks");
|
|
371726
|
+
config3.sandboxLocks = {
|
|
371727
|
+
root: optionalBoolean(locks, "root", false),
|
|
371728
|
+
allowWrite: optionalBoolean(locks, "allowWrite", false),
|
|
371729
|
+
allowBash: optionalBoolean(locks, "allowBash", false),
|
|
371730
|
+
writableRoot: optionalBoolean(locks, "writableRoot", false)
|
|
371731
|
+
};
|
|
371732
|
+
}
|
|
371724
371733
|
config3.tools = optionalStringArray(raw, "tools");
|
|
371725
371734
|
config3.noExtensions = optionalBoolean(raw, "noExtensions", false);
|
|
371726
371735
|
config3.extensionPaths = (optionalStringArray(raw, "extensionPaths") ?? []).map(resolve15);
|
|
@@ -372807,7 +372816,8 @@ function searchSessions(sessions, query, limit2) {
|
|
|
372807
372816
|
var seaExtensionFactories = [];
|
|
372808
372817
|
|
|
372809
372818
|
// ../server/src/index.ts
|
|
372810
|
-
var VERSION6 = true ? "0.6.
|
|
372819
|
+
var VERSION6 = true ? "0.6.2" : "dev";
|
|
372820
|
+
var PI_SDK_VERSION = true ? "0.80.9" : "dev";
|
|
372811
372821
|
var LAUNCH_DIR = process.env.INIT_CWD ?? process.cwd();
|
|
372812
372822
|
function complain(error40) {
|
|
372813
372823
|
const message = error40 instanceof Error ? error40.message : String(error40);
|
|
@@ -373004,6 +373014,10 @@ app.get("/files/raw", async (req, reply) => {
|
|
|
373004
373014
|
});
|
|
373005
373015
|
var hasIndexHtml = (candidate) => fs17.stat(path22.join(candidate, "index.html")).then((s2) => s2.isFile()).catch(() => false);
|
|
373006
373016
|
var webDistCandidates = process.env.PI_OUTPOST_WEB_DIST ? [path22.resolve(process.env.PI_OUTPOST_WEB_DIST)] : [
|
|
373017
|
+
// Prefer the production build (Vite output) over the source web/ directory,
|
|
373018
|
+
// which contains a Vite-dev index.html referencing /src/main.tsx — that file
|
|
373019
|
+
// would be served as application/octet-stream and fail ESM module loading.
|
|
373020
|
+
path22.resolve(import.meta.dirname, "./web/dist"),
|
|
373007
373021
|
path22.resolve(import.meta.dirname, "./web"),
|
|
373008
373022
|
path22.resolve(import.meta.dirname, "../../web/dist")
|
|
373009
373023
|
];
|
|
@@ -373176,7 +373190,20 @@ function snapshot() {
|
|
|
373176
373190
|
contextUsage: contextUsage(),
|
|
373177
373191
|
writableRoot: WRITABLE_ROOT,
|
|
373178
373192
|
gitAvailable: GIT !== null,
|
|
373179
|
-
credentials: credentialStatus()
|
|
373193
|
+
credentials: credentialStatus(),
|
|
373194
|
+
extensionPaths: session.extensionRunner.getExtensionPaths(),
|
|
373195
|
+
versions: { piOutpost: VERSION6, piSdk: PI_SDK_VERSION },
|
|
373196
|
+
sandbox: (() => {
|
|
373197
|
+
const v3 = config2.sandbox ? {
|
|
373198
|
+
root: config2.sandbox.root,
|
|
373199
|
+
allowWrite: config2.sandbox.allowWrite ?? false,
|
|
373200
|
+
allowBash: config2.sandbox.allowBash ?? false,
|
|
373201
|
+
writableRoot: config2.sandbox.writableRoot,
|
|
373202
|
+
locks: config2.sandboxLocks
|
|
373203
|
+
} : void 0;
|
|
373204
|
+
console.log("[snapshot] sandbox =", JSON.stringify(v3));
|
|
373205
|
+
return v3;
|
|
373206
|
+
})()
|
|
373180
373207
|
};
|
|
373181
373208
|
}
|
|
373182
373209
|
var clients = /* @__PURE__ */ new Set();
|
|
@@ -373410,13 +373437,19 @@ async function bindExtensionsForSession() {
|
|
|
373410
373437
|
var pendingFileMutations = /* @__PURE__ */ new Map();
|
|
373411
373438
|
async function announceFileChange(args) {
|
|
373412
373439
|
const targetPath = args?.path;
|
|
373440
|
+
console.log("[announceFileChange] args type=", typeof args, "targetPath=", targetPath);
|
|
373413
373441
|
if (typeof targetPath !== "string") return;
|
|
373414
373442
|
try {
|
|
373415
373443
|
const resolved = await realResolve(path22.resolve(BROWSER_ROOT, targetPath));
|
|
373416
|
-
if (!isWithin(BROWSER_ROOT, resolved))
|
|
373444
|
+
if (!isWithin(BROWSER_ROOT, resolved)) {
|
|
373445
|
+
console.log("[announceFileChange] not within BROWSER_ROOT, skipping");
|
|
373446
|
+
return;
|
|
373447
|
+
}
|
|
373417
373448
|
const relPath = path22.relative(BROWSER_ROOT, resolved).split(path22.sep).join("/");
|
|
373449
|
+
console.log("[announceFileChange] broadcasting file_changed path=", relPath);
|
|
373418
373450
|
broadcast({ type: "file_changed", path: relPath });
|
|
373419
|
-
} catch {
|
|
373451
|
+
} catch (e2) {
|
|
373452
|
+
console.log("[announceFileChange] error:", e2);
|
|
373420
373453
|
}
|
|
373421
373454
|
}
|
|
373422
373455
|
function bindSession() {
|
|
@@ -373559,6 +373592,45 @@ async function handleSetCredential(socket, provider, apiKey) {
|
|
|
373559
373592
|
await runtime.services.modelRuntime.refresh();
|
|
373560
373593
|
await adoptUsableModel(socket);
|
|
373561
373594
|
}
|
|
373595
|
+
async function handleUpdateConfig(socket, newSandbox) {
|
|
373596
|
+
if (replacingSession) {
|
|
373597
|
+
send(socket, { type: "error", message: "Session change already in progress" });
|
|
373598
|
+
return;
|
|
373599
|
+
}
|
|
373600
|
+
const locks = config2.sandboxLocks ?? {};
|
|
373601
|
+
const mergedSandbox = {
|
|
373602
|
+
root: locks.root ? config2.sandbox.root : newSandbox.root,
|
|
373603
|
+
allowWrite: locks.allowWrite ? config2.sandbox.allowWrite : newSandbox.allowWrite,
|
|
373604
|
+
allowBash: locks.allowBash ? config2.sandbox.allowBash : newSandbox.allowBash,
|
|
373605
|
+
writableRoot: locks.writableRoot ? config2.sandbox.writableRoot : newSandbox.writableRoot
|
|
373606
|
+
};
|
|
373607
|
+
replacingSession = true;
|
|
373608
|
+
try {
|
|
373609
|
+
config2.sandbox = {
|
|
373610
|
+
root: mergedSandbox.root,
|
|
373611
|
+
allowWrite: mergedSandbox.allowWrite,
|
|
373612
|
+
allowBash: mergedSandbox.allowBash,
|
|
373613
|
+
writableRoot: mergedSandbox.writableRoot,
|
|
373614
|
+
readExceptions: config2.sandbox?.readExceptions ?? []
|
|
373615
|
+
};
|
|
373616
|
+
BROWSER_ROOT = await resolveBrowserRoot(config2);
|
|
373617
|
+
WRITABLE_ROOT = await resolveWritableRoot(config2, BROWSER_ROOT);
|
|
373618
|
+
GIT = await probeGit(BROWSER_ROOT);
|
|
373619
|
+
sandboxedTools = config2.sandbox ? await createSandboxedTools(config2.sandbox) : void 0;
|
|
373620
|
+
const { cancelled } = await runtime.newSession();
|
|
373621
|
+
if (!cancelled) await rebindAndAnnounce();
|
|
373622
|
+
} catch (error40) {
|
|
373623
|
+
reportError(error40);
|
|
373624
|
+
try {
|
|
373625
|
+
const { cancelled } = await runtime.newSession();
|
|
373626
|
+
if (!cancelled) await rebindAndAnnounce();
|
|
373627
|
+
} catch (recoveryError) {
|
|
373628
|
+
reportError(recoveryError);
|
|
373629
|
+
}
|
|
373630
|
+
} finally {
|
|
373631
|
+
replacingSession = false;
|
|
373632
|
+
}
|
|
373633
|
+
}
|
|
373562
373634
|
async function handleDeclareProvider(socket, declaration) {
|
|
373563
373635
|
try {
|
|
373564
373636
|
runtime.services.modelRuntime.registerProvider(declaration.provider, providerConfig(declaration));
|
|
@@ -374095,6 +374167,18 @@ function handleClientMessage(socket, raw) {
|
|
|
374095
374167
|
...message.compat ? { compat: message.compat } : {}
|
|
374096
374168
|
}).catch(reportError);
|
|
374097
374169
|
break;
|
|
374170
|
+
case "update_config": {
|
|
374171
|
+
if (config2.sandbox === void 0) {
|
|
374172
|
+
send(socket, { type: "error", message: "No sandbox configured \u2014 cannot update" });
|
|
374173
|
+
return;
|
|
374174
|
+
}
|
|
374175
|
+
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") {
|
|
374176
|
+
send(socket, { type: "error", message: "Invalid sandbox config" });
|
|
374177
|
+
return;
|
|
374178
|
+
}
|
|
374179
|
+
handleUpdateConfig(socket, message.sandbox).catch(reportError);
|
|
374180
|
+
break;
|
|
374181
|
+
}
|
|
374098
374182
|
}
|
|
374099
374183
|
}
|
|
374100
374184
|
handleWsConnection = (socket) => {
|
package/dist/sea-prep.blob
CHANGED
|
Binary file
|
package/dist/web/assets/{abnfDiagram-VRR7QNED-Ddbaevlx.js → abnfDiagram-VRR7QNED-H5_VO-B1.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e,t}from"./mermaid-parser.core-
|
|
1
|
+
import{m as e,t}from"./mermaid-parser.core-BqDBKvZM.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-D_DMwmBd.js";import"./chunk-WYO6CB5R-krESB1wz.js";import"./chunk-VAUOI2AC-C9EyY67a.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CtF6fAD2.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./path-BWPyau1x.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-
|
|
1
|
+
import{n as e,t}from"./path-BWPyau1x.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-eoi0_oI4.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i)if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-KEIR6QF5-BfrZ3jm6.js";import{M as e}from"./mermaid-parser.core-BqDBKvZM.js";export{e as createArchitectureServices};
|