@runweave/server-linux-x64 0.1.4 → 0.1.5

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.
Files changed (85) hide show
  1. package/manifest.json +150 -150
  2. package/native.tar.gz +0 -0
  3. package/package.json +1 -1
  4. package/payload/app-server/build-info.json +4 -4
  5. package/payload/app-server/index.cjs +127 -95
  6. package/payload/app-server/index.cjs.map +1 -1
  7. package/payload/backend/activity-sqlite-worker.cjs +7593 -44
  8. package/payload/backend/build-info.json +4 -4
  9. package/payload/backend/dev-resources/control.cjs +211 -160
  10. package/payload/backend/index.cjs +210 -176
  11. package/payload/bin/runtime.cjs +22 -5
  12. package/payload/frontend/dist/assets/{_baseUniq-2DZJ97aQ.js → _baseUniq-Cca1dJQ9.js} +1 -1
  13. package/payload/frontend/dist/assets/{access-Jw5gZrYY.js → access-DUFDE5w4.js} +1 -1
  14. package/payload/frontend/dist/assets/{advanced-DRe-Doxo.js → advanced-COAr8Hid.js} +1 -1
  15. package/payload/frontend/dist/assets/{appearance-D1wpkdXT.js → appearance-DwT_3HyT.js} +1 -1
  16. package/payload/frontend/dist/assets/{arc-keTQ5uhA.js → arc-BiCpkEHN.js} +1 -1
  17. package/payload/frontend/dist/assets/{architectureDiagram-Q4EWVU46-BXbCJ77m.js → architectureDiagram-Q4EWVU46-DMulbydF.js} +1 -1
  18. package/payload/frontend/dist/assets/{blockDiagram-DXYQGD6D-De0Ki8tO.js → blockDiagram-DXYQGD6D-DP3EKW2h.js} +1 -1
  19. package/payload/frontend/dist/assets/{c4Diagram-AHTNJAMY-EfazoSVi.js → c4Diagram-AHTNJAMY-BLS8RP7a.js} +1 -1
  20. package/payload/frontend/dist/assets/channel-CKmnPCpJ.js +1 -0
  21. package/payload/frontend/dist/assets/{chunk-4BX2VUAB-BXCGPL07.js → chunk-4BX2VUAB-BUV-Uw18.js} +1 -1
  22. package/payload/frontend/dist/assets/{chunk-4TB4RGXK-ByjQ1_yc.js → chunk-4TB4RGXK-94c9VfB5.js} +1 -1
  23. package/payload/frontend/dist/assets/{chunk-55IACEB6-D-KjMbGJ.js → chunk-55IACEB6-RfLXGW3_.js} +1 -1
  24. package/payload/frontend/dist/assets/{chunk-EDXVE4YY-tAgLMZ4w.js → chunk-EDXVE4YY-pPo_Q141.js} +1 -1
  25. package/payload/frontend/dist/assets/{chunk-FMBD7UC4-D3J3ERtV.js → chunk-FMBD7UC4-DS6emz7j.js} +1 -1
  26. package/payload/frontend/dist/assets/{chunk-OYMX7WX6-DZHtmvkW.js → chunk-OYMX7WX6-G-gZUTTY.js} +1 -1
  27. package/payload/frontend/dist/assets/{chunk-QZHKN3VN-D6IIGd1d.js → chunk-QZHKN3VN-BTTlBOxb.js} +1 -1
  28. package/payload/frontend/dist/assets/{chunk-YZCP3GAM-KD19-lMa.js → chunk-YZCP3GAM-BE7Nnglr.js} +1 -1
  29. package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-B50rK7Wd.js +1 -0
  30. package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-B50rK7Wd.js +1 -0
  31. package/payload/frontend/dist/assets/clone-Cgs355hK.js +1 -0
  32. package/payload/frontend/dist/assets/{connection-Cm6G1HOW.js → connection--S1gQxJQ.js} +1 -1
  33. package/payload/frontend/dist/assets/{connections-B8tSRWt9.js → connections-BKIzytUO.js} +1 -1
  34. package/payload/frontend/dist/assets/{cose-bilkent-S5V4N54A-AYXbL8jP.js → cose-bilkent-S5V4N54A-C0uj9jlE.js} +1 -1
  35. package/payload/frontend/dist/assets/{dagre-KV5264BT-DCunJ-sG.js → dagre-KV5264BT-C21BxT9x.js} +1 -1
  36. package/payload/frontend/dist/assets/{desktop-DnY652OH.js → desktop-BrFP7uD8.js} +1 -1
  37. package/payload/frontend/dist/assets/{diagram-5BDNPKRD-Ch2b63ll.js → diagram-5BDNPKRD-Dm_Sv1fY.js} +1 -1
  38. package/payload/frontend/dist/assets/{diagram-G4DWMVQ6-BAuc_Uar.js → diagram-G4DWMVQ6-CyBlXHYE.js} +1 -1
  39. package/payload/frontend/dist/assets/{diagram-MMDJMWI5-DH8qMuDA.js → diagram-MMDJMWI5-DlzAJAhf.js} +1 -1
  40. package/payload/frontend/dist/assets/{diagram-TYMM5635-BflD7Kjb.js → diagram-TYMM5635-BUHbMszI.js} +1 -1
  41. package/payload/frontend/dist/assets/{erDiagram-SMLLAGMA-BGzvzTP9.js → erDiagram-SMLLAGMA-B_KFaTkr.js} +1 -1
  42. package/payload/frontend/dist/assets/{flowDiagram-DWJPFMVM-BR4mXArp.js → flowDiagram-DWJPFMVM-Ci8c_uVM.js} +1 -1
  43. package/payload/frontend/dist/assets/{ganttDiagram-T4ZO3ILL-uXtJoz5O.js → ganttDiagram-T4ZO3ILL-CuX6Iq0t.js} +1 -1
  44. package/payload/frontend/dist/assets/{gitGraphDiagram-UUTBAWPF-BeLB68OO.js → gitGraphDiagram-UUTBAWPF-g07Rr7cC.js} +1 -1
  45. package/payload/frontend/dist/assets/{graph-DakNuFNs.js → graph-BFZFDWHT.js} +1 -1
  46. package/payload/frontend/dist/assets/{image-BICNaNq8.js → image-Bqf_JqcW.js} +1 -1
  47. package/payload/frontend/dist/assets/{index-Cf9Vl4GJ.js → index-CfimLLEm.js} +5 -5
  48. package/payload/frontend/dist/assets/{infoDiagram-42DDH7IO-CAGn0b04.js → infoDiagram-42DDH7IO-swg7grwk.js} +1 -1
  49. package/payload/frontend/dist/assets/{ishikawaDiagram-UXIWVN3A-fbaDUCpd.js → ishikawaDiagram-UXIWVN3A-9RP9c7cN.js} +1 -1
  50. package/payload/frontend/dist/assets/{journeyDiagram-VCZTEJTY-ZOmjleqG.js → journeyDiagram-VCZTEJTY-Bh523JBl.js} +1 -1
  51. package/payload/frontend/dist/assets/{kanban-definition-6JOO6SKY-BmODq4tv.js → kanban-definition-6JOO6SKY-BxGTS30A.js} +1 -1
  52. package/payload/frontend/dist/assets/{layout-CLfuo3Vs.js → layout-BA90oBmS.js} +1 -1
  53. package/payload/frontend/dist/assets/{linear-csTsZ7Al.js → linear-BVOBmfu-.js} +1 -1
  54. package/payload/frontend/dist/assets/{main-DwDuhfcr.js → main-wqeDvHCJ.js} +22 -22
  55. package/payload/frontend/dist/assets/{min-B4B7Rr4j.js → min-CTb5zZxd.js} +1 -1
  56. package/payload/frontend/dist/assets/{mindmap-definition-QFDTVHPH-CiV2UasH.js → mindmap-definition-QFDTVHPH-D77Oju5l.js} +1 -1
  57. package/payload/frontend/dist/assets/{monitoring-1_Fnxura.js → monitoring-BcgpwXyO.js} +1 -1
  58. package/payload/frontend/dist/assets/{notifications-VJaMbzoX.js → notifications-Cp6tD-Df.js} +1 -1
  59. package/payload/frontend/dist/assets/{pieDiagram-DEJITSTG-DwazVxKI.js → pieDiagram-DEJITSTG-Dp1SSOdP.js} +1 -1
  60. package/payload/frontend/dist/assets/{quadrantDiagram-34T5L4WZ-CAn9HHbO.js → quadrantDiagram-34T5L4WZ-D2_VBifB.js} +1 -1
  61. package/payload/frontend/dist/assets/{record-content-Bewq09_f.js → record-content-DawrQ3vI.js} +1 -1
  62. package/payload/frontend/dist/assets/{requirementDiagram-MS252O5E-CFot9peV.js → requirementDiagram-MS252O5E-CZUQO9c-.js} +1 -1
  63. package/payload/frontend/dist/assets/{sankeyDiagram-XADWPNL6-CdRX6WuA.js → sankeyDiagram-XADWPNL6-DMw6E77g.js} +1 -1
  64. package/payload/frontend/dist/assets/{sequenceDiagram-FGHM5R23-vRc1a5W1.js → sequenceDiagram-FGHM5R23-CCF4Uyr1.js} +1 -1
  65. package/payload/frontend/dist/assets/{stateDiagram-FHFEXIEX-Bxcr7s70.js → stateDiagram-FHFEXIEX-BrnJj_YC.js} +1 -1
  66. package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-i7xNd2ZA.js +1 -0
  67. package/payload/frontend/dist/assets/{status-9tZZeoV7.js → status-B-_-GXiJ.js} +1 -1
  68. package/payload/frontend/dist/assets/suiji-BB8bFtuh.js +1 -0
  69. package/payload/frontend/dist/assets/{svg-qpyWsADE.js → svg-DOzReQUk.js} +1 -1
  70. package/payload/frontend/dist/assets/{tabs-CwPtRQY0.js → tabs-1W6wgg8j.js} +1 -1
  71. package/payload/frontend/dist/assets/{timeline-definition-GMOUNBTQ-2mD2ePS6.js → timeline-definition-GMOUNBTQ-DTlM3m_q.js} +1 -1
  72. package/payload/frontend/dist/assets/{vennDiagram-DHZGUBPP-w4DbLykx.js → vennDiagram-DHZGUBPP-D_9TXuLu.js} +1 -1
  73. package/payload/frontend/dist/assets/{wardley-RL74JXVD-C3H8SQaZ.js → wardley-RL74JXVD-U4S2yDk_.js} +1 -1
  74. package/payload/frontend/dist/assets/{wardleyDiagram-NUSXRM2D-DEI0kC2c.js → wardleyDiagram-NUSXRM2D-BCUzTDXi.js} +1 -1
  75. package/payload/frontend/dist/assets/{xychartDiagram-5P7HB3ND-DDVlpQ28.js → xychartDiagram-5P7HB3ND-BksV4M9z.js} +1 -1
  76. package/payload/frontend/dist/build-info.json +4 -4
  77. package/payload/frontend/dist/companion.html +1 -1
  78. package/payload/frontend/dist/index.html +2 -2
  79. package/payload/server/index.cjs +165 -107
  80. package/payload/frontend/dist/assets/channel-CExZE0tD.js +0 -1
  81. package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-DNOAkizi.js +0 -1
  82. package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-DNOAkizi.js +0 -1
  83. package/payload/frontend/dist/assets/clone-CzOxlTa8.js +0 -1
  84. package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-YGvbZNwL.js +0 -1
  85. package/payload/frontend/dist/assets/suiji-DX2ioZ0I.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runweave/server-linux-x64",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "version": "0.1.0",
