@camstack/addon-training 0.1.77 → 0.1.79
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-DW358mxE.mjs → MotionZonesSettings-CHoUtlZU.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-8OQfCROj.mjs → PrivacyMaskSettings-DfxPrf-U.mjs} +2 -2
- package/dist/{SceneMonitorEditor-D8KPyVBc.mjs → SceneMonitorEditor-B32hWMGP.mjs} +1 -1
- package/dist/_stub.js +5551 -5310
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-pvaNdWyD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-GwANcGcn.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ff_0UQsH.mjs +26 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-0l-u0kED.js → dist-DuaaneP-.js} +189 -90
- package/dist/{dist--WYP29ef.mjs → dist-we-Yi15l.mjs} +189 -90
- package/dist/{hostInit-C8nnpFIy.mjs → hostInit-OSodFHgq.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-DUX0-57y.mjs → player-overlays-CN0bZ_0v.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-LBIGYpcj.mjs → responsive-wQi9hajb.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CMBXXfj3.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CbTZ0yvt.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-qjGlK6dB.mjs +0 -26
|
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
}) : target, mod));
|
|
33
33
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
34
|
require("node:crypto");
|
|
35
|
-
//#region ../types/dist/event-category-
|
|
35
|
+
//#region ../types/dist/event-category-Ceif8n-v.mjs
|
|
36
36
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
37
37
|
EventCategory["SystemBoot"] = "system.boot";
|
|
38
38
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -504,6 +504,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
504
504
|
* on the device detail page.
|
|
505
505
|
*/
|
|
506
506
|
EventCategory["DoorbellOnPressed"] = "doorbell.onPressed";
|
|
507
|
+
/** Mirrors `runningStateCapability.events.onStarted`. */
|
|
508
|
+
EventCategory["RunningStarted"] = "running.started";
|
|
509
|
+
/** Mirrors `runningStateCapability.events.onFinished`. */
|
|
510
|
+
EventCategory["RunningFinished"] = "running.finished";
|
|
507
511
|
/**
|
|
508
512
|
* Cap event fired by every device that registers the `event-emitter`
|
|
509
513
|
* capability. Mirrors `eventEmitterCapability.events.onEvent`. Carries
|
|
@@ -5596,7 +5600,7 @@ var ZodIssueCode = {
|
|
|
5596
5600
|
var ZodFirstPartyTypeKind;
|
|
5597
5601
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5598
5602
|
//#endregion
|
|
5599
|
-
//#region ../types/dist/sleep-
|
|
5603
|
+
//#region ../types/dist/sleep-CYfIZzGv.mjs
|
|
5600
5604
|
/**
|
|
5601
5605
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5602
5606
|
* window to float samples (D455).
|
|
@@ -5935,7 +5939,7 @@ Object.fromEntries([
|
|
|
5935
5939
|
* `hydrateSchema` to skip the `value` injection for structural-only fields.
|
|
5936
5940
|
*/
|
|
5937
5941
|
function isValuelessField(field) {
|
|
5938
|
-
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";
|
|
5942
|
+
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";
|
|
5939
5943
|
}
|
|
5940
5944
|
function hydrateSchema(schema, values, options = {}) {
|
|
5941
5945
|
return {
|
|
@@ -9144,7 +9148,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9144
9148
|
return DeviceRole;
|
|
9145
9149
|
}({});
|
|
9146
9150
|
//#endregion
|
|
9147
|
-
//#region ../types/dist/composition-
|
|
9151
|
+
//#region ../types/dist/composition-BJ8iAZb3.mjs
|
|
9148
9152
|
/**
|
|
9149
9153
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9150
9154
|
*
|
|
@@ -9204,7 +9208,7 @@ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac
|
|
|
9204
9208
|
* ONE table for everyone who asks "is this device HIGH?": the
|
|
9205
9209
|
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
9206
9210
|
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
9207
|
-
* the sources of a
|
|
9211
|
+
* the sources of a pulse (`compilePulseOverride`, D936).
|
|
9208
9212
|
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
9209
9213
|
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
9210
9214
|
*
|
|
@@ -9445,6 +9449,20 @@ var table = {
|
|
|
9445
9449
|
apply: () => {
|
|
9446
9450
|
throw new ExpressionEvalError("count: stateful evaluation context is required");
|
|
9447
9451
|
}
|
|
9452
|
+
},
|
|
9453
|
+
dwell: {
|
|
9454
|
+
minArgs: 3,
|
|
9455
|
+
maxArgs: 3,
|
|
9456
|
+
apply: () => {
|
|
9457
|
+
throw new ExpressionEvalError("dwell: stateful evaluation context is required");
|
|
9458
|
+
}
|
|
9459
|
+
},
|
|
9460
|
+
latchedAt: {
|
|
9461
|
+
minArgs: 1,
|
|
9462
|
+
maxArgs: 1,
|
|
9463
|
+
apply: () => {
|
|
9464
|
+
throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
|
|
9465
|
+
}
|
|
9448
9466
|
}
|
|
9449
9467
|
};
|
|
9450
9468
|
Object.freeze(Object.assign(Object.create(null), table));
|
|
@@ -16323,7 +16341,15 @@ Object.freeze({
|
|
|
16323
16341
|
kind: "fixed",
|
|
16324
16342
|
result: ["number", "null"]
|
|
16325
16343
|
},
|
|
16326
|
-
count: NUMBER
|
|
16344
|
+
count: NUMBER,
|
|
16345
|
+
dwell: {
|
|
16346
|
+
kind: "fixed",
|
|
16347
|
+
result: ["boolean", "null"]
|
|
16348
|
+
},
|
|
16349
|
+
latchedAt: {
|
|
16350
|
+
kind: "fixed",
|
|
16351
|
+
result: ["number", "null"]
|
|
16352
|
+
}
|
|
16327
16353
|
});
|
|
16328
16354
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
16329
16355
|
/**
|
|
@@ -42517,9 +42543,6 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42517
42543
|
"device-battery-normal",
|
|
42518
42544
|
"device-consumable-low",
|
|
42519
42545
|
"device-consumable-normal",
|
|
42520
|
-
"device-tank-low",
|
|
42521
|
-
"device-tank-full",
|
|
42522
|
-
"device-tank-normal",
|
|
42523
42546
|
"stream-online",
|
|
42524
42547
|
"stream-offline",
|
|
42525
42548
|
"node-online",
|
|
@@ -42566,13 +42589,14 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42566
42589
|
"camera-enabled"
|
|
42567
42590
|
]);
|
|
42568
42591
|
/** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
|
|
42569
|
-
var NC_LEGACY_SYSTEM_EVENT_KINDS =
|
|
42592
|
+
var NC_LEGACY_SYSTEM_EVENT_KINDS = [
|
|
42570
42593
|
"camera-online",
|
|
42571
42594
|
"camera-offline",
|
|
42572
42595
|
"camera-disabled",
|
|
42573
42596
|
"camera-enabled"
|
|
42574
|
-
]
|
|
42575
|
-
|
|
42597
|
+
];
|
|
42598
|
+
var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
42599
|
+
NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
|
|
42576
42600
|
/**
|
|
42577
42601
|
* The panel's transitions, as ONE list.
|
|
42578
42602
|
*
|
|
@@ -43691,18 +43715,11 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
43691
43715
|
*/
|
|
43692
43716
|
disabledTargetIds: array(string()).default([])
|
|
43693
43717
|
});
|
|
43694
|
-
/**
|
|
43695
|
-
* The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
|
|
43696
|
-
* report a still-true state. `addons` is the crash-looped addons only and
|
|
43697
|
-
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
43698
|
-
* job is not an open state, and the alarm stays instant.
|
|
43699
|
-
*/
|
|
43700
43718
|
var NcStateSummarySectionIdSchema = _enum([
|
|
43701
43719
|
"device-state",
|
|
43702
43720
|
"streams",
|
|
43703
43721
|
"battery",
|
|
43704
43722
|
"consumables",
|
|
43705
|
-
"tanks",
|
|
43706
43723
|
"detection-blind",
|
|
43707
43724
|
"nodes",
|
|
43708
43725
|
"addons",
|
|
@@ -54066,7 +54083,8 @@ var BatteryStatusSchema = object({
|
|
|
54066
54083
|
*/
|
|
54067
54084
|
binary: boolean().optional()
|
|
54068
54085
|
});
|
|
54069
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat
|
|
54086
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
|
|
54087
|
+
method(object({
|
|
54070
54088
|
deviceId: number(),
|
|
54071
54089
|
/** Bound on the wait. Sensible range 3000–10000ms. */
|
|
54072
54090
|
timeoutMs: number().int().min(500).max(3e4).default(8e3)
|
|
@@ -54775,6 +54793,7 @@ var ConsumablesStatusSchema = object({
|
|
|
54775
54793
|
})),
|
|
54776
54794
|
lastChangedAt: number()
|
|
54777
54795
|
});
|
|
54796
|
+
Object.values(DeviceType), [...ConsumableRemainingUnitSchema.options], [...ConsumableStatusSchema.options], [...ConsumableKindSchema.options], [...ConsumableFormSchema.options];
|
|
54778
54797
|
Object.values(DeviceType), method(object({
|
|
54779
54798
|
deviceId: number().int().nonnegative(),
|
|
54780
54799
|
key: string().min(1)
|
|
@@ -55246,6 +55265,7 @@ DeviceType.Dishwasher, method(object({
|
|
|
55246
55265
|
kind: "mutation",
|
|
55247
55266
|
auth: "protected"
|
|
55248
55267
|
}), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
|
|
55268
|
+
DeviceType.Camera;
|
|
55249
55269
|
object({
|
|
55250
55270
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55251
55271
|
lastPressedAt: number().nullable(),
|
|
@@ -57038,6 +57058,7 @@ authKey: string().optional() }), object({
|
|
|
57038
57058
|
/** Human-readable error when `ok: false`. */
|
|
57039
57059
|
error: string().optional()
|
|
57040
57060
|
}), { kind: "mutation" });
|
|
57061
|
+
DeviceType.Camera;
|
|
57041
57062
|
object({
|
|
57042
57063
|
detected: boolean(),
|
|
57043
57064
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -59101,6 +59122,24 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
59101
59122
|
deviceId: number(),
|
|
59102
59123
|
status: PtzAutotrackStatusSchema
|
|
59103
59124
|
});
|
|
59125
|
+
var RunningStateSourceSchema = _enum(["native", "assigned"]);
|
|
59126
|
+
object({
|
|
59127
|
+
/** null = unknown — never coerced to false (D393). */
|
|
59128
|
+
running: boolean().nullable(),
|
|
59129
|
+
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
59130
|
+
since: number().nullable(),
|
|
59131
|
+
source: RunningStateSourceSchema,
|
|
59132
|
+
phase: string().nullable(),
|
|
59133
|
+
/** null until a reading has been published (D393). */
|
|
59134
|
+
lastFetchedAt: number().nullable()
|
|
59135
|
+
});
|
|
59136
|
+
object({
|
|
59137
|
+
deviceId: number(),
|
|
59138
|
+
since: number().nullable(),
|
|
59139
|
+
phase: string().nullable()
|
|
59140
|
+
});
|
|
59141
|
+
Object.values(DeviceType);
|
|
59142
|
+
DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
59104
59143
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
59105
59144
|
kind: "mutation",
|
|
59106
59145
|
auth: "admin"
|
|
@@ -70497,6 +70536,13 @@ Object.freeze({
|
|
|
70497
70536
|
access: "create",
|
|
70498
70537
|
role: "admin"
|
|
70499
70538
|
},
|
|
70539
|
+
"runningState.getStatus": {
|
|
70540
|
+
capName: "running-state",
|
|
70541
|
+
capScope: "device",
|
|
70542
|
+
addonId: null,
|
|
70543
|
+
access: "view",
|
|
70544
|
+
role: "viewer"
|
|
70545
|
+
},
|
|
70500
70546
|
"sceneMonitor.captureReference": {
|
|
70501
70547
|
capName: "scene-monitor",
|
|
70502
70548
|
capScope: "device",
|
|
@@ -75211,6 +75257,32 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
75211
75257
|
}],
|
|
75212
75258
|
events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
|
|
75213
75259
|
},
|
|
75260
|
+
"running-state": {
|
|
75261
|
+
scope: "device",
|
|
75262
|
+
noun: t("Running", "In funzione"),
|
|
75263
|
+
state: [{
|
|
75264
|
+
kind: "boolean",
|
|
75265
|
+
field: "running",
|
|
75266
|
+
label: t("Running", "In funzione"),
|
|
75267
|
+
whenTrue: t("When {device} starts", "Quando {device} inizia"),
|
|
75268
|
+
whenFalse: t("When {device} finishes", "Quando {device} finisce"),
|
|
75269
|
+
icon: "play"
|
|
75270
|
+
}],
|
|
75271
|
+
events: {
|
|
75272
|
+
onStarted: {
|
|
75273
|
+
category: EventCategory.RunningStarted,
|
|
75274
|
+
label: t("Started running", "Ha iniziato a funzionare"),
|
|
75275
|
+
phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
|
|
75276
|
+
icon: "play"
|
|
75277
|
+
},
|
|
75278
|
+
onFinished: {
|
|
75279
|
+
category: EventCategory.RunningFinished,
|
|
75280
|
+
label: t("Finished", "Ha finito"),
|
|
75281
|
+
phrase: t("When {device} finishes", "Quando {device} finisce"),
|
|
75282
|
+
icon: "square"
|
|
75283
|
+
}
|
|
75284
|
+
}
|
|
75285
|
+
},
|
|
75214
75286
|
update: {
|
|
75215
75287
|
scope: "device",
|
|
75216
75288
|
noun: t("Firmware update", "Aggiornamento firmware"),
|
|
@@ -78751,6 +78823,11 @@ Object.freeze({
|
|
|
78751
78823
|
form: "single",
|
|
78752
78824
|
optional: true
|
|
78753
78825
|
}],
|
|
78826
|
+
"runningState.getStatus": [{
|
|
78827
|
+
name: "deviceId",
|
|
78828
|
+
form: "single",
|
|
78829
|
+
optional: false
|
|
78830
|
+
}],
|
|
78754
78831
|
"sceneMonitor.captureReference": [{
|
|
78755
78832
|
name: "deviceId",
|
|
78756
78833
|
form: "single",
|
|
@@ -79249,6 +79326,96 @@ Object.freeze({
|
|
|
79249
79326
|
"smtp-provider": "email"
|
|
79250
79327
|
});
|
|
79251
79328
|
DeviceType.Camera;
|
|
79329
|
+
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;
|
|
79330
|
+
/**
|
|
79331
|
+
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
79332
|
+
* `z.infer`, they do not restate the shape.
|
|
79333
|
+
*/
|
|
79334
|
+
var OverrideSourceSchema = object({
|
|
79335
|
+
addonId: string().min(1),
|
|
79336
|
+
stableId: string().min(1),
|
|
79337
|
+
cap: string().min(1),
|
|
79338
|
+
fieldPath: string().min(1)
|
|
79339
|
+
});
|
|
79340
|
+
var CustomizeTransformDraftSchema = discriminatedUnion("kind", [
|
|
79341
|
+
object({ kind: literal("identity") }),
|
|
79342
|
+
object({ kind: literal("invert") }),
|
|
79343
|
+
object({
|
|
79344
|
+
kind: literal("threshold"),
|
|
79345
|
+
comparison: _enum(["gte", "lte"]),
|
|
79346
|
+
threshold: number(),
|
|
79347
|
+
startDwellMs: number().nonnegative(),
|
|
79348
|
+
stopDwellMs: number().nonnegative()
|
|
79349
|
+
}),
|
|
79350
|
+
object({
|
|
79351
|
+
kind: literal("linear"),
|
|
79352
|
+
scale: number(),
|
|
79353
|
+
offset: number(),
|
|
79354
|
+
clampMin: number().optional(),
|
|
79355
|
+
clampMax: number().optional()
|
|
79356
|
+
}),
|
|
79357
|
+
object({
|
|
79358
|
+
kind: literal("enum-map"),
|
|
79359
|
+
mapping: record(string(), string().nullable())
|
|
79360
|
+
}),
|
|
79361
|
+
object({ kind: literal("number") })
|
|
79362
|
+
]);
|
|
79363
|
+
var ScalarOverrideDraftSchema = object({
|
|
79364
|
+
kind: literal("scalar"),
|
|
79365
|
+
cap: string().min(1),
|
|
79366
|
+
targetId: string().min(1),
|
|
79367
|
+
source: OverrideSourceSchema,
|
|
79368
|
+
transform: CustomizeTransformDraftSchema
|
|
79369
|
+
});
|
|
79370
|
+
var KeyedArrayOverrideDraftSchema = object({
|
|
79371
|
+
kind: literal("keyedArray"),
|
|
79372
|
+
cap: string().min(1),
|
|
79373
|
+
targetId: string().min(1),
|
|
79374
|
+
key: string().min(1),
|
|
79375
|
+
label: string().min(1),
|
|
79376
|
+
fieldPath: string().min(1),
|
|
79377
|
+
source: OverrideSourceSchema,
|
|
79378
|
+
transform: CustomizeTransformDraftSchema
|
|
79379
|
+
});
|
|
79380
|
+
var PulseOverrideDraftSchema = object({
|
|
79381
|
+
kind: literal("pulse"),
|
|
79382
|
+
cap: string().min(1),
|
|
79383
|
+
targetId: string().min(1),
|
|
79384
|
+
enabled: boolean(),
|
|
79385
|
+
debounceMs: number().nonnegative(),
|
|
79386
|
+
sources: array(OverrideSourceSchema).min(1)
|
|
79387
|
+
});
|
|
79388
|
+
var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
|
|
79389
|
+
"in-addition",
|
|
79390
|
+
"confirm",
|
|
79391
|
+
"replace"
|
|
79392
|
+
]).optional() });
|
|
79393
|
+
discriminatedUnion("kind", [
|
|
79394
|
+
ScalarOverrideDraftSchema,
|
|
79395
|
+
KeyedArrayOverrideDraftSchema,
|
|
79396
|
+
PulseOverrideDraftSchema,
|
|
79397
|
+
object({
|
|
79398
|
+
kind: literal("span"),
|
|
79399
|
+
cap: string().min(1),
|
|
79400
|
+
targetId: string().min(1),
|
|
79401
|
+
timeoutMs: number().nonnegative(),
|
|
79402
|
+
cooldownMs: number().nonnegative().optional(),
|
|
79403
|
+
sources: array(SpanSourceDraftSchema)
|
|
79404
|
+
})
|
|
79405
|
+
]);
|
|
79406
|
+
object({
|
|
79407
|
+
targetId: string().min(1),
|
|
79408
|
+
configured: boolean(),
|
|
79409
|
+
source: _enum(["native", "assigned"]),
|
|
79410
|
+
state: _enum([
|
|
79411
|
+
"active",
|
|
79412
|
+
"stale",
|
|
79413
|
+
"released",
|
|
79414
|
+
"unavailable"
|
|
79415
|
+
]),
|
|
79416
|
+
reason: string().nullable()
|
|
79417
|
+
});
|
|
79418
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
79252
79419
|
var G711_SCALE_CORRECTION_DB = {
|
|
79253
79420
|
PCMU: 20 * Math.log10(4),
|
|
79254
79421
|
PCMA: 20 * Math.log10(8)
|
|
@@ -79301,40 +79468,7 @@ var NC_AUDIO_DEFAULTS = {
|
|
|
79301
79468
|
samplingSeconds: 10
|
|
79302
79469
|
};
|
|
79303
79470
|
new Set(["devices", "classes"]);
|
|
79304
|
-
|
|
79305
|
-
* WHICH narrowing filter speaks about WHICH system-event kind — one predicate,
|
|
79306
|
-
* consumed by the rule ENGINE and by every rule EDITOR.
|
|
79307
|
-
*
|
|
79308
|
-
* ── The failure this file exists for ───────────────────────────────────────
|
|
79309
|
-
* `NcSystemEventConditionSchema` carries four optional narrowing lists
|
|
79310
|
-
* (`deviceIds`, `deviceTypes`, `nodeIds`, `packageNames`) beside a required
|
|
79311
|
-
* `kinds` gate. They are not four filters over one vocabulary: each belongs to
|
|
79312
|
-
* a FAMILY of kinds and is meaningless outside it. A node going away has no
|
|
79313
|
-
* device type; a completed export has no package; `stream-offline` deliberately
|
|
79314
|
-
* carries no device type at all (a stream belongs to a camera by construction).
|
|
79315
|
-
*
|
|
79316
|
-
* The engine applied all four to every kind, so a filter from one family failed
|
|
79317
|
-
* a kind from another family CLOSED. The operator's live rule "Eventi di
|
|
79318
|
-
* sistema" selected eleven kinds and set `deviceTypes: ['camera']` — the only
|
|
79319
|
-
* way to say "only my cameras" about the two liveness kinds — and NINE of the
|
|
79320
|
-
* eleven silently stopped being deliverable. Four days of history contained
|
|
79321
|
-
* `device-online` and `device-offline` and nothing else, across a window in
|
|
79322
|
-
* which agents were restarted and addons were updated.
|
|
79323
|
-
*
|
|
79324
|
-
* Both editors already computed this scoping, to decide which filter boxes to
|
|
79325
|
-
* render; the cap's own docblock already promised it ("Narrow a `device-*` kind
|
|
79326
|
-
* to these device TYPES"). Only the engine disagreed, and it disagreed in the
|
|
79327
|
-
* destructive direction. So the rule is stated ONCE, here, and the engine and
|
|
79328
|
-
* the editors are readers of it rather than three independent authors.
|
|
79329
|
-
*
|
|
79330
|
-
* ── The direction ─────────────────────────────────────────────────────────
|
|
79331
|
-
* Out of family ⇒ the filter is IGNORED, never fail-closed. An editor that
|
|
79332
|
-
* hides a box has already told the operator this filter does not speak about
|
|
79333
|
-
* these kinds, so honouring it as an exclusion contradicts the only
|
|
79334
|
-
* explanation the operator was ever given. Inside its family the filter still
|
|
79335
|
-
* narrows, and still fails CLOSED on a subject that cannot produce the identity
|
|
79336
|
-
* it tests (a device the mirror cannot name is not evidence of a camera).
|
|
79337
|
-
*/
|
|
79471
|
+
new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
79338
79472
|
/**
|
|
79339
79473
|
* Every filter, for the callers that must cover all of them (guards, tests).
|
|
79340
79474
|
*
|
|
@@ -79360,9 +79494,6 @@ new Map(Object.entries({
|
|
|
79360
79494
|
"device-battery-normal": "device-events",
|
|
79361
79495
|
"device-consumable-low": "device-events",
|
|
79362
79496
|
"device-consumable-normal": "device-events",
|
|
79363
|
-
"device-tank-low": "device-events",
|
|
79364
|
-
"device-tank-full": "device-events",
|
|
79365
|
-
"device-tank-normal": "device-events",
|
|
79366
79497
|
"stream-online": "device-events",
|
|
79367
79498
|
"stream-offline": "device-events",
|
|
79368
79499
|
"detection-blind": "device-events",
|
|
@@ -79439,16 +79570,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79439
79570
|
label: "Consumables",
|
|
79440
79571
|
kinds: ["device-consumable-low", "device-consumable-normal"]
|
|
79441
79572
|
},
|
|
79442
|
-
{
|
|
79443
|
-
id: "tanks",
|
|
79444
|
-
family: "device-events",
|
|
79445
|
-
label: "Tanks",
|
|
79446
|
-
kinds: [
|
|
79447
|
-
"device-tank-low",
|
|
79448
|
-
"device-tank-full",
|
|
79449
|
-
"device-tank-normal"
|
|
79450
|
-
]
|
|
79451
|
-
},
|
|
79452
79573
|
{
|
|
79453
79574
|
id: "detection-blind",
|
|
79454
79575
|
family: "device-events",
|
|
@@ -79606,11 +79727,6 @@ var RULE_BODY_ONLY = ["body"];
|
|
|
79606
79727
|
var RULE_TEXT = ["title", "body"];
|
|
79607
79728
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
79608
79729
|
var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
|
|
79609
|
-
var TANK = [
|
|
79610
|
-
"device-tank-low",
|
|
79611
|
-
"device-tank-full",
|
|
79612
|
-
"device-tank-normal"
|
|
79613
|
-
];
|
|
79614
79730
|
var ALERT_EPISODE = [
|
|
79615
79731
|
"alert-critical",
|
|
79616
79732
|
"alert-error",
|
|
@@ -79642,7 +79758,6 @@ var DEVICE_EVENTS = [
|
|
|
79642
79758
|
"device-enabled",
|
|
79643
79759
|
...BATTERY,
|
|
79644
79760
|
...CONSUMABLE,
|
|
79645
|
-
...TANK,
|
|
79646
79761
|
"stream-online",
|
|
79647
79762
|
"stream-offline",
|
|
79648
79763
|
"detection-blind",
|
|
@@ -79688,12 +79803,6 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
79688
79803
|
example: "Robot — filter 10 %",
|
|
79689
79804
|
kinds: CONSUMABLE
|
|
79690
79805
|
},
|
|
79691
|
-
{
|
|
79692
|
-
name: "summaryTanks",
|
|
79693
|
-
label: "Summary: tanks",
|
|
79694
|
-
example: "Robot — clean water low",
|
|
79695
|
-
kinds: TANK
|
|
79696
|
-
},
|
|
79697
79806
|
{
|
|
79698
79807
|
name: "summaryDetection",
|
|
79699
79808
|
label: "Summary: cameras detecting nothing",
|
|
@@ -79809,8 +79918,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
79809
79918
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
79810
79919
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
79811
79920
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
79812
|
-
([...RULE_TEXT], [...CONSUMABLE
|
|
79813
|
-
([...RULE_TEXT], [...TANK]),
|
|
79921
|
+
([...RULE_TEXT], [...CONSUMABLE]),
|
|
79814
79922
|
[...RULE_TEXT],
|
|
79815
79923
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
79816
79924
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
@@ -79914,15 +80022,6 @@ new Map([
|
|
|
79914
80022
|
snapshotLabel: "Consumables low now",
|
|
79915
80023
|
snapshotSection: "consumables"
|
|
79916
80024
|
},
|
|
79917
|
-
{
|
|
79918
|
-
id: "tanks",
|
|
79919
|
-
family: "device-events",
|
|
79920
|
-
label: "Tanks (low or full / back to normal)",
|
|
79921
|
-
bad: ["device-tank-low", "device-tank-full"],
|
|
79922
|
-
recovery: ["device-tank-normal"],
|
|
79923
|
-
snapshotLabel: "Tanks low or full now",
|
|
79924
|
-
snapshotSection: "tanks"
|
|
79925
|
-
},
|
|
79926
80025
|
{
|
|
79927
80026
|
id: "motion-noise",
|
|
79928
80027
|
family: "device-events",
|