@camstack/addon-training 0.1.71 → 0.1.72
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-Dt0onEfE.mjs → MotionZonesSettings-DtrBEodK.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-IZw8aizG.mjs → PrivacyMaskSettings-DMvD-Aoa.mjs} +2 -2
- package/dist/{SceneMonitorEditor-DRNl4Z9L.mjs → SceneMonitorEditor-DlaZqKNk.mjs} +1 -1
- package/dist/_stub.js +14 -14
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DeZy91ng.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-CR71IyGN.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B4oJE-uP.mjs +26 -0
- package/dist/{dist-BGiIe7vr.mjs → dist-Ch3aUw2u.mjs} +114 -61
- package/dist/{dist-C6e-Vj0G.js → dist-F0HQ_GTW.js} +114 -61
- package/dist/{hostInit-_UE3r-xp.mjs → hostInit-CqN7AHWD.mjs} +3 -3
- 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-V4ormuPy.mjs → player-overlays-_18EagGF.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-CEGSFms4.mjs → responsive-pyVT1YFE.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-RBrWHo-S.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-qU7q9e7k.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-DQ4uF3R4.mjs +0 -26
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "node:crypto";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -316,6 +316,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
316
316
|
*/
|
|
317
317
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
318
318
|
/**
|
|
319
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
320
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
321
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
322
|
+
* {@link PipelineMotionCalm}.
|
|
323
|
+
*/
|
|
324
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
325
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
326
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
327
|
+
/**
|
|
319
328
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
320
329
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
321
330
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5555,7 +5564,7 @@ var ZodIssueCode = {
|
|
|
5555
5564
|
var ZodFirstPartyTypeKind;
|
|
5556
5565
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5557
5566
|
//#endregion
|
|
5558
|
-
//#region ../types/dist/sleep-
|
|
5567
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5559
5568
|
/**
|
|
5560
5569
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5561
5570
|
* window to float samples (D455).
|
|
@@ -8147,7 +8156,7 @@ var EntryDescriptorSchema = object({
|
|
|
8147
8156
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
8148
8157
|
fields: record(string(), unknown())
|
|
8149
8158
|
}).strict();
|
|
8150
|
-
/** What crosses the wire
|
|
8159
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
8151
8160
|
var RecordKindDeclarationSchema = object({
|
|
8152
8161
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
8153
8162
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8166,14 +8175,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8166
8175
|
secretPaths: array(string().min(1)).default([]),
|
|
8167
8176
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8168
8177
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8169
|
-
/**
|
|
8170
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8171
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8172
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8173
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8174
|
-
* removal still sends it. Never set it.
|
|
8175
|
-
*/
|
|
8176
|
-
adoptsFrom: string().min(1).optional(),
|
|
8177
8178
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8178
8179
|
transactFamily: string().min(1).optional(),
|
|
8179
8180
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12973,17 +12974,6 @@ object({
|
|
|
12973
12974
|
createdAt: number(),
|
|
12974
12975
|
updatedAt: number()
|
|
12975
12976
|
});
|
|
12976
|
-
object({
|
|
12977
|
-
id: string(),
|
|
12978
|
-
label: string(),
|
|
12979
|
-
isAdmin: boolean().default(false),
|
|
12980
|
-
allowedProviders: AllowedProviderSchema,
|
|
12981
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12982
|
-
tokenHash: string(),
|
|
12983
|
-
tokenPrefix: string(),
|
|
12984
|
-
createdAt: number(),
|
|
12985
|
-
lastUsedAt: number().optional()
|
|
12986
|
-
});
|
|
12987
12977
|
object({
|
|
12988
12978
|
id: string(),
|
|
12989
12979
|
userId: string(),
|
|
@@ -16876,16 +16866,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16876
16866
|
var DeclareKindResultSchema = object({
|
|
16877
16867
|
kindId: number().int(),
|
|
16878
16868
|
state: RecordKindStateSchema,
|
|
16879
|
-
createdIndexes: array(string())
|
|
16880
|
-
/**
|
|
16881
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16882
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16883
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16884
|
-
*/
|
|
16885
|
-
adoptionPending: _null()
|
|
16869
|
+
createdIndexes: array(string())
|
|
16886
16870
|
});
|
|
16887
16871
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16888
16872
|
var SecretRefsList = array(string());
|
|
16873
|
+
/**
|
|
16874
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16875
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16876
|
+
*/
|
|
16877
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16878
|
+
object({
|
|
16879
|
+
op: literal("put"),
|
|
16880
|
+
kind: RecordKindNameSchema,
|
|
16881
|
+
record: RecordInputSchema,
|
|
16882
|
+
ifRev: number().int().min(0).optional()
|
|
16883
|
+
}),
|
|
16884
|
+
object({
|
|
16885
|
+
op: literal("patch"),
|
|
16886
|
+
kind: RecordKindNameSchema,
|
|
16887
|
+
id: RecordIdSchema,
|
|
16888
|
+
data: RecordBodySchema,
|
|
16889
|
+
at: number().int().nullable().optional(),
|
|
16890
|
+
expiresAt: number().int().nullable().optional(),
|
|
16891
|
+
ifRev: number().int().min(1).optional()
|
|
16892
|
+
}),
|
|
16893
|
+
object({
|
|
16894
|
+
op: literal("delete"),
|
|
16895
|
+
kind: RecordKindNameSchema,
|
|
16896
|
+
id: RecordIdSchema
|
|
16897
|
+
})
|
|
16898
|
+
]);
|
|
16889
16899
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16890
16900
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16891
16901
|
kind: "mutation",
|
|
@@ -16992,6 +17002,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16992
17002
|
}), {
|
|
16993
17003
|
kind: "mutation",
|
|
16994
17004
|
auth: "admin"
|
|
17005
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
17006
|
+
results: array(object({
|
|
17007
|
+
rev: number().int().nullable(),
|
|
17008
|
+
deleted: boolean()
|
|
17009
|
+
})),
|
|
17010
|
+
releasedRefs: SecretRefsList,
|
|
17011
|
+
secretRefs: SecretRefsList
|
|
17012
|
+
}), {
|
|
17013
|
+
kind: "mutation",
|
|
17014
|
+
auth: "admin"
|
|
16995
17015
|
}), method(object({
|
|
16996
17016
|
deviceId: number().int(),
|
|
16997
17017
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42350,9 +42370,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42350
42370
|
"node-updating",
|
|
42351
42371
|
"node-inference-unavailable",
|
|
42352
42372
|
"detection-blind",
|
|
42373
|
+
"motion-noisy",
|
|
42374
|
+
"motion-calm",
|
|
42353
42375
|
"recording-stalled",
|
|
42354
42376
|
"recording-healthy",
|
|
42355
42377
|
"recording-degraded",
|
|
42378
|
+
"device-attention-required",
|
|
42379
|
+
"device-attention-resolved",
|
|
42356
42380
|
"storage-location-low",
|
|
42357
42381
|
"storage-location-critical",
|
|
42358
42382
|
"storage-location-ok",
|
|
@@ -54809,6 +54833,16 @@ object({
|
|
|
54809
54833
|
powerState: string().nullable(),
|
|
54810
54834
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54811
54835
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54836
|
+
/**
|
|
54837
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54838
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
54839
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
54840
|
+
*/
|
|
54841
|
+
filterCleaningDue: boolean().nullable(),
|
|
54842
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
54843
|
+
machineCareDue: boolean().nullable(),
|
|
54844
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
54845
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
54812
54846
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
54813
54847
|
halfLoad: boolean().nullable(),
|
|
54814
54848
|
hygienePlus: boolean().nullable(),
|
|
@@ -61426,16 +61460,6 @@ var UpdateUserInputSchema = object({
|
|
|
61426
61460
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61427
61461
|
scopes: array(TokenScopeSchema).optional()
|
|
61428
61462
|
});
|
|
61429
|
-
var ApiKeySummarySchema = object({
|
|
61430
|
-
id: string(),
|
|
61431
|
-
label: string(),
|
|
61432
|
-
isAdmin: boolean().default(false),
|
|
61433
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
61434
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61435
|
-
tokenPrefix: string(),
|
|
61436
|
-
createdAt: number(),
|
|
61437
|
-
lastUsedAt: number().optional()
|
|
61438
|
-
});
|
|
61439
61463
|
var OauthSessionSummarySchema = object({
|
|
61440
61464
|
id: string(),
|
|
61441
61465
|
userId: string(),
|
|
@@ -61457,8 +61481,7 @@ var TotpStatusSchema = object({
|
|
|
61457
61481
|
confirmedAt: number().nullable()
|
|
61458
61482
|
});
|
|
61459
61483
|
/**
|
|
61460
|
-
* user-management — singleton capability for user accounts
|
|
61461
|
-
* legacy API-key rows.
|
|
61484
|
+
* user-management — singleton capability for user accounts.
|
|
61462
61485
|
*
|
|
61463
61486
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
61464
61487
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -61514,10 +61537,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61514
61537
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
61515
61538
|
kind: "mutation",
|
|
61516
61539
|
access: "view"
|
|
61517
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
61518
|
-
kind: "mutation",
|
|
61519
|
-
auth: "admin",
|
|
61520
|
-
access: "delete"
|
|
61521
61540
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
61522
61541
|
kind: "mutation",
|
|
61523
61542
|
auth: "admin",
|
|
@@ -69130,6 +69149,12 @@ Object.freeze({
|
|
|
69130
69149
|
addonId: null,
|
|
69131
69150
|
access: "view"
|
|
69132
69151
|
},
|
|
69152
|
+
"records.transact": {
|
|
69153
|
+
capName: "records",
|
|
69154
|
+
capScope: "system",
|
|
69155
|
+
addonId: null,
|
|
69156
|
+
access: "create"
|
|
69157
|
+
},
|
|
69133
69158
|
"sceneMonitor.captureReference": {
|
|
69134
69159
|
capName: "scene-monitor",
|
|
69135
69160
|
capScope: "device",
|
|
@@ -70462,12 +70487,6 @@ Object.freeze({
|
|
|
70462
70487
|
addonId: null,
|
|
70463
70488
|
access: "view"
|
|
70464
70489
|
},
|
|
70465
|
-
"userManagement.listApiKeys": {
|
|
70466
|
-
capName: "user-management",
|
|
70467
|
-
capScope: "system",
|
|
70468
|
-
addonId: null,
|
|
70469
|
-
access: "view"
|
|
70470
|
-
},
|
|
70471
70490
|
"userManagement.listExternalIdentities": {
|
|
70472
70491
|
capName: "user-management",
|
|
70473
70492
|
capScope: "system",
|
|
@@ -70522,12 +70541,6 @@ Object.freeze({
|
|
|
70522
70541
|
addonId: null,
|
|
70523
70542
|
access: "create"
|
|
70524
70543
|
},
|
|
70525
|
-
"userManagement.revokeApiKey": {
|
|
70526
|
-
capName: "user-management",
|
|
70527
|
-
capScope: "system",
|
|
70528
|
-
addonId: null,
|
|
70529
|
-
access: "delete"
|
|
70530
|
-
},
|
|
70531
70544
|
"userManagement.revokeOauthSession": {
|
|
70532
70545
|
capName: "user-management",
|
|
70533
70546
|
capScope: "system",
|
|
@@ -73892,9 +73905,13 @@ new Map(Object.entries({
|
|
|
73892
73905
|
"stream-online": "device-events",
|
|
73893
73906
|
"stream-offline": "device-events",
|
|
73894
73907
|
"detection-blind": "device-events",
|
|
73908
|
+
"motion-noisy": "device-events",
|
|
73909
|
+
"motion-calm": "device-events",
|
|
73895
73910
|
"recording-stalled": "device-events",
|
|
73896
73911
|
"recording-healthy": "device-events",
|
|
73897
73912
|
"recording-degraded": "device-events",
|
|
73913
|
+
"device-attention-required": "device-events",
|
|
73914
|
+
"device-attention-resolved": "device-events",
|
|
73898
73915
|
"node-online": "system",
|
|
73899
73916
|
"node-offline": "system",
|
|
73900
73917
|
"node-restarting": "system",
|
|
@@ -73977,6 +73994,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
73977
73994
|
label: "Detecting nothing",
|
|
73978
73995
|
kinds: ["detection-blind"]
|
|
73979
73996
|
},
|
|
73997
|
+
{
|
|
73998
|
+
id: "motion-noise",
|
|
73999
|
+
family: "device-events",
|
|
74000
|
+
label: "Motion without a subject",
|
|
74001
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
74002
|
+
},
|
|
73980
74003
|
{
|
|
73981
74004
|
id: "recording",
|
|
73982
74005
|
family: "device-events",
|
|
@@ -73987,6 +74010,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
73987
74010
|
"recording-degraded"
|
|
73988
74011
|
]
|
|
73989
74012
|
},
|
|
74013
|
+
{
|
|
74014
|
+
id: "device-attention",
|
|
74015
|
+
family: "device-events",
|
|
74016
|
+
label: "Needs attention",
|
|
74017
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
74018
|
+
},
|
|
73990
74019
|
{
|
|
73991
74020
|
id: "nodes",
|
|
73992
74021
|
family: "system",
|
|
@@ -74126,6 +74155,7 @@ var ALERT_EPISODE = [
|
|
|
74126
74155
|
"alert-error",
|
|
74127
74156
|
"alert-critical-resolved"
|
|
74128
74157
|
];
|
|
74158
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
74129
74159
|
var UPDATES = [
|
|
74130
74160
|
"addon-update-available",
|
|
74131
74161
|
"server-update-available",
|
|
@@ -74155,9 +74185,12 @@ var DEVICE_EVENTS = [
|
|
|
74155
74185
|
"stream-online",
|
|
74156
74186
|
"stream-offline",
|
|
74157
74187
|
"detection-blind",
|
|
74188
|
+
"motion-noisy",
|
|
74189
|
+
"motion-calm",
|
|
74158
74190
|
"recording-stalled",
|
|
74159
74191
|
"recording-healthy",
|
|
74160
74192
|
"recording-degraded",
|
|
74193
|
+
...DEVICE_ATTENTION,
|
|
74161
74194
|
...ALARM
|
|
74162
74195
|
];
|
|
74163
74196
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -74325,7 +74358,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
74325
74358
|
[...RULE_TEXT],
|
|
74326
74359
|
[...RULE_TEXT],
|
|
74327
74360
|
[...RULE_TEXT],
|
|
74328
|
-
|
|
74361
|
+
[...RULE_TEXT],
|
|
74362
|
+
[...RULE_TEXT],
|
|
74363
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74329
74364
|
[...RULE_TEXT],
|
|
74330
74365
|
[...RULE_TEXT],
|
|
74331
74366
|
[...RULE_TEXT],
|
|
@@ -74347,11 +74382,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
74347
74382
|
[...RULE_TEXT],
|
|
74348
74383
|
[...RULE_TEXT],
|
|
74349
74384
|
[...RULE_TEXT],
|
|
74385
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74350
74386
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74387
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74351
74388
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74352
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74353
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74354
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74389
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74355
74390
|
[...RULE_TEXT],
|
|
74356
74391
|
[...RULE_TEXT],
|
|
74357
74392
|
[...RULE_TEXT],
|
|
@@ -74427,6 +74462,15 @@ new Map([
|
|
|
74427
74462
|
snapshotLabel: "Tanks low or full now",
|
|
74428
74463
|
snapshotSection: "tanks"
|
|
74429
74464
|
},
|
|
74465
|
+
{
|
|
74466
|
+
id: "motion-noise",
|
|
74467
|
+
family: "device-events",
|
|
74468
|
+
label: "Motion without a subject (constant / calm again)",
|
|
74469
|
+
bad: ["motion-noisy"],
|
|
74470
|
+
recovery: ["motion-calm"],
|
|
74471
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
74472
|
+
snapshotSection: null
|
|
74473
|
+
},
|
|
74430
74474
|
{
|
|
74431
74475
|
id: "recording-health",
|
|
74432
74476
|
family: "device-events",
|
|
@@ -74436,6 +74480,15 @@ new Map([
|
|
|
74436
74480
|
snapshotLabel: "Recordings stalled now",
|
|
74437
74481
|
snapshotSection: null
|
|
74438
74482
|
},
|
|
74483
|
+
{
|
|
74484
|
+
id: "device-attention",
|
|
74485
|
+
family: "device-events",
|
|
74486
|
+
label: "Device needs attention (raised / resolved)",
|
|
74487
|
+
bad: ["device-attention-required"],
|
|
74488
|
+
recovery: ["device-attention-resolved"],
|
|
74489
|
+
snapshotLabel: "Devices needing attention now",
|
|
74490
|
+
snapshotSection: null
|
|
74491
|
+
},
|
|
74439
74492
|
{
|
|
74440
74493
|
id: "node-connectivity",
|
|
74441
74494
|
family: "system",
|