3
- "buildId": "20261107T223214246Z-f6afc191",
4
- "sourceRevision": "f6afc191b5f9be76aa35a6ee494a0d752c21af08",
3
+ "buildId": "20261108T004031551Z-168d13f1",
4
+ "sourceRevision": "168d13f138a29af9055863e4ccec018125af5644",
5
5
  "sourceDirty": false,
6
- "builtAt": "2026-11-07T22:32:14.246Z",
7
- "contentSha256": "c391a00b597ca25406e1b3afa7654d2fa4ecc180b3a685c649dbd2acd40c8900"
6
+ "builtAt": "2026-11-08T00:40:31.551Z",
7
+ "contentSha256": "9d35815d7ecbf345ce1ff15eaae37eb2b88f6df5289e67f3991b156aac3e2c62"
8
8
  }
@@ -1,4 +1,4 @@
1
- /* runweave:build-info */var __RUNWEAVE_BUILD_INFO__={"version":"0.1.0","buildId":"20261107T223214246Z-f6afc191","sourceRevision":"f6afc191b5f9be76aa35a6ee494a0d752c21af08","sourceDirty":false,"builtAt":"2026-11-07T22:32:14.246Z","contentSha256":"c391a00b597ca25406e1b3afa7654d2fa4ecc180b3a685c649dbd2acd40c8900"};
1
+ /* runweave:build-info */var __RUNWEAVE_BUILD_INFO__={"version":"0.1.0","buildId":"20261108T004031551Z-168d13f1","sourceRevision":"168d13f138a29af9055863e4ccec018125af5644","sourceDirty":false,"builtAt":"2026-11-08T00:40:31.551Z","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/owner.ts
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, import_node_fs6.mkdirSync)(directory, { recursive: true, mode: 448 });
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, import_node_fs6.openSync)(import_node_path4.default.join(directory, "stable-root.lock"), import_node_fs6.constants.O_CREAT | import_node_fs6.constants.O_RDWR | import_node_fs6.constants.O_NOFOLLOW, 384);
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, import_node_fs6.existsSync)(registry)) {
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, import_node_fs6.openSync)(temporary, "wx", 384);
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, import_node_fs6.fsyncSync)(parent);
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, import_node_fs6.closeSync)(parent);
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, import_node_fs6.closeSync)(registryFd);
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, import_node_fs6.openSync)(import_node_path4.default.join(directory, "configuration-upgrade.lock"), import_node_fs6.constants.O_CREAT | import_node_fs6.constants.O_RDWR | import_node_fs6.constants.O_NOFOLLOW, 384);
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, import_node_fs6.closeSync)(fd);
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, import_node_fs6.readdirSync)(directory).filter((name) => name.endsWith(".owner.lock"))) {
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, import_node_fs6.openSync)(import_node_path4.default.join(directory, file), import_node_fs6.constants.O_RDWR | import_node_fs6.constants.O_NOFOLLOW);
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, import_node_fs6.closeSync)(fd);
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, import_node_fs6.openSync)(import_node_path4.default.join(directory, `${role}.owner.lock`), import_node_fs6.constants.O_CREAT | import_node_fs6.constants.O_RDWR | import_node_fs6.constants.O_NOFOLLOW, 384);
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, import_node_fs6.closeSync)(fd);
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 import_node_fs7 = require("node:fs");
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, import_node_fs7.lstatSync)(file) : (0, import_node_fs7.fstatSync)(fd);
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, import_node_fs7.existsSync)(this.file)) throw new ConfigurationError("CONFIG_MIGRATION_REQUIRED");
35273
- const root = (0, import_node_fs7.lstatSync)(this.context.configRoot);
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, import_node_fs7.openSync)(this.file, import_node_fs7.constants.O_RDONLY | import_node_fs7.constants.O_NOFOLLOW);
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, import_node_fs7.readFileSync)(fd, "utf8"), this.context);
35322
+ return parseConfigurationYaml((0, import_node_fs8.readFileSync)(fd, "utf8"), this.context);
35280
35323
  } finally {
35281
- (0, import_node_fs7.closeSync)(fd);
35324
+ (0, import_node_fs8.closeSync)(fd);
35282
35325
  }
