@camstack/system 1.2.354 → 1.2.356
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/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/calendars/calendar-prefs-store.d.ts +7 -0
- package/dist/builtins/calendars/calendars.addon.js +3 -2
- package/dist/builtins/calendars/calendars.addon.mjs +3 -2
- package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +12 -2
- package/dist/builtins/camera-grid/index.js +15 -3
- package/dist/builtins/camera-grid/index.mjs +15 -3
- package/dist/builtins/composer/composer.addon.js +53 -12
- package/dist/builtins/composer/composer.addon.mjs +53 -12
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/block-settings-store.d.ts +5 -0
- package/dist/builtins/core-blocks/core-blocks.addon.js +7 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +7 -2
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/analyze-stats.d.ts +0 -2
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +9 -11
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{child-cap-dispatch-C1x1kNJK.mjs → child-cap-dispatch-BcRHQBKW.mjs} +28 -81
- package/dist/{child-cap-dispatch-CRqYKHAb.js → child-cap-dispatch-wbIQJctP.js} +27 -86
- package/dist/{composition-sources-DzkEFd8q.mjs → composition-sources-BBfqepyT.mjs} +1 -1
- package/dist/{composition-sources-0nuWOdNd.js → composition-sources-CeO0K2cl.js} +1 -1
- package/dist/{dist-DVyXxn41.mjs → dist-B7WRgEZY.mjs} +82 -49
- package/dist/{dist-DePB7uwU.js → dist-CFVOy8VT.js} +87 -48
- package/dist/index.d.ts +1 -1
- package/dist/index.js +18 -46
- package/dist/index.mjs +19 -46
- package/dist/kernel/event-plane-report.d.ts +7 -36
- package/dist/kernel/fs-utils.d.ts +1 -5
- package/dist/kernel/heap-spaces.d.ts +2 -23
- package/dist/kernel/index.d.ts +0 -2
- package/dist/kernel/moleculer/event-bus-core.d.ts +6 -28
- package/dist/kernel/moleculer/process-service.d.ts +2 -5
- package/dist/kernel/moleculer/runner-native-allocator.d.ts +1 -6
- package/dist/kernel/transport/index.d.ts +1 -1
- package/dist/kernel/transport/local-child-registry.d.ts +8 -41
- package/dist/kernel/transport/uds-event-bridge.d.ts +2 -2
- package/dist/{retired-settings-keys-BTKZdPn6.js → retired-settings-keys-CRlTzxaS.js} +1 -1
- package/dist/{retired-settings-keys-DFur4hJF.mjs → retired-settings-keys-DKRjfz0U.mjs} +1 -1
- package/package.json +1 -1
- package/dist/kernel/heap-allocation-sample.d.ts +0 -107
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-CFVOy8VT.js");
|
|
3
3
|
const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
|
|
4
4
|
require("./hub-cap-forward-DmHNjbB0.js");
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
@@ -56,8 +56,6 @@ function createEventPlaneReader(sources) {
|
|
|
56
56
|
}
|
|
57
57
|
const crossNode = sources.crossNodeStats();
|
|
58
58
|
return {
|
|
59
|
-
udsMode: registry.eventFanoutMode,
|
|
60
|
-
crossNodeMode: sources.crossNodeMode(),
|
|
61
59
|
children,
|
|
62
60
|
childrenConnected: listed.length,
|
|
63
61
|
childrenUndeclared: registry.undeclaredChildCount(),
|
|
@@ -132,8 +130,6 @@ function diffEventPlane(baseline, current, topN = 5) {
|
|
|
132
130
|
}
|
|
133
131
|
const byBroadcasts = categoryDeltas.toSorted((a, b) => b.broadcasts - a.broadcasts || a.category.localeCompare(b.category));
|
|
134
132
|
return {
|
|
135
|
-
udsMode: current.udsMode,
|
|
136
|
-
crossNodeMode: current.crossNodeMode,
|
|
137
133
|
childrenConnected: current.childrenConnected,
|
|
138
134
|
childrenUndeclared: current.childrenUndeclared,
|
|
139
135
|
fanoutSent,
|
|
@@ -185,7 +181,7 @@ function formatEventPlane(window) {
|
|
|
185
181
|
const top = window.top.map((d) => `${d.childId}:${d.sent}/${d.suppressed}`).join(",");
|
|
186
182
|
const cats = window.topCategories.map((c) => `${c.category}:${c.broadcasts}/${c.wanted}`).join(",");
|
|
187
183
|
const orphans = window.topOrphans.map((c) => `${c.category}:${c.broadcasts}`).join(",");
|
|
188
|
-
return `
|
|
184
|
+
return ` children=${window.childrenConnected} childrenUndeclared=${window.childrenUndeclared} fanoutSent=${window.fanoutSent} fanoutSuppressed=${window.fanoutSuppressed} crossNodeDelivered=${window.crossNodeDelivered} crossNodeSuppressed=${window.crossNodeSuppressed} fanoutEvents=${window.categoryBroadcasts} fanoutOrphans=${window.orphanBroadcasts} fanoutCatsDropped=${window.categoryOverflow}` + (top.length === 0 ? "" : ` fanoutTop=${top}`) + (cats.length === 0 ? "" : ` fanoutCats=${cats}`) + (orphans.length === 0 ? "" : ` fanoutOrphanTop=${orphans}`);
|
|
189
185
|
}
|
|
190
186
|
//#endregion
|
|
191
187
|
//#region src/kernel/transport/cap-action-census.ts
|
|
@@ -1084,21 +1080,16 @@ function formatHeapSpaces(spaces, minMb = 32) {
|
|
|
1084
1080
|
}
|
|
1085
1081
|
var defaultDeps = {
|
|
1086
1082
|
readMemory: () => process.memoryUsage(),
|
|
1087
|
-
readSpaces: readHeapSpaces
|
|
1088
|
-
env: process.env
|
|
1083
|
+
readSpaces: readHeapSpaces
|
|
1089
1084
|
};
|
|
1090
1085
|
/**
|
|
1091
|
-
* The SIGUSR2 report — memory + the FULL per-space breakdown
|
|
1092
|
-
* snapshot
|
|
1086
|
+
* The SIGUSR2 report — memory + the FULL per-space breakdown; never a heap
|
|
1087
|
+
* snapshot (D718) — see the note in the body.
|
|
1093
1088
|
*
|
|
1094
1089
|
* The breakdown here keeps every non-empty space at 0.1 MB, unlike the
|
|
1095
1090
|
* heartbeat's filtered whole-MB pair: this is a hand-fired diagnostic read once
|
|
1096
1091
|
* by a human who asked for it, so completeness costs nothing. The heartbeat runs
|
|
1097
1092
|
* unattended on every runner forever, so it pays for every field it prints.
|
|
1098
|
-
*
|
|
1099
|
-
* A refused snapshot SAYS SO. A branch that drops work silently reads as "it was
|
|
1100
|
-
* never requested", and this one is fired by an operator who is standing there
|
|
1101
|
-
* waiting for a file.
|
|
1102
1093
|
*/
|
|
1103
1094
|
function emitHeapDiagnosticReport(request, deps = defaultDeps) {
|
|
1104
1095
|
try {
|
|
@@ -7942,25 +7933,16 @@ function isHighFrequencyCategory(category) {
|
|
|
7942
7933
|
for (const pattern of RING_BUFFER_DENY_PATTERNS) if (matchesPattern(pattern, category)) return true;
|
|
7943
7934
|
return false;
|
|
7944
7935
|
}
|
|
7945
|
-
function readMoleculerFanoutMode() {
|
|
7946
|
-
const raw = process.env.CAMSTACK_MOLECULER_EVENT_FANOUT;
|
|
7947
|
-
if (raw === "shadow" || raw === "broadcast") return raw;
|
|
7948
|
-
return "filter";
|
|
7949
|
-
}
|
|
7950
7936
|
/**
|
|
7951
7937
|
* Does this node want to accept an inbound cross-node event in `category`?
|
|
7952
7938
|
* The receiving-side mirror of `LocalChildRegistry.childWantsEvent`:
|
|
7953
|
-
* - `broadcast` mode → always (gate disabled).
|
|
7954
7939
|
* - a retaining bus (hub main) → always (it serves `getRecent` + admin-ui;
|
|
7955
7940
|
* its interest is genuinely everything).
|
|
7956
7941
|
* - undeclared interest (`null`) → always (fail-open).
|
|
7957
7942
|
* - else the declared union must match via `matchesPattern` — the SAME
|
|
7958
7943
|
* function the local subscriber map-key gate uses, giving delivery parity.
|
|
7959
|
-
* `shadow` is handled by the caller (it counts the would-suppress but still
|
|
7960
|
-
* delivers), exactly like the UDS fan-out.
|
|
7961
7944
|
*/
|
|
7962
|
-
function crossNodeAcceptsCategory(
|
|
7963
|
-
if (mode === "broadcast") return true;
|
|
7945
|
+
function crossNodeAcceptsCategory(snapshot, category) {
|
|
7964
7946
|
if (snapshot.retainRecent) return true;
|
|
7965
7947
|
if (snapshot.interest === null) return true;
|
|
7966
7948
|
return snapshot.interest.some((p) => matchesPattern(p, category));
|
|
@@ -8533,11 +8515,6 @@ var LIFECYCLE_SOURCE = {
|
|
|
8533
8515
|
type: "core",
|
|
8534
8516
|
id: "local-child-registry"
|
|
8535
8517
|
};
|
|
8536
|
-
function readFanoutMode() {
|
|
8537
|
-
const raw = process.env.CAMSTACK_UDS_EVENT_FANOUT;
|
|
8538
|
-
if (raw === "shadow" || raw === "broadcast") return raw;
|
|
8539
|
-
return "filter";
|
|
8540
|
-
}
|
|
8541
8518
|
/**
|
|
8542
8519
|
* Sentinel prefix used in the no-route error thrown when `cap-call-out` has no
|
|
8543
8520
|
* local sibling and no `onUnownedCall` fallback. `ipcParentLink` detects this
|
|
@@ -8600,8 +8577,6 @@ var LocalChildRegistry = class {
|
|
|
8600
8577
|
capUsageObserver;
|
|
8601
8578
|
/** Tracks capNames already logged as UDS-routed; one INFO line per capName per process. */
|
|
8602
8579
|
egressRoutedCaps = /* @__PURE__ */ new Set();
|
|
8603
|
-
/** Active event fan-out mode, read once from `CAMSTACK_UDS_EVENT_FANOUT`. */
|
|
8604
|
-
fanoutMode = readFanoutMode();
|
|
8605
8580
|
/** Per-child event fan-out counters (sent / suppressed). */
|
|
8606
8581
|
childEventStats = /* @__PURE__ */ new Map();
|
|
8607
8582
|
/** D467: per-category production census (cumulative). See {@link CategoryFanoutSample}. */
|
|
@@ -8650,14 +8625,13 @@ var LocalChildRegistry = class {
|
|
|
8650
8625
|
}
|
|
8651
8626
|
}
|
|
8652
8627
|
async start() {
|
|
8653
|
-
this.logger?.info("UDS event fan-out mode", { mode: this.fanoutMode });
|
|
8654
8628
|
this.server.onConnection((channel) => this.onConnection(channel));
|
|
8655
8629
|
await this.server.listen();
|
|
8656
8630
|
}
|
|
8657
8631
|
/**
|
|
8658
8632
|
* Per-child event fan-out counters (`{ sent, suppressed }`) or `null` if the
|
|
8659
8633
|
* child has no recorded events yet. Exposed for the starvation-verification
|
|
8660
|
-
* surface (
|
|
8634
|
+
* surface (operator debug).
|
|
8661
8635
|
*/
|
|
8662
8636
|
getChildEventStats(childId) {
|
|
8663
8637
|
const s = this.childEventStats.get(childId);
|
|
@@ -8735,18 +8709,6 @@ var LocalChildRegistry = class {
|
|
|
8735
8709
|
return this.actionCensus.read();
|
|
8736
8710
|
}
|
|
8737
8711
|
/**
|
|
8738
|
-
* The regime the counters above were produced under, read once from
|
|
8739
|
-
* `CAMSTACK_UDS_EVENT_FANOUT` at construction.
|
|
8740
|
-
*
|
|
8741
|
-
* A suppressed count means "nothing WAS dropped" under `filter` and "nothing
|
|
8742
|
-
* WOULD have been dropped" under `shadow`. Those are different claims, and
|
|
8743
|
-
* until this getter existed the mode was invisible at runtime — the counters
|
|
8744
|
-
* were readable and the regime that produced them was not.
|
|
8745
|
-
*/
|
|
8746
|
-
get eventFanoutMode() {
|
|
8747
|
-
return this.fanoutMode;
|
|
8748
|
-
}
|
|
8749
|
-
/**
|
|
8750
8712
|
* Connected children that never declared a subscription pattern set.
|
|
8751
8713
|
*
|
|
8752
8714
|
* Each one is a fail-open on BOTH planes: `childWantsEvent` returns true for
|
|
@@ -8763,30 +8725,18 @@ var LocalChildRegistry = class {
|
|
|
8763
8725
|
return count;
|
|
8764
8726
|
}
|
|
8765
8727
|
/**
|
|
8766
|
-
* Does `entry` want to receive an event in `category`?
|
|
8767
|
-
*
|
|
8768
|
-
*
|
|
8769
|
-
*
|
|
8770
|
-
*
|
|
8771
|
-
*
|
|
8728
|
+
* Does `entry` want to receive an event in `category`? Undeclared patterns
|
|
8729
|
+
* (`null`) → always (fail-open, counted by {@link undeclaredChildCount});
|
|
8730
|
+
* else the child's declared set must match via `matchesPattern` — the SAME
|
|
8731
|
+
* function the child's own `deliverShared` map-key gate uses, giving provable
|
|
8732
|
+
* delivery parity. The parent always filters: the `CAMSTACK_UDS_EVENT_FANOUT`
|
|
8733
|
+
* shadow/broadcast modes were removed on 2026-10-06.
|
|
8772
8734
|
*
|
|
8773
8735
|
* NOTE: this gate must NOT consult `RING_BUFFER_DENY_PATTERNS` /
|
|
8774
8736
|
* `isHighFrequencyCategory` — those are ring-buffer STORAGE policy; a child
|
|
8775
8737
|
* that explicitly subscribes to a ring-denied category must still RECEIVE it.
|
|
8776
8738
|
*/
|
|
8777
8739
|
childWantsEvent(entry, category) {
|
|
8778
|
-
if (this.fanoutMode === "broadcast") return true;
|
|
8779
|
-
return this.childSubscribesTo(entry, category);
|
|
8780
|
-
}
|
|
8781
|
-
/**
|
|
8782
|
-
* The SUBSCRIPTION answer alone, with no fan-out-mode override.
|
|
8783
|
-
*
|
|
8784
|
-
* {@link childWantsEvent} answers "will this child be sent the event", which
|
|
8785
|
-
* under `broadcast` is `true` for everything and therefore cannot say whether
|
|
8786
|
-
* anyone actually asked. The D467 census needs the second question, so the
|
|
8787
|
-
* two are separate functions and `broadcast` mode overrides only the first.
|
|
8788
|
-
*/
|
|
8789
|
-
childSubscribesTo(entry, category) {
|
|
8790
8740
|
if (entry.eventPatterns === null) return true;
|
|
8791
8741
|
return entry.eventPatterns.some((p) => matchesPattern(p, category));
|
|
8792
8742
|
}
|
|
@@ -9091,14 +9041,15 @@ var LocalChildRegistry = class {
|
|
|
9091
9041
|
let subscribed = 0;
|
|
9092
9042
|
for (const entry of this.children.values()) {
|
|
9093
9043
|
if (entry.childId === exceptChildId) continue;
|
|
9094
|
-
if (this.childSubscribesTo(entry, event.category)) subscribed += 1;
|
|
9095
9044
|
const wants = this.childWantsEvent(entry, event.category);
|
|
9096
9045
|
const stats = this.statsFor(entry.childId);
|
|
9097
|
-
if (!wants)
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
entry.channel.emit(msg);
|
|
9046
|
+
if (!wants) {
|
|
9047
|
+
stats.suppressed++;
|
|
9048
|
+
continue;
|
|
9101
9049
|
}
|
|
9050
|
+
subscribed += 1;
|
|
9051
|
+
stats.sent++;
|
|
9052
|
+
entry.channel.emit(msg);
|
|
9102
9053
|
}
|
|
9103
9054
|
this.recordCategoryBroadcast(event.category, subscribed);
|
|
9104
9055
|
}
|
|
@@ -11034,19 +10985,16 @@ function nodeInterestSnapshot(broker) {
|
|
|
11034
10985
|
}
|
|
11035
10986
|
/**
|
|
11036
10987
|
* Decide + account for an inbound cross-node event on `broker`. Returns whether
|
|
11037
|
-
* the event should be delivered to the local bus
|
|
11038
|
-
*
|
|
11039
|
-
* but records the would-suppress; in `filter` it drops unwanted categories.
|
|
11040
|
-
* The interest is the UNION of forked-child AND in-process subscribers — the
|
|
10988
|
+
* the event should be delivered to the local bus: unwanted categories are
|
|
10989
|
+
* dropped and counted as `suppressed`. The interest is the UNION of forked-child AND in-process subscribers — the
|
|
11041
10990
|
* gate never starves a live local subscriber of either kind.
|
|
11042
10991
|
*/
|
|
11043
|
-
function acceptInboundCrossNode(broker,
|
|
11044
|
-
const wants = crossNodeAcceptsCategory(
|
|
10992
|
+
function acceptInboundCrossNode(broker, category) {
|
|
10993
|
+
const wants = crossNodeAcceptsCategory(nodeInterestSnapshot(broker), category);
|
|
11045
10994
|
const stats = crossNodeStatsFor(broker);
|
|
11046
|
-
if (
|
|
11047
|
-
|
|
11048
|
-
|
|
11049
|
-
return deliver;
|
|
10995
|
+
if (wants) stats.delivered++;
|
|
10996
|
+
else stats.suppressed++;
|
|
10997
|
+
return wants;
|
|
11050
10998
|
}
|
|
11051
10999
|
/**
|
|
11052
11000
|
* Register the `$event-bus` service on a broker. MUST be called BEFORE
|
|
@@ -11072,7 +11020,6 @@ function registerEventBusService(broker) {
|
|
|
11072
11020
|
if (eventBusServiceInstalled.has(broker)) return;
|
|
11073
11021
|
eventBusServiceInstalled.add(broker);
|
|
11074
11022
|
const bkr = broker;
|
|
11075
|
-
const fanoutMode = readMoleculerFanoutMode();
|
|
11076
11023
|
try {
|
|
11077
11024
|
bkr.createService({
|
|
11078
11025
|
name: "$event-bus",
|
|
@@ -11080,7 +11027,7 @@ function registerEventBusService(broker) {
|
|
|
11080
11027
|
const event = ctx.params;
|
|
11081
11028
|
if (!event) return;
|
|
11082
11029
|
if (event.sourceNodeId === bkr.nodeID) return;
|
|
11083
|
-
if (!acceptInboundCrossNode(broker,
|
|
11030
|
+
if (!acceptInboundCrossNode(broker, event.category)) return;
|
|
11084
11031
|
deliverShared(getSharedBusState(broker), event);
|
|
11085
11032
|
} }
|
|
11086
11033
|
});
|
|
@@ -13646,12 +13593,6 @@ Object.defineProperty(exports, "readHeapSpaces", {
|
|
|
13646
13593
|
return readHeapSpaces;
|
|
13647
13594
|
}
|
|
13648
13595
|
});
|
|
13649
|
-
Object.defineProperty(exports, "readMoleculerFanoutMode", {
|
|
13650
|
-
enumerable: true,
|
|
13651
|
-
get: function() {
|
|
13652
|
-
return readMoleculerFanoutMode;
|
|
13653
|
-
}
|
|
13654
|
-
});
|
|
13655
13596
|
Object.defineProperty(exports, "readSocketQueues", {
|
|
13656
13597
|
enumerable: true,
|
|
13657
13598
|
get: function() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Wn as compositionSourceKey, Zn as errMsg } from "./dist-B7WRgEZY.mjs";
|
|
2
2
|
//#region src/builtins/core-blocks/composition-sources.ts
|
|
3
3
|
/**
|
|
4
4
|
* Describe what a composition reads and writes for SAVE-time validation
|
|
@@ -7867,6 +7867,57 @@ var ClipSearchStrictnessSchema = z.enum([
|
|
|
7867
7867
|
"balanced",
|
|
7868
7868
|
"strict"
|
|
7869
7869
|
]);
|
|
7870
|
+
new Set([
|
|
7871
|
+
{
|
|
7872
|
+
id: "person",
|
|
7873
|
+
name: "Person"
|
|
7874
|
+
},
|
|
7875
|
+
{
|
|
7876
|
+
id: "vehicle",
|
|
7877
|
+
name: "Vehicle"
|
|
7878
|
+
},
|
|
7879
|
+
{
|
|
7880
|
+
id: "animal",
|
|
7881
|
+
name: "Animal"
|
|
7882
|
+
},
|
|
7883
|
+
{
|
|
7884
|
+
id: "package",
|
|
7885
|
+
name: "Package"
|
|
7886
|
+
}
|
|
7887
|
+
].map((l) => l.id));
|
|
7888
|
+
var COCO_TO_MACRO = {
|
|
7889
|
+
mapping: {
|
|
7890
|
+
person: "person",
|
|
7891
|
+
bicycle: "vehicle",
|
|
7892
|
+
car: "vehicle",
|
|
7893
|
+
motorcycle: "vehicle",
|
|
7894
|
+
airplane: "vehicle",
|
|
7895
|
+
bus: "vehicle",
|
|
7896
|
+
train: "vehicle",
|
|
7897
|
+
truck: "vehicle",
|
|
7898
|
+
boat: "vehicle",
|
|
7899
|
+
bird: "animal",
|
|
7900
|
+
cat: "animal",
|
|
7901
|
+
dog: "animal",
|
|
7902
|
+
horse: "animal",
|
|
7903
|
+
sheep: "animal",
|
|
7904
|
+
cow: "animal",
|
|
7905
|
+
elephant: "animal",
|
|
7906
|
+
bear: "animal",
|
|
7907
|
+
zebra: "animal",
|
|
7908
|
+
giraffe: "animal",
|
|
7909
|
+
suitcase: "package",
|
|
7910
|
+
backpack: "package",
|
|
7911
|
+
handbag: "package"
|
|
7912
|
+
},
|
|
7913
|
+
preserveOriginal: false
|
|
7914
|
+
};
|
|
7915
|
+
/** Steps a root detector may declare it fills. */
|
|
7916
|
+
var FILLABLE_STEP_IDS = [
|
|
7917
|
+
"animal-classifier",
|
|
7918
|
+
"vehicle-classifier",
|
|
7919
|
+
"package-detection"
|
|
7920
|
+
];
|
|
7870
7921
|
var MODEL_FORMATS = [
|
|
7871
7922
|
"onnx",
|
|
7872
7923
|
"coreml",
|
|
@@ -8000,6 +8051,12 @@ var ModelLicenseRecordSchema = z.object({
|
|
|
8000
8051
|
* `camstack/docs` → `/docs/detection/models`.
|
|
8001
8052
|
*/
|
|
8002
8053
|
var ModelLicenseSchema = z.preprocess((value) => typeof value === "string" ? { weights: value } : value, ModelLicenseRecordSchema);
|
|
8054
|
+
/** One `fillsClassifierEffects` entry — see `ModelCatalogEntry.fillsClassifierEffects`. */
|
|
8055
|
+
var FillsClassifierEffectSchema = z.object({
|
|
8056
|
+
stepId: z.enum(FILLABLE_STEP_IDS),
|
|
8057
|
+
labelToEffect: z.record(z.string(), z.string()),
|
|
8058
|
+
uncovered: z.array(z.string()).readonly()
|
|
8059
|
+
});
|
|
8003
8060
|
var ModelCatalogEntrySchema = z.object({
|
|
8004
8061
|
id: z.string(),
|
|
8005
8062
|
name: z.string(),
|
|
@@ -8126,6 +8183,16 @@ var ModelCatalogEntrySchema = z.object({
|
|
|
8126
8183
|
*/
|
|
8127
8184
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
8128
8185
|
/**
|
|
8186
|
+
* The pipeline steps this ROOT detector already does the work of (D715):
|
|
8187
|
+
* its labels name the effect the step exists to produce (`deer` for
|
|
8188
|
+
* `animal-classifier`, `package` for `package-detection`). Derived from the
|
|
8189
|
+
* labelmap by `deriveClassifierFills`, never hand-written; a COCO model
|
|
8190
|
+
* declares none. Whether a declaration is honoured is the step's own
|
|
8191
|
+
* `labelLink` policy (`resolveLabelLink`). `labelToEffect` values are in
|
|
8192
|
+
* `FILLABLE_STEP_VOCABULARIES` (guard `check-label-link-vocabulary`).
|
|
8193
|
+
*/
|
|
8194
|
+
fillsClassifierEffects: z.array(FillsClassifierEffectSchema).readonly().optional(),
|
|
8195
|
+
/**
|
|
8129
8196
|
* The model's CLIP feature-space contract (text encoder, dimension, vector
|
|
8130
8197
|
* index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
|
|
8131
8198
|
* CLIP image encoder; its absence is what "not a CLIP model" means to the
|
|
@@ -19213,51 +19280,6 @@ var notificationOutputCapability = {
|
|
|
19213
19280
|
})
|
|
19214
19281
|
}
|
|
19215
19282
|
};
|
|
19216
|
-
new Set([
|
|
19217
|
-
{
|
|
19218
|
-
id: "person",
|
|
19219
|
-
name: "Person"
|
|
19220
|
-
},
|
|
19221
|
-
{
|
|
19222
|
-
id: "vehicle",
|
|
19223
|
-
name: "Vehicle"
|
|
19224
|
-
},
|
|
19225
|
-
{
|
|
19226
|
-
id: "animal",
|
|
19227
|
-
name: "Animal"
|
|
19228
|
-
},
|
|
19229
|
-
{
|
|
19230
|
-
id: "package",
|
|
19231
|
-
name: "Package"
|
|
19232
|
-
}
|
|
19233
|
-
].map((l) => l.id));
|
|
19234
|
-
var COCO_TO_MACRO = {
|
|
19235
|
-
mapping: {
|
|
19236
|
-
person: "person",
|
|
19237
|
-
bicycle: "vehicle",
|
|
19238
|
-
car: "vehicle",
|
|
19239
|
-
motorcycle: "vehicle",
|
|
19240
|
-
airplane: "vehicle",
|
|
19241
|
-
bus: "vehicle",
|
|
19242
|
-
train: "vehicle",
|
|
19243
|
-
truck: "vehicle",
|
|
19244
|
-
boat: "vehicle",
|
|
19245
|
-
bird: "animal",
|
|
19246
|
-
cat: "animal",
|
|
19247
|
-
dog: "animal",
|
|
19248
|
-
horse: "animal",
|
|
19249
|
-
sheep: "animal",
|
|
19250
|
-
cow: "animal",
|
|
19251
|
-
elephant: "animal",
|
|
19252
|
-
bear: "animal",
|
|
19253
|
-
zebra: "animal",
|
|
19254
|
-
giraffe: "animal",
|
|
19255
|
-
suitcase: "package",
|
|
19256
|
-
backpack: "package",
|
|
19257
|
-
handbag: "package"
|
|
19258
|
-
},
|
|
19259
|
-
preserveOriginal: false
|
|
19260
|
-
};
|
|
19261
19283
|
var AUDIO_MACRO_LABELS = [
|
|
19262
19284
|
{
|
|
19263
19285
|
id: "speech",
|
|
@@ -20055,6 +20077,8 @@ var NcSystemEventKindSchema = z.enum([
|
|
|
20055
20077
|
"stream-offline",
|
|
20056
20078
|
"node-online",
|
|
20057
20079
|
"node-offline",
|
|
20080
|
+
"node-restarting",
|
|
20081
|
+
"node-updating",
|
|
20058
20082
|
"node-inference-unavailable",
|
|
20059
20083
|
"detection-blind",
|
|
20060
20084
|
"addon-crash-loop",
|
|
@@ -25619,7 +25643,8 @@ var PipelineModelOptionSchema = z.object({
|
|
|
25619
25643
|
group: ModelVariantGroupSchema.optional(),
|
|
25620
25644
|
legacy: z.boolean().optional(),
|
|
25621
25645
|
provider: ModelProviderIdSchema.optional(),
|
|
25622
|
-
defaultConfidence: z.number().optional()
|
|
25646
|
+
defaultConfidence: z.number().optional(),
|
|
25647
|
+
fillsClassifierEffects: z.array(FillsClassifierEffectSchema).readonly().optional()
|
|
25623
25648
|
});
|
|
25624
25649
|
var ConfigFieldBridge = z.custom();
|
|
25625
25650
|
var PipelineAddonSchemaSchema = z.object({
|
|
@@ -37123,7 +37148,8 @@ var MotionStatusSchema = z.object({
|
|
|
37123
37148
|
* writes this slice (not even a boot seed), and neither does the runner's
|
|
37124
37149
|
* phase machine: its phase is "a session is attached" for every on-motion
|
|
37125
37150
|
* session, not motion, and it now has its own `DetectionPhaseTransition`.
|
|
37126
|
-
* A provider's `isDetected`
|
|
37151
|
+
* A provider's `isDetected` and `getStatus` answer from the hub's slice
|
|
37152
|
+
* (`hubMotionNativeProvider`).
|
|
37127
37153
|
* - **Sensors** (Home Assistant binary sensors, Homematic, Matter, Alexa
|
|
37128
37154
|
* imports) — the provider pushes both edges itself, from the upstream
|
|
37129
37155
|
* system's own state change. That is the sensor's own fact.
|
|
@@ -45320,7 +45346,8 @@ function expressionOutcome(source, read, now, stateful) {
|
|
|
45320
45346
|
value: null,
|
|
45321
45347
|
reason: `the expression failed: ${result.error}`,
|
|
45322
45348
|
fatal: false,
|
|
45323
|
-
confirmed: true
|
|
45349
|
+
confirmed: true,
|
|
45350
|
+
expressionFailed: true
|
|
45324
45351
|
};
|
|
45325
45352
|
return {
|
|
45326
45353
|
state: staleReasons.length > 0 ? "stale" : "fresh",
|
|
@@ -58641,6 +58668,8 @@ new Map(Object.entries({
|
|
|
58641
58668
|
"detection-blind": "device-events",
|
|
58642
58669
|
"node-online": "system",
|
|
58643
58670
|
"node-offline": "system",
|
|
58671
|
+
"node-restarting": "system",
|
|
58672
|
+
"node-updating": "system",
|
|
58644
58673
|
"node-inference-unavailable": "system",
|
|
58645
58674
|
"addon-crash-loop": "system",
|
|
58646
58675
|
"addon-update-available": "system",
|
|
@@ -58718,6 +58747,7 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
58718
58747
|
kinds: [
|
|
58719
58748
|
"node-offline",
|
|
58720
58749
|
"node-online",
|
|
58750
|
+
"node-restarting",
|
|
58721
58751
|
"node-inference-unavailable"
|
|
58722
58752
|
]
|
|
58723
58753
|
},
|
|
@@ -58739,6 +58769,7 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
58739
58769
|
label: "Server & container updates",
|
|
58740
58770
|
kinds: [
|
|
58741
58771
|
"server-update-available",
|
|
58772
|
+
"node-updating",
|
|
58742
58773
|
"server-updated",
|
|
58743
58774
|
"wrapper-update-available"
|
|
58744
58775
|
]
|
|
@@ -58886,6 +58917,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
58886
58917
|
kinds: [
|
|
58887
58918
|
"node-offline",
|
|
58888
58919
|
"node-online",
|
|
58920
|
+
"node-restarting",
|
|
58889
58921
|
"node-inference-unavailable"
|
|
58890
58922
|
]
|
|
58891
58923
|
},
|
|
@@ -58907,6 +58939,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
58907
58939
|
example: "server 1.2.377 → 1.2.378",
|
|
58908
58940
|
kinds: [
|
|
58909
58941
|
"server-update-available",
|
|
58942
|
+
"node-updating",
|
|
58910
58943
|
"server-updated",
|
|
58911
58944
|
"wrapper-update-available"
|
|
58912
58945
|
]
|
|
@@ -59709,4 +59742,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
59709
59742
|
return out;
|
|
59710
59743
|
}
|
|
59711
59744
|
//#endregion
|
|
59712
|
-
export { calendarsCapability as $,
|
|
59745
|
+
export { calendarsCapability as $, DATAPLANE_SECRET_HEADER as $n, motionCapability as $t, MOTION_CLOSE_AFTER_MS as A, userManagementCapability as An, filesystemBrowseCapability as At, StorageLocationTypeSchema as B, composedDeviceStableId as Bn, legacyAutoLinkIds as Bt, FieldClaimModeSchema as C, snapshotCapability as Cn, EventCategory as Cr, enumerateItemArrayFields as Ct, LocationIconIdSchema as D, storageProviderCapability as Dn, expandContainer as Dt, LegacyStorageLocationDefaultSchema as E, storageOccupancyCapability as En, evictionPolicyOfLocation as Et, STORAGE_ACCESS_FALLBACK as F, withLocationMode as Fn, isCollectionArrayMethod as Ft, addonWidgetsCapability as G, createStatefulExpressionMemory as Gn, logDestinationCapability as Gt, UserRecordSchema as H, compositionItemFieldPath as Hn, lifecycleJobSchema as Ht, STREAM_PROFILE_META as I, COMPOSER_ADDON_ID as In, isLocationEnabled as It, backupCapability as J, DeviceFeature as Jn, mayReadLocation as Jt, alertsCapability as K, disarmRoseMemory as Kn, logLevelAtMost as Kt, ScopedTokenSchema as L, buildFfmpegArgs as Ln, isObjectInput as Lt, REDACTED_SECRET as M, vectorDimFromBase64 as Mn, formatMinutes as Mt, RUNTIME_DEFAULTS as N, vectorIndexDimConflictError as Nn, gbToBytes as Nt, METHOD_ACCESS_MAP as O, streamCatalogCapability as On, expressionContainsBuiltinCall as Ot, RecordingStatusSchema as P, vectorStoreCapability as Pn, isArrayOutputSchema as Pt, buildStreamParamsConfigSchema as Q, BaseAddon as Qn, modeMayWrite as Qt, StorageCleanupJobSchema as R, cloneStatefulExpressionMemory as Rn, isVoidInput as Rt, FIRST_LEVEL_MACRO_CLASSES as S, siteZoneKey as Sn, toNodeId as Sr, enumerateInferenceDevices as St, LOG_LEVEL_RANK as T, storageMigrationCapability as Tn, evaluateCompositionField as Tt, addonPagesCapability as U, compositionSliceKey as Un, localNetworkCapability as Ut, StorageMigrationJobSchema as V, compositionFeatureEnabled as Vn, legacyModeOf as Vt, addonSettingsCapability as W, compositionSourceKey as Wn, locationIconKey as Wt, batteryCapability as X, DeviceType as Xn, memoizePinnedFfmpeg as Xt, bareAddonId as Y, DeviceRole as Yn, mayWriteToLocation as Yt, buildCapabilityLookup as Z, errMsg as Zn, metricsProviderCapability as Zt, DATABASE_SNAPSHOT_TIMEOUT_MS as _, runtimeStatePolicyFor as _n, parseJsonUnknown as _r, describeComposableCaps as _t, BatteryStatusSchema as a, pickAppLinkHub as an, asJsonObject as ar, coreBlockAddonId as at, DeclaredDevices as b, scoreRuntimes as bn, scopeKey as br, deviceStateCapability as bt, CAP_NAMES_WITH_STATUS as c, procedureAuthKey as cn, createEvent as cr, coreBlockSourceKind as ct, CORE_BLOCKS_ADDON_ID as d, replacedFieldKeys as dn, expandCapMethods as dr, dataStoreProviderCapability as dt, normalizeCoreBlockWrite as en, DEVICE_SETTINGS_CONTRIBUTION_METHODS as er, cameraGridLayoutCapability as et, CORE_BLOCK_ADDON_PREFIX as f, resolveBucketMs as fn, hydrateSchema as fr, databaseSnapshotCapability as ft, DATABASE_SNAPSHOT_SUFFIX as g, resolveMethodAuth as gn, parseJsonObject as gr, deriveBatteryPresence as gt, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as h, resolveLocationMode as hn, nodePin as hr, defineExtensionSlotProvider as ht, BaseDevice as i, parseStreamParamsFormPatch as in, WELL_KNOWN_TAB_MAP as ir, compositionSourceRefs as it, RECORDING_SOURCE_CAMSTACK_ADDON as j, validateComposition as jn, foldSnapshotByFunction as jt, MINUTES_PER_DAY as k, streamQualityLabel as kn, extractNestedAddonId as kt, COMPOSED_ITEM_FIXED_FIELDS as l, ptzAutotrackCapability as ln, emitDownForOwnedCaps as lr, coreBlocksCapability as lt, CoreBlockSchema as m, resolveCoreBlockFiles as mn, isEvent as mr, decodeVectorBase64 as mt, AlertSchema as n, objectInputDeclaresAddonId as nn, ReadinessRegistry as nr, composerCapability as nt, CAMERA_SWITCH_ORDER as o, planComposition as on, asNumber as or, coreBlockComposition as ot, CalendarPreferencesSchema as p, resolveCoreBlockEntry as pn, isDeviceConfigCap as pr, declarationOwnerNodeId as pt, authProviderCapability as q, toExpressionValue as qn, looseSchema as qt, ApiKeyRecordSchema as r, objectInputDeclaresRequiredDeviceId as rn, ReadinessTimeoutError as rr, compositionFieldKey as rt, CAMSTACK_APP_LINK_ORIGIN as s, platformProbeCapability as sn, asString$1 as sr, coreBlockIdFromAddonId as st, ALL_CAPABILITY_DEFINITIONS as t, normalizeUnit as tn, DEVICE_STATUS_METHOD as tr, collectSecretConfigKeys as tt, COMPOSER_RUNNER_ID as u, reducePoints as un, emitReadiness as ur, createDeviceExtensionProvider as ut, DAY_NAMES as v, scopesAllowAddon as vn, readinessKey as vr, deviceExtensionCapability as vt, FieldClaimSchema as w, storageCapability as wn, enumerateSchemaFields as wt, DeviceStatusSchema as x, settingsStoreCapability as xn, sleep as xr, deviceStatusCapability as xt, DERIVED_CAMERA_SILENCED_CAP_NAMES as y, scopesAllowDeviceCap as yn, resolveCapMount as yr, deviceManagerCapability as yt, StorageLocationModeSchema as z, composedDeviceRef as zn, kebabToCamel as zt };
|