@camstack/addon-model-studio 1.1.284 → 1.1.286
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/THIRD_PARTY_MODELS.md +2 -2
- package/dist/{MotionZonesSettings-B2mJ8oko.mjs → MotionZonesSettings-Bh-KUgfj.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-D_VpMef0.mjs → PrivacyMaskSettings-BbLJKLoV.mjs} +4 -4
- package/dist/{SceneMonitorEditor-A0lWa-Hl.mjs → SceneMonitorEditor-qruDlUP9.mjs} +3 -3
- package/dist/_stub.js +12 -12
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page--OwLITGY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CdxolZWr.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BliJpcti.mjs +26 -0
- package/dist/{hostInit-DYym-P1a.mjs → hostInit-C7HoBhCX.mjs} +3 -3
- package/dist/model-studio.addon.js +114 -67
- package/dist/model-studio.addon.mjs +114 -67
- package/dist/{player-overlays-BCBBEl1N.mjs → player-overlays-BFVZeg7l.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-BFb9cu5b.mjs → responsive-DCC2zJt3.mjs} +1 -1
- package/dist/{scene-monitor-copy-Cwn4dXms.mjs → scene-monitor-copy-gZOBiDdj.mjs} +1 -1
- package/dist/{square-BbRYJv-r.mjs → square-_l-jB_AO.mjs} +1 -1
- package/dist/{trash-2-DrglU1vc.mjs → trash-2-DOwb-qnd.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BiFMkYv1.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BLWi3oEJ.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-D6d6JMl7.mjs +0 -26
|
@@ -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-BfJwUd2S.mjs
|
|
398
398
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
399
399
|
EventCategory["SystemBoot"] = "system.boot";
|
|
400
400
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -711,6 +711,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
711
711
|
*/
|
|
712
712
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
713
713
|
/**
|
|
714
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
715
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
716
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
717
|
+
* {@link PipelineMotionCalm}.
|
|
718
|
+
*/
|
|
719
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
720
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
721
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
722
|
+
/**
|
|
714
723
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
715
724
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
716
725
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5817,7 +5826,7 @@ var ZodIssueCode = {
|
|
|
5817
5826
|
var ZodFirstPartyTypeKind;
|
|
5818
5827
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5819
5828
|
//#endregion
|
|
5820
|
-
//#region ../types/dist/sleep-
|
|
5829
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5821
5830
|
/**
|
|
5822
5831
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5823
5832
|
* window to float samples (D455).
|
|
@@ -8279,7 +8288,7 @@ var EntryDescriptorSchema = object({
|
|
|
8279
8288
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
8280
8289
|
fields: record(string(), unknown())
|
|
8281
8290
|
}).strict();
|
|
8282
|
-
/** What crosses the wire
|
|
8291
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
8283
8292
|
var RecordKindDeclarationSchema = object({
|
|
8284
8293
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
8285
8294
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8298,14 +8307,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8298
8307
|
secretPaths: array(string().min(1)).default([]),
|
|
8299
8308
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8300
8309
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8301
|
-
/**
|
|
8302
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8303
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8304
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8305
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8306
|
-
* removal still sends it. Never set it.
|
|
8307
|
-
*/
|
|
8308
|
-
adoptsFrom: string().min(1).optional(),
|
|
8309
8310
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8310
8311
|
transactFamily: string().min(1).optional(),
|
|
8311
8312
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -13189,17 +13190,6 @@ object({
|
|
|
13189
13190
|
createdAt: number(),
|
|
13190
13191
|
updatedAt: number()
|
|
13191
13192
|
});
|
|
13192
|
-
object({
|
|
13193
|
-
id: string(),
|
|
13194
|
-
label: string(),
|
|
13195
|
-
isAdmin: boolean().default(false),
|
|
13196
|
-
allowedProviders: AllowedProviderSchema,
|
|
13197
|
-
allowedDevices: AllowedDevicesSchema,
|
|
13198
|
-
tokenHash: string(),
|
|
13199
|
-
tokenPrefix: string(),
|
|
13200
|
-
createdAt: number(),
|
|
13201
|
-
lastUsedAt: number().optional()
|
|
13202
|
-
});
|
|
13203
13193
|
object({
|
|
13204
13194
|
id: string(),
|
|
13205
13195
|
userId: string(),
|
|
@@ -17120,16 +17110,36 @@ var RecordKindStateSchema = _enum([
|
|
|
17120
17110
|
var DeclareKindResultSchema = object({
|
|
17121
17111
|
kindId: number().int(),
|
|
17122
17112
|
state: RecordKindStateSchema,
|
|
17123
|
-
createdIndexes: array(string())
|
|
17124
|
-
/**
|
|
17125
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
17126
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
17127
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
17128
|
-
*/
|
|
17129
|
-
adoptionPending: _null()
|
|
17113
|
+
createdIndexes: array(string())
|
|
17130
17114
|
});
|
|
17131
17115
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
17132
17116
|
var SecretRefsList = array(string());
|
|
17117
|
+
/**
|
|
17118
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
17119
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
17120
|
+
*/
|
|
17121
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
17122
|
+
object({
|
|
17123
|
+
op: literal("put"),
|
|
17124
|
+
kind: RecordKindNameSchema,
|
|
17125
|
+
record: RecordInputSchema,
|
|
17126
|
+
ifRev: number().int().min(0).optional()
|
|
17127
|
+
}),
|
|
17128
|
+
object({
|
|
17129
|
+
op: literal("patch"),
|
|
17130
|
+
kind: RecordKindNameSchema,
|
|
17131
|
+
id: RecordIdSchema,
|
|
17132
|
+
data: RecordBodySchema,
|
|
17133
|
+
at: number().int().nullable().optional(),
|
|
17134
|
+
expiresAt: number().int().nullable().optional(),
|
|
17135
|
+
ifRev: number().int().min(1).optional()
|
|
17136
|
+
}),
|
|
17137
|
+
object({
|
|
17138
|
+
op: literal("delete"),
|
|
17139
|
+
kind: RecordKindNameSchema,
|
|
17140
|
+
id: RecordIdSchema
|
|
17141
|
+
})
|
|
17142
|
+
]);
|
|
17133
17143
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
17134
17144
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
17135
17145
|
kind: "mutation",
|
|
@@ -17236,6 +17246,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
17236
17246
|
}), {
|
|
17237
17247
|
kind: "mutation",
|
|
17238
17248
|
auth: "admin"
|
|
17249
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
17250
|
+
results: array(object({
|
|
17251
|
+
rev: number().int().nullable(),
|
|
17252
|
+
deleted: boolean()
|
|
17253
|
+
})),
|
|
17254
|
+
releasedRefs: SecretRefsList,
|
|
17255
|
+
secretRefs: SecretRefsList
|
|
17256
|
+
}), {
|
|
17257
|
+
kind: "mutation",
|
|
17258
|
+
auth: "admin"
|
|
17239
17259
|
}), method(object({
|
|
17240
17260
|
deviceId: number().int(),
|
|
17241
17261
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42600,9 +42620,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42600
42620
|
"node-updating",
|
|
42601
42621
|
"node-inference-unavailable",
|
|
42602
42622
|
"detection-blind",
|
|
42623
|
+
"motion-noisy",
|
|
42624
|
+
"motion-calm",
|
|
42603
42625
|
"recording-stalled",
|
|
42604
42626
|
"recording-healthy",
|
|
42605
42627
|
"recording-degraded",
|
|
42628
|
+
"device-attention-required",
|
|
42629
|
+
"device-attention-resolved",
|
|
42606
42630
|
"storage-location-low",
|
|
42607
42631
|
"storage-location-critical",
|
|
42608
42632
|
"storage-location-ok",
|
|
@@ -48163,7 +48187,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
48163
48187
|
modelId: string()
|
|
48164
48188
|
}),
|
|
48165
48189
|
object({ kind: literal("cpu-device") }),
|
|
48166
|
-
object({ kind: literal("coral-untouched") }),
|
|
48167
48190
|
object({ kind: literal("device-disabled") }),
|
|
48168
48191
|
object({ kind: literal("device-unavailable") }),
|
|
48169
48192
|
object({ kind: literal("node-offline") }),
|
|
@@ -48261,11 +48284,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
|
|
|
48261
48284
|
kind: literal("detector-store-unreadable"),
|
|
48262
48285
|
error: string()
|
|
48263
48286
|
}),
|
|
48264
|
-
object({
|
|
48265
|
-
kind: literal("coral-enabled"),
|
|
48266
|
-
nodeId: string(),
|
|
48267
|
-
deviceKey: string()
|
|
48268
|
-
}),
|
|
48269
48287
|
object({
|
|
48270
48288
|
kind: literal("custom-pin-kept"),
|
|
48271
48289
|
nodeId: string(),
|
|
@@ -55059,6 +55077,16 @@ object({
|
|
|
55059
55077
|
powerState: string().nullable(),
|
|
55060
55078
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55061
55079
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55080
|
+
/**
|
|
55081
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55082
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55083
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55084
|
+
*/
|
|
55085
|
+
filterCleaningDue: boolean().nullable(),
|
|
55086
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55087
|
+
machineCareDue: boolean().nullable(),
|
|
55088
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55089
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55062
55090
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55063
55091
|
halfLoad: boolean().nullable(),
|
|
55064
55092
|
hygienePlus: boolean().nullable(),
|
|
@@ -61676,16 +61704,6 @@ var UpdateUserInputSchema = object({
|
|
|
61676
61704
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61677
61705
|
scopes: array(TokenScopeSchema).optional()
|
|
61678
61706
|
});
|
|
61679
|
-
var ApiKeySummarySchema = object({
|
|
61680
|
-
id: string(),
|
|
61681
|
-
label: string(),
|
|
61682
|
-
isAdmin: boolean().default(false),
|
|
61683
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
61684
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61685
|
-
tokenPrefix: string(),
|
|
61686
|
-
createdAt: number(),
|
|
61687
|
-
lastUsedAt: number().optional()
|
|
61688
|
-
});
|
|
61689
61707
|
var OauthSessionSummarySchema = object({
|
|
61690
61708
|
id: string(),
|
|
61691
61709
|
userId: string(),
|
|
@@ -61707,8 +61725,7 @@ var TotpStatusSchema = object({
|
|
|
61707
61725
|
confirmedAt: number().nullable()
|
|
61708
61726
|
});
|
|
61709
61727
|
/**
|
|
61710
|
-
* user-management — singleton capability for user accounts
|
|
61711
|
-
* legacy API-key rows.
|
|
61728
|
+
* user-management — singleton capability for user accounts.
|
|
61712
61729
|
*
|
|
61713
61730
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
61714
61731
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -61764,10 +61781,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61764
61781
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
61765
61782
|
kind: "mutation",
|
|
61766
61783
|
access: "view"
|
|
61767
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
61768
|
-
kind: "mutation",
|
|
61769
|
-
auth: "admin",
|
|
61770
|
-
access: "delete"
|
|
61771
61784
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
61772
61785
|
kind: "mutation",
|
|
61773
61786
|
auth: "admin",
|
|
@@ -69378,6 +69391,12 @@ Object.freeze({
|
|
|
69378
69391
|
addonId: null,
|
|
69379
69392
|
access: "view"
|
|
69380
69393
|
},
|
|
69394
|
+
"records.transact": {
|
|
69395
|
+
capName: "records",
|
|
69396
|
+
capScope: "system",
|
|
69397
|
+
addonId: null,
|
|
69398
|
+
access: "create"
|
|
69399
|
+
},
|
|
69381
69400
|
"sceneMonitor.captureReference": {
|
|
69382
69401
|
capName: "scene-monitor",
|
|
69383
69402
|
capScope: "device",
|
|
@@ -70710,12 +70729,6 @@ Object.freeze({
|
|
|
70710
70729
|
addonId: null,
|
|
70711
70730
|
access: "view"
|
|
70712
70731
|
},
|
|
70713
|
-
"userManagement.listApiKeys": {
|
|
70714
|
-
capName: "user-management",
|
|
70715
|
-
capScope: "system",
|
|
70716
|
-
addonId: null,
|
|
70717
|
-
access: "view"
|
|
70718
|
-
},
|
|
70719
70732
|
"userManagement.listExternalIdentities": {
|
|
70720
70733
|
capName: "user-management",
|
|
70721
70734
|
capScope: "system",
|
|
@@ -70770,12 +70783,6 @@ Object.freeze({
|
|
|
70770
70783
|
addonId: null,
|
|
70771
70784
|
access: "create"
|
|
70772
70785
|
},
|
|
70773
|
-
"userManagement.revokeApiKey": {
|
|
70774
|
-
capName: "user-management",
|
|
70775
|
-
capScope: "system",
|
|
70776
|
-
addonId: null,
|
|
70777
|
-
access: "delete"
|
|
70778
|
-
},
|
|
70779
70786
|
"userManagement.revokeOauthSession": {
|
|
70780
70787
|
capName: "user-management",
|
|
70781
70788
|
capScope: "system",
|
|
@@ -74140,9 +74147,13 @@ new Map(Object.entries({
|
|
|
74140
74147
|
"stream-online": "device-events",
|
|
74141
74148
|
"stream-offline": "device-events",
|
|
74142
74149
|
"detection-blind": "device-events",
|
|
74150
|
+
"motion-noisy": "device-events",
|
|
74151
|
+
"motion-calm": "device-events",
|
|
74143
74152
|
"recording-stalled": "device-events",
|
|
74144
74153
|
"recording-healthy": "device-events",
|
|
74145
74154
|
"recording-degraded": "device-events",
|
|
74155
|
+
"device-attention-required": "device-events",
|
|
74156
|
+
"device-attention-resolved": "device-events",
|
|
74146
74157
|
"node-online": "system",
|
|
74147
74158
|
"node-offline": "system",
|
|
74148
74159
|
"node-restarting": "system",
|
|
@@ -74225,6 +74236,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74225
74236
|
label: "Detecting nothing",
|
|
74226
74237
|
kinds: ["detection-blind"]
|
|
74227
74238
|
},
|
|
74239
|
+
{
|
|
74240
|
+
id: "motion-noise",
|
|
74241
|
+
family: "device-events",
|
|
74242
|
+
label: "Motion without a subject",
|
|
74243
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
74244
|
+
},
|
|
74228
74245
|
{
|
|
74229
74246
|
id: "recording",
|
|
74230
74247
|
family: "device-events",
|
|
@@ -74235,6 +74252,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74235
74252
|
"recording-degraded"
|
|
74236
74253
|
]
|
|
74237
74254
|
},
|
|
74255
|
+
{
|
|
74256
|
+
id: "device-attention",
|
|
74257
|
+
family: "device-events",
|
|
74258
|
+
label: "Needs attention",
|
|
74259
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
74260
|
+
},
|
|
74238
74261
|
{
|
|
74239
74262
|
id: "nodes",
|
|
74240
74263
|
family: "system",
|
|
@@ -74374,6 +74397,7 @@ var ALERT_EPISODE = [
|
|
|
74374
74397
|
"alert-error",
|
|
74375
74398
|
"alert-critical-resolved"
|
|
74376
74399
|
];
|
|
74400
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
74377
74401
|
var UPDATES = [
|
|
74378
74402
|
"addon-update-available",
|
|
74379
74403
|
"server-update-available",
|
|
@@ -74403,9 +74427,12 @@ var DEVICE_EVENTS = [
|
|
|
74403
74427
|
"stream-online",
|
|
74404
74428
|
"stream-offline",
|
|
74405
74429
|
"detection-blind",
|
|
74430
|
+
"motion-noisy",
|
|
74431
|
+
"motion-calm",
|
|
74406
74432
|
"recording-stalled",
|
|
74407
74433
|
"recording-healthy",
|
|
74408
74434
|
"recording-degraded",
|
|
74435
|
+
...DEVICE_ATTENTION,
|
|
74409
74436
|
...ALARM
|
|
74410
74437
|
];
|
|
74411
74438
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -74573,7 +74600,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
74573
74600
|
[...RULE_TEXT],
|
|
74574
74601
|
[...RULE_TEXT],
|
|
74575
74602
|
[...RULE_TEXT],
|
|
74576
|
-
|
|
74603
|
+
[...RULE_TEXT],
|
|
74604
|
+
[...RULE_TEXT],
|
|
74605
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74577
74606
|
[...RULE_TEXT],
|
|
74578
74607
|
[...RULE_TEXT],
|
|
74579
74608
|
[...RULE_TEXT],
|
|
@@ -74595,11 +74624,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
74595
74624
|
[...RULE_TEXT],
|
|
74596
74625
|
[...RULE_TEXT],
|
|
74597
74626
|
[...RULE_TEXT],
|
|
74627
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74598
74628
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74629
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74599
74630
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74600
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74601
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74602
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74631
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74603
74632
|
[...RULE_TEXT],
|
|
74604
74633
|
[...RULE_TEXT],
|
|
74605
74634
|
[...RULE_TEXT],
|
|
@@ -74675,6 +74704,15 @@ new Map([
|
|
|
74675
74704
|
snapshotLabel: "Tanks low or full now",
|
|
74676
74705
|
snapshotSection: "tanks"
|
|
74677
74706
|
},
|
|
74707
|
+
{
|
|
74708
|
+
id: "motion-noise",
|
|
74709
|
+
family: "device-events",
|
|
74710
|
+
label: "Motion without a subject (constant / calm again)",
|
|
74711
|
+
bad: ["motion-noisy"],
|
|
74712
|
+
recovery: ["motion-calm"],
|
|
74713
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
74714
|
+
snapshotSection: null
|
|
74715
|
+
},
|
|
74678
74716
|
{
|
|
74679
74717
|
id: "recording-health",
|
|
74680
74718
|
family: "device-events",
|
|
@@ -74684,6 +74722,15 @@ new Map([
|
|
|
74684
74722
|
snapshotLabel: "Recordings stalled now",
|
|
74685
74723
|
snapshotSection: null
|
|
74686
74724
|
},
|
|
74725
|
+
{
|
|
74726
|
+
id: "device-attention",
|
|
74727
|
+
family: "device-events",
|
|
74728
|
+
label: "Device needs attention (raised / resolved)",
|
|
74729
|
+
bad: ["device-attention-required"],
|
|
74730
|
+
recovery: ["device-attention-resolved"],
|
|
74731
|
+
snapshotLabel: "Devices needing attention now",
|
|
74732
|
+
snapshotSection: null
|
|
74733
|
+
},
|
|
74687
74734
|
{
|
|
74688
74735
|
id: "node-connectivity",
|
|
74689
74736
|
family: "system",
|