35283
35326
  }
35284
35327
  locked(run) {
35285
- (0, import_node_fs7.mkdirSync)(this.context.configRoot, { recursive: true, mode: 448 });
35286
- const dirStat = (0, import_node_fs7.lstatSync)(this.context.configRoot);
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
- if ((dirStat.mode & 63) !== 0) throw new ConfigurationError("CONFIG_ROOT_PERMISSIONS_INVALID");
35289
- const fd = (0, import_node_fs7.openSync)(import_node_path6.default.join(this.context.configRoot, "settings.lock"), import_node_fs7.constants.O_CREAT | import_node_fs7.constants.O_RDWR | import_node_fs7.constants.O_NOFOLLOW, 384);
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, import_node_fs7.closeSync)(fd);
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, import_node_fs7.mkdirSync)(backupRoot, { recursive: true, mode: 448 });
35306
- const backupStat = (0, import_node_fs7.lstatSync)(backupRoot);
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, import_node_fs7.openSync)(backup, "wx", 384);
35351
+ const fd2 = (0, import_node_fs8.openSync)(backup, "wx", 384);
35310
35352
  try {
35311
- (0, import_node_fs7.writeFileSync)(fd2, previous);
35312
- (0, import_node_fs7.fsyncSync)(fd2);
35353
+ (0, import_node_fs8.writeFileSync)(fd2, previous);
35354
+ (0, import_node_fs8.fsyncSync)(fd2);
35313
35355
  } finally {
35314
- (0, import_node_fs7.closeSync)(fd2);
35356
+ (0, import_node_fs8.closeSync)(fd2);
35315
35357
  }
