@camstack/addon-model-studio 1.1.290 → 1.1.292
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/{MotionZonesSettings-BDXv-_SC.mjs → MotionZonesSettings-BcdUnoUf.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-BFDJJ_jI.mjs → PrivacyMaskSettings-B8Fva5aA.mjs} +4 -4
- package/dist/{SceneMonitorEditor-DsKs-28v.mjs → SceneMonitorEditor-gGXbk_xd.mjs} +3 -3
- package/dist/_stub.js +2007 -2000
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-vqigWLhP.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BQtGyoxs.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BsM_g96G.mjs +26 -0
- package/dist/addon-model-studio.css +1 -1
- package/dist/{hostInit-RwS7Hfsn.mjs → hostInit-E9SMnTP0.mjs} +2 -2
- package/dist/model-studio.addon.js +189 -90
- package/dist/model-studio.addon.mjs +189 -90
- package/dist/{player-overlays-CSDHuCWB.mjs → player-overlays-CMJi9ZqH.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-BOr_1QSL.mjs → responsive-BsA5VAZE.mjs} +1 -1
- package/dist/{scene-monitor-copy-CcAIfs8G.mjs → scene-monitor-copy-CoIP1A-9.mjs} +1 -1
- package/dist/{square-X2giTSaZ.mjs → square-DtlTO5Fw.mjs} +1 -1
- package/dist/{trash-2-CphQimp6.mjs → trash-2-CYc9z9Tz.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D6XbC3Hu.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D-DKvrkx.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C2LtE9v7.mjs +0 -26
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.407",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.322",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -394,7 +394,7 @@ function buildScryptedRegistryDescriptor(entry) {
|
|
|
394
394
|
};
|
|
395
395
|
}
|
|
396
396
|
//#endregion
|
|
397
|
-
//#region ../types/dist/event-category-
|
|
397
|
+
//#region ../types/dist/event-category-Ceif8n-v.mjs
|
|
398
398
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
399
399
|
EventCategory["SystemBoot"] = "system.boot";
|
|
400
400
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -866,6 +866,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
866
866
|
* on the device detail page.
|
|
867
867
|
*/
|
|
868
868
|
EventCategory["DoorbellOnPressed"] = "doorbell.onPressed";
|
|
869
|
+
/** Mirrors `runningStateCapability.events.onStarted`. */
|
|
870
|
+
EventCategory["RunningStarted"] = "running.started";
|
|
871
|
+
/** Mirrors `runningStateCapability.events.onFinished`. */
|
|
872
|
+
EventCategory["RunningFinished"] = "running.finished";
|
|
869
873
|
/**
|
|
870
874
|
* Cap event fired by every device that registers the `event-emitter`
|
|
871
875
|
* capability. Mirrors `eventEmitterCapability.events.onEvent`. Carries
|
|
@@ -5825,7 +5829,7 @@ var ZodIssueCode = {
|
|
|
5825
5829
|
var ZodFirstPartyTypeKind;
|
|
5826
5830
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5827
5831
|
//#endregion
|
|
5828
|
-
//#region ../types/dist/sleep-
|
|
5832
|
+
//#region ../types/dist/sleep-CYfIZzGv.mjs
|
|
5829
5833
|
/**
|
|
5830
5834
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5831
5835
|
* window to float samples (D455).
|
|
@@ -6164,7 +6168,7 @@ Object.fromEntries([
|
|
|
6164
6168
|
* `hydrateSchema` to skip the `value` injection for structural-only fields.
|
|
6165
6169
|
*/
|
|
6166
6170
|
function isValuelessField(field) {
|
|
6167
|
-
return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button";
|
|
6171
|
+
return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button" || field.type === "account-sign-in" || field.type === "secret-presence";
|
|
6168
6172
|
}
|
|
6169
6173
|
function hydrateSchema(schema, values, options = {}) {
|
|
6170
6174
|
return {
|
|
@@ -9206,7 +9210,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9206
9210
|
return DeviceRole;
|
|
9207
9211
|
}({});
|
|
9208
9212
|
//#endregion
|
|
9209
|
-
//#region ../types/dist/composition-
|
|
9213
|
+
//#region ../types/dist/composition-BJ8iAZb3.mjs
|
|
9210
9214
|
/**
|
|
9211
9215
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9212
9216
|
*
|
|
@@ -9266,7 +9270,7 @@ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac
|
|
|
9266
9270
|
* ONE table for everyone who asks "is this device HIGH?": the
|
|
9267
9271
|
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
9268
9272
|
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
9269
|
-
* the sources of a
|
|
9273
|
+
* the sources of a pulse (`compilePulseOverride`, D936).
|
|
9270
9274
|
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
9271
9275
|
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
9272
9276
|
*
|
|
@@ -9507,6 +9511,20 @@ var table = {
|
|
|
9507
9511
|
apply: () => {
|
|
9508
9512
|
throw new ExpressionEvalError("count: stateful evaluation context is required");
|
|
9509
9513
|
}
|
|
9514
|
+
},
|
|
9515
|
+
dwell: {
|
|
9516
|
+
minArgs: 3,
|
|
9517
|
+
maxArgs: 3,
|
|
9518
|
+
apply: () => {
|
|
9519
|
+
throw new ExpressionEvalError("dwell: stateful evaluation context is required");
|
|
9520
|
+
}
|
|
9521
|
+
},
|
|
9522
|
+
latchedAt: {
|
|
9523
|
+
minArgs: 1,
|
|
9524
|
+
maxArgs: 1,
|
|
9525
|
+
apply: () => {
|
|
9526
|
+
throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
|
|
9527
|
+
}
|
|
9510
9528
|
}
|
|
9511
9529
|
};
|
|
9512
9530
|
Object.freeze(Object.assign(Object.create(null), table));
|
|
@@ -16506,7 +16524,15 @@ Object.freeze({
|
|
|
16506
16524
|
kind: "fixed",
|
|
16507
16525
|
result: ["number", "null"]
|
|
16508
16526
|
},
|
|
16509
|
-
count: NUMBER
|
|
16527
|
+
count: NUMBER,
|
|
16528
|
+
dwell: {
|
|
16529
|
+
kind: "fixed",
|
|
16530
|
+
result: ["boolean", "null"]
|
|
16531
|
+
},
|
|
16532
|
+
latchedAt: {
|
|
16533
|
+
kind: "fixed",
|
|
16534
|
+
result: ["number", "null"]
|
|
16535
|
+
}
|
|
16510
16536
|
});
|
|
16511
16537
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
16512
16538
|
/**
|
|
@@ -42734,9 +42760,6 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42734
42760
|
"device-battery-normal",
|
|
42735
42761
|
"device-consumable-low",
|
|
42736
42762
|
"device-consumable-normal",
|
|
42737
|
-
"device-tank-low",
|
|
42738
|
-
"device-tank-full",
|
|
42739
|
-
"device-tank-normal",
|
|
42740
42763
|
"stream-online",
|
|
42741
42764
|
"stream-offline",
|
|
42742
42765
|
"node-online",
|
|
@@ -42783,13 +42806,14 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42783
42806
|
"camera-enabled"
|
|
42784
42807
|
]);
|
|
42785
42808
|
/** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
|
|
42786
|
-
var NC_LEGACY_SYSTEM_EVENT_KINDS =
|
|
42809
|
+
var NC_LEGACY_SYSTEM_EVENT_KINDS = [
|
|
42787
42810
|
"camera-online",
|
|
42788
42811
|
"camera-offline",
|
|
42789
42812
|
"camera-disabled",
|
|
42790
42813
|
"camera-enabled"
|
|
42791
|
-
]
|
|
42792
|
-
|
|
42814
|
+
];
|
|
42815
|
+
var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
42816
|
+
NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
|
|
42793
42817
|
/**
|
|
42794
42818
|
* The panel's transitions, as ONE list.
|
|
42795
42819
|
*
|
|
@@ -43908,18 +43932,11 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
43908
43932
|
*/
|
|
43909
43933
|
disabledTargetIds: array(string()).default([])
|
|
43910
43934
|
});
|
|
43911
|
-
/**
|
|
43912
|
-
* The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
|
|
43913
|
-
* report a still-true state. `addons` is the crash-looped addons only and
|
|
43914
|
-
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
43915
|
-
* job is not an open state, and the alarm stays instant.
|
|
43916
|
-
*/
|
|
43917
43935
|
var NcStateSummarySectionIdSchema = _enum([
|
|
43918
43936
|
"device-state",
|
|
43919
43937
|
"streams",
|
|
43920
43938
|
"battery",
|
|
43921
43939
|
"consumables",
|
|
43922
|
-
"tanks",
|
|
43923
43940
|
"detection-blind",
|
|
43924
43941
|
"nodes",
|
|
43925
43942
|
"addons",
|
|
@@ -54283,7 +54300,8 @@ var BatteryStatusSchema = object({
|
|
|
54283
54300
|
*/
|
|
54284
54301
|
binary: boolean().optional()
|
|
54285
54302
|
});
|
|
54286
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat
|
|
54303
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
|
|
54304
|
+
method(object({
|
|
54287
54305
|
deviceId: number(),
|
|
54288
54306
|
/** Bound on the wait. Sensible range 3000–10000ms. */
|
|
54289
54307
|
timeoutMs: number().int().min(500).max(3e4).default(8e3)
|
|
@@ -54992,6 +55010,7 @@ var ConsumablesStatusSchema = object({
|
|
|
54992
55010
|
})),
|
|
54993
55011
|
lastChangedAt: number()
|
|
54994
55012
|
});
|
|
55013
|
+
Object.values(DeviceType), [...ConsumableRemainingUnitSchema.options], [...ConsumableStatusSchema.options], [...ConsumableKindSchema.options], [...ConsumableFormSchema.options];
|
|
54995
55014
|
Object.values(DeviceType), method(object({
|
|
54996
55015
|
deviceId: number().int().nonnegative(),
|
|
54997
55016
|
key: string().min(1)
|
|
@@ -55463,6 +55482,7 @@ DeviceType.Dishwasher, method(object({
|
|
|
55463
55482
|
kind: "mutation",
|
|
55464
55483
|
auth: "protected"
|
|
55465
55484
|
}), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
|
|
55485
|
+
DeviceType.Camera;
|
|
55466
55486
|
object({
|
|
55467
55487
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55468
55488
|
lastPressedAt: number().nullable(),
|
|
@@ -57255,6 +57275,7 @@ authKey: string().optional() }), object({
|
|
|
57255
57275
|
/** Human-readable error when `ok: false`. */
|
|
57256
57276
|
error: string().optional()
|
|
57257
57277
|
}), { kind: "mutation" });
|
|
57278
|
+
DeviceType.Camera;
|
|
57258
57279
|
object({
|
|
57259
57280
|
detected: boolean(),
|
|
57260
57281
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -59318,6 +59339,24 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
59318
59339
|
deviceId: number(),
|
|
59319
59340
|
status: PtzAutotrackStatusSchema
|
|
59320
59341
|
});
|
|
59342
|
+
var RunningStateSourceSchema = _enum(["native", "assigned"]);
|
|
59343
|
+
object({
|
|
59344
|
+
/** null = unknown — never coerced to false (D393). */
|
|
59345
|
+
running: boolean().nullable(),
|
|
59346
|
+
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
59347
|
+
since: number().nullable(),
|
|
59348
|
+
source: RunningStateSourceSchema,
|
|
59349
|
+
phase: string().nullable(),
|
|
59350
|
+
/** null until a reading has been published (D393). */
|
|
59351
|
+
lastFetchedAt: number().nullable()
|
|
59352
|
+
});
|
|
59353
|
+
object({
|
|
59354
|
+
deviceId: number(),
|
|
59355
|
+
since: number().nullable(),
|
|
59356
|
+
phase: string().nullable()
|
|
59357
|
+
});
|
|
59358
|
+
Object.values(DeviceType);
|
|
59359
|
+
DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
59321
59360
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
59322
59361
|
kind: "mutation",
|
|
59323
59362
|
auth: "admin"
|
|
@@ -70710,6 +70749,13 @@ Object.freeze({
|
|
|
70710
70749
|
access: "create",
|
|
70711
70750
|
role: "admin"
|
|
70712
70751
|
},
|
|
70752
|
+
"runningState.getStatus": {
|
|
70753
|
+
capName: "running-state",
|
|
70754
|
+
capScope: "device",
|
|
70755
|
+
addonId: null,
|
|
70756
|
+
access: "view",
|
|
70757
|
+
role: "viewer"
|
|
70758
|
+
},
|
|
70713
70759
|
"sceneMonitor.captureReference": {
|
|
70714
70760
|
capName: "scene-monitor",
|
|
70715
70761
|
capScope: "device",
|
|
@@ -75424,6 +75470,32 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
75424
75470
|
}],
|
|
75425
75471
|
events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
|
|
75426
75472
|
},
|
|
75473
|
+
"running-state": {
|
|
75474
|
+
scope: "device",
|
|
75475
|
+
noun: t("Running", "In funzione"),
|
|
75476
|
+
state: [{
|
|
75477
|
+
kind: "boolean",
|
|
75478
|
+
field: "running",
|
|
75479
|
+
label: t("Running", "In funzione"),
|
|
75480
|
+
whenTrue: t("When {device} starts", "Quando {device} inizia"),
|
|
75481
|
+
whenFalse: t("When {device} finishes", "Quando {device} finisce"),
|
|
75482
|
+
icon: "play"
|
|
75483
|
+
}],
|
|
75484
|
+
events: {
|
|
75485
|
+
onStarted: {
|
|
75486
|
+
category: EventCategory.RunningStarted,
|
|
75487
|
+
label: t("Started running", "Ha iniziato a funzionare"),
|
|
75488
|
+
phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
|
|
75489
|
+
icon: "play"
|
|
75490
|
+
},
|
|
75491
|
+
onFinished: {
|
|
75492
|
+
category: EventCategory.RunningFinished,
|
|
75493
|
+
label: t("Finished", "Ha finito"),
|
|
75494
|
+
phrase: t("When {device} finishes", "Quando {device} finisce"),
|
|
75495
|
+
icon: "square"
|
|
75496
|
+
}
|
|
75497
|
+
}
|
|
75498
|
+
},
|
|
75427
75499
|
update: {
|
|
75428
75500
|
scope: "device",
|
|
75429
75501
|
noun: t("Firmware update", "Aggiornamento firmware"),
|
|
@@ -78964,6 +79036,11 @@ Object.freeze({
|
|
|
78964
79036
|
form: "single",
|
|
78965
79037
|
optional: true
|
|
78966
79038
|
}],
|
|
79039
|
+
"runningState.getStatus": [{
|
|
79040
|
+
name: "deviceId",
|
|
79041
|
+
form: "single",
|
|
79042
|
+
optional: false
|
|
79043
|
+
}],
|
|
78967
79044
|
"sceneMonitor.captureReference": [{
|
|
78968
79045
|
name: "deviceId",
|
|
78969
79046
|
form: "single",
|
|
@@ -79462,6 +79539,96 @@ Object.freeze({
|
|
|
79462
79539
|
"smtp-provider": "email"
|
|
79463
79540
|
});
|
|
79464
79541
|
DeviceType.Camera;
|
|
79542
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
79543
|
+
/**
|
|
79544
|
+
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
79545
|
+
* `z.infer`, they do not restate the shape.
|
|
79546
|
+
*/
|
|
79547
|
+
var OverrideSourceSchema = object({
|
|
79548
|
+
addonId: string().min(1),
|
|
79549
|
+
stableId: string().min(1),
|
|
79550
|
+
cap: string().min(1),
|
|
79551
|
+
fieldPath: string().min(1)
|
|
79552
|
+
});
|
|
79553
|
+
var CustomizeTransformDraftSchema = discriminatedUnion("kind", [
|
|
79554
|
+
object({ kind: literal("identity") }),
|
|
79555
|
+
object({ kind: literal("invert") }),
|
|
79556
|
+
object({
|
|
79557
|
+
kind: literal("threshold"),
|
|
79558
|
+
comparison: _enum(["gte", "lte"]),
|
|
79559
|
+
threshold: number(),
|
|
79560
|
+
startDwellMs: number().nonnegative(),
|
|
79561
|
+
stopDwellMs: number().nonnegative()
|
|
79562
|
+
}),
|
|
79563
|
+
object({
|
|
79564
|
+
kind: literal("linear"),
|
|
79565
|
+
scale: number(),
|
|
79566
|
+
offset: number(),
|
|
79567
|
+
clampMin: number().optional(),
|
|
79568
|
+
clampMax: number().optional()
|
|
79569
|
+
}),
|
|
79570
|
+
object({
|
|
79571
|
+
kind: literal("enum-map"),
|
|
79572
|
+
mapping: record(string(), string().nullable())
|
|
79573
|
+
}),
|
|
79574
|
+
object({ kind: literal("number") })
|
|
79575
|
+
]);
|
|
79576
|
+
var ScalarOverrideDraftSchema = object({
|
|
79577
|
+
kind: literal("scalar"),
|
|
79578
|
+
cap: string().min(1),
|
|
79579
|
+
targetId: string().min(1),
|
|
79580
|
+
source: OverrideSourceSchema,
|
|
79581
|
+
transform: CustomizeTransformDraftSchema
|
|
79582
|
+
});
|
|
79583
|
+
var KeyedArrayOverrideDraftSchema = object({
|
|
79584
|
+
kind: literal("keyedArray"),
|
|
79585
|
+
cap: string().min(1),
|
|
79586
|
+
targetId: string().min(1),
|
|
79587
|
+
key: string().min(1),
|
|
79588
|
+
label: string().min(1),
|
|
79589
|
+
fieldPath: string().min(1),
|
|
79590
|
+
source: OverrideSourceSchema,
|
|
79591
|
+
transform: CustomizeTransformDraftSchema
|
|
79592
|
+
});
|
|
79593
|
+
var PulseOverrideDraftSchema = object({
|
|
79594
|
+
kind: literal("pulse"),
|
|
79595
|
+
cap: string().min(1),
|
|
79596
|
+
targetId: string().min(1),
|
|
79597
|
+
enabled: boolean(),
|
|
79598
|
+
debounceMs: number().nonnegative(),
|
|
79599
|
+
sources: array(OverrideSourceSchema).min(1)
|
|
79600
|
+
});
|
|
79601
|
+
var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
|
|
79602
|
+
"in-addition",
|
|
79603
|
+
"confirm",
|
|
79604
|
+
"replace"
|
|
79605
|
+
]).optional() });
|
|
79606
|
+
discriminatedUnion("kind", [
|
|
79607
|
+
ScalarOverrideDraftSchema,
|
|
79608
|
+
KeyedArrayOverrideDraftSchema,
|
|
79609
|
+
PulseOverrideDraftSchema,
|
|
79610
|
+
object({
|
|
79611
|
+
kind: literal("span"),
|
|
79612
|
+
cap: string().min(1),
|
|
79613
|
+
targetId: string().min(1),
|
|
79614
|
+
timeoutMs: number().nonnegative(),
|
|
79615
|
+
cooldownMs: number().nonnegative().optional(),
|
|
79616
|
+
sources: array(SpanSourceDraftSchema)
|
|
79617
|
+
})
|
|
79618
|
+
]);
|
|
79619
|
+
object({
|
|
79620
|
+
targetId: string().min(1),
|
|
79621
|
+
configured: boolean(),
|
|
79622
|
+
source: _enum(["native", "assigned"]),
|
|
79623
|
+
state: _enum([
|
|
79624
|
+
"active",
|
|
79625
|
+
"stale",
|
|
79626
|
+
"released",
|
|
79627
|
+
"unavailable"
|
|
79628
|
+
]),
|
|
79629
|
+
reason: string().nullable()
|
|
79630
|
+
});
|
|
79631
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
79465
79632
|
var G711_SCALE_CORRECTION_DB = {
|
|
79466
79633
|
PCMU: 20 * Math.log10(4),
|
|
79467
79634
|
PCMA: 20 * Math.log10(8)
|
|
@@ -79514,40 +79681,7 @@ var NC_AUDIO_DEFAULTS = {
|
|
|
79514
79681
|
samplingSeconds: 10
|
|
79515
79682
|
};
|
|
79516
79683
|
new Set(["devices", "classes"]);
|
|
79517
|
-
|
|
79518
|
-
* WHICH narrowing filter speaks about WHICH system-event kind — one predicate,
|
|
79519
|
-
* consumed by the rule ENGINE and by every rule EDITOR.
|
|
79520
|
-
*
|
|
79521
|
-
* ── The failure this file exists for ───────────────────────────────────────
|
|
79522
|
-
* `NcSystemEventConditionSchema` carries four optional narrowing lists
|
|
79523
|
-
* (`deviceIds`, `deviceTypes`, `nodeIds`, `packageNames`) beside a required
|
|
79524
|
-
* `kinds` gate. They are not four filters over one vocabulary: each belongs to
|
|
79525
|
-
* a FAMILY of kinds and is meaningless outside it. A node going away has no
|
|
79526
|
-
* device type; a completed export has no package; `stream-offline` deliberately
|
|
79527
|
-
* carries no device type at all (a stream belongs to a camera by construction).
|
|
79528
|
-
*
|
|
79529
|
-
* The engine applied all four to every kind, so a filter from one family failed
|
|
79530
|
-
* a kind from another family CLOSED. The operator's live rule "Eventi di
|
|
79531
|
-
* sistema" selected eleven kinds and set `deviceTypes: ['camera']` — the only
|
|
79532
|
-
* way to say "only my cameras" about the two liveness kinds — and NINE of the
|
|
79533
|
-
* eleven silently stopped being deliverable. Four days of history contained
|
|
79534
|
-
* `device-online` and `device-offline` and nothing else, across a window in
|
|
79535
|
-
* which agents were restarted and addons were updated.
|
|
79536
|
-
*
|
|
79537
|
-
* Both editors already computed this scoping, to decide which filter boxes to
|
|
79538
|
-
* render; the cap's own docblock already promised it ("Narrow a `device-*` kind
|
|
79539
|
-
* to these device TYPES"). Only the engine disagreed, and it disagreed in the
|
|
79540
|
-
* destructive direction. So the rule is stated ONCE, here, and the engine and
|
|
79541
|
-
* the editors are readers of it rather than three independent authors.
|
|
79542
|
-
*
|
|
79543
|
-
* ── The direction ─────────────────────────────────────────────────────────
|
|
79544
|
-
* Out of family ⇒ the filter is IGNORED, never fail-closed. An editor that
|
|
79545
|
-
* hides a box has already told the operator this filter does not speak about
|
|
79546
|
-
* these kinds, so honouring it as an exclusion contradicts the only
|
|
79547
|
-
* explanation the operator was ever given. Inside its family the filter still
|
|
79548
|
-
* narrows, and still fails CLOSED on a subject that cannot produce the identity
|
|
79549
|
-
* it tests (a device the mirror cannot name is not evidence of a camera).
|
|
79550
|
-
*/
|
|
79684
|
+
new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
79551
79685
|
/**
|
|
79552
79686
|
* Every filter, for the callers that must cover all of them (guards, tests).
|
|
79553
79687
|
*
|
|
@@ -79573,9 +79707,6 @@ new Map(Object.entries({
|
|
|
79573
79707
|
"device-battery-normal": "device-events",
|
|
79574
79708
|
"device-consumable-low": "device-events",
|
|
79575
79709
|
"device-consumable-normal": "device-events",
|
|
79576
|
-
"device-tank-low": "device-events",
|
|
79577
|
-
"device-tank-full": "device-events",
|
|
79578
|
-
"device-tank-normal": "device-events",
|
|
79579
79710
|
"stream-online": "device-events",
|
|
79580
79711
|
"stream-offline": "device-events",
|
|
79581
79712
|
"detection-blind": "device-events",
|
|
@@ -79652,16 +79783,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79652
79783
|
label: "Consumables",
|
|
79653
79784
|
kinds: ["device-consumable-low", "device-consumable-normal"]
|
|
79654
79785
|
},
|
|
79655
|
-
{
|
|
79656
|
-
id: "tanks",
|
|
79657
|
-
family: "device-events",
|
|
79658
|
-
label: "Tanks",
|
|
79659
|
-
kinds: [
|
|
79660
|
-
"device-tank-low",
|
|
79661
|
-
"device-tank-full",
|
|
79662
|
-
"device-tank-normal"
|
|
79663
|
-
]
|
|
79664
|
-
},
|
|
79665
79786
|
{
|
|
79666
79787
|
id: "detection-blind",
|
|
79667
79788
|
family: "device-events",
|
|
@@ -79819,11 +79940,6 @@ var RULE_BODY_ONLY = ["body"];
|
|
|
79819
79940
|
var RULE_TEXT = ["title", "body"];
|
|
79820
79941
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
79821
79942
|
var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
|
|
79822
|
-
var TANK = [
|
|
79823
|
-
"device-tank-low",
|
|
79824
|
-
"device-tank-full",
|
|
79825
|
-
"device-tank-normal"
|
|
79826
|
-
];
|
|
79827
79943
|
var ALERT_EPISODE = [
|
|
79828
79944
|
"alert-critical",
|
|
79829
79945
|
"alert-error",
|
|
@@ -79855,7 +79971,6 @@ var DEVICE_EVENTS = [
|
|
|
79855
79971
|
"device-enabled",
|
|
79856
79972
|
...BATTERY,
|
|
79857
79973
|
...CONSUMABLE,
|
|
79858
|
-
...TANK,
|
|
79859
79974
|
"stream-online",
|
|
79860
79975
|
"stream-offline",
|
|
79861
79976
|
"detection-blind",
|
|
@@ -79901,12 +80016,6 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
79901
80016
|
example: "Robot — filter 10 %",
|
|
79902
80017
|
kinds: CONSUMABLE
|
|
79903
80018
|
},
|
|
79904
|
-
{
|
|
79905
|
-
name: "summaryTanks",
|
|
79906
|
-
label: "Summary: tanks",
|
|
79907
|
-
example: "Robot — clean water low",
|
|
79908
|
-
kinds: TANK
|
|
79909
|
-
},
|
|
79910
80019
|
{
|
|
79911
80020
|
name: "summaryDetection",
|
|
79912
80021
|
label: "Summary: cameras detecting nothing",
|
|
@@ -80022,8 +80131,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
80022
80131
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
80023
80132
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
80024
80133
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
80025
|
-
([...RULE_TEXT], [...CONSUMABLE
|
|
80026
|
-
([...RULE_TEXT], [...TANK]),
|
|
80134
|
+
([...RULE_TEXT], [...CONSUMABLE]),
|
|
80027
80135
|
[...RULE_TEXT],
|
|
80028
80136
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80029
80137
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
@@ -80127,15 +80235,6 @@ new Map([
|
|
|
80127
80235
|
snapshotLabel: "Consumables low now",
|
|
80128
80236
|
snapshotSection: "consumables"
|
|
80129
80237
|
},
|
|
80130
|
-
{
|
|
80131
|
-
id: "tanks",
|
|
80132
|
-
family: "device-events",
|
|
80133
|
-
label: "Tanks (low or full / back to normal)",
|
|
80134
|
-
bad: ["device-tank-low", "device-tank-full"],
|
|
80135
|
-
recovery: ["device-tank-normal"],
|
|
80136
|
-
snapshotLabel: "Tanks low or full now",
|
|
80137
|
-
snapshotSection: "tanks"
|
|
80138
|
-
},
|
|
80139
80238
|
{
|
|
80140
80239
|
id: "motion-noise",
|
|
80141
80240
|
family: "device-events",
|