@runweave/server-darwin-arm64 0.1.3 → 0.1.4
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 +156 -156
- 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 +100 -71
- package/payload/app-server/index.cjs.map +1 -1
- package/payload/backend/build-info.json +4 -4
- package/payload/backend/dev-resources/control.cjs +2 -0
- package/payload/backend/evolution-sqlite-worker.cjs +58 -1
- package/payload/backend/index.cjs +2914 -2043
- package/payload/frontend/dist/assets/{_baseUniq-Z8S1OGl1.js → _baseUniq-2DZJ97aQ.js} +1 -1
- package/payload/frontend/dist/assets/{access-BkQls-gl.js → access-Jw5gZrYY.js} +1 -1
- package/payload/frontend/dist/assets/{advanced-Cwuko7dT.js → advanced-DRe-Doxo.js} +1 -1
- package/payload/frontend/dist/assets/{appearance-D1NbgiL9.js → appearance-D1wpkdXT.js} +1 -1
- package/payload/frontend/dist/assets/{arc-yTzSLmPE.js → arc-keTQ5uhA.js} +1 -1
- package/payload/frontend/dist/assets/{architectureDiagram-Q4EWVU46-BvvnA771.js → architectureDiagram-Q4EWVU46-BXbCJ77m.js} +1 -1
- package/payload/frontend/dist/assets/{blockDiagram-DXYQGD6D-4mSkYwEH.js → blockDiagram-DXYQGD6D-De0Ki8tO.js} +1 -1
- package/payload/frontend/dist/assets/{c4Diagram-AHTNJAMY-BFsQYjNJ.js → c4Diagram-AHTNJAMY-EfazoSVi.js} +1 -1
- package/payload/frontend/dist/assets/channel-CExZE0tD.js +1 -0
- package/payload/frontend/dist/assets/{chunk-4BX2VUAB-B4j2kD8S.js → chunk-4BX2VUAB-BXCGPL07.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-4TB4RGXK-BHHtOn_W.js → chunk-4TB4RGXK-ByjQ1_yc.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-55IACEB6-npi1DjnI.js → chunk-55IACEB6-D-KjMbGJ.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-EDXVE4YY-6XoKXtpJ.js → chunk-EDXVE4YY-tAgLMZ4w.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-FMBD7UC4-D5wdm5pu.js → chunk-FMBD7UC4-D3J3ERtV.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-OYMX7WX6-CdQRrw_z.js → chunk-OYMX7WX6-DZHtmvkW.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-QZHKN3VN-j-pcsMU1.js → chunk-QZHKN3VN-D6IIGd1d.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-YZCP3GAM-ISBm3jAD.js → chunk-YZCP3GAM-KD19-lMa.js} +1 -1
- package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-DNOAkizi.js +1 -0
- package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-DNOAkizi.js +1 -0
- package/payload/frontend/dist/assets/clone-CzOxlTa8.js +1 -0
- package/payload/frontend/dist/assets/connection-Cm6G1HOW.js +12 -0
- package/payload/frontend/dist/assets/{connections-BuXymnab.js → connections-B8tSRWt9.js} +1 -1
- package/payload/frontend/dist/assets/{cose-bilkent-S5V4N54A-D3ioXA7D.js → cose-bilkent-S5V4N54A-AYXbL8jP.js} +1 -1
- package/payload/frontend/dist/assets/{dagre-KV5264BT-DjtjEtE5.js → dagre-KV5264BT-DCunJ-sG.js} +1 -1
- package/payload/frontend/dist/assets/{desktop-Du3Gd9LW.js → desktop-DnY652OH.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-5BDNPKRD-CtxPyS9C.js → diagram-5BDNPKRD-Ch2b63ll.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-G4DWMVQ6-ikqU0pq3.js → diagram-G4DWMVQ6-BAuc_Uar.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-MMDJMWI5-CoKNp7eo.js → diagram-MMDJMWI5-DH8qMuDA.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-TYMM5635-7xoHFg4D.js → diagram-TYMM5635-BflD7Kjb.js} +1 -1
- package/payload/frontend/dist/assets/{erDiagram-SMLLAGMA-Da8Jm4bc.js → erDiagram-SMLLAGMA-BGzvzTP9.js} +1 -1
- package/payload/frontend/dist/assets/{flowDiagram-DWJPFMVM-bcIflYKx.js → flowDiagram-DWJPFMVM-BR4mXArp.js} +1 -1
- package/payload/frontend/dist/assets/{ganttDiagram-T4ZO3ILL-CCSwpL4k.js → ganttDiagram-T4ZO3ILL-uXtJoz5O.js} +1 -1
- package/payload/frontend/dist/assets/{gitGraphDiagram-UUTBAWPF-C5YN1uxh.js → gitGraphDiagram-UUTBAWPF-BeLB68OO.js} +1 -1
- package/payload/frontend/dist/assets/{graph-DhVKaWIc.js → graph-DakNuFNs.js} +1 -1
- package/payload/frontend/dist/assets/{image-CAXFSZmt.js → image-BICNaNq8.js} +1 -1
- package/payload/frontend/dist/assets/{index-BPgmi_HT.js → index-Cf9Vl4GJ.js} +92 -89
- package/payload/frontend/dist/assets/{infoDiagram-42DDH7IO-CKUkVeJd.js → infoDiagram-42DDH7IO-CAGn0b04.js} +1 -1
- package/payload/frontend/dist/assets/{ishikawaDiagram-UXIWVN3A-Cu6SCNrB.js → ishikawaDiagram-UXIWVN3A-fbaDUCpd.js} +1 -1
- package/payload/frontend/dist/assets/{journeyDiagram-VCZTEJTY-BJsUgp8J.js → journeyDiagram-VCZTEJTY-ZOmjleqG.js} +1 -1
- package/payload/frontend/dist/assets/{kanban-definition-6JOO6SKY-BGowhqfi.js → kanban-definition-6JOO6SKY-BmODq4tv.js} +1 -1
- package/payload/frontend/dist/assets/{layout-CunOX6M2.js → layout-CLfuo3Vs.js} +1 -1
- package/payload/frontend/dist/assets/{linear-C_0D1AIt.js → linear-csTsZ7Al.js} +1 -1
- package/payload/frontend/dist/assets/main-DtzgJZEf.css +33 -0
- package/payload/frontend/dist/assets/{main-D9JUBZrL.js → main-DwDuhfcr.js} +154 -151
- package/payload/frontend/dist/assets/{min-CYRFaNhC.js → min-B4B7Rr4j.js} +1 -1
- package/payload/frontend/dist/assets/{mindmap-definition-QFDTVHPH-CC29vHKR.js → mindmap-definition-QFDTVHPH-CiV2UasH.js} +1 -1
- package/payload/frontend/dist/assets/{monitoring-CSJEFZ4D.js → monitoring-1_Fnxura.js} +1 -1
- package/payload/frontend/dist/assets/{notifications-B6plZwi5.js → notifications-VJaMbzoX.js} +1 -1
- package/payload/frontend/dist/assets/{pieDiagram-DEJITSTG-ZPTChlGS.js → pieDiagram-DEJITSTG-DwazVxKI.js} +1 -1
- package/payload/frontend/dist/assets/{quadrantDiagram-34T5L4WZ-B4sL0Weo.js → quadrantDiagram-34T5L4WZ-CAn9HHbO.js} +1 -1
- package/payload/frontend/dist/assets/{record-content-DBb8tU0P.js → record-content-Bewq09_f.js} +1 -1
- package/payload/frontend/dist/assets/{requirementDiagram-MS252O5E-Q2PHuGEG.js → requirementDiagram-MS252O5E-CFot9peV.js} +1 -1
- package/payload/frontend/dist/assets/{sankeyDiagram-XADWPNL6-k8w1jlHT.js → sankeyDiagram-XADWPNL6-CdRX6WuA.js} +1 -1
- package/payload/frontend/dist/assets/{sequenceDiagram-FGHM5R23-0qPxopqC.js → sequenceDiagram-FGHM5R23-vRc1a5W1.js} +1 -1
- package/payload/frontend/dist/assets/{stateDiagram-FHFEXIEX-BHxYXi2c.js → stateDiagram-FHFEXIEX-Bxcr7s70.js} +1 -1
- package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-YGvbZNwL.js +1 -0
- package/payload/frontend/dist/assets/{status-Zy2MW6gr.js → status-9tZZeoV7.js} +1 -1
- package/payload/frontend/dist/assets/suiji-DX2ioZ0I.js +1 -0
- package/payload/frontend/dist/assets/{svg-vmNZnz5w.js → svg-qpyWsADE.js} +1 -1
- package/payload/frontend/dist/assets/{tabs-C257BfM6.js → tabs-CwPtRQY0.js} +1 -1
- package/payload/frontend/dist/assets/{timeline-definition-GMOUNBTQ-BC_3Dip2.js → timeline-definition-GMOUNBTQ-2mD2ePS6.js} +1 -1
- package/payload/frontend/dist/assets/{vennDiagram-DHZGUBPP-V_X88VPq.js → vennDiagram-DHZGUBPP-w4DbLykx.js} +1 -1
- package/payload/frontend/dist/assets/{wardley-RL74JXVD-CflQhbCA.js → wardley-RL74JXVD-C3H8SQaZ.js} +1 -1
- package/payload/frontend/dist/assets/{wardleyDiagram-NUSXRM2D-C75i3btX.js → wardleyDiagram-NUSXRM2D-DEI0kC2c.js} +1 -1
- package/payload/frontend/dist/assets/{xychartDiagram-5P7HB3ND-KIYpQyyi.js → xychartDiagram-5P7HB3ND-DDVlpQ28.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 +2 -0
- package/payload/frontend/dist/assets/channel-DGu_xwRJ.js +0 -1
- package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-Xx1qN_NY.js +0 -1
- package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-Xx1qN_NY.js +0 -1
- package/payload/frontend/dist/assets/clone-DdDT5GkX.js +0 -1
- package/payload/frontend/dist/assets/connection-BL2ZiJKS.js +0 -12
- package/payload/frontend/dist/assets/main-C-ZLrzMh.css +0 -33
- package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-s5VUMcqx.js +0 -1
- package/payload/frontend/dist/assets/suiji-5pox13NE.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": "20261107T223312427Z-f6afc191",
|
|
4
|
+
"sourceRevision": "f6afc191b5f9be76aa35a6ee494a0d752c21af08",
|
|
5
5
|
"sourceDirty": false,
|
|
6
|
-
"builtAt": "2026-11-
|
|
7
|
-
"contentSha256": "
|
|
6
|
+
"builtAt": "2026-11-07T22:33:12.427Z",
|
|
7
|
+
"contentSha256": "c391a00b597ca25406e1b3afa7654d2fa4ecc180b3a685c649dbd2acd40c8900"
|
|
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":"20261107T223312427Z-f6afc191","sourceRevision":"f6afc191b5f9be76aa35a6ee494a0d752c21af08","sourceDirty":false,"builtAt":"2026-11-07T22:33:12.427Z","contentSha256":"c391a00b597ca25406e1b3afa7654d2fa4ecc180b3a685c649dbd2acd40c8900"};
|
|
2
2
|
const __IMPORT_META_URL__ = require('url').pathToFileURL(__filename).href;
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -25745,13 +25745,13 @@ var require_view = __commonJS({
|
|
|
25745
25745
|
View.prototype.resolve = function resolve2(dir, file) {
|
|
25746
25746
|
var ext = this.ext;
|
|
25747
25747
|
var path22 = join(dir, file);
|
|
25748
|
-
var
|
|
25749
|
-
if (
|
|
25748
|
+
var stat3 = tryStat(path22);
|
|
25749
|
+
if (stat3 && stat3.isFile()) {
|
|
25750
25750
|
return path22;
|
|
25751
25751
|
}
|
|
25752
25752
|
path22 = join(dir, basename(file, ext), "index" + ext);
|
|
25753
|
-
|
|
25754
|
-
if (
|
|
25753
|
+
stat3 = tryStat(path22);
|
|
25754
|
+
if (stat3 && stat3.isFile()) {
|
|
25755
25755
|
return path22;
|
|
25756
25756
|
}
|
|
25757
25757
|
};
|
|
@@ -26021,9 +26021,9 @@ var require_etag = __commonJS({
|
|
|
26021
26021
|
}
|
|
26022
26022
|
return obj && typeof obj === "object" && "ctime" in obj && toString.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number";
|
|
26023
26023
|
}
|
|
26024
|
-
function stattag(
|
|
26025
|
-
var mtime =
|
|
26026
|
-
var size =
|
|
26024
|
+
function stattag(stat3) {
|
|
26025
|
+
var mtime = stat3.mtime.getTime().toString(16);
|
|
26026
|
+
var size = stat3.size.toString(16);
|
|
26027
26027
|
return '"' + size + "-" + mtime + '"';
|
|
26028
26028
|
}
|
|
26029
26029
|
}
|
|
@@ -26636,8 +26636,8 @@ var require_send = __commonJS({
|
|
|
26636
26636
|
this.sendFile(path22);
|
|
26637
26637
|
return res;
|
|
26638
26638
|
};
|
|
26639
|
-
SendStream.prototype.send = function send3(path22,
|
|
26640
|
-
var len =
|
|
26639
|
+
SendStream.prototype.send = function send3(path22, stat3) {
|
|
26640
|
+
var len = stat3.size;
|
|
26641
26641
|
var options = this.options;
|
|
26642
26642
|
var opts = {};
|
|
26643
26643
|
var res = this.res;
|
|
@@ -26649,7 +26649,7 @@ var require_send = __commonJS({
|
|
|
26649
26649
|
return;
|
|
26650
26650
|
}
|
|
26651
26651
|
debug('pipe "%s"', path22);
|
|
26652
|
-
this.setHeader(path22,
|
|
26652
|
+
this.setHeader(path22, stat3);
|
|
26653
26653
|
this.type(path22);
|
|
26654
26654
|
if (this.isConditionalGET()) {
|
|
26655
26655
|
if (this.isPreconditionFailure()) {
|
|
@@ -26705,14 +26705,14 @@ var require_send = __commonJS({
|
|
|
26705
26705
|
var i = 0;
|
|
26706
26706
|
var self = this;
|
|
26707
26707
|
debug('stat "%s"', path22);
|
|
26708
|
-
fs.stat(path22, function onstat(err,
|
|
26708
|
+
fs.stat(path22, function onstat(err, stat3) {
|
|
26709
26709
|
if (err && err.code === "ENOENT" && !extname(path22) && path22[path22.length - 1] !== sep) {
|
|
26710
26710
|
return next(err);
|
|
26711
26711
|
}
|
|
26712
26712
|
if (err) return self.onStatError(err);
|
|
26713
|
-
if (
|
|
26714
|
-
self.emit("file", path22,
|
|
26715
|
-
self.send(path22,
|
|
26713
|
+
if (stat3.isDirectory()) return self.redirect(path22);
|
|
26714
|
+
self.emit("file", path22, stat3);
|
|
26715
|
+
self.send(path22, stat3);
|
|
26716
26716
|
});
|
|
26717
26717
|
function next(err) {
|
|
26718
26718
|
if (self._extensions.length <= i) {
|
|
@@ -26720,11 +26720,11 @@ var require_send = __commonJS({
|
|
|
26720
26720
|
}
|
|
26721
26721
|
var p = path22 + "." + self._extensions[i++];
|
|
26722
26722
|
debug('stat "%s"', p);
|
|
26723
|
-
fs.stat(p, function(err2,
|
|
26723
|
+
fs.stat(p, function(err2, stat3) {
|
|
26724
26724
|
if (err2) return next(err2);
|
|
26725
|
-
if (
|
|
26726
|
-
self.emit("file", p,
|
|
26727
|
-
self.send(p,
|
|
26725
|
+
if (stat3.isDirectory()) return next();
|
|
26726
|
+
self.emit("file", p, stat3);
|
|
26727
|
+
self.send(p, stat3);
|
|
26728
26728
|
});
|
|
26729
26729
|
}
|
|
26730
26730
|
};
|
|
@@ -26738,11 +26738,11 @@ var require_send = __commonJS({
|
|
|
26738
26738
|
}
|
|
26739
26739
|
var p = join(path22, self._index[i]);
|
|
26740
26740
|
debug('stat "%s"', p);
|
|
26741
|
-
fs.stat(p, function(err2,
|
|
26741
|
+
fs.stat(p, function(err2, stat3) {
|
|
26742
26742
|
if (err2) return next(err2);
|
|
26743
|
-
if (
|
|
26744
|
-
self.emit("file", p,
|
|
26745
|
-
self.send(p,
|
|
26743
|
+
if (stat3.isDirectory()) return next();
|
|
26744
|
+
self.emit("file", p, stat3);
|
|
26745
|
+
self.send(p, stat3);
|
|
26746
26746
|
});
|
|
26747
26747
|
}
|
|
26748
26748
|
next();
|
|
@@ -26777,9 +26777,9 @@ var require_send = __commonJS({
|
|
|
26777
26777
|
debug("content-type %s", type2);
|
|
26778
26778
|
res.setHeader("Content-Type", type2 + (charset ? "; charset=" + charset : ""));
|
|
26779
26779
|
};
|
|
26780
|
-
SendStream.prototype.setHeader = function setHeader(path22,
|
|
26780
|
+
SendStream.prototype.setHeader = function setHeader(path22, stat3) {
|
|
26781
26781
|
var res = this.res;
|
|
26782
|
-
this.emit("headers", res, path22,
|
|
26782
|
+
this.emit("headers", res, path22, stat3);
|
|
26783
26783
|
if (this._acceptRanges && !res.getHeader("Accept-Ranges")) {
|
|
26784
26784
|
debug("accept ranges");
|
|
26785
26785
|
res.setHeader("Accept-Ranges", "bytes");
|
|
@@ -26793,12 +26793,12 @@ var require_send = __commonJS({
|
|
|
26793
26793
|
res.setHeader("Cache-Control", cacheControl);
|
|
26794
26794
|
}
|
|
26795
26795
|
if (this._lastModified && !res.getHeader("Last-Modified")) {
|
|
26796
|
-
var modified =
|
|
26796
|
+
var modified = stat3.mtime.toUTCString();
|
|
26797
26797
|
debug("modified %s", modified);
|
|
26798
26798
|
res.setHeader("Last-Modified", modified);
|
|
26799
26799
|
}
|
|
26800
26800
|
if (this._etag && !res.getHeader("ETag")) {
|
|
26801
|
-
var val = etag(
|
|
26801
|
+
var val = etag(stat3);
|
|
26802
26802
|
debug("etag %s", val);
|
|
26803
26803
|
res.setHeader("ETag", val);
|
|
26804
26804
|
}
|
|
@@ -33560,16 +33560,16 @@ async function scanConversationSource(file, consume, signal) {
|
|
|
33560
33560
|
try {
|
|
33561
33561
|
if (await (0, import_promises.realpath)(file) !== file) return null;
|
|
33562
33562
|
handle = await (0, import_promises.open)(file, import_node_fs2.constants.O_RDONLY | import_node_fs2.constants.O_NOFOLLOW);
|
|
33563
|
-
const
|
|
33564
|
-
if (!
|
|
33563
|
+
const stat3 = await handle.stat();
|
|
33564
|
+
if (!stat3.isFile()) return null;
|
|
33565
33565
|
const windowBytes = 64 * 1024 * 1024;
|
|
33566
|
-
const truncated =
|
|
33566
|
+
const truncated = stat3.size > windowBytes;
|
|
33567
33567
|
let partial = truncated;
|
|
33568
33568
|
const chunk = Buffer.alloc(256 * 1024);
|
|
33569
33569
|
const ranges = truncated ? [
|
|
33570
|
-
{ start: 0, end: Math.min(chunk.length,
|
|
33571
|
-
{ start:
|
|
33572
|
-
] : [{ start: 0, end:
|
|
33570
|
+
{ start: 0, end: Math.min(chunk.length, stat3.size), header: true },
|
|
33571
|
+
{ start: stat3.size - windowBytes, end: stat3.size, header: false }
|
|
33572
|
+
] : [{ start: 0, end: stat3.size, header: false }];
|
|
33573
33573
|
for (const range of ranges) {
|
|
33574
33574
|
let position = range.start;
|
|
33575
33575
|
let lineOffset = position;
|
|
@@ -34558,15 +34558,15 @@ var ConfigurationError = class extends Error {
|
|
|
34558
34558
|
// packages/config-node/src/private-file.ts
|
|
34559
34559
|
var import_node_fs4 = require("node:fs");
|
|
34560
34560
|
function assertPrivateDirectory(directory) {
|
|
34561
|
-
const
|
|
34562
|
-
if (!
|
|
34561
|
+
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");
|
|
34563
34563
|
}
|
|
34564
34564
|
function assertPrivateDescriptor(fd, maxBytes = 1024 * 1024) {
|
|
34565
|
-
const
|
|
34566
|
-
if (!
|
|
34567
|
-
if (typeof process.getuid === "function" &&
|
|
34568
|
-
if (
|
|
34569
|
-
if (
|
|
34565
|
+
const stat3 = (0, import_node_fs4.fstatSync)(fd);
|
|
34566
|
+
if (!stat3.isFile() || stat3.nlink !== 1) throw new ConfigurationError("CONFIG_FILE_NOT_PRIVATE_REGULAR");
|
|
34567
|
+
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");
|
|
34569
|
+
if (stat3.size > maxBytes) throw new ConfigurationError("CONFIG_FILE_TOO_LARGE");
|
|
34570
34570
|
}
|
|
34571
34571
|
function readPrivateFile(file, maxBytes = 1024 * 1024) {
|
|
34572
34572
|
const fd = (0, import_node_fs4.openSync)(file, import_node_fs4.constants.O_RDONLY | import_node_fs4.constants.O_NOFOLLOW);
|
|
@@ -35086,6 +35086,8 @@ function isConfigurationContainer(key, array = false) {
|
|
|
35086
35086
|
});
|
|
35087
35087
|
}
|
|
35088
35088
|
function domainForPath(key) {
|
|
35089
|
+
const declared = Object.keys(CONFIGURATION_DOMAIN_VERSIONS).find((domain) => key === domain || key.startsWith(`${domain}.`));
|
|
35090
|
+
if (declared) return declared;
|
|
35089
35091
|
const parts = key.split(".");
|
|
35090
35092
|
return ["backend", "services", "desktop", "agents"].includes(parts[0]) ? parts.slice(0, 2).join(".") : parts[0];
|
|
35091
35093
|
}
|
|
@@ -35254,11 +35256,11 @@ function parseConfigurationYaml(source, context) {
|
|
|
35254
35256
|
return { document: document2, value, digest: (0, import_node_crypto4.createHash)("sha256").update(source).digest("hex"), issues: validateDomains(value, context) };
|
|
35255
35257
|
}
|
|
35256
35258
|
function assertPrivateFile(file, fd) {
|
|
35257
|
-
const
|
|
35258
|
-
if (!
|
|
35259
|
-
if (typeof process.getuid === "function" &&
|
|
35260
|
-
if ((
|
|
35261
|
-
if (
|
|
35259
|
+
const stat3 = fd === void 0 ? (0, import_node_fs7.lstatSync)(file) : (0, import_node_fs7.fstatSync)(fd);
|
|
35260
|
+
if (!stat3.isFile() || stat3.isSymbolicLink() || stat3.nlink !== 1) throw new ConfigurationError("CONFIG_FILE_NOT_PRIVATE_REGULAR");
|
|
35261
|
+
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");
|
|
35263
|
+
if (stat3.size > MAX_BYTES) throw new ConfigurationError("CONFIG_FILE_TOO_LARGE", [], { line: 1, column: 1 });
|
|
35262
35264
|
}
|
|
35263
35265
|
var ConfigurationStore = class {
|
|
35264
35266
|
constructor(context) {
|
|
@@ -35910,8 +35912,8 @@ var PiSessionReader = class {
|
|
|
35910
35912
|
try {
|
|
35911
35913
|
if (await (0, import_promises4.realpath)(file) !== file) return null;
|
|
35912
35914
|
handle = await (0, import_promises4.open)(file, "r");
|
|
35913
|
-
const
|
|
35914
|
-
if (!
|
|
35915
|
+
const stat3 = await handle.stat();
|
|
35916
|
+
if (!stat3.isFile() || stat3.size > 64 * 1024 * 1024) return null;
|
|
35915
35917
|
const content = await handle.readFile("utf8");
|
|
35916
35918
|
const lines = content.split("\n");
|
|
35917
35919
|
lines.pop();
|
|
@@ -36041,7 +36043,7 @@ ${entry.summary}`
|
|
|
36041
36043
|
preview,
|
|
36042
36044
|
status: status === "running" ? "active" : status === "idle" ? "idle" : "notLoaded",
|
|
36043
36045
|
createdAt: String(header.timestamp ?? ""),
|
|
36044
|
-
updatedAt: new Date(
|
|
36046
|
+
updatedAt: new Date(stat3.mtimeMs).toISOString(),
|
|
36045
36047
|
turns
|
|
36046
36048
|
},
|
|
36047
36049
|
latest
|
|
@@ -36408,15 +36410,15 @@ var ThreadPreviewReader = class {
|
|
|
36408
36410
|
}
|
|
36409
36411
|
const handle = await (0, import_promises6.open)(file, "r");
|
|
36410
36412
|
try {
|
|
36411
|
-
const
|
|
36412
|
-
if (!
|
|
36413
|
+
const stat3 = await handle.stat();
|
|
36414
|
+
if (!stat3.isFile()) {
|
|
36413
36415
|
entry.ready = false;
|
|
36414
36416
|
entry.availability = "source_missing";
|
|
36415
36417
|
return;
|
|
36416
36418
|
}
|
|
36417
|
-
if (entry.file !== file || entry.inode !==
|
|
36419
|
+
if (entry.file !== file || entry.inode !== stat3.ino || stat3.size < entry.offset) {
|
|
36418
36420
|
entry.file = file;
|
|
36419
|
-
entry.inode =
|
|
36421
|
+
entry.inode = stat3.ino;
|
|
36420
36422
|
entry.offset = 0;
|
|
36421
36423
|
entry.pending = Buffer.alloc(0);
|
|
36422
36424
|
entry.skippingLine = false;
|
|
@@ -36428,11 +36430,11 @@ var ThreadPreviewReader = class {
|
|
|
36428
36430
|
entry.leaf = null;
|
|
36429
36431
|
entry.piCursor = null;
|
|
36430
36432
|
}
|
|
36431
|
-
const buffer = Buffer.alloc(Math.min(READ_BYTES,
|
|
36433
|
+
const buffer = Buffer.alloc(Math.min(READ_BYTES, stat3.size - entry.offset));
|
|
36432
36434
|
const { bytesRead } = await handle.read(buffer, 0, buffer.length, entry.offset);
|
|
36433
36435
|
entry.offset += bytesRead;
|
|
36434
36436
|
this.consume(entry, buffer.subarray(0, bytesRead));
|
|
36435
|
-
if (entry.offset <
|
|
36437
|
+
if (entry.offset < stat3.size) {
|
|
36436
36438
|
this.queued.add(entry);
|
|
36437
36439
|
return;
|
|
36438
36440
|
}
|
|
@@ -37353,6 +37355,7 @@ var import_promises9 = require("node:fs/promises");
|
|
|
37353
37355
|
var import_node_os5 = __toESM(require("node:os"), 1);
|
|
37354
37356
|
var import_node_path16 = __toESM(require("node:path"), 1);
|
|
37355
37357
|
var ROLLOUT_TAIL_BYTES = 1024 * 1024;
|
|
37358
|
+
var ROLLOUT_LOOKBACK_BYTES = 64 * ROLLOUT_TAIL_BYTES;
|
|
37356
37359
|
var TERMINAL_LIFECYCLE_TYPES = /* @__PURE__ */ new Set([
|
|
37357
37360
|
"task_started",
|
|
37358
37361
|
"task_complete",
|
|
@@ -37378,13 +37381,11 @@ var CodexRolloutLifecycleReader = class {
|
|
|
37378
37381
|
}
|
|
37379
37382
|
try {
|
|
37380
37383
|
const previous = this.snapshots.get(threadId);
|
|
37381
|
-
const
|
|
37382
|
-
if (tail.content === null) return previous.lifecycle;
|
|
37383
|
-
const lifecycle = parseLatestLifecycle(tail.content);
|
|
37384
|
+
const snapshot = await readFileLifecycle(filePath, previous);
|
|
37384
37385
|
this.snapshots.delete(threadId);
|
|
37385
|
-
this.snapshots.set(threadId,
|
|
37386
|
+
this.snapshots.set(threadId, snapshot);
|
|
37386
37387
|
if (this.snapshots.size > 128) this.snapshots.delete(this.snapshots.keys().next().value);
|
|
37387
|
-
return lifecycle;
|
|
37388
|
+
return snapshot.lifecycle;
|
|
37388
37389
|
} catch {
|
|
37389
37390
|
this.threadPaths.delete(threadId);
|
|
37390
37391
|
this.snapshots.delete(threadId);
|
|
@@ -37417,21 +37418,32 @@ var CodexRolloutLifecycleReader = class {
|
|
|
37417
37418
|
return this.threadPaths.get(threadId) ?? [...this.threadPaths].find(([id]) => id.endsWith(`-${threadId}`))?.[1] ?? null;
|
|
37418
37419
|
}
|
|
37419
37420
|
};
|
|
37420
|
-
async function
|
|
37421
|
+
async function readFileLifecycle(filePath, previous) {
|
|
37421
37422
|
const handle = await (0, import_promises9.open)(filePath, "r");
|
|
37422
37423
|
try {
|
|
37423
37424
|
const { size, dev, ino, mtimeMs, ctimeMs } = await handle.stat();
|
|
37424
37425
|
const signature = `${filePath}:${dev}:${ino}:${size}:${mtimeMs}:${ctimeMs}`;
|
|
37425
|
-
if (signature ===
|
|
37426
|
-
const
|
|
37427
|
-
|
|
37428
|
-
|
|
37429
|
-
|
|
37430
|
-
|
|
37431
|
-
|
|
37432
|
-
|
|
37433
|
-
|
|
37434
|
-
|
|
37426
|
+
if (signature === previous?.signature) return previous;
|
|
37427
|
+
const floor = Math.max(0, size - ROLLOUT_LOOKBACK_BYTES);
|
|
37428
|
+
let end = size;
|
|
37429
|
+
let suffix = Buffer.alloc(0);
|
|
37430
|
+
let lifecycle = null;
|
|
37431
|
+
while (end > floor && !lifecycle) {
|
|
37432
|
+
const start = Math.max(floor, end - ROLLOUT_TAIL_BYTES);
|
|
37433
|
+
const buffer = Buffer.alloc(end - start);
|
|
37434
|
+
const { bytesRead } = await handle.read(buffer, 0, buffer.length, start);
|
|
37435
|
+
if (bytesRead !== buffer.length) return { signature, lifecycle: null };
|
|
37436
|
+
const value = Buffer.concat([buffer, suffix]);
|
|
37437
|
+
const boundary = start > 0 ? value.indexOf(10) : -1;
|
|
37438
|
+
const complete = start === 0 ? value : boundary < 0 ? Buffer.alloc(0) : value.subarray(boundary + 1);
|
|
37439
|
+
lifecycle = parseLatestLifecycle(complete.toString("utf8"));
|
|
37440
|
+
suffix = boundary >= 0 && boundary < ROLLOUT_TAIL_BYTES ? Buffer.from(value.subarray(0, boundary + 1)) : Buffer.alloc(0);
|
|
37441
|
+
end = start;
|
|
37442
|
+
}
|
|
37443
|
+
const current = await (0, import_promises9.stat)(filePath);
|
|
37444
|
+
if (current.dev !== dev || current.ino !== ino || current.size !== size || current.mtimeMs !== mtimeMs || current.ctimeMs !== ctimeMs)
|
|
37445
|
+
return { signature, lifecycle: null };
|
|
37446
|
+
return { signature, lifecycle };
|
|
37435
37447
|
} finally {
|
|
37436
37448
|
await handle.close();
|
|
37437
37449
|
}
|
|
@@ -37629,6 +37641,7 @@ var AgentThreadStatusReconciler = class {
|
|
|
37629
37641
|
collectCandidates() {
|
|
37630
37642
|
const cutoff = Date.now() - ACTIVE_WINDOW_MS;
|
|
37631
37643
|
return this.options.eventCenter.getStateStore().listThreads({ limit: 1e4 }).filter((thread) => RECONCILED_AGENTS.has(thread.agent)).filter((thread) => !thread.threadId.startsWith("unknown-thread:")).filter((thread) => {
|
|
37644
|
+
if (thread.status === "running") return true;
|
|
37632
37645
|
const lastActivityAtMs = Date.parse(thread.lastActivityAt);
|
|
37633
37646
|
return !Number.isFinite(lastActivityAtMs) || lastActivityAtMs >= cutoff;
|
|
37634
37647
|
}).sort(
|
|
@@ -37664,8 +37677,19 @@ var AgentThreadStatusReconciler = class {
|
|
|
37664
37677
|
const lifecycle2 = await this.options.codexRolloutLifecycleReader.readLatestLifecycle(
|
|
37665
37678
|
thread.threadId
|
|
37666
37679
|
);
|
|
37680
|
+
if (lifecycle2?.status === "running" && (thread.status === "running" || !isOlderThanThreadProjection(lifecycle2.timestamp, thread))) {
|
|
37681
|
+
return {
|
|
37682
|
+
status: "running",
|
|
37683
|
+
lifecycleType: `rollout:${lifecycle2.type}`,
|
|
37684
|
+
lifecycleCursor: lifecycle2.cursor,
|
|
37685
|
+
detailStatus: null,
|
|
37686
|
+
preview: null,
|
|
37687
|
+
turnId: lifecycle2.turnId
|
|
37688
|
+
};
|
|
37689
|
+
}
|
|
37667
37690
|
const sameObservedFailure = lifecycle2?.error && thread.status === "idle" && thread.lastLifecycleType === `rollout:${lifecycle2.type}` && thread.lastLifecycleCursor === lifecycle2.cursor;
|
|
37668
|
-
|
|
37691
|
+
const followsObservedStart = lifecycle2 && thread.lastLifecycleType === "rollout:task_started" && newerRolloutCursor(lifecycle2.cursor, thread.lastLifecycleCursor);
|
|
37692
|
+
if (lifecycle2?.status === "idle" && (!isOlderThanThreadProjection(lifecycle2.timestamp, thread) || sameObservedFailure || followsObservedStart) && // A terminal error is a fact even if a Hook already marked the thread
|
|
37669
37693
|
// idle, or thread/read still reports active. Never adopt an old turn.
|
|
37670
37694
|
(lifecycle2.error || thread.status === "running" && status !== "active")) {
|
|
37671
37695
|
return {
|
|
@@ -37784,6 +37808,11 @@ var AgentThreadStatusReconciler = class {
|
|
|
37784
37808
|
});
|
|
37785
37809
|
}
|
|
37786
37810
|
};
|
|
37811
|
+
function newerRolloutCursor(current, previous) {
|
|
37812
|
+
const currentOrdinal = current.match(/^rollout:(\d+)$/)?.[1];
|
|
37813
|
+
const previousOrdinal = previous?.match(/^rollout:(\d+)$/)?.[1];
|
|
37814
|
+
return Boolean(currentOrdinal && previousOrdinal && BigInt(currentOrdinal) > BigInt(previousOrdinal));
|
|
37815
|
+
}
|
|
37787
37816
|
function isOlderThanThreadProjection(observedAt, thread) {
|
|
37788
37817
|
const observedAtMs = Date.parse(observedAt);
|
|
37789
37818
|
const projectedAtMs = Date.parse(thread.updatedAt);
|