35316
35358
  }
35317
- const fd = (0, import_node_fs7.openSync)(temporary, "wx", 384);
35359
+ const fd = (0, import_node_fs8.openSync)(temporary, "wx", 384);
35318
35360
  try {
35319
- (0, import_node_fs7.writeFileSync)(fd, source);
35320
- (0, import_node_fs7.fsyncSync)(fd);
35361
+ (0, import_node_fs8.writeFileSync)(fd, source);
35362
+ (0, import_node_fs8.fsyncSync)(fd);
35321
35363
  } finally {
35322
- (0, import_node_fs7.closeSync)(fd);
35364
+ (0, import_node_fs8.closeSync)(fd);
35323
35365
  }
35324
35366
  try {
35325
- (0, import_node_fs7.renameSync)(temporary, this.file);
35326
- const parent = (0, import_node_fs7.openSync)(this.context.configRoot, "r");
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, import_node_fs7.existsSync)(temporary)) (0, import_node_fs7.unlinkSync)(temporary);
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, import_node_fs7.existsSync)(this.file)) throw new ConfigurationError("CONFIG_ALREADY_EXISTS");
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, import_node_fs7.existsSync)(root)) return [];
35416
+ if (!(0, import_node_fs8.existsSync)(root)) return [];
35380
35417
  assertPrivateDirectory(root);
