@camstack/addon-export-alexa 1.2.160 → 1.2.162

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.
@@ -34,7 +34,7 @@ let node_path = require("node:path");
34
34
  node_path = __toESM(node_path, 1);
35
35
  require("node:child_process");
36
36
  require("node:zlib");
37
- //#region ../types/dist/event-category-7pZEBmVg.mjs
37
+ //#region ../types/dist/event-category-BfJwUd2S.mjs
38
38
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
39
39
  EventCategory["SystemBoot"] = "system.boot";
40
40
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -351,6 +351,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
351
351
  */
352
352
  EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
353
353
  /**
354
+ * A camera's motion source has fired constantly with no subject for an hour
355
+ * (motion duty or session count over the bar, zero detections) — it is not
356
+ * blind, its motion zones or sensitivity want tuning (D907). Paired with
357
+ * {@link PipelineMotionCalm}.
358
+ */
359
+ EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
360
+ /** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
361
+ EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
362
+ /**
354
363
  * Per-camera pipeline config was mutated by the orchestrator
355
364
  * (3-level settings change via `setAgentAddonDefaults` /
356
365
  * `setCameraStepToggle` / `setCameraPipelineForAgent` or a
@@ -5457,7 +5466,7 @@ var ZodIssueCode = {
5457
5466
  var ZodFirstPartyTypeKind;
5458
5467
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5459
5468
  //#endregion
5460
- //#region ../types/dist/sleep-CueztlR1.mjs
5469
+ //#region ../types/dist/sleep-DJFUfKvA.mjs
5461
5470
  /**
5462
5471
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5463
5472
  * window to float samples (D455).
@@ -7919,7 +7928,7 @@ var EntryDescriptorSchema = object({
7919
7928
  /** JSON Schema of the entry body; `secret: true` marks a password field. */
7920
7929
  fields: record(string(), unknown())
7921
7930
  }).strict();
7922
- /** What crosses the wire and sits in the engine's catalog: JSON only, no Zod. */
7931
+ /** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
7923
7932
  var RecordKindDeclarationSchema = object({
7924
7933
  database: _enum(RECORD_DATABASES).default("settings"),
7925
7934
  class: _enum(RECORD_CLASSES),
@@ -7938,14 +7947,6 @@ var RecordKindDeclarationSchema = object({
7938
7947
  secretPaths: array(string().min(1)).default([]),
7939
7948
  /** The id key of each array that carries a secret (`{ headers: 'name' }`). */
7940
7949
  secretArrayKeys: record(string(), string()).default({}),
7941
- /**
7942
- * RETIRED (D900): the legacy table a kind adopted from during the records
7943
- * migration. Nothing declares it any more and nothing reads it; the schema
7944
- * still ACCEPTS it because the catalog rows the migration wrote carry it
7945
- * (an orphaned kind is never redeclared) and an addon built before the
7946
- * removal still sends it. Never set it.
7947
- */
7948
- adoptsFrom: string().min(1).optional(),
7949
7950
  /** Kinds that must agree through `transact` sit in one file under one family name. */
7950
7951
  transactFamily: string().min(1).optional(),
7951
7952
  entry: EntryDescriptorSchema.optional()
@@ -12905,17 +12906,6 @@ object({
12905
12906
  createdAt: number(),
12906
12907
  updatedAt: number()
12907
12908
  });
