camstack 1.2.56 → 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,162 @@ var require_manifest_python_deps_BaVekjRY = __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
|
+
}
|
|
114082
|
+
var HUB_MAIN_HEAP_WATCH_LABEL = "hub-main";
|
|
113935
114083
|
var HEAP_WATCH_INTERVAL_MS = 6e4;
|
|
113936
114084
|
var HEAP_WATCH_WARN_RATIO = 0.8;
|
|
113937
114085
|
var HEAP_WATCH_ESCALATE_RATIO = 0.7;
|
|
@@ -113942,6 +114090,10 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
113942
114090
|
}
|
|
113943
114091
|
var HEAP_RECLAIM_TRIGGER_MB = 1024;
|
|
113944
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
|
+
}
|
|
113945
114097
|
var ZERO_LOOP_DELAY = {
|
|
113946
114098
|
p50Ms: 0,
|
|
113947
114099
|
p99Ms: 0,
|
|
@@ -113951,14 +114103,15 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
113951
114103
|
try {
|
|
113952
114104
|
const histogram = (0, node_perf_hooks.monitorEventLoopDelay)({ resolution: resolutionMs });
|
|
113953
114105
|
histogram.enable();
|
|
114106
|
+
const delay2 = (nanoseconds) => Math.max(0, Math.round(nanoseconds / 1e6) - resolutionMs);
|
|
113954
114107
|
return {
|
|
113955
114108
|
read: () => {
|
|
113956
114109
|
try {
|
|
113957
114110
|
if (histogram.count === 0) return ZERO_LOOP_DELAY;
|
|
113958
114111
|
const sample = {
|
|
113959
|
-
p50Ms:
|
|
113960
|
-
p99Ms:
|
|
113961
|
-
maxMs:
|
|
114112
|
+
p50Ms: delay2(histogram.percentile(50)),
|
|
114113
|
+
p99Ms: delay2(histogram.percentile(99)),
|
|
114114
|
+
maxMs: delay2(histogram.max)
|
|
113962
114115
|
};
|
|
113963
114116
|
histogram.reset();
|
|
113964
114117
|
return sample;
|
|
@@ -113995,6 +114148,25 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
113995
114148
|
info: (line) => console.log(line),
|
|
113996
114149
|
warn: (line) => console.warn(line)
|
|
113997
114150
|
};
|
|
114151
|
+
function createDeferredHeapWatchSink(label = HUB_MAIN_HEAP_WATCH_LABEL, fallback = consoleSink) {
|
|
114152
|
+
let target = fallback;
|
|
114153
|
+
const sink = {
|
|
114154
|
+
info: (line) => {
|
|
114155
|
+
target.info(line);
|
|
114156
|
+
},
|
|
114157
|
+
warn: (line) => {
|
|
114158
|
+
target.warn(line);
|
|
114159
|
+
}
|
|
114160
|
+
};
|
|
114161
|
+
const attach = (next) => {
|
|
114162
|
+
target = next;
|
|
114163
|
+
next.info(`[mem] ${label} heartbeat attached to the log manager \u2014 earlier lines went to stdout only and are not in the log buffer, the rotated file or Loki.`);
|
|
114164
|
+
};
|
|
114165
|
+
return {
|
|
114166
|
+
sink,
|
|
114167
|
+
attach
|
|
114168
|
+
};
|
|
114169
|
+
}
|
|
113998
114170
|
function strandedMb(s) {
|
|
113999
114171
|
return s.rssMb - s.heapUsedMb - s.externalMb;
|
|
114000
114172
|
}
|
|
@@ -114049,16 +114221,19 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
114049
114221
|
function formatOverBudget(label, b, source) {
|
|
114050
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]}`;
|
|
114051
114223
|
}
|
|
114052
|
-
function format2(label, s, loop, budgetMb) {
|
|
114224
|
+
function format2(label, s, loop, budgetMb, suffix) {
|
|
114053
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`);
|
|
114054
|
-
if (loop === void 0) return line
|
|
114055
|
-
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}`;
|
|
114056
114228
|
}
|
|
114057
|
-
function startHeapWatch(label =
|
|
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);
|
|
114058
114232
|
const readMemory = reclaimOptions?.readMemory ?? (() => process.memoryUsage());
|
|
114059
114233
|
const now = reclaimOptions?.now ?? (() => Date.now());
|
|
114060
114234
|
const triggerMb = reclaimOptions?.triggerMb ?? 1024;
|
|
114061
114235
|
const minIntervalMs = reclaimOptions?.minIntervalMs ?? 12e4;
|
|
114236
|
+
const steadyStateIntervalMs = reclaimOptions?.steadyStateIntervalMs ?? 6e5;
|
|
114062
114237
|
const fastIntervalMs = reclaimOptions?.fastIntervalMs ?? 2e3;
|
|
114063
114238
|
const escalateRatio = reclaimOptions?.escalateRatio ?? 0.7;
|
|
114064
114239
|
const deescalateRatio = reclaimOptions?.deescalateRatio ?? 0.6;
|
|
@@ -114076,9 +114251,10 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
114076
114251
|
steadyStateAnnounced = false;
|
|
114077
114252
|
return;
|
|
114078
114253
|
}
|
|
114254
|
+
const floorMs = reclaimIntervalMs(passesAtFloor, minIntervalMs, steadyStateIntervalMs);
|
|
114079
114255
|
const sinceLast = now() - lastReclaimAt;
|
|
114080
|
-
if (sinceLast <
|
|
114081
|
-
passesAtFloor = sinceLast <=
|
|
114256
|
+
if (sinceLast < floorMs) return;
|
|
114257
|
+
passesAtFloor = sinceLast <= floorMs * 2 ? passesAtFloor + 1 : 1;
|
|
114082
114258
|
lastReclaimAt = now();
|
|
114083
114259
|
const startedAt = now();
|
|
114084
114260
|
try {
|
|
@@ -114091,7 +114267,8 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
114091
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`);
|
|
114092
114268
|
if (passesAtFloor >= 6 && !steadyStateAnnounced) {
|
|
114093
114269
|
steadyStateAnnounced = true;
|
|
114094
|
-
|
|
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.`);
|
|
114095
114272
|
}
|
|
114096
114273
|
};
|
|
114097
114274
|
let mode = "steady";
|
|
@@ -114129,7 +114306,7 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
114129
114306
|
const due = at - lastLoggedAt >= intervalMs;
|
|
114130
114307
|
if (mode === "escalated" || due) {
|
|
114131
114308
|
lastLoggedAt = at;
|
|
114132
|
-
const line = format2(label, sample, loopDelay?.read(), budgetMb);
|
|
114309
|
+
const line = format2(label, sample, loopDelay?.read(), budgetMb, `${formatHeapSpaces(readSpaces())}${formatEventPlane(eventPlane?.read())}`);
|
|
114133
114310
|
if (sample.nearLimit) sink.warn(`${line} \u2014 APPROACHING HEAP LIMIT`);
|
|
114134
114311
|
else if (mode === "escalated") sink.warn(`${line} \u2014 heap elevated, sampling every ${probeIntervalMs}ms`);
|
|
114135
114312
|
else sink.info(line);
|
|
@@ -118234,6 +118411,34 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
118234
118411
|
};
|
|
118235
118412
|
}
|
|
118236
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
|
+
/**
|
|
118237
118442
|
* Does `entry` want to receive an event in `category`? Honours the fan-out
|
|
118238
118443
|
* mode: `broadcast` → always; undeclared patterns (`null`) → always
|
|
118239
118444
|
* (fail-open); else the child's declared set must match via `matchesPattern`
|
|
@@ -120689,12 +120894,24 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120689
120894
|
return CapabilityUnavailableError;
|
|
120690
120895
|
}
|
|
120691
120896
|
});
|
|
120897
|
+
Object.defineProperty(exports, "DECISIVE_HEAP_SPACES", {
|
|
120898
|
+
enumerable: true,
|
|
120899
|
+
get: function() {
|
|
120900
|
+
return DECISIVE_HEAP_SPACES;
|
|
120901
|
+
}
|
|
120902
|
+
});
|
|
120692
120903
|
Object.defineProperty(exports, "DeviceRegistry", {
|
|
120693
120904
|
enumerable: true,
|
|
120694
120905
|
get: function() {
|
|
120695
120906
|
return DeviceRegistry;
|
|
120696
120907
|
}
|
|
120697
120908
|
});
|
|
120909
|
+
Object.defineProperty(exports, "EVENT_PLANE_TOP_N", {
|
|
120910
|
+
enumerable: true,
|
|
120911
|
+
get: function() {
|
|
120912
|
+
return EVENT_PLANE_TOP_N;
|
|
120913
|
+
}
|
|
120914
|
+
});
|
|
120698
120915
|
Object.defineProperty(exports, "EVENT_TOPIC_PREFIX", {
|
|
120699
120916
|
enumerable: true,
|
|
120700
120917
|
get: function() {
|
|
@@ -120713,12 +120930,24 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120713
120930
|
return HEAP_RECLAIM_MIN_INTERVAL_MS;
|
|
120714
120931
|
}
|
|
120715
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
|
+
});
|
|
120716
120939
|
Object.defineProperty(exports, "HEAP_RECLAIM_TRIGGER_MB", {
|
|
120717
120940
|
enumerable: true,
|
|
120718
120941
|
get: function() {
|
|
120719
120942
|
return HEAP_RECLAIM_TRIGGER_MB;
|
|
120720
120943
|
}
|
|
120721
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
|
+
});
|
|
120722
120951
|
Object.defineProperty(exports, "HEAP_WATCH_INTERVAL_MS", {
|
|
120723
120952
|
enumerable: true,
|
|
120724
120953
|
get: function() {
|
|
@@ -120743,6 +120972,12 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120743
120972
|
return HUB_CAP_FWD_SERVICE;
|
|
120744
120973
|
}
|
|
120745
120974
|
});
|
|
120975
|
+
Object.defineProperty(exports, "HUB_MAIN_HEAP_WATCH_LABEL", {
|
|
120976
|
+
enumerable: true,
|
|
120977
|
+
get: function() {
|
|
120978
|
+
return HUB_MAIN_HEAP_WATCH_LABEL;
|
|
120979
|
+
}
|
|
120980
|
+
});
|
|
120746
120981
|
Object.defineProperty(exports, "HUB_MAIN_RSS_BUDGET_MB", {
|
|
120747
120982
|
enumerable: true,
|
|
120748
120983
|
get: function() {
|
|
@@ -120785,6 +121020,12 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120785
121020
|
return RSS_BUDGET_RELEASE_RATIO;
|
|
120786
121021
|
}
|
|
120787
121022
|
});
|
|
121023
|
+
Object.defineProperty(exports, "RUNNER_HEAP_SNAPSHOT_ENV", {
|
|
121024
|
+
enumerable: true,
|
|
121025
|
+
get: function() {
|
|
121026
|
+
return RUNNER_HEAP_SNAPSHOT_ENV;
|
|
121027
|
+
}
|
|
121028
|
+
});
|
|
120788
121029
|
Object.defineProperty(exports, "RUNNER_HEAP_WATCH_INTERVAL_MS", {
|
|
120789
121030
|
enumerable: true,
|
|
120790
121031
|
get: function() {
|
|
@@ -120821,6 +121062,12 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120821
121062
|
return UdsLocalTransportServer;
|
|
120822
121063
|
}
|
|
120823
121064
|
});
|
|
121065
|
+
Object.defineProperty(exports, "ZERO_LOOP_DELAY", {
|
|
121066
|
+
enumerable: true,
|
|
121067
|
+
get: function() {
|
|
121068
|
+
return ZERO_LOOP_DELAY;
|
|
121069
|
+
}
|
|
121070
|
+
});
|
|
120824
121071
|
Object.defineProperty(exports, "__resetCapUsageRegistryForTests", {
|
|
120825
121072
|
enumerable: true,
|
|
120826
121073
|
get: function() {
|
|
@@ -120941,6 +121188,24 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120941
121188
|
return createBrokerDeviceManagerApi;
|
|
120942
121189
|
}
|
|
120943
121190
|
});
|
|
121191
|
+
Object.defineProperty(exports, "createDeferredHeapWatchSink", {
|
|
121192
|
+
enumerable: true,
|
|
121193
|
+
get: function() {
|
|
121194
|
+
return createDeferredHeapWatchSink;
|
|
121195
|
+
}
|
|
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
|
+
});
|
|
120944
121209
|
Object.defineProperty(exports, "createHubCapForwardService", {
|
|
120945
121210
|
enumerable: true,
|
|
120946
121211
|
get: function() {
|
|
@@ -120959,6 +121224,12 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
120959
121224
|
return createLocalTransport;
|
|
120960
121225
|
}
|
|
120961
121226
|
});
|
|
121227
|
+
Object.defineProperty(exports, "createLoopDelayMeter", {
|
|
121228
|
+
enumerable: true,
|
|
121229
|
+
get: function() {
|
|
121230
|
+
return createLoopDelayMeter;
|
|
121231
|
+
}
|
|
121232
|
+
});
|
|
120962
121233
|
Object.defineProperty(exports, "createParentUnownedCallHandler", {
|
|
120963
121234
|
enumerable: true,
|
|
120964
121235
|
get: function() {
|
|
@@ -121013,12 +121284,36 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
121013
121284
|
return deserializeTypedArrays;
|
|
121014
121285
|
}
|
|
121015
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
|
+
});
|
|
121016
121299
|
Object.defineProperty(exports, "encodeFrame", {
|
|
121017
121300
|
enumerable: true,
|
|
121018
121301
|
get: function() {
|
|
121019
121302
|
return encodeFrame;
|
|
121020
121303
|
}
|
|
121021
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
|
+
});
|
|
121022
121317
|
Object.defineProperty(exports, "getBrokerEventBus", {
|
|
121023
121318
|
enumerable: true,
|
|
121024
121319
|
get: function() {
|
|
@@ -121067,6 +121362,18 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
121067
121362
|
return getWorkerNativeCapSnapshot;
|
|
121068
121363
|
}
|
|
121069
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
|
+
});
|
|
121070
121377
|
Object.defineProperty(exports, "hubMainRssBudget", {
|
|
121071
121378
|
enumerable: true,
|
|
121072
121379
|
get: function() {
|
|
@@ -121127,6 +121434,24 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
121127
121434
|
return parseRssBudgetMb;
|
|
121128
121435
|
}
|
|
121129
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
|
+
});
|
|
121130
121455
|
Object.defineProperty(exports, "registerEventBusService", {
|
|
121131
121456
|
enumerable: true,
|
|
121132
121457
|
get: function() {
|
|
@@ -121157,6 +121482,12 @@ var require_manifest_python_deps_BaVekjRY = __commonJS({
|
|
|
121157
121482
|
return runNpm;
|
|
121158
121483
|
}
|
|
121159
121484
|
});
|
|
121485
|
+
Object.defineProperty(exports, "selectReportedSpaces", {
|
|
121486
|
+
enumerable: true,
|
|
121487
|
+
get: function() {
|
|
121488
|
+
return selectReportedSpaces;
|
|
121489
|
+
}
|
|
121490
|
+
});
|
|
121160
121491
|
Object.defineProperty(exports, "serializeTypedArrays", {
|
|
121161
121492
|
enumerable: true,
|
|
121162
121493
|
get: function() {
|
|
@@ -125025,7 +125356,7 @@ var require_dist3 = __commonJS({
|
|
|
125025
125356
|
"use strict";
|
|
125026
125357
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
125027
125358
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
125028
|
-
var require_dist10 =
|
|
125359
|
+
var require_dist10 = require_dist_CxgTulEG();
|
|
125029
125360
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
125030
125361
|
require_alerts();
|
|
125031
125362
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -125051,7 +125382,7 @@ var require_dist3 = __commonJS({
|
|
|
125051
125382
|
var require_builtins_winston_logging_index = require_winston_logging();
|
|
125052
125383
|
var require_file_data_plane = require_file_data_plane_DO8KbxCe();
|
|
125053
125384
|
var require_tls$1 = require_tls_u8QCJCFE();
|
|
125054
|
-
var require_manifest_python_deps =
|
|
125385
|
+
var require_manifest_python_deps = require_manifest_python_deps_CcDe4S2Z();
|
|
125055
125386
|
var require_resource_monitor = require_resource_monitor_CdnzxBLP();
|
|
125056
125387
|
var require_custom_action_registry = require_custom_action_registry_jY0NOZK8();
|
|
125057
125388
|
var zod = require_zod();
|
|
@@ -205422,6 +205753,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205422
205753
|
exports.ConsoleLoggingAddon = require_builtins_console_logging_index.ConsoleLoggingAddon$1;
|
|
205423
205754
|
exports.CoreBlocksAddon = require_builtins_core_blocks_core_blocks_addon.CoreBlocksAddon;
|
|
205424
205755
|
exports.CustomActionRegistry = require_custom_action_registry.CustomActionRegistry;
|
|
205756
|
+
exports.DECISIVE_HEAP_SPACES = require_manifest_python_deps.DECISIVE_HEAP_SPACES;
|
|
205425
205757
|
exports.DEFAULT_DATA_PATH = DEFAULT_DATA_PATH;
|
|
205426
205758
|
exports.DEFAULT_LAN_HTTP_PORT = require_tls$1.DEFAULT_LAN_HTTP_PORT;
|
|
205427
205759
|
exports.DEFAULT_LOG_LEVEL = DEFAULT_LOG_LEVEL;
|
|
@@ -205431,6 +205763,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205431
205763
|
exports.DeviceManagerAddon = require_builtins_device_manager_device_manager_addon.DeviceManagerAddon;
|
|
205432
205764
|
exports.DeviceRegistry = require_manifest_python_deps.DeviceRegistry;
|
|
205433
205765
|
exports.DeviceStore = require_builtins_sqlite_storage_index.DeviceStore$1;
|
|
205766
|
+
exports.EVENT_PLANE_TOP_N = require_manifest_python_deps.EVENT_PLANE_TOP_N;
|
|
205434
205767
|
exports.EVENT_TOPIC_PREFIX = require_manifest_python_deps.EVENT_TOPIC_PREFIX;
|
|
205435
205768
|
exports.EngineManagerResolver = EngineManagerResolver;
|
|
205436
205769
|
exports.EventBus = EventBus;
|
|
@@ -205443,11 +205776,14 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205443
205776
|
exports.HEALTH_MONITOR_RETRY_INTERVALS_MS = HEALTH_MONITOR_RETRY_INTERVALS_MS;
|
|
205444
205777
|
exports.HEALTH_MONITOR_TICK_MS = HEALTH_MONITOR_TICK_MS;
|
|
205445
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;
|
|
205446
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;
|
|
205447
205782
|
exports.HEAP_WATCH_INTERVAL_MS = require_manifest_python_deps.HEAP_WATCH_INTERVAL_MS;
|
|
205448
205783
|
exports.HEAP_WATCH_WARN_RATIO = require_manifest_python_deps.HEAP_WATCH_WARN_RATIO;
|
|
205449
205784
|
exports.HUB_CAP_FWD_ACTION = require_manifest_python_deps.HUB_CAP_FWD_ACTION;
|
|
205450
205785
|
exports.HUB_CAP_FWD_SERVICE = require_manifest_python_deps.HUB_CAP_FWD_SERVICE;
|
|
205786
|
+
exports.HUB_MAIN_HEAP_WATCH_LABEL = require_manifest_python_deps.HUB_MAIN_HEAP_WATCH_LABEL;
|
|
205451
205787
|
exports.HUB_MAIN_RSS_BUDGET_MB = require_manifest_python_deps.HUB_MAIN_RSS_BUDGET_MB;
|
|
205452
205788
|
exports.HUB_RSS_BUDGET_ENV = require_manifest_python_deps.HUB_RSS_BUDGET_ENV;
|
|
205453
205789
|
exports.HubForwarderAddon = require_builtins_hub_forwarder_index.HubForwarderAddon$1;
|
|
@@ -205491,6 +205827,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205491
205827
|
exports.RESTART_MARKER_FILE = RESTART_MARKER_FILE;
|
|
205492
205828
|
exports.RSS_BUDGET_REANNOUNCE_MIN_MS = require_manifest_python_deps.RSS_BUDGET_REANNOUNCE_MIN_MS;
|
|
205493
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;
|
|
205494
205831
|
exports.RUNNER_HEAP_WATCH_INTERVAL_MS = require_manifest_python_deps.RUNNER_HEAP_WATCH_INTERVAL_MS;
|
|
205495
205832
|
exports.RUNNER_RSS_BUDGET_ENV = require_manifest_python_deps.RUNNER_RSS_BUDGET_ENV;
|
|
205496
205833
|
exports.RUNTIME_DEFAULTS = require_dist10.RUNTIME_DEFAULTS;
|
|
@@ -205519,6 +205856,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205519
205856
|
exports.UserManager = require_builtins_local_auth_local_auth_addon.UserManager;
|
|
205520
205857
|
exports.WinstonDestination = require_builtins_winston_logging_index.WinstonDestination$1;
|
|
205521
205858
|
exports.WinstonLoggingAddon = require_builtins_winston_logging_index.WinstonLoggingAddon$1;
|
|
205859
|
+
exports.ZERO_LOOP_DELAY = require_manifest_python_deps.ZERO_LOOP_DELAY;
|
|
205522
205860
|
exports.__resetCapUsageRegistryForTests = require_manifest_python_deps.__resetCapUsageRegistryForTests;
|
|
205523
205861
|
exports.__resetLoggingGateForTests = __resetLoggingGateForTests;
|
|
205524
205862
|
exports.adaptBrokerToCluster = require_manifest_python_deps.adaptBrokerToCluster;
|
|
@@ -205568,12 +205906,16 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205568
205906
|
exports.createBroker = createBroker2;
|
|
205569
205907
|
exports.createBrokerDeviceManagerApi = require_manifest_python_deps.createBrokerDeviceManagerApi;
|
|
205570
205908
|
exports.createCoreCapService = createCoreCapService;
|
|
205909
|
+
exports.createDeferredHeapWatchSink = require_manifest_python_deps.createDeferredHeapWatchSink;
|
|
205571
205910
|
exports.createDoorSettingsView = createDoorSettingsView;
|
|
205911
|
+
exports.createEventPlaneMeter = require_manifest_python_deps.createEventPlaneMeter;
|
|
205912
|
+
exports.createEventPlaneReader = require_manifest_python_deps.createEventPlaneReader;
|
|
205572
205913
|
exports.createFileDataPlaneHandler = require_file_data_plane.createFileDataPlaneHandler;
|
|
205573
205914
|
exports.createHubCapForwardService = require_manifest_python_deps.createHubCapForwardService;
|
|
205574
205915
|
exports.createHubService = createHubService;
|
|
205575
205916
|
exports.createKernelHwAccel = require_manifest_python_deps.createKernelHwAccel;
|
|
205576
205917
|
exports.createLocalTransport = require_manifest_python_deps.createLocalTransport;
|
|
205918
|
+
exports.createLoopDelayMeter = require_manifest_python_deps.createLoopDelayMeter;
|
|
205577
205919
|
exports.createParentUnownedCallHandler = require_manifest_python_deps.createParentUnownedCallHandler;
|
|
205578
205920
|
exports.createProcessService = createProcessService;
|
|
205579
205921
|
exports.createReadinessService = createReadinessService;
|
|
@@ -205591,6 +205933,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205591
205933
|
exports.describeProviderKindDrift = describeProviderKindDrift;
|
|
205592
205934
|
exports.describeRss = require_manifest_python_deps.describeRss;
|
|
205593
205935
|
exports.detectWorkspacePackagesDir = detectWorkspacePackagesDir;
|
|
205936
|
+
exports.diffEventPlane = require_manifest_python_deps.diffEventPlane;
|
|
205594
205937
|
Object.defineProperty(exports, "downloadBinary", {
|
|
205595
205938
|
enumerable: true,
|
|
205596
205939
|
get: function() {
|
|
@@ -205600,6 +205943,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205600
205943
|
exports.downloadFile = require_file_data_plane.downloadFile;
|
|
205601
205944
|
exports.downloadModel = require_file_data_plane.downloadModel;
|
|
205602
205945
|
exports.emitDownForOwnedCaps = require_dist10.emitDownForOwnedCaps;
|
|
205946
|
+
exports.emitHeapDiagnosticReport = require_manifest_python_deps.emitHeapDiagnosticReport;
|
|
205603
205947
|
exports.encodeFrame = require_manifest_python_deps.encodeFrame;
|
|
205604
205948
|
exports.ensureAddonNativePrebuilds = ensureAddonNativePrebuilds;
|
|
205605
205949
|
Object.defineProperty(exports, "ensureBinary", {
|
|
@@ -205634,6 +205978,8 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205634
205978
|
return _camstack_types_node.findInPath;
|
|
205635
205979
|
}
|
|
205636
205980
|
});
|
|
205981
|
+
exports.formatEventPlane = require_manifest_python_deps.formatEventPlane;
|
|
205982
|
+
exports.formatHeapSpaces = require_manifest_python_deps.formatHeapSpaces;
|
|
205637
205983
|
exports.formatLogLine = require_formatter.formatLogLine;
|
|
205638
205984
|
exports.getBrokerEventBus = require_manifest_python_deps.getBrokerEventBus;
|
|
205639
205985
|
exports.getCapUsageRegistry = require_manifest_python_deps.getCapUsageRegistry;
|
|
@@ -205666,6 +206012,8 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205666
206012
|
exports.getWorkerDeviceRegistry = require_manifest_python_deps.getWorkerDeviceRegistry;
|
|
205667
206013
|
exports.hasDotNode = hasDotNode;
|
|
205668
206014
|
exports.hashClusterSecret = hashClusterSecret;
|
|
206015
|
+
exports.heapSnapshotAuthorised = require_manifest_python_deps.heapSnapshotAuthorised;
|
|
206016
|
+
exports.heapSpaceField = require_manifest_python_deps.heapSpaceField;
|
|
205669
206017
|
exports.hubMainRssBudget = require_manifest_python_deps.hubMainRssBudget;
|
|
205670
206018
|
exports.installManifestNativeDeps = require_manifest_python_deps.installManifestNativeDeps;
|
|
205671
206019
|
exports.installManifestPythonDeps = require_manifest_python_deps.installManifestPythonDeps;
|
|
@@ -205704,11 +206052,14 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205704
206052
|
exports.proxyToUpstream = proxyToUpstream;
|
|
205705
206053
|
exports.quarantineAddonResidue = quarantineAddonResidue;
|
|
205706
206054
|
exports.readExtraSans = require_tls$1.readExtraSans;
|
|
206055
|
+
exports.readHeapSpaces = require_manifest_python_deps.readHeapSpaces;
|
|
205707
206056
|
exports.readLanHttpState = require_tls$1.readLanHttpState;
|
|
206057
|
+
exports.readMoleculerFanoutMode = require_manifest_python_deps.readMoleculerFanoutMode;
|
|
205708
206058
|
exports.readPendingRestart = readPendingRestart;
|
|
205709
206059
|
exports.readTlsAccessStatus = require_tls$1.readTlsAccessStatus;
|
|
205710
206060
|
exports.readTlsMode = require_tls$1.readTlsMode;
|
|
205711
206061
|
exports.readinessKey = require_dist10.readinessKey;
|
|
206062
|
+
exports.reclaimIntervalMs = require_manifest_python_deps.reclaimIntervalMs;
|
|
205712
206063
|
exports.registerEventBusService = require_manifest_python_deps.registerEventBusService;
|
|
205713
206064
|
exports.registerLanHttpHandler = require_tls$1.registerLanHttpHandler;
|
|
205714
206065
|
exports.reissueTlsLeaf = require_tls$1.reissueTlsLeaf;
|
|
@@ -205722,6 +206073,7 @@ globstar while`, t, d, e, f, m), this.matchOne(t.slice(d), e.slice(f), s)) retur
|
|
|
205722
206073
|
exports.scopesAllowAddon = require_dist10.scopesAllowAddon;
|
|
205723
206074
|
exports.scopesAllowDeviceCap = require_dist10.scopesAllowDeviceCap;
|
|
205724
206075
|
exports.selectAddonResidue = selectAddonResidue;
|
|
206076
|
+
exports.selectReportedSpaces = require_manifest_python_deps.selectReportedSpaces;
|
|
205725
206077
|
exports.serializeTypedArrays = require_manifest_python_deps.serializeTypedArrays;
|
|
205726
206078
|
exports.setHubConnected = require_manifest_python_deps.setHubConnected;
|
|
205727
206079
|
exports.setNodeEventInterest = require_manifest_python_deps.setNodeEventInterest;
|
|
@@ -420627,7 +420979,18 @@ var require_main4 = __commonJS({
|
|
|
420627
420979
|
async function bootstrap() {
|
|
420628
420980
|
const heapReclaimer = (0, system_1.createV8Reclaimer)();
|
|
420629
420981
|
const heapReclaim = heapReclaimer === void 0 ? void 0 : { reclaim: heapReclaimer };
|
|
420630
|
-
|
|
420982
|
+
const heapWatchSink = (0, system_1.createDeferredHeapWatchSink)(system_1.HUB_MAIN_HEAP_WATCH_LABEL);
|
|
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
|
+
});
|
|
420631
420994
|
cleanupOrphanProcesses();
|
|
420632
420995
|
let spaIndexHtml = null;
|
|
420633
420996
|
const configPath = process.env.CONFIG_PATH ?? path.join(process.env.CAMSTACK_DATA ?? path.join(process.cwd(), "camstack-data"), "config.yaml");
|
|
@@ -420671,6 +421034,15 @@ var require_main4 = __commonJS({
|
|
|
420671
421034
|
console.warn("[bootstrap] Failed to register addon upload route:", err);
|
|
420672
421035
|
}
|
|
420673
421036
|
const loggingService = app.get(logging_service_1.LoggingService);
|
|
421037
|
+
const heapWatchLogger = loggingService.createLogger("heap-watch");
|
|
421038
|
+
heapWatchSink.attach({
|
|
421039
|
+
info: (line) => {
|
|
421040
|
+
heapWatchLogger.info(line);
|
|
421041
|
+
},
|
|
421042
|
+
warn: (line) => {
|
|
421043
|
+
heapWatchLogger.warn(line);
|
|
421044
|
+
}
|
|
421045
|
+
});
|
|
420674
421046
|
const addonRouteRegistry = new system_1.AddonRouteRegistry();
|
|
420675
421047
|
const dataPlaneRegistry = new system_1.DataPlaneRegistry();
|
|
420676
421048
|
const { NotificationServiceWrapper } = await Promise.resolve().then(() => __importStar(require_notification_wrapper_service()));
|
|
@@ -420738,6 +421110,7 @@ var require_main4 = __commonJS({
|
|
|
420738
421110
|
console.log("[bootstrap] app.init() complete \u2014 all onModuleInit hooks have run");
|
|
420739
421111
|
capabilityRegistry.ready();
|
|
420740
421112
|
const moleculer = app.get(moleculer_service_1.MoleculerService);
|
|
421113
|
+
moleculerForEventPlane = moleculer;
|
|
420741
421114
|
moleculer.registerLogReceiver();
|
|
420742
421115
|
capabilityRegistry.registerProvider("model-distributor", "$hub", (0, model_distributor_js_1.buildModelDistributorProvider)(moleculer, loggingService));
|
|
420743
421116
|
try {
|