35381
- return (0, import_node_fs7.readdirSync)(root).filter((id) => /^\d+-[a-f0-9-]+\.yaml$/.test(id)).sort().reverse().map((id) => {
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, import_node_fs7.openSync)(temporary, "wx", 384);
35496
+ const fd = (0, import_node_fs8.openSync)(temporary, "wx", 384);
35460
35497
  try {
35461
- (0, import_node_fs7.writeFileSync)(fd, JSON.stringify(value, null, 2) + "\n");
35462
- (0, import_node_fs7.fsyncSync)(fd);
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, import_node_fs7.closeSync)(fd);
35501
+ (0, import_node_fs8.closeSync)(fd);
35465
35502
  }
35466
35503
  try {
35467
- (0, import_node_fs7.renameSync)(temporary, file);
35468
- const parent = (0, import_node_fs7.openSync)(this.context.configRoot, "r");
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, import_node_fs7.existsSync)(temporary)) (0, import_node_fs7.unlinkSync)(temporary);
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, import_node_fs7.existsSync)(receiptFile)) {
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, import_node_fs7.existsSync)(root)) throw new ConfigurationError("CONFIG_BACKUP_UNAVAILABLE");
35550
+ if (!(0, import_node_fs8.existsSync)(root)) throw new ConfigurationError("CONFIG_BACKUP_UNAVAILABLE");
35519
35551
  assertPrivateDirectory(root);
35520
- const candidates = (0, import_node_fs7.readdirSync)(root).filter((file) => /^\d+-[a-f0-9-]+\.yaml$/.test(file)).sort().reverse();
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, import_node_fs7.existsSync)(this.file) ? this.read() : null;
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 import_node_fs8 = require("node:fs");
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, import_node_fs8.existsSync)(pointer)) {
35800
- const selected = JSON.parse((0, import_node_fs8.readFileSync)(pointer, "utf8"));
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, import_node_fs8.openSync)(entry, "r");
35837
+ fd = (0, import_node_fs9.openSync)(entry, "r");
35806
35838
  const buffer = Buffer.alloc(8192);
35807
- const length = (0, import_node_fs8.readSync)(fd, buffer, 0, buffer.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, import_node_fs8.readFileSync)((0, import_node_fs8.existsSync)(metadata) ? metadata : import_node_path8.default.join(import_node_path8.default.dirname(entry), "build-info.json"), "utf8"));
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, import_node_fs8.closeSync)(fd);
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 import_node_child_process = require("node:child_process");
36944
- var import_node_fs9 = require("node:fs");
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, import_node_child_process.spawn)(launchPlan.command, launchPlan.args, {
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, import_node_fs9.readdirSync)(nodeVersionsDir).map((entry) => import_node_path15.default.join(nodeVersionsDir, entry, "bin", "codex")).sort((left, right) => readMtimeMs(right) - readMtimeMs(left));
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
  }