camstack 1.2.57 → 1.2.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js
CHANGED
|
@@ -38,7 +38,7 @@ async function runServe(args) {
|
|
|
38
38
|
...typeof values.data === "string" ? { data: values.data } : {}
|
|
39
39
|
};
|
|
40
40
|
Object.assign(process.env, buildServeEnv(opts));
|
|
41
|
-
await import("./launcher-
|
|
41
|
+
await import("./launcher-AL5IQ6H2.js");
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
// src/commands/agent.ts
|
|
@@ -83,7 +83,7 @@ async function runAgent(args) {
|
|
|
83
83
|
...typeof values.port === "string" ? { port: values.port } : {}
|
|
84
84
|
};
|
|
85
85
|
Object.assign(process.env, buildAgentEnv(opts));
|
|
86
|
-
await import("./launcher-
|
|
86
|
+
await import("./launcher-AL5IQ6H2.js");
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// src/commands/setup.ts
|
|
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
|
|
|
23633
23633
|
}
|
|
23634
23634
|
});
|
|
23635
23635
|
|
|
23636
|
-
// ../system/dist/dist-
|
|
23637
|
-
var
|
|
23638
|
-
"../system/dist/dist-
|
|
23636
|
+
// ../system/dist/dist-CxgTulEG.js
|
|
23637
|
+
var require_dist_CxgTulEG = __commonJS({
|
|
23638
|
+
"../system/dist/dist-CxgTulEG.js"(exports) {
|
|
23639
23639
|
"use strict";
|
|
23640
23640
|
var zod = require_zod();
|
|
23641
23641
|
var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
|
|
@@ -58639,7 +58639,7 @@ var require_alerts_addon = __commonJS({
|
|
|
58639
58639
|
[Symbol.toStringTag]: { value: "Module" }
|
|
58640
58640
|
});
|
|
58641
58641
|
require_chunk_Cek0wNdY();
|
|
58642
|
-
var require_dist10 =
|
|
58642
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
58643
58643
|
function selectExpired(alerts, cutoffMs) {
|
|
58644
58644
|
return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
|
|
58645
58645
|
}
|
|
@@ -59458,7 +59458,7 @@ var require_console_logging = __commonJS({
|
|
|
59458
59458
|
[Symbol.toStringTag]: { value: "Module" }
|
|
59459
59459
|
});
|
|
59460
59460
|
require_chunk_Cek0wNdY();
|
|
59461
|
-
var require_dist10 =
|
|
59461
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
59462
59462
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
59463
59463
|
var LEVEL_RANK = {
|
|
59464
59464
|
debug: 0,
|
|
@@ -59552,7 +59552,7 @@ var require_core_blocks_addon = __commonJS({
|
|
|
59552
59552
|
"use strict";
|
|
59553
59553
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
59554
59554
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
59555
|
-
var require_dist10 =
|
|
59555
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
59556
59556
|
var node_crypto = __require("crypto");
|
|
59557
59557
|
var node_fs_promises = __require("fs/promises");
|
|
59558
59558
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -60449,11 +60449,11 @@ var require_core_blocks = __commonJS({
|
|
|
60449
60449
|
}
|
|
60450
60450
|
});
|
|
60451
60451
|
|
|
60452
|
-
// ../system/dist/retired-settings-keys-
|
|
60453
|
-
var
|
|
60454
|
-
"../system/dist/retired-settings-keys-
|
|
60452
|
+
// ../system/dist/retired-settings-keys-BbjWjol0.js
|
|
60453
|
+
var require_retired_settings_keys_BbjWjol0 = __commonJS({
|
|
60454
|
+
"../system/dist/retired-settings-keys-BbjWjol0.js"(exports) {
|
|
60455
60455
|
"use strict";
|
|
60456
|
-
var require_dist10 =
|
|
60456
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
60457
60457
|
function settingsStoreIsAuthoritativeHere(env) {
|
|
60458
60458
|
const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
|
|
60459
60459
|
return raw === "" || raw === "hub";
|
|
@@ -62667,8 +62667,8 @@ var require_device_manager_addon = __commonJS({
|
|
|
62667
62667
|
[Symbol.toStringTag]: { value: "Module" }
|
|
62668
62668
|
});
|
|
62669
62669
|
require_chunk_Cek0wNdY();
|
|
62670
|
-
var require_dist10 =
|
|
62671
|
-
var require_retired_settings_keys =
|
|
62670
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
62671
|
+
var require_retired_settings_keys = require_retired_settings_keys_BbjWjol0();
|
|
62672
62672
|
var node_crypto = __require("crypto");
|
|
62673
62673
|
var _camstack_types_node = require_node();
|
|
62674
62674
|
var JOB_HISTORY = 20;
|
|
@@ -67417,7 +67417,7 @@ var require_hub_forwarder = __commonJS({
|
|
|
67417
67417
|
[Symbol.toStringTag]: { value: "Module" }
|
|
67418
67418
|
});
|
|
67419
67419
|
require_chunk_Cek0wNdY();
|
|
67420
|
-
var require_dist10 =
|
|
67420
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
67421
67421
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
67422
67422
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
67423
67423
|
var HubForwarderDestination = class {
|
|
@@ -67554,7 +67554,7 @@ var require_liveness_monitor_addon = __commonJS({
|
|
|
67554
67554
|
"use strict";
|
|
67555
67555
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
67556
67556
|
require_chunk_Cek0wNdY();
|
|
67557
|
-
var require_dist10 =
|
|
67557
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
67558
67558
|
var NO_DEVICES = "liveness:no-devices";
|
|
67559
67559
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
67560
67560
|
var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
|
|
@@ -67744,7 +67744,7 @@ var require_local_auth_addon = __commonJS({
|
|
|
67744
67744
|
[Symbol.toStringTag]: { value: "Module" }
|
|
67745
67745
|
});
|
|
67746
67746
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
67747
|
-
var require_dist10 =
|
|
67747
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
67748
67748
|
var node_crypto = __require("crypto");
|
|
67749
67749
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
67750
67750
|
var crypto$1 = __require("crypto");
|
|
@@ -75557,7 +75557,7 @@ var require_loki_logging = __commonJS({
|
|
|
75557
75557
|
[Symbol.toStringTag]: { value: "Module" }
|
|
75558
75558
|
});
|
|
75559
75559
|
require_chunk_Cek0wNdY();
|
|
75560
|
-
var require_dist10 =
|
|
75560
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
75561
75561
|
function sanitizeLabelName(raw) {
|
|
75562
75562
|
const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
|
|
75563
75563
|
return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
|
|
@@ -76122,7 +76122,7 @@ var require_native_metrics_addon = __commonJS({
|
|
|
76122
76122
|
[Symbol.toStringTag]: { value: "Module" }
|
|
76123
76123
|
});
|
|
76124
76124
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
76125
|
-
var require_dist10 =
|
|
76125
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
76126
76126
|
var node_fs_promises = __require("fs/promises");
|
|
76127
76127
|
var node_child_process = __require("child_process");
|
|
76128
76128
|
var node_util = __require("util");
|
|
@@ -78079,7 +78079,7 @@ var require_filesystem_storage_addon = __commonJS({
|
|
|
78079
78079
|
[Symbol.toStringTag]: { value: "Module" }
|
|
78080
78080
|
});
|
|
78081
78081
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
78082
|
-
var require_dist10 =
|
|
78082
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
78083
78083
|
var node_crypto = __require("crypto");
|
|
78084
78084
|
var node_fs_promises = __require("fs/promises");
|
|
78085
78085
|
var node_path = __require("path");
|
|
@@ -79195,8 +79195,8 @@ var require_sqlite_settings_addon = __commonJS({
|
|
|
79195
79195
|
[Symbol.toStringTag]: { value: "Module" }
|
|
79196
79196
|
});
|
|
79197
79197
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
79198
|
-
var require_dist10 =
|
|
79199
|
-
var require_retired_settings_keys =
|
|
79198
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
79199
|
+
var require_retired_settings_keys = require_retired_settings_keys_BbjWjol0();
|
|
79200
79200
|
var node_crypto = __require("crypto");
|
|
79201
79201
|
var node_fs = __require("fs");
|
|
79202
79202
|
var node_module = __require("module");
|
|
@@ -81475,7 +81475,7 @@ var require_storage_orchestrator_addon = __commonJS({
|
|
|
81475
81475
|
[Symbol.toStringTag]: { value: "Module" }
|
|
81476
81476
|
});
|
|
81477
81477
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
81478
|
-
var require_dist10 =
|
|
81478
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
81479
81479
|
var node_crypto = __require("crypto");
|
|
81480
81480
|
var node_fs_promises = __require("fs/promises");
|
|
81481
81481
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -83356,7 +83356,7 @@ var require_system_config_addon = __commonJS({
|
|
|
83356
83356
|
[Symbol.toStringTag]: { value: "Module" }
|
|
83357
83357
|
});
|
|
83358
83358
|
require_chunk_Cek0wNdY();
|
|
83359
|
-
var require_dist10 =
|
|
83359
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
83360
83360
|
var SECTION_TITLES = {
|
|
83361
83361
|
server: "Server",
|
|
83362
83362
|
auth: "Authentication"
|
|
@@ -101417,7 +101417,7 @@ var require_winston_logging = __commonJS({
|
|
|
101417
101417
|
[Symbol.toStringTag]: { value: "Module" }
|
|
101418
101418
|
});
|
|
101419
101419
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
101420
|
-
var require_dist10 =
|
|
101420
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
101421
101421
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
101422
101422
|
var node_path = __require("path");
|
|
101423
101423
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -113905,12 +113905,12 @@ var require_dist2 = __commonJS({
|
|
|
113905
113905
|
}
|
|
113906
113906
|
});
|
|
113907
113907
|
|
|
113908
|
-
// ../system/dist/manifest-python-deps-
|
|
113909
|
-
var
|
|
113910
|
-
"../system/dist/manifest-python-deps-
|
|
113908
|
+
// ../system/dist/manifest-python-deps-CcDe4S2Z.js
|
|
113909
|
+
var require_manifest_python_deps_CcDe4S2Z = __commonJS({
|
|
113910
|
+
"../system/dist/manifest-python-deps-CcDe4S2Z.js"(exports) {
|
|
113911
113911
|
"use strict";
|
|
113912
113912
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
113913
|
-
|
|
113913
|
+
require_dist_CxgTulEG();
|
|
113914
113914
|
var node_crypto = __require("crypto");
|
|
113915
113915
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
113916
113916
|
var _camstack_types_node = require_node();
|
|
@@ -113924,14 +113924,161 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
113924
113924
|
var node_fs = __require("fs");
|
|
113925
113925
|
node_fs = require_chunk.__toESM(node_fs);
|
|
113926
113926
|
var node_http = __require("http");
|
|
113927
|
-
var node_perf_hooks = __require("perf_hooks");
|
|
113928
113927
|
var node_v8 = __require("v8");
|
|
113929
113928
|
node_v8 = require_chunk.__toESM(node_v8);
|
|
113929
|
+
var node_perf_hooks = __require("perf_hooks");
|
|
113930
113930
|
var node_vm = __require("vm");
|
|
113931
113931
|
node_vm = require_chunk.__toESM(node_vm);
|
|
113932
113932
|
var _camstack_types_addon = require_addon();
|
|
113933
113933
|
var node_net = __require("net");
|
|
113934
113934
|
var _trpc_client = require_dist2();
|
|
113935
|
+
function createEventPlaneReader(sources) {
|
|
113936
|
+
return () => {
|
|
113937
|
+
try {
|
|
113938
|
+
const registry = sources.registry();
|
|
113939
|
+
if (registry === null) return void 0;
|
|
113940
|
+
const children = [];
|
|
113941
|
+
const listed = registry.listChildren();
|
|
113942
|
+
for (const child of listed) {
|
|
113943
|
+
const stats = registry.getChildEventStats(child.childId);
|
|
113944
|
+
if (stats === null) continue;
|
|
113945
|
+
children.push({
|
|
113946
|
+
childId: child.childId,
|
|
113947
|
+
sent: stats.sent,
|
|
113948
|
+
suppressed: stats.suppressed
|
|
113949
|
+
});
|
|
113950
|
+
}
|
|
113951
|
+
const crossNode = sources.crossNodeStats();
|
|
113952
|
+
return {
|
|
113953
|
+
udsMode: registry.eventFanoutMode,
|
|
113954
|
+
crossNodeMode: sources.crossNodeMode(),
|
|
113955
|
+
children,
|
|
113956
|
+
childrenConnected: listed.length,
|
|
113957
|
+
childrenUndeclared: registry.undeclaredChildCount(),
|
|
113958
|
+
crossNodeDelivered: crossNode?.delivered ?? 0,
|
|
113959
|
+
crossNodeSuppressed: crossNode?.suppressed ?? 0
|
|
113960
|
+
};
|
|
113961
|
+
} catch {
|
|
113962
|
+
return;
|
|
113963
|
+
}
|
|
113964
|
+
};
|
|
113965
|
+
}
|
|
113966
|
+
var EVENT_PLANE_TOP_N = 5;
|
|
113967
|
+
var EMPTY_EVENT_PLANE_BASELINE = {
|
|
113968
|
+
children: /* @__PURE__ */ new Map(),
|
|
113969
|
+
crossNodeDelivered: 0,
|
|
113970
|
+
crossNodeSuppressed: 0
|
|
113971
|
+
};
|
|
113972
|
+
function diffEventPlane(baseline, current, topN = 5) {
|
|
113973
|
+
const deltas = [];
|
|
113974
|
+
let fanoutSent = 0;
|
|
113975
|
+
let fanoutSuppressed = 0;
|
|
113976
|
+
for (const sample of current.children) {
|
|
113977
|
+
const before = baseline.children.get(sample.childId);
|
|
113978
|
+
const sent = Math.max(0, sample.sent - (before?.sent ?? 0));
|
|
113979
|
+
const suppressed = Math.max(0, sample.suppressed - (before?.suppressed ?? 0));
|
|
113980
|
+
fanoutSent += sent;
|
|
113981
|
+
fanoutSuppressed += suppressed;
|
|
113982
|
+
if (sent > 0 || suppressed > 0) deltas.push({
|
|
113983
|
+
childId: sample.childId,
|
|
113984
|
+
sent,
|
|
113985
|
+
suppressed
|
|
113986
|
+
});
|
|
113987
|
+
}
|
|
113988
|
+
return {
|
|
113989
|
+
udsMode: current.udsMode,
|
|
113990
|
+
crossNodeMode: current.crossNodeMode,
|
|
113991
|
+
childrenConnected: current.childrenConnected,
|
|
113992
|
+
childrenUndeclared: current.childrenUndeclared,
|
|
113993
|
+
fanoutSent,
|
|
113994
|
+
fanoutSuppressed,
|
|
113995
|
+
crossNodeDelivered: Math.max(0, current.crossNodeDelivered - baseline.crossNodeDelivered),
|
|
113996
|
+
crossNodeSuppressed: Math.max(0, current.crossNodeSuppressed - baseline.crossNodeSuppressed),
|
|
113997
|
+
top: deltas.toSorted((a, b) => b.sent - a.sent || a.childId.localeCompare(b.childId)).slice(0, topN)
|
|
113998
|
+
};
|
|
113999
|
+
}
|
|
114000
|
+
function createEventPlaneMeter(reader, topN = 5) {
|
|
114001
|
+
let baseline = EMPTY_EVENT_PLANE_BASELINE;
|
|
114002
|
+
return { read: () => {
|
|
114003
|
+
const current = reader();
|
|
114004
|
+
if (current === void 0) return void 0;
|
|
114005
|
+
const window2 = diffEventPlane(baseline, current, topN);
|
|
114006
|
+
baseline = {
|
|
114007
|
+
children: new Map(current.children.map((s) => [s.childId, s])),
|
|
114008
|
+
crossNodeDelivered: current.crossNodeDelivered,
|
|
114009
|
+
crossNodeSuppressed: current.crossNodeSuppressed
|
|
114010
|
+
};
|
|
114011
|
+
return window2;
|
|
114012
|
+
} };
|
|
114013
|
+
}
|
|
114014
|
+
function formatEventPlane(window2) {
|
|
114015
|
+
if (window2 === void 0) return "";
|
|
114016
|
+
const top = window2.top.map((d) => `${d.childId}:${d.sent}/${d.suppressed}`).join(",");
|
|
114017
|
+
return ` fanoutMode=uds:${window2.udsMode}/cross-node:${window2.crossNodeMode} children=${window2.childrenConnected} childrenUndeclared=${window2.childrenUndeclared} fanoutSent=${window2.fanoutSent} fanoutSuppressed=${window2.fanoutSuppressed} crossNodeDelivered=${window2.crossNodeDelivered} crossNodeSuppressed=${window2.crossNodeSuppressed}` + (top.length === 0 ? "" : ` fanoutTop=${top}`);
|
|
114018
|
+
}
|
|
114019
|
+
var DECISIVE_HEAP_SPACES = ["old_space", "large_object_space"];
|
|
114020
|
+
var HEAP_SPACE_REPORT_MIN_MB = 32;
|
|
114021
|
+
var BYTES_PER_MB = 1048576;
|
|
114022
|
+
function mb(bytes) {
|
|
114023
|
+
return Math.round(bytes / BYTES_PER_MB);
|
|
114024
|
+
}
|
|
114025
|
+
function tenthsMb(bytes) {
|
|
114026
|
+
return Math.round(bytes / BYTES_PER_MB * 10) / 10;
|
|
114027
|
+
}
|
|
114028
|
+
function readHeapSpaces() {
|
|
114029
|
+
try {
|
|
114030
|
+
return node_v8.getHeapSpaceStatistics().map((space) => ({
|
|
114031
|
+
name: space.space_name,
|
|
114032
|
+
usedBytes: space.space_used_size
|
|
114033
|
+
}));
|
|
114034
|
+
} catch {
|
|
114035
|
+
return [];
|
|
114036
|
+
}
|
|
114037
|
+
}
|
|
114038
|
+
function heapSpaceField(v8Name) {
|
|
114039
|
+
return v8Name.replace(/_([a-z])/g, (_match, letter) => letter.toUpperCase());
|
|
114040
|
+
}
|
|
114041
|
+
function selectReportedSpaces(spaces, minMb = 32) {
|
|
114042
|
+
const decisive = DECISIVE_HEAP_SPACES.map((name) => spaces.find((space) => space.name === name)).filter((space) => space !== void 0);
|
|
114043
|
+
const rest = spaces.filter((space) => !DECISIVE_HEAP_SPACES.includes(space.name)).filter((space) => mb(space.usedBytes) >= minMb).toSorted((a, b) => b.usedBytes - a.usedBytes || a.name.localeCompare(b.name));
|
|
114044
|
+
return [...decisive, ...rest];
|
|
114045
|
+
}
|
|
114046
|
+
function formatHeapSpaces(spaces, minMb = 32) {
|
|
114047
|
+
const selected = selectReportedSpaces(spaces, minMb);
|
|
114048
|
+
if (selected.length === 0) return "";
|
|
114049
|
+
return ` ${selected.map((s) => `${heapSpaceField(s.name)}=${mb(s.usedBytes)}MB`).join(" ")}`;
|
|
114050
|
+
}
|
|
114051
|
+
var RUNNER_HEAP_SNAPSHOT_ENV = "CAMSTACK_RUNNER_HEAP_SNAPSHOT";
|
|
114052
|
+
function heapSnapshotAuthorised(env = process.env) {
|
|
114053
|
+
return env[RUNNER_HEAP_SNAPSHOT_ENV] === "on";
|
|
114054
|
+
}
|
|
114055
|
+
var defaultDeps = {
|
|
114056
|
+
readMemory: () => process.memoryUsage(),
|
|
114057
|
+
readSpaces: readHeapSpaces,
|
|
114058
|
+
writeSnapshot: (path) => {
|
|
114059
|
+
node_v8.writeHeapSnapshot(path);
|
|
114060
|
+
},
|
|
114061
|
+
env: process.env
|
|
114062
|
+
};
|
|
114063
|
+
function emitHeapDiagnosticReport(request, deps = defaultDeps) {
|
|
114064
|
+
try {
|
|
114065
|
+
const mu = deps.readMemory();
|
|
114066
|
+
const spaces = deps.readSpaces().filter((space) => space.usedBytes > 0).map((space) => `${space.name}=${tenthsMb(space.usedBytes)}`).join(" ");
|
|
114067
|
+
request.sink.info(`[mem] node="${request.label}" addons=[${request.addons.join(",")}] rss=${tenthsMb(mu.rss)} heapUsed=${tenthsMb(mu.heapUsed)} heapTotal=${tenthsMb(mu.heapTotal)} external=${tenthsMb(mu.external)} arrayBuffers=${tenthsMb(mu.arrayBuffers)} | ${spaces}`);
|
|
114068
|
+
} catch (error) {
|
|
114069
|
+
request.sink.warn(`[mem] node="${request.label}" space report failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
114070
|
+
}
|
|
114071
|
+
if (!heapSnapshotAuthorised(deps.env)) {
|
|
114072
|
+
request.sink.info(`[mem] node="${request.label}" heap snapshot NOT taken \u2014 it is an admin mutation (a multi-GB write and a stop-the-world walk of the heap). The per-space breakdown above is the free half and needs no authorisation. Set ${RUNNER_HEAP_SNAPSHOT_ENV}=on for this runner and signal again to take one.`);
|
|
114073
|
+
return;
|
|
114074
|
+
}
|
|
114075
|
+
try {
|
|
114076
|
+
deps.writeSnapshot(request.snapshotPath);
|
|
114077
|
+
request.sink.info(`[mem] node="${request.label}" heap snapshot written -> ${request.snapshotPath}`);
|
|
114078
|
+
} catch (error) {
|
|
114079
|
+
request.sink.warn(`[mem] node="${request.label}" snapshot failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
114080
|
+
}
|
|
114081
|
+
}
|
|
113935
114082
|
var HUB_MAIN_HEAP_WATCH_LABEL = "hub-main";
|
|
113936
114083
|
var HEAP_WATCH_INTERVAL_MS = 6e4;
|
|
113937
114084
|
var HEAP_WATCH_WARN_RATIO = 0.8;
|
|
@@ -113943,6 +114090,10 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
113943
114090
|
}
|
|
113944
114091
|
var HEAP_RECLAIM_TRIGGER_MB = 1024;
|
|
113945
114092
|
var HEAP_RECLAIM_MIN_INTERVAL_MS = 12e4;
|
|
114093
|
+
var HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS = 6e5;
|
|
114094
|
+
function reclaimIntervalMs(passesAtFloor, minIntervalMs = HEAP_RECLAIM_MIN_INTERVAL_MS, steadyStateIntervalMs = HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, steadyStatePasses = 6) {
|
|
114095
|
+
return passesAtFloor >= steadyStatePasses ? Math.max(minIntervalMs, steadyStateIntervalMs) : minIntervalMs;
|
|
114096
|
+
}
|
|
113946
114097
|
var ZERO_LOOP_DELAY = {
|
|
113947
114098
|
p50Ms: 0,
|
|
113948
114099
|
p99Ms: 0,
|
|
@@ -113952,14 +114103,15 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
113952
114103
|
try {
|
|
113953
114104
|
const histogram = (0, node_perf_hooks.monitorEventLoopDelay)({ resolution: resolutionMs });
|
|
113954
114105
|
histogram.enable();
|
|
114106
|
+
const delay2 = (nanoseconds) => Math.max(0, Math.round(nanoseconds / 1e6) - resolutionMs);
|
|
113955
114107
|
return {
|
|
113956
114108
|
read: () => {
|
|
113957
114109
|
try {
|
|
113958
114110
|
if (histogram.count === 0) return ZERO_LOOP_DELAY;
|
|
113959
114111
|
const sample = {
|
|
113960
|
-
p50Ms:
|
|
113961
|
-
p99Ms:
|
|
113962
|
-
maxMs:
|
|
114112
|
+
p50Ms: delay2(histogram.percentile(50)),
|
|
114113
|
+
p99Ms: delay2(histogram.percentile(99)),
|
|
114114
|
+
maxMs: delay2(histogram.max)
|
|
113963
114115
|
};
|
|
113964
114116
|
histogram.reset();
|
|
113965
114117
|
return sample;
|
|
@@ -114069,16 +114221,19 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
114069
114221
|
function formatOverBudget(label, b, source) {
|
|
114070
114222
|
return `[mem] ${label} OVER RSS BUDGET rss=${b.rssMb}MB budget=${b.budgetMb}MB over=+${b.overMb}MB shape=${b.shape} heapUsed=${b.heapUsedMb}MB(${share(b.heapUsedMb, b.rssMb)}%) external=${b.externalMb}MB(${share(b.externalMb, b.rssMb)}%) nativeResidue=${b.nativeResidueMb}MB(${share(b.nativeResidueMb, b.rssMb)}%) arrayBuffers=${b.arrayBuffersMb}MB budgetFrom="${source}" \u2014 ${SHAPE_ADVICE[b.shape]}`;
|
|
114071
114223
|
}
|
|
114072
|
-
function format2(label, s, loop, budgetMb) {
|
|
114224
|
+
function format2(label, s, loop, budgetMb, suffix) {
|
|
114073
114225
|
const line = `[mem] ${label} rss=${s.rssMb}MB heapUsed=${s.heapUsedMb}MB heapTotal=${s.heapTotalMb}MB heapLimit=${s.heapLimitMb}MB used=${Math.round(s.usedRatio * 100)}% external=${s.externalMb}MB arrayBuffers=${s.arrayBuffersMb}MB` + (budgetMb === void 0 ? "" : ` rssBudget=${budgetMb}MB`);
|
|
114074
|
-
if (loop === void 0) return line
|
|
114075
|
-
return `${line} loopP50=${loop.p50Ms}ms loopP99=${loop.p99Ms}ms loopMax=${loop.maxMs}ms`;
|
|
114226
|
+
if (loop === void 0) return `${line}${suffix}`;
|
|
114227
|
+
return `${line} loopP50=${loop.p50Ms}ms loopP99=${loop.p99Ms}ms loopMax=${loop.maxMs}ms${suffix}`;
|
|
114076
114228
|
}
|
|
114077
|
-
function startHeapWatch(label = HUB_MAIN_HEAP_WATCH_LABEL, sink = consoleSink, intervalMs = HEAP_WATCH_INTERVAL_MS, reclaimOptions, loopDelay = createLoopDelayMeter(), execArgv = process.execArgv, announceCeilingOrigin = true, rssBudget) {
|
|
114229
|
+
function startHeapWatch(label = HUB_MAIN_HEAP_WATCH_LABEL, sink = consoleSink, intervalMs = HEAP_WATCH_INTERVAL_MS, reclaimOptions, loopDelay = createLoopDelayMeter(), execArgv = process.execArgv, announceCeilingOrigin = true, rssBudget, probes) {
|
|
114230
|
+
const readSpaces = probes?.readSpaces ?? readHeapSpaces;
|
|
114231
|
+
const eventPlane = probes?.eventPlane === void 0 ? void 0 : createEventPlaneMeter(probes.eventPlane);
|
|
114078
114232
|
const readMemory = reclaimOptions?.readMemory ?? (() => process.memoryUsage());
|
|
114079
114233
|
const now = reclaimOptions?.now ?? (() => Date.now());
|
|
114080
114234
|
const triggerMb = reclaimOptions?.triggerMb ?? 1024;
|
|
114081
114235
|
const minIntervalMs = reclaimOptions?.minIntervalMs ?? 12e4;
|
|
114236
|
+
const steadyStateIntervalMs = reclaimOptions?.steadyStateIntervalMs ?? 6e5;
|
|
114082
114237
|
const fastIntervalMs = reclaimOptions?.fastIntervalMs ?? 2e3;
|
|
114083
114238
|
const escalateRatio = reclaimOptions?.escalateRatio ?? 0.7;
|
|
114084
114239
|
const deescalateRatio = reclaimOptions?.deescalateRatio ?? 0.6;
|
|
@@ -114096,9 +114251,10 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
114096
114251
|
steadyStateAnnounced = false;
|
|
114097
114252
|
return;
|
|
114098
114253
|
}
|
|
114254
|
+
const floorMs = reclaimIntervalMs(passesAtFloor, minIntervalMs, steadyStateIntervalMs);
|
|
114099
114255
|
const sinceLast = now() - lastReclaimAt;
|
|
114100
|
-
if (sinceLast <
|
|
114101
|
-
passesAtFloor = sinceLast <=
|
|
114256
|
+
if (sinceLast < floorMs) return;
|
|
114257
|
+
passesAtFloor = sinceLast <= floorMs * 2 ? passesAtFloor + 1 : 1;
|
|
114102
114258
|
lastReclaimAt = now();
|
|
114103
114259
|
const startedAt = now();
|
|
114104
114260
|
try {
|
|
@@ -114111,7 +114267,8 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
114111
114267
|
sink.info(`[mem] reclaim ${label} stranded=${strandedMb(sample)}MB rss=${sample.rssMb}MB\u2192${after.rssMb}MB freed=${sample.rssMb - after.rssMb}MB arrayBuffers=${sample.arrayBuffersMb}MB\u2192${after.arrayBuffersMb}MB took=${now() - startedAt}ms`);
|
|
114112
114268
|
if (passesAtFloor >= 6 && !steadyStateAnnounced) {
|
|
114113
114269
|
steadyStateAnnounced = true;
|
|
114114
|
-
|
|
114270
|
+
const nextFloorMs = reclaimIntervalMs(passesAtFloor, minIntervalMs, steadyStateIntervalMs);
|
|
114271
|
+
sink.warn(`[mem] reclaim ${label} has run at the floor for ${passesAtFloor} consecutive passes (every ${minIntervalMs}ms) \u2014 the stop-the-world is now STEADY STATE, not a rescue: stranded never fell back under ${triggerMb}MB between passes, so the trigger is not discriminating on this process and what is left deciding is the timer. BACKING OFF to every ${nextFloorMs}ms \u2014 the pass keeps running (it is still the only measurement of this process's live ArrayBuffer set) at a cost the router can pay. The allocation source is what needs the fix; this pass only bounds its peak.`);
|
|
114115
114272
|
}
|
|
114116
114273
|
};
|
|
114117
114274
|
let mode = "steady";
|
|
@@ -114149,7 +114306,7 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
114149
114306
|
const due = at - lastLoggedAt >= intervalMs;
|
|
114150
114307
|
if (mode === "escalated" || due) {
|
|
114151
114308
|
lastLoggedAt = at;
|
|
114152
|
-
const line = format2(label, sample, loopDelay?.read(), budgetMb);
|
|
114309
|
+
const line = format2(label, sample, loopDelay?.read(), budgetMb, `${formatHeapSpaces(readSpaces())}${formatEventPlane(eventPlane?.read())}`);
|
|
114153
114310
|
if (sample.nearLimit) sink.warn(`${line} \u2014 APPROACHING HEAP LIMIT`);
|
|
114154
114311
|
else if (mode === "escalated") sink.warn(`${line} \u2014 heap elevated, sampling every ${probeIntervalMs}ms`);
|
|
114155
114312
|
else sink.info(line);
|
|
@@ -118254,6 +118411,34 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
118254
118411
|
};
|
|
118255
118412
|
}
|
|
118256
118413
|
/**
|
|
118414
|
+
* The regime the counters above were produced under, read once from
|
|
118415
|
+
* `CAMSTACK_UDS_EVENT_FANOUT` at construction.
|
|
118416
|
+
*
|
|
118417
|
+
* A suppressed count means "nothing WAS dropped" under `filter` and "nothing
|
|
118418
|
+
* WOULD have been dropped" under `shadow`. Those are different claims, and
|
|
118419
|
+
* until this getter existed the mode was invisible at runtime — the counters
|
|
118420
|
+
* were readable and the regime that produced them was not.
|
|
118421
|
+
*/
|
|
118422
|
+
get eventFanoutMode() {
|
|
118423
|
+
return this.fanoutMode;
|
|
118424
|
+
}
|
|
118425
|
+
/**
|
|
118426
|
+
* Connected children that never declared a subscription pattern set.
|
|
118427
|
+
*
|
|
118428
|
+
* Each one is a fail-open on BOTH planes: `childWantsEvent` returns true for
|
|
118429
|
+
* an undeclared child ({@link ChildEntry.eventPatterns} `=== null`), and
|
|
118430
|
+
* `aggregateEventInterest` returns `null` — accept everything — if ANY
|
|
118431
|
+
* connected child is undeclared, which disables the node's inbound cross-node
|
|
118432
|
+
* gate as well. **One legacy runner silently turns off the filtering for the
|
|
118433
|
+
* whole node**, and nothing reported it, so a zero here is as load-bearing as
|
|
118434
|
+
* a non-zero one.
|
|
118435
|
+
*/
|
|
118436
|
+
undeclaredChildCount() {
|
|
118437
|
+
let count = 0;
|
|
118438
|
+
for (const entry of this.children.values()) if (entry.eventPatterns === null) count += 1;
|
|
118439
|
+
return count;
|
|
118440
|
+
}
|
|
118441
|
+
/**
|
|
118257
118442
|
* Does `entry` want to receive an event in `category`? Honours the fan-out
|
|
118258
118443
|
* mode: `broadcast` → always; undeclared patterns (`null`) → always
|
|
118259
118444
|
* (fail-open); else the child's declared set must match via `matchesPattern`
|
|
@@ -120709,12 +120894,24 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
120709
120894
|
return CapabilityUnavailableError;
|
|
120710
120895
|
}
|
|
120711
120896
|
});
|
|
120897
|
+
Object.defineProperty(exports, "DECISIVE_HEAP_SPACES", {
|
|
120898
|
+
enumerable: true,
|
|
120899
|
+
get: function() {
|
|
120900
|
+
return DECISIVE_HEAP_SPACES;
|
|
120901
|
+
}
|
|
120902
|
+
});
|
|
120712
120903
|
Object.defineProperty(exports, "DeviceRegistry", {
|
|
120713
120904
|
enumerable: true,
|
|
120714
120905
|
get: function() {
|
|
120715
120906
|
return DeviceRegistry;
|
|
120716
120907
|
}
|
|
120717
120908
|
});
|
|
120909
|
+
Object.defineProperty(exports, "EVENT_PLANE_TOP_N", {
|
|
120910
|
+
enumerable: true,
|
|
120911
|
+
get: function() {
|
|
120912
|
+
return EVENT_PLANE_TOP_N;
|
|
120913
|
+
}
|
|
120914
|
+
});
|
|
120718
120915
|
Object.defineProperty(exports, "EVENT_TOPIC_PREFIX", {
|
|
120719
120916
|
enumerable: true,
|
|
120720
120917
|
get: function() {
|
|
@@ -120733,12 +120930,24 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
120733
120930
|
return HEAP_RECLAIM_MIN_INTERVAL_MS;
|
|
120734
120931
|
}
|
|
120735
120932
|
});
|
|
120933
|
+
Object.defineProperty(exports, "HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS", {
|
|
120934
|
+
enumerable: true,
|
|
120935
|
+
get: function() {
|
|
120936
|
+
return HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS;
|
|
120937
|
+
}
|
|
120938
|
+
});
|
|
120736
120939
|
Object.defineProperty(exports, "HEAP_RECLAIM_TRIGGER_MB", {
|
|
120737
120940
|
enumerable: true,
|
|
120738
120941
|
get: function() {
|
|
120739
120942
|
return HEAP_RECLAIM_TRIGGER_MB;
|
|
120740
120943
|
}
|
|
120741
120944
|
});
|
|
120945
|
+
Object.defineProperty(exports, "HEAP_SPACE_REPORT_MIN_MB", {
|
|
120946
|
+
enumerable: true,
|
|
120947
|
+
get: function() {
|
|
120948
|
+
return HEAP_SPACE_REPORT_MIN_MB;
|
|
120949
|
+
}
|
|
120950
|
+
});
|
|
120742
120951
|
Object.defineProperty(exports, "HEAP_WATCH_INTERVAL_MS", {
|
|
120743
120952
|
enumerable: true,
|
|
120744
120953
|
get: function() {
|
|
@@ -120811,6 +121020,12 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
120811
121020
|
return RSS_BUDGET_RELEASE_RATIO;
|
|
120812
121021
|
}
|
|
120813
121022
|
});
|
|
121023
|
+
Object.defineProperty(exports, "RUNNER_HEAP_SNAPSHOT_ENV", {
|
|
121024
|
+
enumerable: true,
|
|
121025
|
+
get: function() {
|
|
121026
|
+
return RUNNER_HEAP_SNAPSHOT_ENV;
|
|
121027
|
+
}
|
|
121028
|
+
});
|
|
120814
121029
|
Object.defineProperty(exports, "RUNNER_HEAP_WATCH_INTERVAL_MS", {
|
|
120815
121030
|
enumerable: true,
|
|
120816
121031
|
get: function() {
|
|
@@ -120847,6 +121062,12 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
120847
121062
|
return UdsLocalTransportServer;
|
|
120848
121063
|
}
|
|
120849
121064
|
});
|
|
121065
|
+
Object.defineProperty(exports, "ZERO_LOOP_DELAY", {
|
|
121066
|
+
enumerable: true,
|
|
121067
|
+
get: function() {
|
|
121068
|
+
return ZERO_LOOP_DELAY;
|
|
121069
|
+
}
|
|
121070
|
+
});
|
|
120850
121071
|
Object.defineProperty(exports, "__resetCapUsageRegistryForTests", {
|
|
120851
121072
|
enumerable: true,
|
|
120852
121073
|
get: function() {
|
|
@@ -120973,6 +121194,18 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
120973
121194
|
return createDeferredHeapWatchSink;
|
|
120974
121195
|
}
|
|
120975
121196
|
});
|
|
121197
|
+
Object.defineProperty(exports, "createEventPlaneMeter", {
|
|
121198
|
+
enumerable: true,
|
|
121199
|
+
get: function() {
|
|
121200
|
+
return createEventPlaneMeter;
|
|
121201
|
+
}
|
|
121202
|
+
});
|
|
121203
|
+
Object.defineProperty(exports, "createEventPlaneReader", {
|
|
121204
|
+
enumerable: true,
|
|
121205
|
+
get: function() {
|
|
121206
|
+
return createEventPlaneReader;
|
|
121207
|
+
}
|
|
121208
|
+
});
|
|
120976
121209
|
Object.defineProperty(exports, "createHubCapForwardService", {
|
|
120977
121210
|
enumerable: true,
|
|
120978
121211
|
get: function() {
|
|
@@ -120991,6 +121224,12 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
120991
121224
|
return createLocalTransport;
|
|
120992
121225
|
}
|
|
120993
121226
|
});
|
|
121227
|
+
Object.defineProperty(exports, "createLoopDelayMeter", {
|
|
121228
|
+
enumerable: true,
|
|
121229
|
+
get: function() {
|
|
121230
|
+
return createLoopDelayMeter;
|
|
121231
|
+
}
|
|
121232
|
+
});
|
|
120994
121233
|
Object.defineProperty(exports, "createParentUnownedCallHandler", {
|
|
120995
121234
|
enumerable: true,
|
|
120996
121235
|
get: function() {
|
|
@@ -121045,12 +121284,36 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
121045
121284
|
return deserializeTypedArrays;
|
|
121046
121285
|
}
|
|
121047
121286
|
});
|
|
121287
|
+
Object.defineProperty(exports, "diffEventPlane", {
|
|
121288
|
+
enumerable: true,
|
|
121289
|
+
get: function() {
|
|
121290
|
+
return diffEventPlane;
|
|
121291
|
+
}
|
|
121292
|
+
});
|
|
121293
|
+
Object.defineProperty(exports, "emitHeapDiagnosticReport", {
|
|
121294
|
+
enumerable: true,
|
|
121295
|
+
get: function() {
|
|
121296
|
+
return emitHeapDiagnosticReport;
|
|
121297
|
+
}
|
|
121298
|
+
});
|
|
121048
121299
|
Object.defineProperty(exports, "encodeFrame", {
|
|
121049
121300
|
enumerable: true,
|
|
121050
121301
|
get: function() {
|
|
121051
121302
|
return encodeFrame;
|
|
121052
121303
|
}
|
|
121053
121304
|
});
|
|
121305
|
+
Object.defineProperty(exports, "formatEventPlane", {
|
|
121306
|
+
enumerable: true,
|
|
121307
|
+
get: function() {
|
|
121308
|
+
return formatEventPlane;
|
|
121309
|
+
}
|
|
121310
|
+
});
|
|
121311
|
+
Object.defineProperty(exports, "formatHeapSpaces", {
|
|
121312
|
+
enumerable: true,
|
|
121313
|
+
get: function() {
|
|
121314
|
+
return formatHeapSpaces;
|
|
121315
|
+
}
|
|
121316
|
+
});
|
|
121054
121317
|
Object.defineProperty(exports, "getBrokerEventBus", {
|
|
121055
121318
|
enumerable: true,
|
|
121056
121319
|
get: function() {
|
|
@@ -121099,6 +121362,18 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
121099
121362
|
return getWorkerNativeCapSnapshot;
|
|
121100
121363
|
}
|
|
121101
121364
|
});
|
|
121365
|
+
Object.defineProperty(exports, "heapSnapshotAuthorised", {
|
|
121366
|
+
enumerable: true,
|
|
121367
|
+
get: function() {
|
|
121368
|
+
return heapSnapshotAuthorised;
|
|
121369
|
+
}
|
|
121370
|
+
});
|
|
121371
|
+
Object.defineProperty(exports, "heapSpaceField", {
|
|
121372
|
+
enumerable: true,
|
|
121373
|
+
get: function() {
|
|
121374
|
+
return heapSpaceField;
|
|
121375
|
+
}
|
|
121376
|
+
});
|
|
121102
121377
|
Object.defineProperty(exports, "hubMainRssBudget", {
|
|
121103
121378
|
enumerable: true,
|
|
121104
121379
|
get: function() {
|
|
@@ -121159,6 +121434,24 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
121159
121434
|
return parseRssBudgetMb;
|
|
121160
121435
|
}
|
|
121161
121436
|
});
|
|
121437
|
+
Object.defineProperty(exports, "readHeapSpaces", {
|
|
121438
|
+
enumerable: true,
|
|
121439
|
+
get: function() {
|
|
121440
|
+
return readHeapSpaces;
|
|
121441
|
+
}
|
|
121442
|
+
});
|
|
121443
|
+
Object.defineProperty(exports, "readMoleculerFanoutMode", {
|
|
121444
|
+
enumerable: true,
|
|
121445
|
+
get: function() {
|
|
121446
|
+
return readMoleculerFanoutMode;
|
|
121447
|
+
}
|
|
121448
|
+
});
|
|
121449
|
+
Object.defineProperty(exports, "reclaimIntervalMs", {
|
|
121450
|
+
enumerable: true,
|
|
121451
|
+
get: function() {
|
|
121452
|
+
return reclaimIntervalMs;
|
|
121453
|
+
}
|
|
121454
|
+
});
|
|
121162
121455
|
Object.defineProperty(exports, "registerEventBusService", {
|
|
121163
121456
|
enumerable: true,
|
|
121164
121457
|
get: function() {
|
|
@@ -121189,6 +121482,12 @@ var require_manifest_python_deps_BqWrDjSN = __commonJS({
|
|
|
121189
121482
|
return runNpm;
|
|
121190
121483
|
}
|
|
121191
121484
|
});
|
|
121485
|
+
Object.defineProperty(exports, "selectReportedSpaces", {
|
|
121486
|
+
enumerable: true,
|
|
121487
|
+
get: function() {
|
|
121488
|
+
return selectReportedSpaces;
|
|
121489
|
+
}
|
|
121490
|
+
});
|
|
121192
121491
|
Object.defineProperty(exports, "serializeTypedArrays", {
|
|
121193
121492
|
enumerable: true,
|
|
121194
121493
|
get: function() {
|
|
@@ -125057,7 +125356,7 @@ var require_dist3 = __commonJS({
|
|
|
125057
125356
|
"use strict";
|
|
125058
125357
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
125059
125358
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
125060
|
-
var require_dist10 =
|
|
125359
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
125061
125360
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
125062
125361
|
require_alerts();
|
|
125063
125362
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -125083,7 +125382,7 @@ var require_dist3 = __commonJS({
|
|
|
125083
125382
|
var require_builtins_winston_logging_index = require_winston_logging();
|
|
125084
125383
|
var require_file_data_plane = require_file_data_plane_DO8KbxCe();
|
|
125085
125384
|
var require_tls$1 = require_tls_u8QCJCFE();
|
|
125086
|
-
var require_manifest_python_deps =
|
|
125385
|
+
var require_manifest_python_deps = require_manifest_python_deps_CcDe4S2Z();
|
|
125087
125386
|
var require_resource_monitor = require_resource_monitor_CdnzxBLP();
|
|
125088
125387
|
var require_custom_action_registry = require_custom_action_registry_jY0NOZK8();
|
|
125089
125388
|
var zod = require_zod();
|
|
@@ -205454,6 +205753,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205454
205753
|
exports.ConsoleLoggingAddon = require_builtins_console_logging_index.ConsoleLoggingAddon$1;
|
|
205455
205754
|
exports.CoreBlocksAddon = require_builtins_core_blocks_core_blocks_addon.CoreBlocksAddon;
|
|
205456
205755
|
exports.CustomActionRegistry = require_custom_action_registry.CustomActionRegistry;
|
|
205756
|
+
exports.DECISIVE_HEAP_SPACES = require_manifest_python_deps.DECISIVE_HEAP_SPACES;
|
|
205457
205757
|
exports.DEFAULT_DATA_PATH = DEFAULT_DATA_PATH;
|
|
205458
205758
|
exports.DEFAULT_LAN_HTTP_PORT = require_tls$1.DEFAULT_LAN_HTTP_PORT;
|
|
205459
205759
|
exports.DEFAULT_LOG_LEVEL = DEFAULT_LOG_LEVEL;
|
|
@@ -205463,6 +205763,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205463
205763
|
exports.DeviceManagerAddon = require_builtins_device_manager_device_manager_addon.DeviceManagerAddon;
|
|
205464
205764
|
exports.DeviceRegistry = require_manifest_python_deps.DeviceRegistry;
|
|
205465
205765
|
exports.DeviceStore = require_builtins_sqlite_storage_index.DeviceStore$1;
|
|
205766
|
+
exports.EVENT_PLANE_TOP_N = require_manifest_python_deps.EVENT_PLANE_TOP_N;
|
|
205466
205767
|
exports.EVENT_TOPIC_PREFIX = require_manifest_python_deps.EVENT_TOPIC_PREFIX;
|
|
205467
205768
|
exports.EngineManagerResolver = EngineManagerResolver;
|
|
205468
205769
|
exports.EventBus = EventBus;
|
|
@@ -205475,7 +205776,9 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205475
205776
|
exports.HEALTH_MONITOR_RETRY_INTERVALS_MS = HEALTH_MONITOR_RETRY_INTERVALS_MS;
|
|
205476
205777
|
exports.HEALTH_MONITOR_TICK_MS = HEALTH_MONITOR_TICK_MS;
|
|
205477
205778
|
exports.HEAP_RECLAIM_MIN_INTERVAL_MS = require_manifest_python_deps.HEAP_RECLAIM_MIN_INTERVAL_MS;
|
|
205779
|
+
exports.HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS = require_manifest_python_deps.HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS;
|
|
205478
205780
|
exports.HEAP_RECLAIM_TRIGGER_MB = require_manifest_python_deps.HEAP_RECLAIM_TRIGGER_MB;
|
|
205781
|
+
exports.HEAP_SPACE_REPORT_MIN_MB = require_manifest_python_deps.HEAP_SPACE_REPORT_MIN_MB;
|
|
205479
205782
|
exports.HEAP_WATCH_INTERVAL_MS = require_manifest_python_deps.HEAP_WATCH_INTERVAL_MS;
|
|
205480
205783
|
exports.HEAP_WATCH_WARN_RATIO = require_manifest_python_deps.HEAP_WATCH_WARN_RATIO;
|
|
205481
205784
|
exports.HUB_CAP_FWD_ACTION = require_manifest_python_deps.HUB_CAP_FWD_ACTION;
|
|
@@ -205524,6 +205827,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205524
205827
|
exports.RESTART_MARKER_FILE = RESTART_MARKER_FILE;
|
|
205525
205828
|
exports.RSS_BUDGET_REANNOUNCE_MIN_MS = require_manifest_python_deps.RSS_BUDGET_REANNOUNCE_MIN_MS;
|
|
205526
205829
|
exports.RSS_BUDGET_RELEASE_RATIO = require_manifest_python_deps.RSS_BUDGET_RELEASE_RATIO;
|
|
205830
|
+
exports.RUNNER_HEAP_SNAPSHOT_ENV = require_manifest_python_deps.RUNNER_HEAP_SNAPSHOT_ENV;
|
|
205527
205831
|
exports.RUNNER_HEAP_WATCH_INTERVAL_MS = require_manifest_python_deps.RUNNER_HEAP_WATCH_INTERVAL_MS;
|
|
205528
205832
|
exports.RUNNER_RSS_BUDGET_ENV = require_manifest_python_deps.RUNNER_RSS_BUDGET_ENV;
|
|
205529
205833
|
exports.RUNTIME_DEFAULTS = require_dist10.RUNTIME_DEFAULTS;
|
|
@@ -205552,6 +205856,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205552
205856
|
exports.UserManager = require_builtins_local_auth_local_auth_addon.UserManager;
|
|
205553
205857
|
exports.WinstonDestination = require_builtins_winston_logging_index.WinstonDestination$1;
|
|
205554
205858
|
exports.WinstonLoggingAddon = require_builtins_winston_logging_index.WinstonLoggingAddon$1;
|
|
205859
|
+
exports.ZERO_LOOP_DELAY = require_manifest_python_deps.ZERO_LOOP_DELAY;
|
|
205555
205860
|
exports.__resetCapUsageRegistryForTests = require_manifest_python_deps.__resetCapUsageRegistryForTests;
|
|
205556
205861
|
exports.__resetLoggingGateForTests = __resetLoggingGateForTests;
|
|
205557
205862
|
exports.adaptBrokerToCluster = require_manifest_python_deps.adaptBrokerToCluster;
|
|
@@ -205603,11 +205908,14 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205603
205908
|
exports.createCoreCapService = createCoreCapService;
|
|
205604
205909
|
exports.createDeferredHeapWatchSink = require_manifest_python_deps.createDeferredHeapWatchSink;
|
|
205605
205910
|
exports.createDoorSettingsView = createDoorSettingsView;
|
|
205911
|
+
exports.createEventPlaneMeter = require_manifest_python_deps.createEventPlaneMeter;
|
|
205912
|
+
exports.createEventPlaneReader = require_manifest_python_deps.createEventPlaneReader;
|
|
205606
205913
|
exports.createFileDataPlaneHandler = require_file_data_plane.createFileDataPlaneHandler;
|
|
205607
205914
|
exports.createHubCapForwardService = require_manifest_python_deps.createHubCapForwardService;
|
|
205608
205915
|
exports.createHubService = createHubService;
|
|
205609
205916
|
exports.createKernelHwAccel = require_manifest_python_deps.createKernelHwAccel;
|
|
205610
205917
|
exports.createLocalTransport = require_manifest_python_deps.createLocalTransport;
|
|
205918
|
+
exports.createLoopDelayMeter = require_manifest_python_deps.createLoopDelayMeter;
|
|
205611
205919
|
exports.createParentUnownedCallHandler = require_manifest_python_deps.createParentUnownedCallHandler;
|
|
205612
205920
|
exports.createProcessService = createProcessService;
|
|
205613
205921
|
exports.createReadinessService = createReadinessService;
|
|
@@ -205625,6 +205933,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205625
205933
|
exports.describeProviderKindDrift = describeProviderKindDrift;
|
|
205626
205934
|
exports.describeRss = require_manifest_python_deps.describeRss;
|
|
205627
205935
|
exports.detectWorkspacePackagesDir = detectWorkspacePackagesDir;
|
|
205936
|
+
exports.diffEventPlane = require_manifest_python_deps.diffEventPlane;
|
|
205628
205937
|
Object.defineProperty(exports, "downloadBinary", {
|
|
205629
205938
|
enumerable: true,
|
|
205630
205939
|
get: function() {
|
|
@@ -205634,6 +205943,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205634
205943
|
exports.downloadFile = require_file_data_plane.downloadFile;
|
|
205635
205944
|
exports.downloadModel = require_file_data_plane.downloadModel;
|
|
205636
205945
|
exports.emitDownForOwnedCaps = require_dist10.emitDownForOwnedCaps;
|
|
205946
|
+
exports.emitHeapDiagnosticReport = require_manifest_python_deps.emitHeapDiagnosticReport;
|
|
205637
205947
|
exports.encodeFrame = require_manifest_python_deps.encodeFrame;
|
|
205638
205948
|
exports.ensureAddonNativePrebuilds = ensureAddonNativePrebuilds;
|
|
205639
205949
|
Object.defineProperty(exports, "ensureBinary", {
|
|
@@ -205668,6 +205978,8 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205668
205978
|
return _camstack_types_node.findInPath;
|
|
205669
205979
|
}
|
|
205670
205980
|
});
|
|
205981
|
+
exports.formatEventPlane = require_manifest_python_deps.formatEventPlane;
|
|
205982
|
+
exports.formatHeapSpaces = require_manifest_python_deps.formatHeapSpaces;
|
|
205671
205983
|
exports.formatLogLine = require_formatter.formatLogLine;
|
|
205672
205984
|
exports.getBrokerEventBus = require_manifest_python_deps.getBrokerEventBus;
|
|
205673
205985
|
exports.getCapUsageRegistry = require_manifest_python_deps.getCapUsageRegistry;
|
|
@@ -205700,6 +206012,8 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205700
206012
|
exports.getWorkerDeviceRegistry = require_manifest_python_deps.getWorkerDeviceRegistry;
|
|
205701
206013
|
exports.hasDotNode = hasDotNode;
|
|
205702
206014
|
exports.hashClusterSecret = hashClusterSecret;
|
|
206015
|
+
exports.heapSnapshotAuthorised = require_manifest_python_deps.heapSnapshotAuthorised;
|
|
206016
|
+
exports.heapSpaceField = require_manifest_python_deps.heapSpaceField;
|
|
205703
206017
|
exports.hubMainRssBudget = require_manifest_python_deps.hubMainRssBudget;
|
|
205704
206018
|
exports.installManifestNativeDeps = require_manifest_python_deps.installManifestNativeDeps;
|
|
205705
206019
|
exports.installManifestPythonDeps = require_manifest_python_deps.installManifestPythonDeps;
|
|
@@ -205738,11 +206052,14 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205738
206052
|
exports.proxyToUpstream = proxyToUpstream;
|
|
205739
206053
|
exports.quarantineAddonResidue = quarantineAddonResidue;
|
|
205740
206054
|
exports.readExtraSans = require_tls$1.readExtraSans;
|
|
206055
|
+
exports.readHeapSpaces = require_manifest_python_deps.readHeapSpaces;
|
|
205741
206056
|
exports.readLanHttpState = require_tls$1.readLanHttpState;
|
|
206057
|
+
exports.readMoleculerFanoutMode = require_manifest_python_deps.readMoleculerFanoutMode;
|
|
205742
206058
|
exports.readPendingRestart = readPendingRestart;
|
|
205743
206059
|
exports.readTlsAccessStatus = require_tls$1.readTlsAccessStatus;
|
|
205744
206060
|
exports.readTlsMode = require_tls$1.readTlsMode;
|
|
205745
206061
|
exports.readinessKey = require_dist10.readinessKey;
|
|
206062
|
+
exports.reclaimIntervalMs = require_manifest_python_deps.reclaimIntervalMs;
|
|
205746
206063
|
exports.registerEventBusService = require_manifest_python_deps.registerEventBusService;
|
|
205747
206064
|
exports.registerLanHttpHandler = require_tls$1.registerLanHttpHandler;
|
|
205748
206065
|
exports.reissueTlsLeaf = require_tls$1.reissueTlsLeaf;
|
|
@@ -205756,6 +206073,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205756
206073
|
exports.scopesAllowAddon = require_dist10.scopesAllowAddon;
|
|
205757
206074
|
exports.scopesAllowDeviceCap = require_dist10.scopesAllowDeviceCap;
|
|
205758
206075
|
exports.selectAddonResidue = selectAddonResidue;
|
|
206076
|
+
exports.selectReportedSpaces = require_manifest_python_deps.selectReportedSpaces;
|
|
205759
206077
|
exports.serializeTypedArrays = require_manifest_python_deps.serializeTypedArrays;
|
|
205760
206078
|
exports.setHubConnected = require_manifest_python_deps.setHubConnected;
|
|
205761
206079
|
exports.setNodeEventInterest = require_manifest_python_deps.setNodeEventInterest;
|
|
@@ -420662,7 +420980,17 @@ var require_main4 = __commonJS({
|
|
|
420662
420980
|
const heapReclaimer = (0, system_1.createV8Reclaimer)();
|
|
420663
420981
|
const heapReclaim = heapReclaimer === void 0 ? void 0 : { reclaim: heapReclaimer };
|
|
420664
420982
|
const heapWatchSink = (0, system_1.createDeferredHeapWatchSink)(system_1.HUB_MAIN_HEAP_WATCH_LABEL);
|
|
420665
|
-
|
|
420983
|
+
let moleculerForEventPlane = null;
|
|
420984
|
+
(0, system_1.startHeapWatch)(system_1.HUB_MAIN_HEAP_WATCH_LABEL, heapWatchSink.sink, void 0, heapReclaim, void 0, void 0, true, (0, system_1.hubMainRssBudget)(), {
|
|
420985
|
+
eventPlane: (0, system_1.createEventPlaneReader)({
|
|
420986
|
+
registry: () => moleculerForEventPlane?.childRegistry ?? null,
|
|
420987
|
+
crossNodeStats: () => {
|
|
420988
|
+
const broker = moleculerForEventPlane?.broker;
|
|
420989
|
+
return broker === void 0 ? null : (0, system_1.getMoleculerEventStats)(broker);
|
|
420990
|
+
},
|
|
420991
|
+
crossNodeMode: () => (0, system_1.readMoleculerFanoutMode)()
|
|
420992
|
+
})
|
|
420993
|
+
});
|
|
420666
420994
|
cleanupOrphanProcesses();
|
|
420667
420995
|
let spaIndexHtml = null;
|
|
420668
420996
|
const configPath = process.env.CONFIG_PATH ?? path.join(process.env.CAMSTACK_DATA ?? path.join(process.cwd(), "camstack-data"), "config.yaml");
|
|
@@ -420782,6 +421110,7 @@ var require_main4 = __commonJS({
|
|
|
420782
421110
|
console.log("[bootstrap] app.init() complete \u2014 all onModuleInit hooks have run");
|
|
420783
421111
|
capabilityRegistry.ready();
|
|
420784
421112
|
const moleculer = app.get(moleculer_service_1.MoleculerService);
|
|
421113
|
+
moleculerForEventPlane = moleculer;
|
|
420785
421114
|
moleculer.registerLogReceiver();
|
|
420786
421115
|
capabilityRegistry.registerProvider("model-distributor", "$hub", (0, model_distributor_js_1.buildModelDistributorProvider)(moleculer, loggingService));
|
|
420787
421116
|
try {
|