12908
- object({
12909
- id: string(),
12910
- label: string(),
12911
- isAdmin: boolean().default(false),
12912
- allowedProviders: AllowedProviderSchema,
12913
- allowedDevices: AllowedDevicesSchema,
12914
- tokenHash: string(),
12915
- tokenPrefix: string(),
12916
- createdAt: number(),
12917
- lastUsedAt: number().optional()
12918
- });
12919
12909
  object({
12920
12910
  id: string(),
12921
12911
  userId: string(),
@@ -16810,16 +16800,36 @@ var RecordKindStateSchema = _enum([
16810
16800
  var DeclareKindResultSchema = object({
16811
16801
  kindId: number().int(),
16812
16802
  state: RecordKindStateSchema,
16813
- createdIndexes: array(string()),
16814
- /**
16815
- * RETIRED (D900): always `null`. It carried the records-migration boot guard;
16816
- * it stays on the wire, null, because an addon built before the removal reads
16817
- * an ABSENT field as "adoption pending" and refuses to start.
16818
- */
16819
- adoptionPending: _null()
16803
+ createdIndexes: array(string())
16820
16804
  });
16821
16805
  /** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
16822
16806
  var SecretRefsList = array(string());
16807
+ /**
16808
+ * One op of a `transact`: the single-row writes, each on a kind of the caller.
16809
+ * All ops of one call share ONE database file and ONE `transactFamily`.
16810
+ */
16811
+ var RecordTransactOpSchema = discriminatedUnion("op", [
16812
+ object({
16813
+ op: literal("put"),
16814
+ kind: RecordKindNameSchema,
16815
+ record: RecordInputSchema,
16816
+ ifRev: number().int().min(0).optional()
16817
+ }),
16818
+ object({
16819
+ op: literal("patch"),
16820
+ kind: RecordKindNameSchema,
16821
+ id: RecordIdSchema,
16822
+ data: RecordBodySchema,
16823
+ at: number().int().nullable().optional(),
16824
+ expiresAt: number().int().nullable().optional(),
16825
+ ifRev: number().int().min(1).optional()
16826
+ }),
16827
+ object({
16828
+ op: literal("delete"),
16829
+ kind: RecordKindNameSchema,
16830
+ id: RecordIdSchema
16831
+ })
16832
+ ]);
16823
16833
  var RecordSecretRefsSchema = record(string(), record(string(), string()));
16824
16834
  method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
16825
16835
  kind: "mutation",
@@ -16926,6 +16936,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
16926
16936
  }), {
16927
16937
  kind: "mutation",
16928
16938
  auth: "admin"
16939
+ }), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
16940
+ results: array(object({
16941
+ rev: number().int().nullable(),
16942
+ deleted: boolean()
16943
+ })),
16944
+ releasedRefs: SecretRefsList,
16945
+ secretRefs: SecretRefsList
16946
+ }), {
16947
+ kind: "mutation",
16948
+ auth: "admin"
16929
16949
  }), method(object({
16930
16950
  deviceId: number().int(),
16931
16951
  kinds: array(RecordKindNameSchema).optional()
@@ -42309,9 +42329,13 @@ var NcSystemEventKindSchema = _enum([
42309
42329
  "node-updating",
42310
42330
  "node-inference-unavailable",
42311
42331
  "detection-blind",
42332
+ "motion-noisy",
42333
+ "motion-calm",
42312
42334
  "recording-stalled",
42313
42335
  "recording-healthy",
42314
42336
  "recording-degraded",
42337
+ "device-attention-required",
42338
+ "device-attention-resolved",
42315
42339
  "storage-location-low",
42316
42340
  "storage-location-critical",
42317
42341
  "storage-location-ok",
@@ -47888,7 +47912,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
47888
47912
  modelId: string()
47889
47913
  }),
47890
47914
  object({ kind: literal("cpu-device") }),
47891
- object({ kind: literal("coral-untouched") }),
47892
47915
  object({ kind: literal("device-disabled") }),
47893
47916
  object({ kind: literal("device-unavailable") }),
47894
47917
  object({ kind: literal("node-offline") }),
@@ -47986,11 +48009,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
47986
48009
  kind: literal("detector-store-unreadable"),
47987
48010
  error: string()
47988
48011
  }),
47989
- object({
47990
- kind: literal("coral-enabled"),
47991
- nodeId: string(),
47992
- deviceKey: string()
47993
- }),
47994
48012
  object({
47995
48013
  kind: literal("custom-pin-kept"),
47996
48014
  nodeId: string(),
@@ -54808,6 +54826,16 @@ object({
54808
54826
  powerState: string().nullable(),
54809
54827
  saltLevel: DishwasherConsumableLevelSchema.nullable(),
54810
54828
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54829
+ /**
54830
+ * True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
54831
+ * combined care-and-filter reminder raised); false when every such reminder reads clear; null
54832
+ * when none is reported. A cleared reminder is not an unknown one.
54833
+ */
54834
+ filterCleaningDue: boolean().nullable(),
54835
+ /** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
54836
+ machineCareDue: boolean().nullable(),
54837
+ /** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
54838
+ machineCareRemainingRuns: number().int().nonnegative().nullable(),
54811
54839
  /** Option states: null when the appliance does not expose the option or has not said. */
54812
54840
  halfLoad: boolean().nullable(),
54813
54841
  hygienePlus: boolean().nullable(),
@@ -61456,16 +61484,6 @@ var UpdateUserInputSchema = object({
61456
61484
  allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
61457
61485
  scopes: array(TokenScopeSchema).optional()
61458
61486
  });
61459
- var ApiKeySummarySchema = object({
61460
- id: string(),
61461
- label: string(),
61462
- isAdmin: boolean().default(false),
61463
- allowedProviders: union([array(string()), literal("*")]).optional(),
61464
- allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
61465
- tokenPrefix: string(),
61466
- createdAt: number(),
61467
- lastUsedAt: number().optional()
61468
- });
61469
61487
  var OauthSessionSummarySchema = object({
61470
61488
  id: string(),
61471
61489
  userId: string(),
@@ -61487,8 +61505,7 @@ var TotpStatusSchema = object({
61487
61505
  confirmedAt: number().nullable()
61488
61506
  });
61489
61507
  /**
61490
- * user-management — singleton capability for user accounts and the
61491
- * legacy API-key rows.
61508
+ * user-management — singleton capability for user accounts.
61492
61509
  *
61493
61510
  * v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
61494
61511
  * — the subset check on `setUserScopes` is moot
@@ -61544,10 +61561,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
61544
61561
  }), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
61545
61562
  kind: "mutation",
61546
61563
  access: "view"
61547
- }), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
61548
- kind: "mutation",
61549
- auth: "admin",
61550
- access: "delete"
61551
61564
  }), method(object({ userId: string() }), TotpSetupResultSchema, {
61552
61565
  kind: "mutation",
61553
61566
  auth: "admin",
@@ -69060,6 +69073,12 @@ Object.freeze({
69060
69073
  addonId: null,
69061
69074
  access: "view"
69062
69075
  },
69076
+ "records.transact": {
69077
+ capName: "records",
69078
+ capScope: "system",
69079
+ addonId: null,
69080
+ access: "create"
69081
+ },
69063
69082
  "sceneMonitor.captureReference": {
69064
69083
  capName: "scene-monitor",
69065
69084
  capScope: "device",
@@ -70392,12 +70411,6 @@ Object.freeze({
70392
70411
  addonId: null,
70393
70412
  access: "view"
70394
70413
  },
70395
- "userManagement.listApiKeys": {
70396
- capName: "user-management",
70397
- capScope: "system",
70398
- addonId: null,
70399
- access: "view"
70400
- },
70401
70414
  "userManagement.listExternalIdentities": {
70402
70415
  capName: "user-management",
70403
70416
  capScope: "system",
@@ -70452,12 +70465,6 @@ Object.freeze({
70452
70465
  addonId: null,
70453
70466
  access: "create"
70454
70467
  },
70455
- "userManagement.revokeApiKey": {
70456
- capName: "user-management",
70457
- capScope: "system",
70458
- addonId: null,
70459
- access: "delete"
70460
- },
70461
70468
  "userManagement.revokeOauthSession": {
70462
70469
  capName: "user-management",
70463
70470
  capScope: "system",
@@ -73822,9 +73829,13 @@ new Map(Object.entries({
73822
73829
  "stream-online": "device-events",
73823
73830
  "stream-offline": "device-events",
73824
73831
  "detection-blind": "device-events",
73832
+ "motion-noisy": "device-events",
73833
+ "motion-calm": "device-events",
73825
73834
  "recording-stalled": "device-events",
73826
73835
  "recording-healthy": "device-events",
73827
73836
  "recording-degraded": "device-events",
73837
+ "device-attention-required": "device-events",
73838
+ "device-attention-resolved": "device-events",
73828
73839
  "node-online": "system",
73829
73840
  "node-offline": "system",
73830
73841
  "node-restarting": "system",
@@ -73907,6 +73918,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73907
73918
  label: "Detecting nothing",
73908
73919
  kinds: ["detection-blind"]
73909
73920
  },
73921
+ {
73922
+ id: "motion-noise",
73923
+ family: "device-events",
73924
+ label: "Motion without a subject",
73925
+ kinds: ["motion-noisy", "motion-calm"]
73926
+ },
73910
73927
  {
73911
73928
  id: "recording",
73912
73929
  family: "device-events",
@@ -73917,6 +73934,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73917
73934
  "recording-degraded"
73918
73935
  ]
73919
73936
  },
73937
+ {
73938
+ id: "device-attention",
73939
+ family: "device-events",
73940
+ label: "Needs attention",
73941
+ kinds: ["device-attention-required", "device-attention-resolved"]
73942
+ },
73920
73943
  {
73921
73944
  id: "nodes",
73922
73945
  family: "system",
@@ -74056,6 +74079,7 @@ var ALERT_EPISODE = [
74056
74079
  "alert-error",
74057
74080
  "alert-critical-resolved"
74058
74081
  ];
74082
+ var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
74059
74083
  var UPDATES = [
74060
74084
  "addon-update-available",
74061
74085
  "server-update-available",
@@ -74085,9 +74109,12 @@ var DEVICE_EVENTS = [
74085
74109
  "stream-online",
74086
74110
  "stream-offline",
74087
74111
  "detection-blind",
74112
+ "motion-noisy",
74113
+ "motion-calm",
74088
74114
  "recording-stalled",
74089
74115
  "recording-healthy",
74090
74116
  "recording-degraded",
74117
+ ...DEVICE_ATTENTION,
74091
74118
  ...ALARM
74092
74119
  ];
74093
74120
  /** Every kind a summary may speak about — the two summarisable families. */
@@ -74255,7 +74282,9 @@ var STATE_SUMMARY_VARS = [
74255
74282
  [...RULE_TEXT],
74256
74283
  [...RULE_TEXT],
74257
74284
  [...RULE_TEXT],
74258
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74285
+ [...RULE_TEXT],
74286
+ [...RULE_TEXT],
74287
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74259
74288
  [...RULE_TEXT],
74260
74289
  [...RULE_TEXT],
74261
74290
  [...RULE_TEXT],
@@ -74277,11 +74306,11 @@ var STATE_SUMMARY_VARS = [
74277
74306
  [...RULE_TEXT],
74278
74307
  [...RULE_TEXT],
74279
74308
  [...RULE_TEXT],
74309
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74280
74310
  ([...RULE_TEXT], [...ALERT_EPISODE]),
74311
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74281
74312
  ([...RULE_TEXT], [...ALERT_EPISODE]),
74282
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74283
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74284
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74313
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74285
74314
  [...RULE_TEXT],
74286
74315
  [...RULE_TEXT],
74287
74316
  [...RULE_TEXT],
@@ -74357,6 +74386,15 @@ new Map([
74357
74386
  snapshotLabel: "Tanks low or full now",
74358
74387
  snapshotSection: "tanks"
74359
74388
  },
74389
+ {
74390
+ id: "motion-noise",
74391
+ family: "device-events",
74392
+ label: "Motion without a subject (constant / calm again)",
74393
+ bad: ["motion-noisy"],
74394
+ recovery: ["motion-calm"],
74395
+ snapshotLabel: "Cameras with constant motion now",
74396
+ snapshotSection: null
74397
+ },
74360
74398
  {
74361
74399
  id: "recording-health",
74362
74400
  family: "device-events",
@@ -74366,6 +74404,15 @@ new Map([
74366
74404
  snapshotLabel: "Recordings stalled now",
74367
74405
  snapshotSection: null
74368
74406
  },
74407
+ {
74408
+ id: "device-attention",
74409
+ family: "device-events",
74410
+ label: "Device needs attention (raised / resolved)",
74411
+ bad: ["device-attention-required"],
74412
+ recovery: ["device-attention-resolved"],
74413
+ snapshotLabel: "Devices needing attention now",
74414
+ snapshotSection: null
74415
+ },
74369
74416
  {
74370
74417
  id: "node-connectivity",
74371
74418
  family: "system",
@@ -5,7 +5,7 @@ import "node:fs";
5
5
  import "node:path";
6
6
  import "node:child_process";
7
7
  import "node:zlib";
8
- //#region ../types/dist/event-category-7pZEBmVg.mjs
8
+ //#region ../types/dist/event-category-BfJwUd2S.mjs
9
9
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
10
10
  EventCategory["SystemBoot"] = "system.boot";
11
11
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -322,6 +322,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
322
322
  */
323
323
  EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
324
324
  /**
325
+ * A camera's motion source has fired constantly with no subject for an hour
326
+ * (motion duty or session count over the bar, zero detections) — it is not
327
+ * blind, its motion zones or sensitivity want tuning (D907). Paired with
328
+ * {@link PipelineMotionCalm}.
329
+ */
330
+ EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
331
+ /** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
332
+ EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
333
+ /**
325
334
  * Per-camera pipeline config was mutated by the orchestrator
326
335
  * (3-level settings change via `setAgentAddonDefaults` /
327
336
  * `setCameraStepToggle` / `setCameraPipelineForAgent` or a
@@ -5428,7 +5437,7 @@ var ZodIssueCode = {
5428
5437
  var ZodFirstPartyTypeKind;
5429
5438
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5430
5439
  //#endregion
5431
- //#region ../types/dist/sleep-CueztlR1.mjs
5440
+ //#region ../types/dist/sleep-DJFUfKvA.mjs
5432
5441
  /**
5433
5442
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5434
5443
  * window to float samples (D455).
@@ -7890,7 +7899,7 @@ var EntryDescriptorSchema = object({
7890
7899
  /** JSON Schema of the entry body; `secret: true` marks a password field. */
7891
7900
  fields: record(string(), unknown())
7892
7901
  }).strict();
7893
- /** What crosses the wire and sits in the engine's catalog: JSON only, no Zod. */
7902
+ /** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
7894
7903
  var RecordKindDeclarationSchema = object({
7895
7904
  database: _enum(RECORD_DATABASES).default("settings"),
7896
7905
  class: _enum(RECORD_CLASSES),
@@ -7909,14 +7918,6 @@ var RecordKindDeclarationSchema = object({
7909
7918
  secretPaths: array(string().min(1)).default([]),
7910
7919
  /** The id key of each array that carries a secret (`{ headers: 'name' }`). */
7911
7920
  secretArrayKeys: record(string(), string()).default({}),
7912
- /**
7913
- * RETIRED (D900): the legacy table a kind adopted from during the records
7914
- * migration. Nothing declares it any more and nothing reads it; the schema
7915
- * still ACCEPTS it because the catalog rows the migration wrote carry it
7916
- * (an orphaned kind is never redeclared) and an addon built before the
7917
- * removal still sends it. Never set it.
7918
- */
7919
- adoptsFrom: string().min(1).optional(),
7920
7921
  /** Kinds that must agree through `transact` sit in one file under one family name. */
7921
7922
  transactFamily: string().min(1).optional(),
7922
7923
  entry: EntryDescriptorSchema.optional()
@@ -12876,17 +12877,6 @@ object({
12876
12877
  createdAt: number(),
12877
12878
  updatedAt: number()
12878
12879
  });
12879
- object({
12880
- id: string(),
12881
- label: string(),
12882
- isAdmin: boolean().default(false),
12883
- allowedProviders: AllowedProviderSchema,
12884
- allowedDevices: AllowedDevicesSchema,
12885
- tokenHash: string(),
12886
- tokenPrefix: string(),
12887
- createdAt: number(),
12888
- lastUsedAt: number().optional()
12889
- });
12890
12880
  object({
12891
12881
  id: string(),
12892
12882
  userId: string(),
@@ -16781,16 +16771,36 @@ var RecordKindStateSchema = _enum([
16781
16771
  var DeclareKindResultSchema = object({
16782
16772
  kindId: number().int(),
16783
16773
  state: RecordKindStateSchema,
16784
- createdIndexes: array(string()),
16785
- /**
16786
- * RETIRED (D900): always `null`. It carried the records-migration boot guard;
16787
- * it stays on the wire, null, because an addon built before the removal reads
16788
- * an ABSENT field as "adoption pending" and refuses to start.
16789
- */
16790
- adoptionPending: _null()
16774
+ createdIndexes: array(string())
16791
16775
  });
16792
16776
  /** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
16793
16777
  var SecretRefsList = array(string());
16778
+ /**
16779
+ * One op of a `transact`: the single-row writes, each on a kind of the caller.
16780
+ * All ops of one call share ONE database file and ONE `transactFamily`.
16781
+ */
16782
+ var RecordTransactOpSchema = discriminatedUnion("op", [
16783
+ object({
16784
+ op: literal("put"),
16785
+ kind: RecordKindNameSchema,
16786
+ record: RecordInputSchema,
16787
+ ifRev: number().int().min(0).optional()
16788
+ }),
16789
+ object({
16790
+ op: literal("patch"),
16791
+ kind: RecordKindNameSchema,
16792
+ id: RecordIdSchema,
16793
+ data: RecordBodySchema,
16794
+ at: number().int().nullable().optional(),
16795
+ expiresAt: number().int().nullable().optional(),
16796
+ ifRev: number().int().min(1).optional()
16797
+ }),
16798
+ object({
16799
+ op: literal("delete"),
16800
+ kind: RecordKindNameSchema,
16801
+ id: RecordIdSchema
16802
+ })
16803
+ ]);
16794
16804
  var RecordSecretRefsSchema = record(string(), record(string(), string()));
16795
16805
  method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
16796
16806
  kind: "mutation",
@@ -16897,6 +16907,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
16897
16907
  }), {
16898
16908
  kind: "mutation",
16899
16909
  auth: "admin"
16910
+ }), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
16911
+ results: array(object({
16912
+ rev: number().int().nullable(),
16913
+ deleted: boolean()
16914
+ })),
16915
+ releasedRefs: SecretRefsList,
16916
+ secretRefs: SecretRefsList
16917
+ }), {
16918
+ kind: "mutation",
16919
+ auth: "admin"
16900
16920
  }), method(object({
16901
16921
  deviceId: number().int(),
16902
16922
  kinds: array(RecordKindNameSchema).optional()
@@ -42280,9 +42300,13 @@ var NcSystemEventKindSchema = _enum([
42280
42300
  "node-updating",
42281
42301
  "node-inference-unavailable",
42282
42302
  "detection-blind",
42303
+ "motion-noisy",
42304
+ "motion-calm",
42283
42305
  "recording-stalled",
42284
42306
  "recording-healthy",
42285
42307
  "recording-degraded",
42308
+ "device-attention-required",
42309
+ "device-attention-resolved",
42286
42310
  "storage-location-low",
42287
42311
  "storage-location-critical",
42288
42312
  "storage-location-ok",
@@ -47859,7 +47883,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
47859
47883
  modelId: string()
47860
47884
  }),
47861
47885
  object({ kind: literal("cpu-device") }),
47862
- object({ kind: literal("coral-untouched") }),
47863
47886
  object({ kind: literal("device-disabled") }),
47864
47887
  object({ kind: literal("device-unavailable") }),
47865
47888
  object({ kind: literal("node-offline") }),
@@ -47957,11 +47980,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
47957
47980
  kind: literal("detector-store-unreadable"),
47958
47981
  error: string()
47959
47982
  }),
47960
- object({
47961
- kind: literal("coral-enabled"),
47962
- nodeId: string(),
47963
- deviceKey: string()
47964
- }),
47965
47983
  object({
47966
47984
  kind: literal("custom-pin-kept"),
47967
47985
  nodeId: string(),
@@ -54779,6 +54797,16 @@ object({
54779
54797
  powerState: string().nullable(),
54780
54798
  saltLevel: DishwasherConsumableLevelSchema.nullable(),
54781
54799
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54800
+ /**
54801
+ * True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
54802
+ * combined care-and-filter reminder raised); false when every such reminder reads clear; null
54803
+ * when none is reported. A cleared reminder is not an unknown one.
54804
+ */
54805
+ filterCleaningDue: boolean().nullable(),
54806
+ /** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
54807
+ machineCareDue: boolean().nullable(),
54808
+ /** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
54809
+ machineCareRemainingRuns: number().int().nonnegative().nullable(),
54782
54810
  /** Option states: null when the appliance does not expose the option or has not said. */
54783
54811
  halfLoad: boolean().nullable(),
54784
54812
  hygienePlus: boolean().nullable(),
@@ -61427,16 +61455,6 @@ var UpdateUserInputSchema = object({
61427
61455
  allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
61428
61456
  scopes: array(TokenScopeSchema).optional()
61429
61457
  });
61430
- var ApiKeySummarySchema = object({
61431
- id: string(),
61432
- label: string(),
61433
- isAdmin: boolean().default(false),
61434
- allowedProviders: union([array(string()), literal("*")]).optional(),
61435
- allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
61436
- tokenPrefix: string(),
61437
- createdAt: number(),
61438
- lastUsedAt: number().optional()
61439
- });
61440
61458
  var OauthSessionSummarySchema = object({
61441
61459
  id: string(),
61442
61460
  userId: string(),
@@ -61458,8 +61476,7 @@ var TotpStatusSchema = object({
61458
61476
  confirmedAt: number().nullable()
61459
61477
  });
61460
61478
  /**
61461
- * user-management — singleton capability for user accounts and the
61462
- * legacy API-key rows.
61479
+ * user-management — singleton capability for user accounts.
61463
61480
  *
61464
61481
  * v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
61465
61482
  * — the subset check on `setUserScopes` is moot
@@ -61515,10 +61532,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
61515
61532
  }), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
61516
61533
  kind: "mutation",
61517
61534
  access: "view"
61518
- }), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
61519
- kind: "mutation",
61520
- auth: "admin",
61521
- access: "delete"
61522
61535
  }), method(object({ userId: string() }), TotpSetupResultSchema, {
61523
61536
  kind: "mutation",
61524
61537
  auth: "admin",
@@ -69031,6 +69044,12 @@ Object.freeze({
69031
69044
  addonId: null,
69032
69045
  access: "view"
69033
69046
  },
69047
+ "records.transact": {
69048
+ capName: "records",
69049
+ capScope: "system",
69050
+ addonId: null,
69051
+ access: "create"
69052
+ },
69034
69053
  "sceneMonitor.captureReference": {
69035
69054
  capName: "scene-monitor",
69036
69055
  capScope: "device",
@@ -70363,12 +70382,6 @@ Object.freeze({
70363
70382
  addonId: null,
70364
70383
  access: "view"
70365
70384
  },
70366
- "userManagement.listApiKeys": {
70367
- capName: "user-management",
70368
- capScope: "system",
70369
- addonId: null,
70370
- access: "view"
70371
- },
70372
70385
  "userManagement.listExternalIdentities": {
70373
70386
  capName: "user-management",
70374
70387
  capScope: "system",
@@ -70423,12 +70436,6 @@ Object.freeze({
70423
70436
  addonId: null,
70424
70437
  access: "create"
70425
70438
  },
70426
- "userManagement.revokeApiKey": {
70427
- capName: "user-management",
70428
- capScope: "system",
70429
- addonId: null,
70430
- access: "delete"
70431
- },
70432
70439
  "userManagement.revokeOauthSession": {
70433
70440
  capName: "user-management",
70434
70441
  capScope: "system",
@@ -73793,9 +73800,13 @@ new Map(Object.entries({
73793
73800
  "stream-online": "device-events",
73794
73801
  "stream-offline": "device-events",
73795
73802
  "detection-blind": "device-events",
73803
+ "motion-noisy": "device-events",
73804
+ "motion-calm": "device-events",
73796
73805
  "recording-stalled": "device-events",
73797
73806
  "recording-healthy": "device-events",
73798
73807
  "recording-degraded": "device-events",
73808
+ "device-attention-required": "device-events",
73809
+ "device-attention-resolved": "device-events",
73799
73810
  "node-online": "system",
73800
73811
  "node-offline": "system",
73801
73812
  "node-restarting": "system",
@@ -73878,6 +73889,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73878
73889
  label: "Detecting nothing",
73879
73890
  kinds: ["detection-blind"]
73880
73891
  },
73892
+ {
73893
+ id: "motion-noise",
73894
+ family: "device-events",
73895
+ label: "Motion without a subject",
73896
+ kinds: ["motion-noisy", "motion-calm"]
73897
+ },
73881
73898
  {
73882
73899
  id: "recording",
73883
73900
  family: "device-events",
@@ -73888,6 +73905,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73888
73905
  "recording-degraded"
73889
73906
  ]
73890
73907
  },
73908
+ {
73909
+ id: "device-attention",
73910
+ family: "device-events",
73911
+ label: "Needs attention",
73912
+ kinds: ["device-attention-required", "device-attention-resolved"]
73913
+ },
73891
73914
  {
73892
73915
  id: "nodes",
73893
73916
  family: "system",
@@ -74027,6 +74050,7 @@ var ALERT_EPISODE = [
74027
74050
  "alert-error",
74028
74051
  "alert-critical-resolved"
74029
74052
  ];
74053
+ var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
74030
74054
  var UPDATES = [
74031
74055
  "addon-update-available",
74032
74056
  "server-update-available",
@@ -74056,9 +74080,12 @@ var DEVICE_EVENTS = [
74056
74080
  "stream-online",
74057
74081
  "stream-offline",
74058
74082
  "detection-blind",
74083
+ "motion-noisy",
74084
+ "motion-calm",
74059
74085
  "recording-stalled",
74060
74086
  "recording-healthy",
74061
74087
  "recording-degraded",
74088
+ ...DEVICE_ATTENTION,
74062
74089
  ...ALARM
74063
74090
  ];
74064
74091
  /** Every kind a summary may speak about — the two summarisable families. */
@@ -74226,7 +74253,9 @@ var STATE_SUMMARY_VARS = [
74226
74253
  [...RULE_TEXT],
74227
74254
  [...RULE_TEXT],
74228
74255
  [...RULE_TEXT],
74229
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74256
+ [...RULE_TEXT],
74257
+ [...RULE_TEXT],
74258
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74230
74259
  [...RULE_TEXT],
74231
74260
  [...RULE_TEXT],
74232
74261
  [...RULE_TEXT],
@@ -74248,11 +74277,11 @@ var STATE_SUMMARY_VARS = [
74248
74277
  [...RULE_TEXT],
74249
74278
  [...RULE_TEXT],
74250
74279
  [...RULE_TEXT],
74280
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74251
74281
  ([...RULE_TEXT], [...ALERT_EPISODE]),
74282
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74252
74283
  ([...RULE_TEXT], [...ALERT_EPISODE]),
74253
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74254
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74255
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74284
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74256
74285
  [...RULE_TEXT],
74257
74286
  [...RULE_TEXT],
74258
74287
  [...RULE_TEXT],
@@ -74328,6 +74357,15 @@ new Map([
74328
74357
  snapshotLabel: "Tanks low or full now",
74329
74358
  snapshotSection: "tanks"
74330
74359
  },
74360
+ {
74361
+ id: "motion-noise",
74362
+ family: "device-events",
74363
+ label: "Motion without a subject (constant / calm again)",
74364
+ bad: ["motion-noisy"],
74365
+ recovery: ["motion-calm"],
74366
+ snapshotLabel: "Cameras with constant motion now",
74367
+ snapshotSection: null
74368
+ },
74331
74369
  {
74332
74370
  id: "recording-health",
74333
74371
  family: "device-events",
@@ -74337,6 +74375,15 @@ new Map([
74337
74375
  snapshotLabel: "Recordings stalled now",
74338
74376
  snapshotSection: null
74339
74377
  },
74378
+ {
74379
+ id: "device-attention",
74380
+ family: "device-events",
74381
+ label: "Device needs attention (raised / resolved)",
74382
+ bad: ["device-attention-required"],
74383
+ recovery: ["device-attention-resolved"],
74384
+ snapshotLabel: "Devices needing attention now",
74385
+ snapshotSection: null
74386
+ },
74340
74387
  {
74341
74388
  id: "node-connectivity",
74342
74389
  family: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-alexa",
3
- "version": "1.2.160",
3
+ "version": "1.2.162",
4
4
  "description": "Alexa Smart Home Skill export — hub-side OAuth provider + directive handler. The companion AWS Lambda forwards Alexa directives to this addon's /addon/export-alexa/directive endpoint.",
5
5
  "keywords": [
6
6
  "camstack",