@camstack/system 1.2.188 → 1.2.189
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/addon-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/builtins/snapshot/index.js +60 -4
- package/dist/builtins/snapshot/index.mjs +60 -4
- package/dist/builtins/snapshot/snapshot-fatigue.d.ts +41 -0
- package/dist/builtins/snapshot/snapshot.addon.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{manifest-system-deps-CYKgsQ_b.mjs → manifest-system-deps-726RBOX7.mjs} +4 -2
- package/dist/{manifest-system-deps-CdIVy85V.js → manifest-system-deps-DvY1bY_n.js} +4 -2
- package/package.json +1 -1
package/dist/addon-runner.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_manifest_system_deps = require("./manifest-system-deps-
|
|
2
|
+
const require_manifest_system_deps = require("./manifest-system-deps-DvY1bY_n.js");
|
|
3
3
|
const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
|
|
4
4
|
let node_path = require("node:path");
|
|
5
5
|
node_path = require_chunk.__toESM(node_path);
|
package/dist/addon-runner.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as createUdsLoggerWithControl, Ft as RUNNER_RSS_BUDGET_ENV, Jt as startRunnerHeapWatch, Qt as emitHeapDiagnosticReport, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, j as LocalChildClient, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-
|
|
1
|
+
import { A as createUdsLoggerWithControl, Ft as RUNNER_RSS_BUDGET_ENV, Jt as startRunnerHeapWatch, Qt as emitHeapDiagnosticReport, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, j as LocalChildClient, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-726RBOX7.mjs";
|
|
2
2
|
import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
|
|
3
3
|
import { register } from "node:module";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -458,6 +458,41 @@ async function renderCourtesyOverlayJpeg(background, spec) {
|
|
|
458
458
|
if (bytes.length === 0) throw new Error("courtesy overlay produced no bytes");
|
|
459
459
|
return bytes;
|
|
460
460
|
}
|
|
461
|
+
var NativeSnapshotFatigue = class {
|
|
462
|
+
baseMs;
|
|
463
|
+
maxMs;
|
|
464
|
+
entries = /* @__PURE__ */ new Map();
|
|
465
|
+
constructor(options = {}) {
|
|
466
|
+
this.baseMs = options.baseMs ?? 1e4;
|
|
467
|
+
this.maxMs = options.maxMs ?? 3e5;
|
|
468
|
+
}
|
|
469
|
+
/** The instant the rest ends, or `null` when the camera may be dialled now. */
|
|
470
|
+
restingUntil(deviceId, now) {
|
|
471
|
+
const entry = this.entries.get(deviceId);
|
|
472
|
+
if (entry === void 0 || entry.restingUntil <= now) return null;
|
|
473
|
+
return entry.restingUntil;
|
|
474
|
+
}
|
|
475
|
+
/** A dial that did not produce a frame — thrown or answered `null`. */
|
|
476
|
+
recordFailure(deviceId, now) {
|
|
477
|
+
const streak = (this.entries.get(deviceId)?.streak ?? 0) + 1;
|
|
478
|
+
const restMs = Math.min(this.maxMs, this.baseMs * 2 ** (streak - 1));
|
|
479
|
+
this.entries.set(deviceId, {
|
|
480
|
+
streak,
|
|
481
|
+
restingUntil: now + restMs
|
|
482
|
+
});
|
|
483
|
+
return {
|
|
484
|
+
streak,
|
|
485
|
+
restMs
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
/** A frame landed: the camera is answering again. */
|
|
489
|
+
recordSuccess(deviceId) {
|
|
490
|
+
this.entries.delete(deviceId);
|
|
491
|
+
}
|
|
492
|
+
forget(deviceId) {
|
|
493
|
+
this.entries.delete(deviceId);
|
|
494
|
+
}
|
|
495
|
+
};
|
|
461
496
|
//#endregion
|
|
462
497
|
//#region src/builtins/snapshot/snapshot-link-url.ts
|
|
463
498
|
/**
|
|
@@ -1046,6 +1081,8 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
1046
1081
|
* that silently left the cache is the reason a later capture had to happen,
|
|
1047
1082
|
* and per-camera is the only way that question is ever asked.
|
|
1048
1083
|
*/
|
|
1084
|
+
/** Cameras resting after a native miss — see `snapshot-fatigue.ts`. */
|
|
1085
|
+
fatigue = new NativeSnapshotFatigue();
|
|
1049
1086
|
cache = new SnapshotCache({ onEvict: (deviceId, streamId, reason) => {
|
|
1050
1087
|
this.ctx.logger.debug("snapshot cache evicted", {
|
|
1051
1088
|
tags: { deviceId },
|
|
@@ -1847,11 +1884,17 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
1847
1884
|
const now = Date.now();
|
|
1848
1885
|
let nativeError = null;
|
|
1849
1886
|
let nativeAbsent = false;
|
|
1887
|
+
const restingUntil = input.force === true ? null : this.fatigue.restingUntil(deviceId, now);
|
|
1850
1888
|
try {
|
|
1851
|
-
const native = this.ctx.getNativeProvider(require_dist.snapshotCapability, deviceId);
|
|
1852
|
-
if (
|
|
1889
|
+
const native = restingUntil === null ? this.ctx.getNativeProvider(require_dist.snapshotCapability, deviceId) : null;
|
|
1890
|
+
if (restingUntil !== null) log.info("native snapshot: camera resting after a miss — not dialled", {
|
|
1891
|
+
tags: { deviceId },
|
|
1892
|
+
meta: { restMsLeft: restingUntil - now }
|
|
1893
|
+
});
|
|
1894
|
+
else if (native) {
|
|
1853
1895
|
const result = await this.nativePool.run(() => native.getSnapshot(input));
|
|
1854
1896
|
if (result) {
|
|
1897
|
+
this.fatigue.recordSuccess(deviceId);
|
|
1855
1898
|
this.stateFrames.delete(deviceId);
|
|
1856
1899
|
this.cache.set(deviceId, effectiveStreamId, {
|
|
1857
1900
|
data: result,
|
|
@@ -1863,7 +1906,14 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
1863
1906
|
image: result
|
|
1864
1907
|
};
|
|
1865
1908
|
}
|
|
1866
|
-
|
|
1909
|
+
const rest = this.fatigue.recordFailure(deviceId, now);
|
|
1910
|
+
log.debug("native snapshot returned null — falling through to broker", {
|
|
1911
|
+
tags: { deviceId },
|
|
1912
|
+
meta: {
|
|
1913
|
+
restMs: rest.restMs,
|
|
1914
|
+
streak: rest.streak
|
|
1915
|
+
}
|
|
1916
|
+
});
|
|
1867
1917
|
} else {
|
|
1868
1918
|
nativeAbsent = true;
|
|
1869
1919
|
log.debug("native snapshot provider not resolved — falling through to broker", { tags: { deviceId } });
|
|
@@ -1878,9 +1928,14 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
1878
1928
|
});
|
|
1879
1929
|
} else {
|
|
1880
1930
|
nativeError = err;
|
|
1931
|
+
const rest = this.fatigue.recordFailure(deviceId, now);
|
|
1881
1932
|
log.warn("native snapshot failed", {
|
|
1882
1933
|
tags: { deviceId },
|
|
1883
|
-
meta: {
|
|
1934
|
+
meta: {
|
|
1935
|
+
error: msg,
|
|
1936
|
+
restMs: rest.restMs,
|
|
1937
|
+
streak: rest.streak
|
|
1938
|
+
}
|
|
1884
1939
|
});
|
|
1885
1940
|
}
|
|
1886
1941
|
}
|
|
@@ -2062,6 +2117,7 @@ var SnapshotAddon = class SnapshotAddon extends require_dist.BaseAddon {
|
|
|
2062
2117
|
*/
|
|
2063
2118
|
evictRemovedDevice(deviceId, reason) {
|
|
2064
2119
|
this.dropDeviceCaches(deviceId);
|
|
2120
|
+
this.fatigue.forget(deviceId);
|
|
2065
2121
|
this.ctx.logger.info("snapshot: dropped cache for removed device", {
|
|
2066
2122
|
tags: { deviceId },
|
|
2067
2123
|
meta: { reason }
|
|
@@ -452,6 +452,41 @@ async function renderCourtesyOverlayJpeg(background, spec) {
|
|
|
452
452
|
if (bytes.length === 0) throw new Error("courtesy overlay produced no bytes");
|
|
453
453
|
return bytes;
|
|
454
454
|
}
|
|
455
|
+
var NativeSnapshotFatigue = class {
|
|
456
|
+
baseMs;
|
|
457
|
+
maxMs;
|
|
458
|
+
entries = /* @__PURE__ */ new Map();
|
|
459
|
+
constructor(options = {}) {
|
|
460
|
+
this.baseMs = options.baseMs ?? 1e4;
|
|
461
|
+
this.maxMs = options.maxMs ?? 3e5;
|
|
462
|
+
}
|
|
463
|
+
/** The instant the rest ends, or `null` when the camera may be dialled now. */
|
|
464
|
+
restingUntil(deviceId, now) {
|
|
465
|
+
const entry = this.entries.get(deviceId);
|
|
466
|
+
if (entry === void 0 || entry.restingUntil <= now) return null;
|
|
467
|
+
return entry.restingUntil;
|
|
468
|
+
}
|
|
469
|
+
/** A dial that did not produce a frame — thrown or answered `null`. */
|
|
470
|
+
recordFailure(deviceId, now) {
|
|
471
|
+
const streak = (this.entries.get(deviceId)?.streak ?? 0) + 1;
|
|
472
|
+
const restMs = Math.min(this.maxMs, this.baseMs * 2 ** (streak - 1));
|
|
473
|
+
this.entries.set(deviceId, {
|
|
474
|
+
streak,
|
|
475
|
+
restingUntil: now + restMs
|
|
476
|
+
});
|
|
477
|
+
return {
|
|
478
|
+
streak,
|
|
479
|
+
restMs
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
/** A frame landed: the camera is answering again. */
|
|
483
|
+
recordSuccess(deviceId) {
|
|
484
|
+
this.entries.delete(deviceId);
|
|
485
|
+
}
|
|
486
|
+
forget(deviceId) {
|
|
487
|
+
this.entries.delete(deviceId);
|
|
488
|
+
}
|
|
489
|
+
};
|
|
455
490
|
//#endregion
|
|
456
491
|
//#region src/builtins/snapshot/snapshot-link-url.ts
|
|
457
492
|
/**
|
|
@@ -1040,6 +1075,8 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
1040
1075
|
* that silently left the cache is the reason a later capture had to happen,
|
|
1041
1076
|
* and per-camera is the only way that question is ever asked.
|
|
1042
1077
|
*/
|
|
1078
|
+
/** Cameras resting after a native miss — see `snapshot-fatigue.ts`. */
|
|
1079
|
+
fatigue = new NativeSnapshotFatigue();
|
|
1043
1080
|
cache = new SnapshotCache({ onEvict: (deviceId, streamId, reason) => {
|
|
1044
1081
|
this.ctx.logger.debug("snapshot cache evicted", {
|
|
1045
1082
|
tags: { deviceId },
|
|
@@ -1841,11 +1878,17 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
1841
1878
|
const now = Date.now();
|
|
1842
1879
|
let nativeError = null;
|
|
1843
1880
|
let nativeAbsent = false;
|
|
1881
|
+
const restingUntil = input.force === true ? null : this.fatigue.restingUntil(deviceId, now);
|
|
1844
1882
|
try {
|
|
1845
|
-
const native = this.ctx.getNativeProvider(snapshotCapability, deviceId);
|
|
1846
|
-
if (
|
|
1883
|
+
const native = restingUntil === null ? this.ctx.getNativeProvider(snapshotCapability, deviceId) : null;
|
|
1884
|
+
if (restingUntil !== null) log.info("native snapshot: camera resting after a miss — not dialled", {
|
|
1885
|
+
tags: { deviceId },
|
|
1886
|
+
meta: { restMsLeft: restingUntil - now }
|
|
1887
|
+
});
|
|
1888
|
+
else if (native) {
|
|
1847
1889
|
const result = await this.nativePool.run(() => native.getSnapshot(input));
|
|
1848
1890
|
if (result) {
|
|
1891
|
+
this.fatigue.recordSuccess(deviceId);
|
|
1849
1892
|
this.stateFrames.delete(deviceId);
|
|
1850
1893
|
this.cache.set(deviceId, effectiveStreamId, {
|
|
1851
1894
|
data: result,
|
|
@@ -1857,7 +1900,14 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
1857
1900
|
image: result
|
|
1858
1901
|
};
|
|
1859
1902
|
}
|
|
1860
|
-
|
|
1903
|
+
const rest = this.fatigue.recordFailure(deviceId, now);
|
|
1904
|
+
log.debug("native snapshot returned null — falling through to broker", {
|
|
1905
|
+
tags: { deviceId },
|
|
1906
|
+
meta: {
|
|
1907
|
+
restMs: rest.restMs,
|
|
1908
|
+
streak: rest.streak
|
|
1909
|
+
}
|
|
1910
|
+
});
|
|
1861
1911
|
} else {
|
|
1862
1912
|
nativeAbsent = true;
|
|
1863
1913
|
log.debug("native snapshot provider not resolved — falling through to broker", { tags: { deviceId } });
|
|
@@ -1872,9 +1922,14 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
1872
1922
|
});
|
|
1873
1923
|
} else {
|
|
1874
1924
|
nativeError = err;
|
|
1925
|
+
const rest = this.fatigue.recordFailure(deviceId, now);
|
|
1875
1926
|
log.warn("native snapshot failed", {
|
|
1876
1927
|
tags: { deviceId },
|
|
1877
|
-
meta: {
|
|
1928
|
+
meta: {
|
|
1929
|
+
error: msg,
|
|
1930
|
+
restMs: rest.restMs,
|
|
1931
|
+
streak: rest.streak
|
|
1932
|
+
}
|
|
1878
1933
|
});
|
|
1879
1934
|
}
|
|
1880
1935
|
}
|
|
@@ -2056,6 +2111,7 @@ var SnapshotAddon = class SnapshotAddon extends BaseAddon {
|
|
|
2056
2111
|
*/
|
|
2057
2112
|
evictRemovedDevice(deviceId, reason) {
|
|
2058
2113
|
this.dropDeviceCaches(deviceId);
|
|
2114
|
+
this.fatigue.forget(deviceId);
|
|
2059
2115
|
this.ctx.logger.info("snapshot: dropped cache for removed device", {
|
|
2060
2116
|
tags: { deviceId },
|
|
2061
2117
|
meta: { reason }
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rest for a camera that could not answer a native snapshot.
|
|
3
|
+
*
|
|
4
|
+
* The wrapper is polled — grids, cards, the media plane — and every miss used
|
|
5
|
+
* to be followed by another ISAPI/CGI dial on the next poll. On a camera that
|
|
6
|
+
* is already struggling ("Videocamera retro casa" answered HTTP 503 to 68
|
|
7
|
+
* native dials in one hour on 2026-09-05) that is the load that keeps it
|
|
8
|
+
* struggling. So a miss earns a rest window during which the native provider
|
|
9
|
+
* is NOT dialled: the request falls through to the stream-broker frame grab
|
|
10
|
+
* and the stale cache, which cost the camera nothing. The window doubles with
|
|
11
|
+
* consecutive misses and is capped; the first frame that lands ends it.
|
|
12
|
+
*
|
|
13
|
+
* Generic on purpose: every vendor's native provider sits behind this one
|
|
14
|
+
* wrapper, so one ledger here covers them all (D62 spirit: one owner).
|
|
15
|
+
* `force` bypasses it — an operator's deliberate wake is never held back.
|
|
16
|
+
*/
|
|
17
|
+
export interface NativeSnapshotFatigueOptions {
|
|
18
|
+
/** Rest after the first miss. */
|
|
19
|
+
readonly baseMs?: number;
|
|
20
|
+
/** Longest rest a streak can earn. */
|
|
21
|
+
readonly maxMs?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface FatigueVerdict {
|
|
24
|
+
readonly streak: number;
|
|
25
|
+
readonly restMs: number;
|
|
26
|
+
}
|
|
27
|
+
export declare const NATIVE_SNAPSHOT_REST_BASE_MS = 10000;
|
|
28
|
+
export declare const NATIVE_SNAPSHOT_REST_MAX_MS = 300000;
|
|
29
|
+
export declare class NativeSnapshotFatigue {
|
|
30
|
+
private readonly baseMs;
|
|
31
|
+
private readonly maxMs;
|
|
32
|
+
private readonly entries;
|
|
33
|
+
constructor(options?: NativeSnapshotFatigueOptions);
|
|
34
|
+
/** The instant the rest ends, or `null` when the camera may be dialled now. */
|
|
35
|
+
restingUntil(deviceId: number, now: number): number | null;
|
|
36
|
+
/** A dial that did not produce a frame — thrown or answered `null`. */
|
|
37
|
+
recordFailure(deviceId: number, now: number): FatigueVerdict;
|
|
38
|
+
/** A frame landed: the camera is answering again. */
|
|
39
|
+
recordSuccess(deviceId: number): void;
|
|
40
|
+
forget(deviceId: number): void;
|
|
41
|
+
}
|
|
@@ -36,6 +36,8 @@ export declare class SnapshotAddon extends BaseAddon<SnapshotAddonConfig> {
|
|
|
36
36
|
* that silently left the cache is the reason a later capture had to happen,
|
|
37
37
|
* and per-camera is the only way that question is ever asked.
|
|
38
38
|
*/
|
|
39
|
+
/** Cameras resting after a native miss — see `snapshot-fatigue.ts`. */
|
|
40
|
+
private readonly fatigue;
|
|
39
41
|
private readonly cache;
|
|
40
42
|
/** Card-sized derivatives of the frames above, keyed by width and validated
|
|
41
43
|
* against the source frame's timestamp. */
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ require("./builtins/system-config/index.js");
|
|
|
27
27
|
const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
|
|
28
28
|
const require_file_data_plane = require("./file-data-plane-DO8KbxCe.js");
|
|
29
29
|
const require_tls$1 = require("./tls-BxQlomxd.js");
|
|
30
|
-
const require_manifest_system_deps = require("./manifest-system-deps-
|
|
30
|
+
const require_manifest_system_deps = require("./manifest-system-deps-DvY1bY_n.js");
|
|
31
31
|
const require_resource_monitor = require("./resource-monitor-CdnzxBLP.js");
|
|
32
32
|
const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
|
|
33
33
|
let zod = require("zod");
|
package/dist/index.mjs
CHANGED
|
@@ -26,7 +26,7 @@ import "./builtins/system-config/index.mjs";
|
|
|
26
26
|
import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
|
|
27
27
|
import { a as parseTokenizedUrl, c as collectModelFiles, d as downloadModel, f as ensureModel, h as isModelDownloaded, i as parseRangeHeader, l as deleteModelFromDisk, m as getModelFilePath, n as contentTypeFor, o as resolveFilePath, p as fetchJson, r as createAuthenticatedFileServer, s as ModelDownloadService, t as createFileDataPlaneHandler, u as downloadFile } from "./file-data-plane-BhKdxJgf.mjs";
|
|
28
28
|
import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-DOTmtLCW.mjs";
|
|
29
|
-
import { $ as buildUdsNativeCapProxy, $t as formatHeapSpaces, A as createUdsLoggerWithControl, At as HUB_MAIN_RSS_BUDGET_MB, B as readMoleculerFanoutMode, Bt as createV8Reclaimer, C as ipcParentLink, Ct as createAddonDataPlaneFacility, D as createUdsEventBus, Dt as HEAP_WATCH_INTERVAL_MS, E as createUdsEventBridge, Et as HEAP_RECLAIM_TRIGGER_MB, F as AGENT_CAP_FWD_SERVICE, Ft as RUNNER_RSS_BUDGET_ENV, G as createLocalTransport, Gt as reclaimIntervalMs, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Ht as hubMainRssBudget, I as CapRouteResolver, It as ZERO_LOOP_DELAY, J as SocketChannel, Jt as startRunnerHeapWatch, K as UdsLocalTransportClient, Kt as shouldReclaim, L as CapRouteError, Lt as buildHeapSample, M as LocalChildRegistry, Mt as RSS_BUDGET_REANNOUNCE_MIN_MS, N as UDS_NO_ROUTE_PREFIX, Nt as RSS_BUDGET_RELEASE_RATIO, O as udsChildLogToWorkerEntry, Ot as HEAP_WATCH_WARN_RATIO, P as AGENT_CAP_FWD_ACTION, Pt as RUNNER_HEAP_WATCH_INTERVAL_MS, Q as buildNativeCapProxy, Qt as emitHeapDiagnosticReport, R as classifyCapRoute, Rt as createDeferredHeapWatchSink, S as buildLinkChain, St as runNpm, T as createParentUnownedCallHandler, Tt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Ut as nextRssBudgetState, V as CapUsageRegistry, Vt as describeRss, W as getCapUsageRegistry, Wt as parseRssBudgetMb, X as FrameDecoder, Xt as DECISIVE_HEAP_SPACES, Y as localEndpointPath, Yt as strandedMb, Z as encodeFrame, Zt as HEAP_SPACE_REPORT_MIN_MB, _ as AddonDepsManager, _n as createEventPlaneReader, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as createSocketPlaneMeter, at as createAddonService, b as brokerCallForCap, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatSocketPlane, ct as capActionName, d as clusterEventTopic, dn as recordSocketFrame, dt as capServiceName, en as heapSpaceField, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as sampleSocketDirection, ft as parseCapAction, g as subscribePassthrough, gn as createEventPlaneMeter, gt as CapabilityHandle, h as setNodeEventInterest, hn as EVENT_PLANE_TOP_N, ht as DeviceRegistry, i as createAddonContext, in as SOCKET_PLANE_TOP_N, j as LocalChildClient, jt as HUB_RSS_BUDGET_ENV, k as createUdsLogger, kt as HUB_MAIN_HEAP_WATCH_LABEL, l as setHubConnected, ln as EMPTY_SOCKET_DIRECTION, lt as capActionSuffix, m as registerEventBusService, mn as socketDirectionMessages, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as selectReportedSpaces, o as getWorkerDeviceRegistry, on as createSocketPlaneReader, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as socketDirectionBytes, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as startHeapWatch, r as adaptBrokerToCluster, rn as EMPTY_SOCKET_PLANE_BASELINE, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as diffSocketPlane, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as readHeapSpaces, u as EVENT_TOPIC_PREFIX, un as createSocketDirectionCounters, ut as capBareAction, v as createKernelHwAccel, vn as diffEventPlane, vt as copyBundledNativeModules, w as localProviderLink, wt as HEAP_RECLAIM_MIN_INTERVAL_MS, x as brokerTransportLink, xt as resolveNpmInvocation, y as resolveHwAccel, yn as formatEventPlane, yt as installManifestNativeDeps, z as callWithServiceDiscovery, zt as createLoopDelayMeter } from "./manifest-system-deps-
|
|
29
|
+
import { $ as buildUdsNativeCapProxy, $t as formatHeapSpaces, A as createUdsLoggerWithControl, At as HUB_MAIN_RSS_BUDGET_MB, B as readMoleculerFanoutMode, Bt as createV8Reclaimer, C as ipcParentLink, Ct as createAddonDataPlaneFacility, D as createUdsEventBus, Dt as HEAP_WATCH_INTERVAL_MS, E as createUdsEventBridge, Et as HEAP_RECLAIM_TRIGGER_MB, F as AGENT_CAP_FWD_SERVICE, Ft as RUNNER_RSS_BUDGET_ENV, G as createLocalTransport, Gt as reclaimIntervalMs, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Ht as hubMainRssBudget, I as CapRouteResolver, It as ZERO_LOOP_DELAY, J as SocketChannel, Jt as startRunnerHeapWatch, K as UdsLocalTransportClient, Kt as shouldReclaim, L as CapRouteError, Lt as buildHeapSample, M as LocalChildRegistry, Mt as RSS_BUDGET_REANNOUNCE_MIN_MS, N as UDS_NO_ROUTE_PREFIX, Nt as RSS_BUDGET_RELEASE_RATIO, O as udsChildLogToWorkerEntry, Ot as HEAP_WATCH_WARN_RATIO, P as AGENT_CAP_FWD_ACTION, Pt as RUNNER_HEAP_WATCH_INTERVAL_MS, Q as buildNativeCapProxy, Qt as emitHeapDiagnosticReport, R as classifyCapRoute, Rt as createDeferredHeapWatchSink, S as buildLinkChain, St as runNpm, T as createParentUnownedCallHandler, Tt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Ut as nextRssBudgetState, V as CapUsageRegistry, Vt as describeRss, W as getCapUsageRegistry, Wt as parseRssBudgetMb, X as FrameDecoder, Xt as DECISIVE_HEAP_SPACES, Y as localEndpointPath, Yt as strandedMb, Z as encodeFrame, Zt as HEAP_SPACE_REPORT_MIN_MB, _ as AddonDepsManager, _n as createEventPlaneReader, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as createSocketPlaneMeter, at as createAddonService, b as brokerCallForCap, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatSocketPlane, ct as capActionName, d as clusterEventTopic, dn as recordSocketFrame, dt as capServiceName, en as heapSpaceField, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as sampleSocketDirection, ft as parseCapAction, g as subscribePassthrough, gn as createEventPlaneMeter, gt as CapabilityHandle, h as setNodeEventInterest, hn as EVENT_PLANE_TOP_N, ht as DeviceRegistry, i as createAddonContext, in as SOCKET_PLANE_TOP_N, j as LocalChildClient, jt as HUB_RSS_BUDGET_ENV, k as createUdsLogger, kt as HUB_MAIN_HEAP_WATCH_LABEL, l as setHubConnected, ln as EMPTY_SOCKET_DIRECTION, lt as capActionSuffix, m as registerEventBusService, mn as socketDirectionMessages, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as selectReportedSpaces, o as getWorkerDeviceRegistry, on as createSocketPlaneReader, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as socketDirectionBytes, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as startHeapWatch, r as adaptBrokerToCluster, rn as EMPTY_SOCKET_PLANE_BASELINE, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as diffSocketPlane, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as readHeapSpaces, u as EVENT_TOPIC_PREFIX, un as createSocketDirectionCounters, ut as capBareAction, v as createKernelHwAccel, vn as diffEventPlane, vt as copyBundledNativeModules, w as localProviderLink, wt as HEAP_RECLAIM_MIN_INTERVAL_MS, x as brokerTransportLink, xt as resolveNpmInvocation, y as resolveHwAccel, yn as formatEventPlane, yt as installManifestNativeDeps, z as callWithServiceDiscovery, zt as createLoopDelayMeter } from "./manifest-system-deps-726RBOX7.mjs";
|
|
30
30
|
import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-BWmQ5i-o.mjs";
|
|
31
31
|
import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
|
|
32
32
|
import { z } from "zod";
|
|
@@ -1504,7 +1504,8 @@ function createAddonDataPlaneFacility(args) {
|
|
|
1504
1504
|
prefix,
|
|
1505
1505
|
access: entry.access,
|
|
1506
1506
|
baseUrl,
|
|
1507
|
-
secret
|
|
1507
|
+
secret,
|
|
1508
|
+
...entry.share !== void 0 ? { share: entry.share } : {}
|
|
1508
1509
|
}));
|
|
1509
1510
|
args.sink?.set(args.addonId, endpoints);
|
|
1510
1511
|
};
|
|
@@ -1514,7 +1515,8 @@ function createAddonDataPlaneFacility(args) {
|
|
|
1514
1515
|
await ensureServer();
|
|
1515
1516
|
served.set(prefix, {
|
|
1516
1517
|
access: options.access,
|
|
1517
|
-
handler: options.handler
|
|
1518
|
+
handler: options.handler,
|
|
1519
|
+
...options.share !== void 0 ? { share: options.share } : {}
|
|
1518
1520
|
});
|
|
1519
1521
|
publish();
|
|
1520
1522
|
args.logger.info("data-plane endpoint served", { meta: {
|
|
@@ -1507,7 +1507,8 @@ function createAddonDataPlaneFacility(args) {
|
|
|
1507
1507
|
prefix,
|
|
1508
1508
|
access: entry.access,
|
|
1509
1509
|
baseUrl,
|
|
1510
|
-
secret
|
|
1510
|
+
secret,
|
|
1511
|
+
...entry.share !== void 0 ? { share: entry.share } : {}
|
|
1511
1512
|
}));
|
|
1512
1513
|
args.sink?.set(args.addonId, endpoints);
|
|
1513
1514
|
};
|
|
@@ -1517,7 +1518,8 @@ function createAddonDataPlaneFacility(args) {
|
|
|
1517
1518
|
await ensureServer();
|
|
1518
1519
|
served.set(prefix, {
|
|
1519
1520
|
access: options.access,
|
|
1520
|
-
handler: options.handler
|
|
1521
|
+
handler: options.handler,
|
|
1522
|
+
...options.share !== void 0 ? { share: options.share } : {}
|
|
1521
1523
|
});
|
|
1522
1524
|
publish();
|
|
1523
1525
|
args.logger.info("data-plane endpoint served", { meta: {
|