@runweave/server-linux-x64 0.1.4 → 0.1.6
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/manifest.json +155 -155
- package/native.tar.gz +0 -0
- package/package.json +1 -1
- package/payload/app-server/build-info.json +4 -4
- package/payload/app-server/index.cjs +127 -95
- package/payload/app-server/index.cjs.map +1 -1
- package/payload/backend/activity-sqlite-worker.cjs +7593 -44
- package/payload/backend/build-info.json +4 -4
- package/payload/backend/dev-resources/control.cjs +211 -160
- package/payload/backend/index.cjs +2936 -1988
- package/payload/bin/runtime.cjs +22 -5
- package/payload/frontend/dist/assets/{_baseUniq-2DZJ97aQ.js → _baseUniq-i1Ki3twP.js} +1 -1
- package/payload/frontend/dist/assets/{access-Jw5gZrYY.js → access-DK9V0f3W.js} +1 -1
- package/payload/frontend/dist/assets/{advanced-DRe-Doxo.js → advanced-B13lWv1d.js} +1 -1
- package/payload/frontend/dist/assets/{appearance-D1wpkdXT.js → appearance-DumRYmkD.js} +1 -1
- package/payload/frontend/dist/assets/{arc-keTQ5uhA.js → arc-HKn3_xyV.js} +1 -1
- package/payload/frontend/dist/assets/{architectureDiagram-Q4EWVU46-BXbCJ77m.js → architectureDiagram-Q4EWVU46-C09x7b94.js} +1 -1
- package/payload/frontend/dist/assets/{blockDiagram-DXYQGD6D-De0Ki8tO.js → blockDiagram-DXYQGD6D-CFLFTR6d.js} +1 -1
- package/payload/frontend/dist/assets/{c4Diagram-AHTNJAMY-EfazoSVi.js → c4Diagram-AHTNJAMY-8P8Q-xqC.js} +1 -1
- package/payload/frontend/dist/assets/channel-CuSisha8.js +1 -0
- package/payload/frontend/dist/assets/{chunk-4BX2VUAB-BXCGPL07.js → chunk-4BX2VUAB-B1KEkTal.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-4TB4RGXK-ByjQ1_yc.js → chunk-4TB4RGXK-Bu_Z47kJ.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-55IACEB6-D-KjMbGJ.js → chunk-55IACEB6-xzHVCHyi.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-EDXVE4YY-tAgLMZ4w.js → chunk-EDXVE4YY-h3HAW06h.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-FMBD7UC4-D3J3ERtV.js → chunk-FMBD7UC4-CQ4faPSh.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-OYMX7WX6-DZHtmvkW.js → chunk-OYMX7WX6-CubmLoGT.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-QZHKN3VN-D6IIGd1d.js → chunk-QZHKN3VN-xk0zKNja.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-YZCP3GAM-KD19-lMa.js → chunk-YZCP3GAM-CHpTv8sd.js} +1 -1
- package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-ClJkT7PY.js +1 -0
- package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-ClJkT7PY.js +1 -0
- package/payload/frontend/dist/assets/clone-CPcyXi9g.js +1 -0
- package/payload/frontend/dist/assets/{connection-Cm6G1HOW.js → connection-BhcgnOMb.js} +1 -1
- package/payload/frontend/dist/assets/{connections-B8tSRWt9.js → connections-A7InZw2T.js} +1 -1
- package/payload/frontend/dist/assets/{cose-bilkent-S5V4N54A-AYXbL8jP.js → cose-bilkent-S5V4N54A-CQn27vi_.js} +1 -1
- package/payload/frontend/dist/assets/{dagre-KV5264BT-DCunJ-sG.js → dagre-KV5264BT-CClOwB9v.js} +1 -1
- package/payload/frontend/dist/assets/{desktop-DnY652OH.js → desktop-BgryfXXM.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-5BDNPKRD-Ch2b63ll.js → diagram-5BDNPKRD-DcUJOAmV.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-G4DWMVQ6-BAuc_Uar.js → diagram-G4DWMVQ6-DdabmTwk.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-MMDJMWI5-DH8qMuDA.js → diagram-MMDJMWI5-DmcxjBIk.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-TYMM5635-BflD7Kjb.js → diagram-TYMM5635-BUSpXaiN.js} +1 -1
- package/payload/frontend/dist/assets/{erDiagram-SMLLAGMA-BGzvzTP9.js → erDiagram-SMLLAGMA-vkAXcv5_.js} +1 -1
- package/payload/frontend/dist/assets/{flowDiagram-DWJPFMVM-BR4mXArp.js → flowDiagram-DWJPFMVM-BHDU7BUJ.js} +1 -1
- package/payload/frontend/dist/assets/{ganttDiagram-T4ZO3ILL-uXtJoz5O.js → ganttDiagram-T4ZO3ILL-C3lAG7_6.js} +1 -1
- package/payload/frontend/dist/assets/{gitGraphDiagram-UUTBAWPF-BeLB68OO.js → gitGraphDiagram-UUTBAWPF-DHLyYJf7.js} +1 -1
- package/payload/frontend/dist/assets/{graph-DakNuFNs.js → graph-Bp5bIzXM.js} +1 -1
- package/payload/frontend/dist/assets/{image-BICNaNq8.js → image-DkcKNLTV.js} +1 -1
- package/payload/frontend/dist/assets/index-BUS7FSlk.js +458 -0
- package/payload/frontend/dist/assets/{infoDiagram-42DDH7IO-CAGn0b04.js → infoDiagram-42DDH7IO-CVp9zvmA.js} +1 -1
- package/payload/frontend/dist/assets/{ishikawaDiagram-UXIWVN3A-fbaDUCpd.js → ishikawaDiagram-UXIWVN3A-D07QPX3O.js} +1 -1
- package/payload/frontend/dist/assets/{journeyDiagram-VCZTEJTY-ZOmjleqG.js → journeyDiagram-VCZTEJTY-D-iZPDHM.js} +1 -1
- package/payload/frontend/dist/assets/{kanban-definition-6JOO6SKY-BmODq4tv.js → kanban-definition-6JOO6SKY-BR4eWb08.js} +1 -1
- package/payload/frontend/dist/assets/{layout-CLfuo3Vs.js → layout-Cyv0DyJm.js} +1 -1
- package/payload/frontend/dist/assets/{linear-csTsZ7Al.js → linear-D5M7Pvj1.js} +1 -1
- package/payload/frontend/dist/assets/{main-DwDuhfcr.js → main-BDBhLSX2.js} +151 -151
- package/payload/frontend/dist/assets/main-Cg6Oo1xK.css +33 -0
- package/payload/frontend/dist/assets/{min-B4B7Rr4j.js → min-BFlloFGg.js} +1 -1
- package/payload/frontend/dist/assets/{mindmap-definition-QFDTVHPH-CiV2UasH.js → mindmap-definition-QFDTVHPH-AKUF178o.js} +1 -1
- package/payload/frontend/dist/assets/{monitoring-1_Fnxura.js → monitoring-B2okceCB.js} +1 -1
- package/payload/frontend/dist/assets/{notifications-VJaMbzoX.js → notifications-0lql4_qJ.js} +1 -1
- package/payload/frontend/dist/assets/{pieDiagram-DEJITSTG-DwazVxKI.js → pieDiagram-DEJITSTG-CRiHmwn7.js} +1 -1
- package/payload/frontend/dist/assets/{quadrantDiagram-34T5L4WZ-CAn9HHbO.js → quadrantDiagram-34T5L4WZ-CzXrq7IJ.js} +1 -1
- package/payload/frontend/dist/assets/{record-content-Bewq09_f.js → record-content-DTCQKbEj.js} +1 -1
- package/payload/frontend/dist/assets/{requirementDiagram-MS252O5E-CFot9peV.js → requirementDiagram-MS252O5E-Bbn5ulLV.js} +1 -1
- package/payload/frontend/dist/assets/{sankeyDiagram-XADWPNL6-CdRX6WuA.js → sankeyDiagram-XADWPNL6-D9ZZ46pQ.js} +1 -1
- package/payload/frontend/dist/assets/{sequenceDiagram-FGHM5R23-vRc1a5W1.js → sequenceDiagram-FGHM5R23-DxOP2gDa.js} +1 -1
- package/payload/frontend/dist/assets/{stateDiagram-FHFEXIEX-Bxcr7s70.js → stateDiagram-FHFEXIEX-NF_Qq5Cq.js} +1 -1
- package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-DhdOfEAv.js +1 -0
- package/payload/frontend/dist/assets/{status-9tZZeoV7.js → status-2U71YpVe.js} +1 -1
- package/payload/frontend/dist/assets/suiji-DXtfgwxj.js +1 -0
- package/payload/frontend/dist/assets/{svg-qpyWsADE.js → svg-DpI3GSCw.js} +1 -1
- package/payload/frontend/dist/assets/{tabs-CwPtRQY0.js → tabs-CYKuiiHg.js} +1 -1
- package/payload/frontend/dist/assets/{timeline-definition-GMOUNBTQ-2mD2ePS6.js → timeline-definition-GMOUNBTQ-ChEZSNF_.js} +1 -1
- package/payload/frontend/dist/assets/{vennDiagram-DHZGUBPP-w4DbLykx.js → vennDiagram-DHZGUBPP-Ch26SNbB.js} +1 -1
- package/payload/frontend/dist/assets/{wardley-RL74JXVD-C3H8SQaZ.js → wardley-RL74JXVD-D0ap5vv0.js} +1 -1
- package/payload/frontend/dist/assets/{wardleyDiagram-NUSXRM2D-DEI0kC2c.js → wardleyDiagram-NUSXRM2D-btdjsmHO.js} +1 -1
- package/payload/frontend/dist/assets/{xychartDiagram-5P7HB3ND-DDVlpQ28.js → xychartDiagram-5P7HB3ND-CklPtFGT.js} +1 -1
- package/payload/frontend/dist/build-info.json +4 -4
- package/payload/frontend/dist/companion.html +1 -1
- package/payload/frontend/dist/index.html +3 -3
- package/payload/server/index.cjs +165 -107
- package/payload/frontend/dist/assets/channel-CExZE0tD.js +0 -1
- package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-DNOAkizi.js +0 -1
- package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-DNOAkizi.js +0 -1
- package/payload/frontend/dist/assets/clone-CzOxlTa8.js +0 -1
- package/payload/frontend/dist/assets/index-Cf9Vl4GJ.js +0 -458
- package/payload/frontend/dist/assets/main-DtzgJZEf.css +0 -33
- package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-YGvbZNwL.js +0 -1
- package/payload/frontend/dist/assets/suiji-DX2ioZ0I.js +0 -1
package/native.tar.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.1.0",
|
|
3
|
-
"buildId": "
|
|
4
|
-
"sourceRevision": "
|
|
3
|
+
"buildId": "20261108T113257171Z-480c12d6",
|
|
4
|
+
"sourceRevision": "480c12d6f84124b98d7908b6317fc1a067480bbb",
|
|
5
5
|
"sourceDirty": false,
|
|
6
|
-
"builtAt": "2026-11-
|
|
7
|
-
"contentSha256": "
|
|
6
|
+
"builtAt": "2026-11-08T11:32:57.171Z",
|
|
7
|
+
"contentSha256": "9d35815d7ecbf345ce1ff15eaae37eb2b88f6df5289e67f3991b156aac3e2c62"
|
|
8
8
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* runweave:build-info */var __RUNWEAVE_BUILD_INFO__={"version":"0.1.0","buildId":"
|
|
1
|
+
/* runweave:build-info */var __RUNWEAVE_BUILD_INFO__={"version":"0.1.0","buildId":"20261108T113257171Z-480c12d6","sourceRevision":"480c12d6f84124b98d7908b6317fc1a067480bbb","sourceDirty":false,"builtAt":"2026-11-08T11:32:57.171Z","contentSha256":"9d35815d7ecbf345ce1ff15eaae37eb2b88f6df5289e67f3991b156aac3e2c62"};
|
|
2
2
|
const __IMPORT_META_URL__ = require('url').pathToFileURL(__filename).href;
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -34557,21 +34557,57 @@ var ConfigurationError = class extends Error {
|
|
|
34557
34557
|
|
|
34558
34558
|
// packages/config-node/src/private-file.ts
|
|
34559
34559
|
var import_node_fs4 = require("node:fs");
|
|
34560
|
+
|
|
34561
|
+
// packages/config-node/src/windows-permissions.ts
|
|
34562
|
+
var import_node_child_process = require("node:child_process");
|
|
34563
|
+
function assertWindowsPrivatePath(file) {
|
|
34564
|
+
if (process.platform !== "win32") return;
|
|
34565
|
+
const script = `
|
|
34566
|
+
$ErrorActionPreference = 'Stop'
|
|
34567
|
+
# Use .NET directly: a parent pwsh may export a PSModulePath incompatible with Windows PowerShell.
|
|
34568
|
+
$acl = if ([IO.Directory]::Exists($env:RUNWEAVE_PRIVATE_PATH)) {
|
|
34569
|
+
[IO.Directory]::GetAccessControl($env:RUNWEAVE_PRIVATE_PATH)
|
|
34570
|
+
} else { [IO.File]::GetAccessControl($env:RUNWEAVE_PRIVATE_PATH) }
|
|
34571
|
+
$sid = [Security.Principal.WindowsIdentity]::GetCurrent().User
|
|
34572
|
+
$allowed = @($sid.Value, 'S-1-5-18', 'S-1-5-32-544')
|
|
34573
|
+
if ($acl.GetOwner([Security.Principal.SecurityIdentifier]).Value -notin $allowed) { throw 'owner' }
|
|
34574
|
+
foreach ($rule in $acl.GetAccessRules($true, $true, [Security.Principal.SecurityIdentifier])) {
|
|
34575
|
+
if ($rule.AccessControlType -eq 'Allow' -and $rule.IdentityReference.Value -notin $allowed) { throw 'access' }
|
|
34576
|
+
}
|
|
34577
|
+
`;
|
|
34578
|
+
try {
|
|
34579
|
+
(0, import_node_child_process.execFileSync)("powershell.exe", ["-NoProfile", "-NonInteractive", "-EncodedCommand", Buffer.from(script, "utf16le").toString("base64")], {
|
|
34580
|
+
env: { ...process.env, RUNWEAVE_PRIVATE_PATH: file },
|
|
34581
|
+
stdio: "ignore",
|
|
34582
|
+
timeout: 1e4,
|
|
34583
|
+
windowsHide: true
|
|
34584
|
+
});
|
|
34585
|
+
} catch {
|
|
34586
|
+
throw new ConfigurationError("CONFIG_WINDOWS_ACL_NOT_PRIVATE", [file]);
|
|
34587
|
+
}
|
|
34588
|
+
}
|
|
34589
|
+
|
|
34590
|
+
// packages/config-node/src/private-file.ts
|
|
34560
34591
|
function assertPrivateDirectory(directory) {
|
|
34561
34592
|
const stat3 = (0, import_node_fs4.lstatSync)(directory);
|
|
34562
|
-
if (!stat3.isDirectory() || stat3.isSymbolicLink() || stat3.mode & 63 || typeof process.getuid === "function" && stat3.uid !== process.getuid()) throw new ConfigurationError("CONFIG_ROOT_PERMISSIONS_INVALID");
|
|
34593
|
+
if (!stat3.isDirectory() || stat3.isSymbolicLink() || process.platform !== "win32" && stat3.mode & 63 || typeof process.getuid === "function" && stat3.uid !== process.getuid()) throw new ConfigurationError("CONFIG_ROOT_PERMISSIONS_INVALID");
|
|
34594
|
+
assertWindowsPrivatePath(directory);
|
|
34563
34595
|
}
|
|
34564
|
-
function assertPrivateDescriptor(fd, maxBytes = 1024 * 1024) {
|
|
34596
|
+
function assertPrivateDescriptor(fd, maxBytes = 1024 * 1024, file) {
|
|
34565
34597
|
const stat3 = (0, import_node_fs4.fstatSync)(fd);
|
|
34566
34598
|
if (!stat3.isFile() || stat3.nlink !== 1) throw new ConfigurationError("CONFIG_FILE_NOT_PRIVATE_REGULAR");
|
|
34567
34599
|
if (typeof process.getuid === "function" && stat3.uid !== process.getuid()) throw new ConfigurationError("CONFIG_FILE_OWNER_MISMATCH");
|
|
34568
|
-
if (stat3.mode & 63) throw new ConfigurationError("CONFIG_FILE_PERMISSIONS_INVALID");
|
|
34600
|
+
if (process.platform !== "win32" && stat3.mode & 63) throw new ConfigurationError("CONFIG_FILE_PERMISSIONS_INVALID");
|
|
34601
|
+
if (process.platform === "win32") {
|
|
34602
|
+
if (!file) throw new ConfigurationError("CONFIG_PRIVATE_PATH_REQUIRED");
|
|
34603
|
+
assertWindowsPrivatePath(file);
|
|
34604
|
+
}
|
|
34569
34605
|
if (stat3.size > maxBytes) throw new ConfigurationError("CONFIG_FILE_TOO_LARGE");
|
|
34570
34606
|
}
|
|
34571
34607
|
function readPrivateFile(file, maxBytes = 1024 * 1024) {
|
|
34572
34608
|
const fd = (0, import_node_fs4.openSync)(file, import_node_fs4.constants.O_RDONLY | import_node_fs4.constants.O_NOFOLLOW);
|
|
34573
34609
|
try {
|
|
34574
|
-
assertPrivateDescriptor(fd, maxBytes);
|
|
34610
|
+
assertPrivateDescriptor(fd, maxBytes, file);
|
|
34575
34611
|
const source = (0, import_node_fs4.readFileSync)(fd, "utf8");
|
|
34576
34612
|
if (Buffer.byteLength(source) > maxBytes) throw new ConfigurationError("CONFIG_FILE_TOO_LARGE");
|
|
34577
34613
|
return source;
|
|
@@ -34646,15 +34682,27 @@ function assertOwnedPath(context, value) {
|
|
|
34646
34682
|
}
|
|
34647
34683
|
}
|
|
34648
34684
|
|
|
34649
|
-
// packages/config-node/src/
|
|
34685
|
+
// packages/config-node/src/platform.ts
|
|
34650
34686
|
var import_node_fs6 = require("node:fs");
|
|
34687
|
+
function syncDirectory(directory) {
|
|
34688
|
+
if (process.platform === "win32") return;
|
|
34689
|
+
const fd = (0, import_node_fs6.openSync)(directory, "r");
|
|
34690
|
+
try {
|
|
34691
|
+
(0, import_node_fs6.fsyncSync)(fd);
|
|
34692
|
+
} finally {
|
|
34693
|
+
(0, import_node_fs6.closeSync)(fd);
|
|
34694
|
+
}
|
|
34695
|
+
}
|
|
34696
|
+
|
|
34697
|
+
// packages/config-node/src/owner.ts
|
|
34698
|
+
var import_node_fs7 = require("node:fs");
|
|
34651
34699
|
var import_node_path4 = __toESM(require("node:path"), 1);
|
|
34652
34700
|
var import_node_os2 = __toESM(require("node:os"), 1);
|
|
34653
34701
|
var import_node_crypto3 = require("node:crypto");
|
|
34654
34702
|
var import_fs_native_extensions = require("fs-native-extensions");
|
|
34655
34703
|
function ownerDirectory(context) {
|
|
34656
34704
|
const directory = context.kind === "stable" ? import_node_path4.default.join(import_node_os2.default.userInfo().homedir, ".runweave", "runtime") : import_node_path4.default.join(context.configRoot, "runtime");
|
|
34657
|
-
(0,
|
|
34705
|
+
(0, import_node_fs7.mkdirSync)(directory, { recursive: true, mode: 448 });
|
|
34658
34706
|
assertPrivateDirectory(import_node_path4.default.dirname(directory));
|
|
34659
34707
|
assertPrivateDirectory(directory);
|
|
34660
34708
|
return directory;
|
|
@@ -34663,11 +34711,11 @@ function registerStableConfigurationRoot(context) {
|
|
|
34663
34711
|
if (context.kind !== "stable") return;
|
|
34664
34712
|
const directory = ownerDirectory(context);
|
|
34665
34713
|
const registry = import_node_path4.default.join(directory, "stable-root.json");
|
|
34666
|
-
const registryFd = (0,
|
|
34714
|
+
const registryFd = (0, import_node_fs7.openSync)(import_node_path4.default.join(directory, "stable-root.lock"), import_node_fs7.constants.O_CREAT | import_node_fs7.constants.O_RDWR | import_node_fs7.constants.O_NOFOLLOW, 384);
|
|
34667
34715
|
try {
|
|
34668
|
-
assertPrivateDescriptor(registryFd);
|
|
34716
|
+
assertPrivateDescriptor(registryFd, void 0, import_node_path4.default.join(directory, "stable-root.lock"));
|
|
34669
34717
|
if (!(0, import_fs_native_extensions.tryLock)(registryFd)) throw new ConfigurationError("CONFIG_ROOT_REGISTRATION_BUSY");
|
|
34670
|
-
if ((0,
|
|
34718
|
+
if ((0, import_node_fs7.existsSync)(registry)) {
|
|
34671
34719
|
let stored;
|
|
34672
34720
|
try {
|
|
34673
34721
|
stored = JSON.parse(readPrivateFile(registry));
|
|
@@ -34677,34 +34725,29 @@ function registerStableConfigurationRoot(context) {
|
|
|
34677
34725
|
if (!stored || typeof stored !== "object" || !("root" in stored) || stored.root !== canonicalPath(context.configRoot)) throw new ConfigurationError("CONFIG_STABLE_ROOT_CONFLICT");
|
|
34678
34726
|
} else {
|
|
34679
34727
|
const temporary = `${registry}.${(0, import_node_crypto3.randomUUID)()}.tmp`;
|
|
34680
|
-
const file = (0,
|
|
34681
|
-
try {
|
|
34682
|
-
(0, import_node_fs6.writeFileSync)(file, JSON.stringify({ root: canonicalPath(context.configRoot) }));
|
|
34683
|
-
(0, import_node_fs6.fsyncSync)(file);
|
|
34684
|
-
} finally {
|
|
34685
|
-
(0, import_node_fs6.closeSync)(file);
|
|
34686
|
-
}
|
|
34687
|
-
(0, import_node_fs6.renameSync)(temporary, registry);
|
|
34688
|
-
const parent = (0, import_node_fs6.openSync)(directory, "r");
|
|
34728
|
+
const file = (0, import_node_fs7.openSync)(temporary, "wx", 384);
|
|
34689
34729
|
try {
|
|
34690
|
-
(0,
|
|
34730
|
+
(0, import_node_fs7.writeFileSync)(file, JSON.stringify({ root: canonicalPath(context.configRoot) }));
|
|
34731
|
+
(0, import_node_fs7.fsyncSync)(file);
|
|
34691
34732
|
} finally {
|
|
34692
|
-
(0,
|
|
34733
|
+
(0, import_node_fs7.closeSync)(file);
|
|
34693
34734
|
}
|
|
34735
|
+
(0, import_node_fs7.renameSync)(temporary, registry);
|
|
34736
|
+
syncDirectory(directory);
|
|
34694
34737
|
}
|
|
34695
34738
|
} finally {
|
|
34696
|
-
(0,
|
|
34739
|
+
(0, import_node_fs7.closeSync)(registryFd);
|
|
34697
34740
|
}
|
|
34698
34741
|
}
|
|
34699
34742
|
function withUpgradeGate(context, shared, run) {
|
|
34700
34743
|
const directory = ownerDirectory(context);
|
|
34701
|
-
const fd = (0,
|
|
34744
|
+
const fd = (0, import_node_fs7.openSync)(import_node_path4.default.join(directory, "configuration-upgrade.lock"), import_node_fs7.constants.O_CREAT | import_node_fs7.constants.O_RDWR | import_node_fs7.constants.O_NOFOLLOW, 384);
|
|
34702
34745
|
try {
|
|
34703
|
-
assertPrivateDescriptor(fd);
|
|
34746
|
+
assertPrivateDescriptor(fd, void 0, import_node_path4.default.join(directory, "configuration-upgrade.lock"));
|
|
34704
34747
|
if (!(0, import_fs_native_extensions.tryLock)(fd, 0, 0, { shared })) throw new ConfigurationError("CONFIG_UPGRADE_BUSY");
|
|
34705
34748
|
return run();
|
|
34706
34749
|
} finally {
|
|
34707
|
-
(0,
|
|
34750
|
+
(0, import_node_fs7.closeSync)(fd);
|
|
34708
34751
|
}
|
|
34709
34752
|
}
|
|
34710
34753
|
function withConfigurationUpgradeOwnership(context, run, ignoredRoles = []) {
|
|
@@ -34712,16 +34755,16 @@ function withConfigurationUpgradeOwnership(context, run, ignoredRoles = []) {
|
|
|
34712
34755
|
const directory = ownerDirectory(context);
|
|
34713
34756
|
const held = [];
|
|
34714
34757
|
try {
|
|
34715
|
-
for (const file of (0,
|
|
34758
|
+
for (const file of (0, import_node_fs7.readdirSync)(directory).filter((name) => name.endsWith(".owner.lock"))) {
|
|
34716
34759
|
if (ignoredRoles.includes(file.replace(/\.owner\.lock$/, ""))) continue;
|
|
34717
|
-
const fd = (0,
|
|
34760
|
+
const fd = (0, import_node_fs7.openSync)(import_node_path4.default.join(directory, file), import_node_fs7.constants.O_RDWR | import_node_fs7.constants.O_NOFOLLOW);
|
|
34718
34761
|
held.push(fd);
|
|
34719
|
-
assertPrivateDescriptor(fd);
|
|
34762
|
+
assertPrivateDescriptor(fd, void 0, import_node_path4.default.join(directory, file));
|
|
34720
34763
|
if (!(0, import_fs_native_extensions.tryLock)(fd)) throw new ConfigurationError("CONFIG_UPGRADE_CONSUMER_RUNNING", [file.replace(/\.owner\.lock$/, "")]);
|
|
34721
34764
|
}
|
|
34722
34765
|
return run();
|
|
34723
34766
|
} finally {
|
|
34724
|
-
for (const fd of held) (0,
|
|
34767
|
+
for (const fd of held) (0, import_node_fs7.closeSync)(fd);
|
|
34725
34768
|
}
|
|
34726
34769
|
});
|
|
34727
34770
|
}
|
|
@@ -34730,16 +34773,16 @@ function acquireConfigurationOwner(context, role) {
|
|
|
34730
34773
|
}
|
|
34731
34774
|
function acquireOwner(context, role) {
|
|
34732
34775
|
const directory = ownerDirectory(context);
|
|
34733
|
-
const fd = (0,
|
|
34776
|
+
const fd = (0, import_node_fs7.openSync)(import_node_path4.default.join(directory, `${role}.owner.lock`), import_node_fs7.constants.O_CREAT | import_node_fs7.constants.O_RDWR | import_node_fs7.constants.O_NOFOLLOW, 384);
|
|
34734
34777
|
let closed = false;
|
|
34735
34778
|
const release = () => {
|
|
34736
34779
|
if (!closed) {
|
|
34737
34780
|
closed = true;
|
|
34738
|
-
(0,
|
|
34781
|
+
(0, import_node_fs7.closeSync)(fd);
|
|
34739
34782
|
}
|
|
34740
34783
|
};
|
|
34741
34784
|
try {
|
|
34742
|
-
assertPrivateDescriptor(fd);
|
|
34785
|
+
assertPrivateDescriptor(fd, void 0, import_node_path4.default.join(directory, `${role}.owner.lock`));
|
|
34743
34786
|
if (!(0, import_fs_native_extensions.tryLock)(fd)) throw new ConfigurationError("CONFIG_INSTANCE_ALREADY_RUNNING", [role]);
|
|
34744
34787
|
registerStableConfigurationRoot(context);
|
|
34745
34788
|
return { release };
|
|
@@ -35062,7 +35105,7 @@ function migrateConfigurationDocument(document2) {
|
|
|
35062
35105
|
}
|
|
35063
35106
|
|
|
35064
35107
|
// packages/config-node/src/store.ts
|
|
35065
|
-
var
|
|
35108
|
+
var import_node_fs8 = require("node:fs");
|
|
35066
35109
|
var import_node_path6 = __toESM(require("node:path"), 1);
|
|
35067
35110
|
var import_node_crypto4 = require("node:crypto");
|
|
35068
35111
|
var import_yaml = __toESM(require_dist(), 1);
|
|
@@ -35256,10 +35299,11 @@ function parseConfigurationYaml(source, context) {
|
|
|
35256
35299
|
return { document: document2, value, digest: (0, import_node_crypto4.createHash)("sha256").update(source).digest("hex"), issues: validateDomains(value, context) };
|
|
35257
35300
|
}
|
|
35258
35301
|
function assertPrivateFile(file, fd) {
|
|
35259
|
-
const stat3 = fd === void 0 ? (0,
|
|
35302
|
+
const stat3 = fd === void 0 ? (0, import_node_fs8.lstatSync)(file) : (0, import_node_fs8.fstatSync)(fd);
|
|
35260
35303
|
if (!stat3.isFile() || stat3.isSymbolicLink() || stat3.nlink !== 1) throw new ConfigurationError("CONFIG_FILE_NOT_PRIVATE_REGULAR");
|
|
35261
35304
|
if (typeof process.getuid === "function" && stat3.uid !== process.getuid()) throw new ConfigurationError("CONFIG_FILE_OWNER_MISMATCH");
|
|
35262
|
-
if ((stat3.mode & 63) !== 0) throw new ConfigurationError("CONFIG_FILE_PERMISSIONS_INVALID");
|
|
35305
|
+
if (process.platform !== "win32" && (stat3.mode & 63) !== 0) throw new ConfigurationError("CONFIG_FILE_PERMISSIONS_INVALID");
|
|
35306
|
+
assertWindowsPrivatePath(file);
|
|
35263
35307
|
if (stat3.size > MAX_BYTES) throw new ConfigurationError("CONFIG_FILE_TOO_LARGE", [], { line: 1, column: 1 });
|
|
35264
35308
|
}
|
|
35265
35309
|
var ConfigurationStore = class {
|
|
@@ -35269,30 +35313,29 @@ var ConfigurationStore = class {
|
|
|
35269
35313
|
}
|
|
35270
35314
|
file;
|
|
35271
35315
|
read() {
|
|
35272
|
-
if (!(0,
|
|
35273
|
-
|
|
35274
|
-
if (!root.isDirectory() || root.isSymbolicLink() || root.mode & 63 || typeof process.getuid === "function" && root.uid !== process.getuid()) throw new ConfigurationError("CONFIG_ROOT_PERMISSIONS_INVALID");
|
|
35316
|
+
if (!(0, import_node_fs8.existsSync)(this.file)) throw new ConfigurationError("CONFIG_MIGRATION_REQUIRED");
|
|
35317
|
+
assertPrivateDirectory(this.context.configRoot);
|
|
35275
35318
|
assertPrivateFile(this.file);
|
|
35276
|
-
const fd = (0,
|
|
35319
|
+
const fd = (0, import_node_fs8.openSync)(this.file, import_node_fs8.constants.O_RDONLY | import_node_fs8.constants.O_NOFOLLOW);
|
|
35277
35320
|
try {
|
|
35278
35321
|
assertPrivateFile(this.file, fd);
|
|
35279
|
-
return parseConfigurationYaml((0,
|
|
35322
|
+
return parseConfigurationYaml((0, import_node_fs8.readFileSync)(fd, "utf8"), this.context);
|
|
35280
35323
|
} finally {
|
|
35281
|
-
(0,
|
|
35324
|
+
(0, import_node_fs8.closeSync)(fd);
|
|
35282
35325
|
}
|
|
35283
35326
|
}
|
|
35284
35327
|
locked(run) {
|
|
35285
|
-
(0,
|
|
35286
|
-
const dirStat = (0,
|
|
35328
|
+
(0, import_node_fs8.mkdirSync)(this.context.configRoot, { recursive: true, mode: 448 });
|
|
35329
|
+
const dirStat = (0, import_node_fs8.lstatSync)(this.context.configRoot);
|
|
35287
35330
|
if (!dirStat.isDirectory() || dirStat.isSymbolicLink() || typeof process.getuid === "function" && dirStat.uid !== process.getuid()) throw new ConfigurationError("CONFIG_ROOT_OWNER_MISMATCH");
|
|
35288
|
-
|
|
35289
|
-
const fd = (0,
|
|
35331
|
+
assertPrivateDirectory(this.context.configRoot);
|
|
35332
|
+
const fd = (0, import_node_fs8.openSync)(import_node_path6.default.join(this.context.configRoot, "settings.lock"), import_node_fs8.constants.O_CREAT | import_node_fs8.constants.O_RDWR | import_node_fs8.constants.O_NOFOLLOW, 384);
|
|
35290
35333
|
try {
|
|
35291
35334
|
assertPrivateFile(import_node_path6.default.join(this.context.configRoot, "settings.lock"), fd);
|
|
35292
35335
|
if (!(0, import_fs_native_extensions2.tryLock)(fd)) throw new ConfigurationError("CONFIG_WRITE_BUSY");
|
|
35293
35336
|
return run();
|
|
35294
35337
|
} finally {
|
|
35295
|
-
(0,
|
|
35338
|
+
(0, import_node_fs8.closeSync)(fd);
|
|
35296
35339
|
}
|
|
35297
35340
|
}
|
|
35298
35341
|
publish(document2, previous, backupId) {
|
|
@@ -35302,41 +35345,35 @@ var ConfigurationStore = class {
|
|
|
35302
35345
|
const temporary = `${this.file}.${(0, import_node_crypto4.randomUUID)()}.tmp`;
|
|
35303
35346
|
if (previous !== void 0) {
|
|
35304
35347
|
const backupRoot = import_node_path6.default.join(this.context.configRoot, "config-backups");
|
|
35305
|
-
(0,
|
|
35306
|
-
|
|
35307
|
-
if (!backupStat.isDirectory() || backupStat.isSymbolicLink() || backupStat.mode & 63 || typeof process.getuid === "function" && backupStat.uid !== process.getuid()) throw new ConfigurationError("CONFIG_BACKUP_ROOT_INVALID");
|
|
35348
|
+
(0, import_node_fs8.mkdirSync)(backupRoot, { recursive: true, mode: 448 });
|
|
35349
|
+
assertPrivateDirectory(backupRoot);
|
|
35308
35350
|
const backup = import_node_path6.default.join(backupRoot, backupId ?? `${Date.now()}-${(0, import_node_crypto4.randomUUID)()}.yaml`);
|
|
35309
|
-
const fd2 = (0,
|
|
35351
|
+
const fd2 = (0, import_node_fs8.openSync)(backup, "wx", 384);
|
|
35310
35352
|
try {
|
|
35311
|
-
(0,
|
|
35312
|
-
(0,
|
|
35353
|
+
(0, import_node_fs8.writeFileSync)(fd2, previous);
|
|
35354
|
+
(0, import_node_fs8.fsyncSync)(fd2);
|
|
35313
35355
|
} finally {
|
|
35314
|
-
(0,
|
|
35356
|
+
(0, import_node_fs8.closeSync)(fd2);
|
|
35315
35357
|
}
|
|
35316
35358
|
}
|
|
35317
|
-
const fd = (0,
|
|
35359
|
+
const fd = (0, import_node_fs8.openSync)(temporary, "wx", 384);
|
|
35318
35360
|
try {
|
|
35319
|
-
(0,
|
|
35320
|
-
(0,
|
|
35361
|
+
(0, import_node_fs8.writeFileSync)(fd, source);
|
|
35362
|
+
(0, import_node_fs8.fsyncSync)(fd);
|
|
35321
35363
|
} finally {
|
|
35322
|
-
(0,
|
|
35364
|
+
(0, import_node_fs8.closeSync)(fd);
|
|
35323
35365
|
}
|
|
35324
35366
|
try {
|
|
35325
|
-
(0,
|
|
35326
|
-
|
|
35327
|
-
try {
|
|
35328
|
-
(0, import_node_fs7.fsyncSync)(parent);
|
|
35329
|
-
} finally {
|
|
35330
|
-
(0, import_node_fs7.closeSync)(parent);
|
|
35331
|
-
}
|
|
35367
|
+
(0, import_node_fs8.renameSync)(temporary, this.file);
|
|
35368
|
+
syncDirectory(this.context.configRoot);
|
|
35332
35369
|
} finally {
|
|
35333
|
-
if ((0,
|
|
35370
|
+
if ((0, import_node_fs8.existsSync)(temporary)) (0, import_node_fs8.unlinkSync)(temporary);
|
|
35334
35371
|
}
|
|
35335
35372
|
return checked;
|
|
35336
35373
|
}
|
|
35337
35374
|
initialize(value) {
|
|
35338
35375
|
return this.locked(() => {
|
|
35339
|
-
if ((0,
|
|
35376
|
+
if ((0, import_node_fs8.existsSync)(this.file)) throw new ConfigurationError("CONFIG_ALREADY_EXISTS");
|
|
35340
35377
|
validateEnvelope(value, this.context);
|
|
35341
35378
|
const issues = validateDomains(value, this.context);
|
|
35342
35379
|
if (Object.keys(issues).length) throw new ConfigurationError("CONFIG_VALIDATION_FAILED", Object.values(issues).flat().map((item) => item.path));
|
|
@@ -35376,9 +35413,9 @@ var ConfigurationStore = class {
|
|
|
35376
35413
|
}
|
|
35377
35414
|
backups() {
|
|
35378
35415
|
const root = import_node_path6.default.join(this.context.configRoot, "config-backups");
|
|
35379
|
-
if (!(0,
|
|
35416
|
+
if (!(0, import_node_fs8.existsSync)(root)) return [];
|
|
35380
35417
|
assertPrivateDirectory(root);
|
|
35381
|
-
return (0,
|
|
35418
|
+
return (0, import_node_fs8.readdirSync)(root).filter((id) => /^\d+-[a-f0-9-]+\.yaml$/.test(id)).sort().reverse().map((id) => {
|
|
35382
35419
|
try {
|
|
35383
35420
|
const backup = this.readBackup(id);
|
|
35384
35421
|
return { id, revision: backup.value.revision, schemaVersion: backup.value.schemaVersion, compatible: true };
|
|
@@ -35456,23 +35493,18 @@ var ConfigurationStore = class {
|
|
|
35456
35493
|
recordUpgrade(value) {
|
|
35457
35494
|
const file = import_node_path6.default.join(this.context.configRoot, "config-upgrade.json");
|
|
35458
35495
|
const temporary = `${file}.${(0, import_node_crypto4.randomUUID)()}.tmp`;
|
|
35459
|
-
const fd = (0,
|
|
35496
|
+
const fd = (0, import_node_fs8.openSync)(temporary, "wx", 384);
|
|
35460
35497
|
try {
|
|
35461
|
-
(0,
|
|
35462
|
-
(0,
|
|
35498
|
+
(0, import_node_fs8.writeFileSync)(fd, JSON.stringify(value, null, 2) + "\n");
|
|
35499
|
+
(0, import_node_fs8.fsyncSync)(fd);
|
|
35463
35500
|
} finally {
|
|
35464
|
-
(0,
|
|
35501
|
+
(0, import_node_fs8.closeSync)(fd);
|
|
35465
35502
|
}
|
|
35466
35503
|
try {
|
|
35467
|
-
(0,
|
|
35468
|
-
|
|
35469
|
-
try {
|
|
35470
|
-
(0, import_node_fs7.fsyncSync)(parent);
|
|
35471
|
-
} finally {
|
|
35472
|
-
(0, import_node_fs7.closeSync)(parent);
|
|
35473
|
-
}
|
|
35504
|
+
(0, import_node_fs8.renameSync)(temporary, file);
|
|
35505
|
+
syncDirectory(this.context.configRoot);
|
|
35474
35506
|
} finally {
|
|
35475
|
-
if ((0,
|
|
35507
|
+
if ((0, import_node_fs8.existsSync)(temporary)) (0, import_node_fs8.unlinkSync)(temporary);
|
|
35476
35508
|
}
|
|
35477
35509
|
}
|
|
35478
35510
|
upgrade(expected) {
|
|
@@ -35481,7 +35513,7 @@ var ConfigurationStore = class {
|
|
|
35481
35513
|
if (preview.expectedRevision !== expected.revision || preview.expectedDigest !== expected.digest) throw new ConfigurationError("CONFIG_REVISION_CONFLICT");
|
|
35482
35514
|
if (!preview.changed) {
|
|
35483
35515
|
const receiptFile = import_node_path6.default.join(this.context.configRoot, "config-upgrade.json");
|
|
35484
|
-
if ((0,
|
|
35516
|
+
if ((0, import_node_fs8.existsSync)(receiptFile)) {
|
|
35485
35517
|
const receipt = JSON.parse(readPrivateFile(receiptFile));
|
|
35486
35518
|
if (isConfigurationObject(receipt) && receipt.phase === "prepared" && receipt.plannedDigest === expected.digest)
|
|
35487
35519
|
this.recordUpgrade({ ...receipt, phase: "committed", savedRevision: expected.revision, digest: expected.digest });
|
|
@@ -35515,9 +35547,9 @@ var ConfigurationStore = class {
|
|
|
35515
35547
|
previous(keys) {
|
|
35516
35548
|
const current = this.read();
|
|
35517
35549
|
const root = import_node_path6.default.join(this.context.configRoot, "config-backups");
|
|
35518
|
-
if (!(0,
|
|
35550
|
+
if (!(0, import_node_fs8.existsSync)(root)) throw new ConfigurationError("CONFIG_BACKUP_UNAVAILABLE");
|
|
35519
35551
|
assertPrivateDirectory(root);
|
|
35520
|
-
const candidates = (0,
|
|
35552
|
+
const candidates = (0, import_node_fs8.readdirSync)(root).filter((file) => /^\d+-[a-f0-9-]+\.yaml$/.test(file)).sort().reverse();
|
|
35521
35553
|
for (const candidate of candidates) {
|
|
35522
35554
|
const file = import_node_path6.default.join(root, candidate);
|
|
35523
35555
|
const previous = parseConfigurationYaml(readPrivateFile(file), this.context);
|
|
@@ -35529,7 +35561,7 @@ var ConfigurationStore = class {
|
|
|
35529
35561
|
}
|
|
35530
35562
|
migrate(value, expected) {
|
|
35531
35563
|
return this.locked(() => {
|
|
35532
|
-
const current = (0,
|
|
35564
|
+
const current = (0, import_node_fs8.existsSync)(this.file) ? this.read() : null;
|
|
35533
35565
|
if (current ? !expected || current.value.revision !== expected.revision || current.digest !== expected.digest : expected !== null) throw new ConfigurationError("CONFIG_REVISION_CONFLICT");
|
|
35534
35566
|
validateEnvelope(value, this.context);
|
|
35535
35567
|
const issues = validateDomains(value, this.context);
|
|
@@ -35743,7 +35775,7 @@ function configurationPath(key, relativeDefault) {
|
|
|
35743
35775
|
}
|
|
35744
35776
|
|
|
35745
35777
|
// packages/config-node/src/runtime-status.ts
|
|
35746
|
-
var
|
|
35778
|
+
var import_node_fs9 = require("node:fs");
|
|
35747
35779
|
var import_node_path8 = __toESM(require("node:path"), 1);
|
|
35748
35780
|
|
|
35749
35781
|
// packages/shared/src/monitoring/runtime-version.ts
|
|
@@ -35796,23 +35828,23 @@ function readInstalledRuntimeBuild(entry) {
|
|
|
35796
35828
|
const root = entry.slice(0, index);
|
|
35797
35829
|
const relative = entry.slice(index + marker.length).split(import_node_path8.default.sep).slice(1);
|
|
35798
35830
|
const pointer = import_node_path8.default.join(root, "current.json");
|
|
35799
|
-
if ((0,
|
|
35800
|
-
const selected = JSON.parse((0,
|
|
35831
|
+
if ((0, import_node_fs9.existsSync)(pointer)) {
|
|
35832
|
+
const selected = JSON.parse((0, import_node_fs9.readFileSync)(pointer, "utf8"));
|
|
35801
35833
|
if (!/^[a-zA-Z0-9._-]+$/.test(selected.releaseId) || [".", ".."].includes(selected.releaseId)) return null;
|
|
35802
35834
|
entry = import_node_path8.default.join(root, "releases", selected.releaseId, ...relative);
|
|
35803
35835
|
}
|
|
35804
35836
|
}
|
|
35805
|
-
fd = (0,
|
|
35837
|
+
fd = (0, import_node_fs9.openSync)(entry, "r");
|
|
35806
35838
|
const buffer = Buffer.alloc(8192);
|
|
35807
|
-
const length = (0,
|
|
35839
|
+
const length = (0, import_node_fs9.readSync)(fd, buffer, 0, buffer.length, 0);
|
|
35808
35840
|
const match = buffer.subarray(0, length).toString("utf8").split("\n", 1)[0]?.match(/var __RUNWEAVE_BUILD_INFO__=(\{.*\});/);
|
|
35809
35841
|
const metadata = import_node_path8.default.join(import_node_path8.default.dirname(entry), "release.json");
|
|
35810
|
-
const value = match ? JSON.parse(match[1]) : JSON.parse((0,
|
|
35842
|
+
const value = match ? JSON.parse(match[1]) : JSON.parse((0, import_node_fs9.readFileSync)((0, import_node_fs9.existsSync)(metadata) ? metadata : import_node_path8.default.join(import_node_path8.default.dirname(entry), "build-info.json"), "utf8"));
|
|
35811
35843
|
return typeof value.version === "string" && typeof value.buildId === "string" ? value : null;
|
|
35812
35844
|
} catch {
|
|
35813
35845
|
return null;
|
|
35814
35846
|
} finally {
|
|
35815
|
-
if (fd !== void 0) (0,
|
|
35847
|
+
if (fd !== void 0) (0, import_node_fs9.closeSync)(fd);
|
|
35816
35848
|
}
|
|
35817
35849
|
}
|
|
35818
35850
|
|
|
@@ -36940,8 +36972,8 @@ var CodexQuotaService = class {
|
|
|
36940
36972
|
};
|
|
36941
36973
|
|
|
36942
36974
|
// app-server/src/codex/client.ts
|
|
36943
|
-
var
|
|
36944
|
-
var
|
|
36975
|
+
var import_node_child_process2 = require("node:child_process");
|
|
36976
|
+
var import_node_fs10 = require("node:fs");
|
|
36945
36977
|
var import_node_os4 = __toESM(require("node:os"), 1);
|
|
36946
36978
|
var import_node_path15 = __toESM(require("node:path"), 1);
|
|
36947
36979
|
|
|
@@ -37202,7 +37234,7 @@ var CodexAppServerClient = class {
|
|
|
37202
37234
|
this.stdoutBuffer = "";
|
|
37203
37235
|
this.stderrBuffer = "";
|
|
37204
37236
|
const launchPlan = resolveCodexLaunchPlan(process.env);
|
|
37205
|
-
this.child = (0,
|
|
37237
|
+
this.child = (0, import_node_child_process2.spawn)(launchPlan.command, launchPlan.args, {
|
|
37206
37238
|
env: buildCodexProcessEnv(process.env, launchPlan),
|
|
37207
37239
|
stdio: ["pipe", "pipe", "pipe"]
|
|
37208
37240
|
});
|
|
@@ -37331,7 +37363,7 @@ function resolveCodexBinaryCandidates(env) {
|
|
|
37331
37363
|
}
|
|
37332
37364
|
function resolveNvmCodexCandidates(nodeVersionsDir) {
|
|
37333
37365
|
try {
|
|
37334
|
-
return (0,
|
|
37366
|
+
return (0, import_node_fs10.readdirSync)(nodeVersionsDir).map((entry) => import_node_path15.default.join(nodeVersionsDir, entry, "bin", "codex")).sort((left, right) => readMtimeMs(right) - readMtimeMs(left));
|
|
37335
37367
|
} catch {
|
|
37336
37368
|
return [];
|
|
37337
37369
|
}
|