@camstack/addon-post-analysis 1.2.71 → 1.2.73

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.
@@ -3027,6 +3027,9 @@ function handlePipeResult(left, next, ctx) {
3027
3027
  fallback: left.fallback
3028
3028
  }, ctx);
3029
3029
  }
3030
+ var $ZodPreprocess = /*@__PURE__*/ $constructor("$ZodPreprocess", (inst, def) => {
3031
+ $ZodPipe.init(inst, def);
3032
+ });
3030
3033
  var $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => {
3031
3034
  $ZodType.init(inst, def);
3032
3035
  defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues);
@@ -5212,6 +5215,10 @@ function pipe(in_, out) {
5212
5215
  out
5213
5216
  });
5214
5217
  }
5218
+ var ZodPreprocess = /*@__PURE__*/ $constructor("ZodPreprocess", (inst, def) => {
5219
+ ZodPipe.init(inst, def);
5220
+ $ZodPreprocess.init(inst, def);
5221
+ });
5215
5222
  var ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => {
5216
5223
  $ZodReadonly.init(inst, def);
5217
5224
  ZodType.init(inst, def);
@@ -5270,6 +5277,13 @@ function _instanceof(cls, params = {}) {
5270
5277
  };
5271
5278
  return inst;
5272
5279
  }
5280
+ function preprocess(fn, schema) {
5281
+ return new ZodPreprocess({
5282
+ type: "pipe",
5283
+ in: transform(fn),
5284
+ out: schema
5285
+ });
5286
+ }
5273
5287
  //#endregion
5274
5288
  //#region ../../node_modules/zod/v4/classic/compat.js
5275
5289
  /** @deprecated Use the raw string literal codes instead, e.g. "invalid_type". */
@@ -14663,7 +14677,16 @@ var NcScheduleSchema = object({
14663
14677
  });
14664
14678
  /** Fuzzy plate matcher — OCR noise makes exact match useless (spec row 12/13). */
14665
14679
  var NcPlateMatcherSchema = object({
14666
- values: array(string().min(1)).min(1),
14680
+ /**
14681
+ * Plate texts (or gallery vehicle names) to match. EMPTY = **any plate the
14682
+ * pipeline could read** — the plate half of "no selection = no narrowing",
14683
+ * and the switch that says this rule is about vehicles that were IDENTIFIED
14684
+ * rather than merely seen. A subject carrying no plate still fails.
14685
+ *
14686
+ * The `.min(1)` this used to carry made that state unauthorable; nothing has
14687
+ * ever persisted an empty list, so widening it cannot change an existing rule.
14688
+ */
14689
+ values: array(string().min(1)),
14667
14690
  /** Max Levenshtein distance after normalization (uppercase alphanumeric). */
14668
14691
  maxDistance: number().int().min(0).max(3).default(1)
14669
14692
  });
@@ -14902,18 +14925,47 @@ var NcConditionsSchema = object({
14902
14925
  */
14903
14926
  labelEquals: array(string().min(1)).optional(),
14904
14927
  /**
14905
- * Identity matcher. P1 boundary: matched against the record's collapsed
14906
- * `label` (the identity display name propagated by the face pipeline) —
14907
- * identity-ID matching rides in P2 when identity ids reach the record.
14928
+ * KNOWN FACES — the rule's identity scope, and the switch that says the rule
14929
+ * is about recognised people at all.
14930
+ *
14931
+ * Three states, and the empty one is the point:
14932
+ *
14933
+ * | value | meaning |
14934
+ * | --- | --- |
14935
+ * | absent | the rule does not care who it is; an unrecognised person matches |
14936
+ * | `[]` | **only known faces** — any identity in the gallery, nobody in particular |
14937
+ * | a list | only these identities |
14938
+ *
14939
+ * `[]` is the repo-wide "no selection = no narrowing" reading (an absent
14940
+ * `devices` list is every device), applied one level down: the operator has
14941
+ * turned the face scope ON and narrowed it to nothing, which is every known
14942
+ * face. No second field states the same thing — a switch that can disagree
14943
+ * with the list under it is worse than no switch (D62).
14944
+ *
14945
+ * MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
14946
+ * renameable, and a rule authored on "Gianluca" went silently dark the moment
14947
+ * the operator fixed the spelling. The id reaches the record on
14948
+ * `LabelAttribution.identityId`; the name is what the editor shows and what
14949
+ * `{{label}}` renders.
14950
+ *
14951
+ * Rules written before this carry NAMES, and are resolved to ids lazily at
14952
+ * load (`NcRuleStore.load`) against the live gallery — a name nothing answers
14953
+ * for is left as it stands and reported, never dropped. The engine also
14954
+ * accepts a display-name hit as a compatibility leg, so a rule whose
14955
+ * migration could not resolve keeps matching exactly what it matched before.
14908
14956
  */
14909
14957
  identities: array(string().min(1)).optional(),
14910
- /** Fuzzy plate matcher against the record's `label` (plate text). */
14958
+ /**
14959
+ * KNOWN PLATES / VEHICLES — the plate mirror of {@link identities}, including
14960
+ * the empty-list reading: `values: []` is "any plate the OCR could read",
14961
+ * a non-empty list is those plates (fuzzily). See {@link NcPlateMatcherSchema}.
14962
+ */
14911
14963
  plates: NcPlateMatcherSchema.optional(),
14912
14964
  /**
14913
- * Identity EXCLUDE — mirror of {@link identities} with `notIn` semantics.
14914
- * Same P1 boundary: matched against the record's collapsed `label` (the
14915
- * identity display name). A record with NO label passes (nothing to
14916
- * exclude), unlike the include variant which fails on an absent label.
14965
+ * Identity EXCLUDE — mirror of {@link identities} with `notIn` semantics, and
14966
+ * the same id members and the same lazy name→id migration. A record with NO
14967
+ * identity passes (nothing to exclude), unlike the include variant which
14968
+ * fails on an unrecognised subject. An EMPTY list excludes nobody.
14917
14969
  */
14918
14970
  identitiesExclude: array(string().min(1)).optional(),
14919
14971
  /**
@@ -15305,7 +15357,37 @@ var NcRuleInputSchema = object({
15305
15357
  * a rule that predates the gate must keep delivering byte-for-byte as it
15306
15358
  * did, and absent is the only way to say that without a migration.
15307
15359
  */
15308
- confirm: NcConfirmSchema.optional()
15360
+ confirm: NcConfirmSchema.optional(),
15361
+ /**
15362
+ * WAIT for face/plate recognition before saying anything.
15363
+ *
15364
+ * A notification's TEXT is frozen at enqueue and its media is re-resolved at
15365
+ * send; the identity is neither. A face is confirmed after `confirmFrames`
15366
+ * agreeing observations — p50 **11.4 s** after the track was first seen,
15367
+ * measured on this hub — and an `immediate` rule enqueues on the first object
15368
+ * event, seconds before that. So "Gianluca è arrivato" is unsayable on the
15369
+ * immediate path, and no amount of media re-resolution fixes a sentence.
15370
+ *
15371
+ * Only two honest answers exist, and this flag picks between them. It has
15372
+ * effect ONLY on a rule that declares a recognition scope
15373
+ * ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
15374
+ * other rule there is nothing to wait for and the flag is inert.
15375
+ *
15376
+ * | value | what happens |
15377
+ * | --- | --- |
15378
+ * | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
15379
+ * | absent / `false` | it fires at once WITHOUT the name, and if recognition lands before the track closes a SECOND, "…is Gianluca" notification follows (one per track, per rule, per target) |
15380
+ *
15381
+ * `.optional()` and deliberately NOT `.default()`: a Zod default does not run
15382
+ * on the addon cap path, and absent has to keep meaning exactly what every
15383
+ * rule authored before this field meant.
15384
+ *
15385
+ * The cost of `true` is stated here because the editor states it too: a rule
15386
+ * that waits also inherits track-close SEMANTICS — its `zones` condition
15387
+ * tests every zone the track visited and a `crossing` condition can no longer
15388
+ * be satisfied, because a closed track carries no crossing.
15389
+ */
15390
+ waitForEnhancement: boolean().optional()
15309
15391
  });
15310
15392
  /**
15311
15393
  * Partial patch for `updateRule` — any subset of the input fields, plus the
@@ -15649,32 +15731,32 @@ var NC_CONDITION_CATALOG = [
15649
15731
  {
15650
15732
  id: "identities",
15651
15733
  group: "label",
15652
- label: "Identities",
15734
+ label: "Known faces",
15653
15735
  valueType: "stringList",
15654
15736
  operator: "in",
15655
15737
  appliesTo: ["immediate", "track-end"],
15656
15738
  phase: "P1",
15657
- description: "P1: matched against the identity display name on the record label."
15739
+ description: "Only recognised people. Selecting NOBODY means every identity in the face gallery; selecting some narrows to those. Matched on the gallery id, so renaming a person does not break the rule. On immediate delivery the name is not known yet when the notification is enqueued — see the rule’s \"wait for recognition\" switch."
15658
15740
  },
15659
15741
  {
15660
15742
  id: "plates",
15661
15743
  group: "label",
15662
- label: "License plates",
15744
+ label: "Known plates",
15663
15745
  valueType: "plateMatcher",
15664
15746
  operator: "fuzzyIn",
15665
15747
  appliesTo: ["immediate", "track-end"],
15666
15748
  phase: "P1",
15667
- description: "Levenshtein-tolerant match against the plate text."
15749
+ description: "Only vehicles whose plate was read. Selecting NO plate means any readable plate; listed plates are matched Levenshtein-tolerantly, because OCR noise makes an exact match useless."
15668
15750
  },
15669
15751
  {
15670
15752
  id: "identitiesExclude",
15671
15753
  group: "label",
15672
- label: "Excluded identities",
15754
+ label: "Excluded faces",
15673
15755
  valueType: "stringList",
15674
15756
  operator: "notIn",
15675
15757
  appliesTo: ["immediate", "track-end"],
15676
15758
  phase: "P1",
15677
- description: "Veto by identity display name (mirror of Identities; absent label passes)."
15759
+ description: "Veto by identity (mirror of Known faces, same gallery ids). A subject nobody recognised passes — there is nothing to exclude."
15678
15760
  },
15679
15761
  {
15680
15762
  id: "minLabelConfidence",
@@ -16324,7 +16406,87 @@ var MethodAccessSchema = _enum([
16324
16406
  var AllowedProviderSchema = union([literal("*"), array(string())]);
16325
16407
  var AllowedDevicesSchema = record(string(), union([literal("*"), array(string())]));
16326
16408
  var CapScopeSchema = _enum(["device", "system"]);
16327
- var TokenScopeSchema = discriminatedUnion("type", [
16409
+ /**
16410
+ * DeviceSelector (scope model v3 — 2026-08-12).
16411
+ *
16412
+ * A `device` grant no longer carries a frozen list of deviceIds. It carries
16413
+ * a SELECTOR the matcher resolves against the live fleet, so the grant can be
16414
+ * DYNAMIC: a `types:['camera']` selector automatically covers a camera added
16415
+ * AFTER the grant was minted — no re-grant, no re-login.
16416
+ *
16417
+ * - `all` — every device in the deployment. The broad viewer/operator
16418
+ * lever without a `category` grant (a `category` grant also covers device
16419
+ * caps that carry no deviceId; `all` is specifically the device set).
16420
+ * - `ids` — an explicit deviceId list. This is what a v2 `device:[…]`
16421
+ * grant migrates to (see {@link TokenScopeSchema}); STATIC — a new camera
16422
+ * is NOT covered until the grant is edited.
16423
+ * - `types` — every device of a `DeviceType` (e.g. every `camera`).
16424
+ * DYNAMIC. A device that changes type, or a new device of the type,
16425
+ * re-resolves on the next request.
16426
+ * - `locations` — every device whose operator-assigned `location` label is
16427
+ * in the set (e.g. "Garden", "Front door"). DYNAMIC. A device with a
16428
+ * null/unset location matches NO `locations` selector.
16429
+ */
16430
+ var DeviceSelectorSchema = discriminatedUnion("kind", [
16431
+ object({ kind: literal("all") }),
16432
+ object({
16433
+ kind: literal("ids"),
16434
+ ids: array(number().int()).min(1)
16435
+ }),
16436
+ object({
16437
+ kind: literal("types"),
16438
+ types: array(_enum(DeviceType)).min(1)
16439
+ }),
16440
+ object({
16441
+ kind: literal("locations"),
16442
+ locations: array(string().min(1)).min(1)
16443
+ })
16444
+ ]);
16445
+ var DeviceTokenScopeSchema = object({
16446
+ type: literal("device"),
16447
+ /** The device SET this grant covers — resolved against the live fleet. */
16448
+ selector: DeviceSelectorSchema,
16449
+ access: array(MethodAccessSchema).min(1),
16450
+ /**
16451
+ * Whether a grant on a PARENT device transparently covers its accessory
16452
+ * CHILDREN (siren / floodlight / PIR) via the persisted-parentage walk.
16453
+ * Direction is parent → children ONLY.
16454
+ *
16455
+ * Absent → the matcher DERIVES it from the access flavour: `view`
16456
+ * inherits (a camera viewer sees the camera's accessories), `create` /
16457
+ * `delete` do NOT (actuating/removing a child is an explicit act the
16458
+ * operator must grant on the child, not inherit from the parent). Set it
16459
+ * explicitly to override that default per grant.
16460
+ */
16461
+ includeLinked: boolean().optional()
16462
+ });
16463
+ /**
16464
+ * v2 → v3 lazy migration. A pre-v3 `device` grant carried
16465
+ * `targets: string[]` (stringified deviceIds); it rewrites to the equivalent
16466
+ * `selector: {kind:'ids', ids}`. Applied as a `preprocess` so it runs on
16467
+ * EVERY parse path — stored records AND the JWT-carried scope arrays
16468
+ * normalised at the request boundary ({@link normalizeTokenScopes} in
16469
+ * `device-selector.ts`). Chosen over a one-time DB migration because a
16470
+ * migration cannot reach a JWT already in a client's hands; parse-time
16471
+ * migration covers both without a flag day. No cast — the raw object is read
16472
+ * through `Reflect.get` (its static type is `unknown`).
16473
+ */
16474
+ function migrateLegacyTokenScope(raw) {
16475
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return raw;
16476
+ if (Reflect.get(raw, "type") !== "device") return raw;
16477
+ if (Reflect.get(raw, "selector") !== void 0) return raw;
16478
+ const targets = Reflect.get(raw, "targets");
16479
+ if (!Array.isArray(targets)) return raw;
16480
+ return {
16481
+ type: "device",
16482
+ selector: {
16483
+ kind: "ids",
16484
+ ids: targets.map((t) => typeof t === "string" ? Number(t) : t).filter((n) => typeof n === "number" && Number.isInteger(n))
16485
+ },
16486
+ access: Reflect.get(raw, "access")
16487
+ };
16488
+ }
16489
+ var TokenScopeSchema = preprocess(migrateLegacyTokenScope, discriminatedUnion("type", [
16328
16490
  object({
16329
16491
  type: literal("category"),
16330
16492
  target: CapScopeSchema,
@@ -16340,18 +16502,8 @@ var TokenScopeSchema = discriminatedUnion("type", [
16340
16502
  target: string(),
16341
16503
  access: array(MethodAccessSchema).min(1)
16342
16504
  }),
16343
- object({
16344
- type: literal("device"),
16345
- /**
16346
- * One or more deviceIds (serialised as strings for wire-format
16347
- * consistency with the rest of the union). Matcher accepts if
16348
- * `input.deviceId` ∈ `targets`. Array shape avoids the row-explosion
16349
- * of one scope-per-device when granting access to a set of cameras.
16350
- */
16351
- targets: array(string()).min(1),
16352
- access: array(MethodAccessSchema).min(1)
16353
- })
16354
- ]);
16505
+ DeviceTokenScopeSchema
16506
+ ]));
16355
16507
  object({
16356
16508
  id: string(),
16357
16509
  username: string(),
@@ -16804,7 +16956,21 @@ union([literal(1), literal(2)]);
16804
16956
  var LabelAttributionSchema = object({
16805
16957
  stepId: string(),
16806
16958
  modelId: string().optional(),
16807
- decidedAt: number()
16959
+ decidedAt: number(),
16960
+ /**
16961
+ * The GALLERY id behind a recognised tier-2 label — a face-gallery
16962
+ * `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
16963
+ *
16964
+ * The text alone is a DISPLAY NAME, and a display name is renameable: a
16965
+ * notification rule authored on "Gianluca" stopped matching the moment the
16966
+ * operator fixed the spelling in the gallery, and nothing said so. The id is
16967
+ * the thing that does not move, so it is what a rule matches on
16968
+ * (`NcConditions.identities`) and the text is what a human is shown.
16969
+ *
16970
+ * Absent when the label names no gallery row — a plate the OCR read but no
16971
+ * vehicle claims, a sub-class, a species, any tier-1 value.
16972
+ */
16973
+ identityId: string().optional()
16808
16974
  });
16809
16975
  /**
16810
16976
  * The TIERED label model (roadmap 4g), spread into `TrackSchema` and
@@ -24044,54 +24210,139 @@ var TalkAudioCodecSchema = _enum([
24044
24210
  "g711ulaw",
24045
24211
  "g711alaw"
24046
24212
  ]);
24047
- DeviceType.Camera, method(object({ deviceId: number() }), object({
24048
- sessionId: string(),
24049
- sdpOffer: string()
24050
- }), {
24051
- kind: "mutation",
24052
- auth: "admin"
24053
- }), method(object({
24054
- deviceId: number(),
24055
- sessionId: string(),
24056
- sdpAnswer: string()
24057
- }), _void(), {
24058
- kind: "mutation",
24059
- auth: "admin"
24060
- }), method(object({
24061
- deviceId: number(),
24062
- sessionId: string()
24063
- }), _void(), {
24064
- kind: "mutation",
24065
- auth: "admin"
24066
- }), method(object({ deviceId: number() }), object({ sessionId: string() }), {
24067
- kind: "mutation",
24068
- auth: "admin"
24069
- }), method(object({
24070
- deviceId: number(),
24071
- /** Audio bytes for ONE frame, base64-encoded so the payload
24072
- * survives tRPC JSON serialization. */
24073
- audioBase64: string(),
24074
- /** Wire codec of the payload. Omit to let the provider default
24075
- * to its native expected format (s16le @ provider-native rate,
24076
- * mono). See {@link TalkAudioCodecSchema} for the supported set. */
24077
- codec: TalkAudioCodecSchema.optional(),
24078
- /** Sample rate (Hz). REQUIRED for `s16le`; advisory for
24079
- * `opus` (encoder clock); ignored for `g711*` (implied 8000). */
24080
- sampleRate: number().int().positive().optional(),
24081
- /** Channel count. Default 1. */
24082
- channels: number().int().positive().optional(),
24083
- /** Sequence number for ordering / dropping out-of-order frames. */
24084
- sequenceNumber: number().int()
24085
- }), object({ accepted: boolean() }), {
24086
- kind: "mutation",
24087
- auth: "admin"
24088
- }), method(object({ deviceId: number() }), _void(), {
24089
- kind: "mutation",
24090
- auth: "admin"
24091
- }), object({
24092
- deviceId: number(),
24093
- status: IntercomStatusSchema
24094
- });
24213
+ var intercomCapability = {
24214
+ name: "intercom",
24215
+ scope: "device",
24216
+ deviceNative: true,
24217
+ mode: "singleton",
24218
+ deviceTypes: [DeviceType.Camera],
24219
+ methods: {
24220
+ /**
24221
+ * Open a server-side WebRTC audio-only session. Returns an SDP
24222
+ * offer with a single sendonly audio m-line the client answers
24223
+ * (client → server direction). The server wakes battery cams
24224
+ * transparently before opening the upstream talk channel.
24225
+ */
24226
+ startSession: method(object({ deviceId: number() }), object({
24227
+ sessionId: string(),
24228
+ sdpOffer: string()
24229
+ }), {
24230
+ kind: "mutation",
24231
+ auth: "admin"
24232
+ }),
24233
+ handleAnswer: method(object({
24234
+ deviceId: number(),
24235
+ sessionId: string(),
24236
+ sdpAnswer: string()
24237
+ }), _void(), {
24238
+ kind: "mutation",
24239
+ auth: "admin"
24240
+ }),
24241
+ /** Close explicitly. Server also auto-closes on 30s idle. */
24242
+ stopSession: method(object({
24243
+ deviceId: number(),
24244
+ sessionId: string()
24245
+ }), _void(), {
24246
+ kind: "mutation",
24247
+ auth: "admin"
24248
+ }),
24249
+ /**
24250
+ * Open a raw-PCM talk session (no WebRTC SDP plumbing). Used by
24251
+ * non-WebRTC consumers (HomeKit export, Alexa raw audio, test
24252
+ * harnesses) that already have decoded PCM frames and just need a
24253
+ * direct path onto the camera's talk channel. Mutually exclusive
24254
+ * with `startSession` (an active WebRTC session must be stopped
24255
+ * before a raw-PCM session can be opened on the same device, and
24256
+ * vice versa).
24257
+ */
24258
+ startTalkSession: method(object({ deviceId: number() }), object({ sessionId: string() }), {
24259
+ kind: "mutation",
24260
+ auth: "admin"
24261
+ }),
24262
+ /**
24263
+ * Push one chunk of talk-back audio onto the active talk session.
24264
+ * The cap is codec-agnostic: the caller declares (or omits) the
24265
+ * wire format via `codec`; the provider decides between passthrough
24266
+ * (when the wire codec matches the camera's native talk channel),
24267
+ * transcoding via the `audio-codec` cap, or rejecting the call.
24268
+ *
24269
+ * Callers do NOT need to know the camera's wire format or sample
24270
+ * rate — that information lives entirely inside the provider.
24271
+ *
24272
+ * Sequence numbers MUST be monotonic per talk session; older frames
24273
+ * arriving after newer ones are dropped to avoid smearing the
24274
+ * downstream encoder state (G.711 is stateless but IMA ADPCM's
24275
+ * predictor would corrupt with re-ordering).
24276
+ */
24277
+ pushTalkAudio: method(object({
24278
+ deviceId: number(),
24279
+ /** Audio bytes for ONE frame, base64-encoded so the payload
24280
+ * survives tRPC JSON serialization. */
24281
+ audioBase64: string(),
24282
+ /** Wire codec of the payload. Omit to let the provider default
24283
+ * to its native expected format (s16le @ provider-native rate,
24284
+ * mono). See {@link TalkAudioCodecSchema} for the supported set. */
24285
+ codec: TalkAudioCodecSchema.optional(),
24286
+ /** Sample rate (Hz). REQUIRED for `s16le`; advisory for
24287
+ * `opus` (encoder clock); ignored for `g711*` (implied 8000). */
24288
+ sampleRate: number().int().positive().optional(),
24289
+ /** Channel count. Default 1. */
24290
+ channels: number().int().positive().optional(),
24291
+ /** Sequence number for ordering / dropping out-of-order frames. */
24292
+ sequenceNumber: number().int()
24293
+ }), object({ accepted: boolean() }), {
24294
+ kind: "mutation",
24295
+ auth: "admin"
24296
+ }),
24297
+ /** Close the raw-PCM talk session. Idempotent. */
24298
+ endTalkSession: method(object({ deviceId: number() }), _void(), {
24299
+ kind: "mutation",
24300
+ auth: "admin"
24301
+ })
24302
+ },
24303
+ events: { onStatusChanged: { data: object({
24304
+ deviceId: number(),
24305
+ status: IntercomStatusSchema
24306
+ }) } },
24307
+ status: {
24308
+ schema: IntercomStatusSchema,
24309
+ kind: "command-driven"
24310
+ },
24311
+ /**
24312
+ * Runtime-state slice — mirrored by the kernel.
24313
+ *
24314
+ * The cap declared `status` and nothing else, so the only two sources an
24315
+ * exporter has for a value — the `device.state-changed` slice event and the
24316
+ * `deviceState.getAllSnapshots` snapshot, both built from runtime state —
24317
+ * carried nothing for `intercom`. A talk-back entity in Home Assistant would
24318
+ * have been published and never received a value, which is the defect the
24319
+ * export's two classification tables exist to prevent (177 of them, once), so
24320
+ * `intercom` was excluded rather than exported.
24321
+ *
24322
+ * The shape is the status shape: there is exactly one truth about talk-back
24323
+ * and duplicating it into a second schema is how two halves of one capability
24324
+ * come to disagree. Providers write it through
24325
+ * `this.runtimeState.setCapState('intercom', …)` at the four points that open
24326
+ * and close a session, and seed it at registration so the slice exists before
24327
+ * the first session rather than after it.
24328
+ *
24329
+ * **Bound, named rather than hidden:** `talking` mirrors the provider's own
24330
+ * session handle, so a session torn down by a transport death that never
24331
+ * reaches `stopSession` / `endTalkSession` leaves it latched until the next
24332
+ * session or the next restart. That is why the slice is `session` and not
24333
+ * `restored` — a restart must never restore "talking".
24334
+ */
24335
+ runtimeState: IntercomStatusSchema,
24336
+ /**
24337
+ * Runtime-state durability: **session** — `talking` describes a live audio
24338
+ * session, which by definition does not survive the process that held it.
24339
+ * Restoring it would publish a camera as talking to nobody.
24340
+ *
24341
+ * See `RuntimeStateDurability`. Enforced by
24342
+ * `scripts/check-runtime-state-durability.ts`.
24343
+ */
24344
+ durability: "session"
24345
+ };
24095
24346
  /**
24096
24347
  * Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
24097
24348
  * with a mowing lifecycle plus a dock action.
@@ -26822,7 +27073,7 @@ method(object({
26822
27073
  toMs: number()
26823
27074
  }), RecordingAvailabilitySchema, {
26824
27075
  kind: "query",
26825
- auth: "admin"
27076
+ auth: "protected"
26826
27077
  }), method(object({
26827
27078
  deviceId: number(),
26828
27079
  fromMs: number(),
@@ -26830,14 +27081,14 @@ method(object({
26830
27081
  tzOffsetMinutes: number()
26831
27082
  }), RecordingDaysSchema, {
26832
27083
  kind: "query",
26833
- auth: "admin"
27084
+ auth: "protected"
26834
27085
  }), method(object({
26835
27086
  deviceId: number(),
26836
27087
  fromMs: number(),
26837
27088
  toMs: number()
26838
27089
  }), RecordingManifestSchema, {
26839
27090
  kind: "query",
26840
- auth: "admin"
27091
+ auth: "protected"
26841
27092
  }), method(object({}), RecordingStorageUsageSchema, {
26842
27093
  kind: "query",
26843
27094
  auth: "admin"
@@ -29160,6 +29411,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
29160
29411
  humiditySensor: humiditySensorCapability,
29161
29412
  image: imageCapability,
29162
29413
  imageSettings: imageSettingsCapability,
29414
+ intercom: intercomCapability,
29163
29415
  lawnMowerControl: lawnMowerControlCapability,
29164
29416
  lockControl: lockControlCapability,
29165
29417
  mediaPlayer: mediaPlayerCapability,
@@ -35515,6 +35767,1678 @@ Object.freeze({
35515
35767
  access: "create"
35516
35768
  }
35517
35769
  });
35770
+ Object.freeze({
35771
+ "accessories.setChildHidden": [{
35772
+ name: "childDeviceId",
35773
+ form: "single",
35774
+ optional: false
35775
+ }, {
35776
+ name: "deviceId",
35777
+ form: "single",
35778
+ optional: false
35779
+ }],
35780
+ "addonSettings.getDeviceSettings": [{
35781
+ name: "deviceId",
35782
+ form: "single",
35783
+ optional: false
35784
+ }],
35785
+ "addonSettings.updateDeviceSettings": [{
35786
+ name: "deviceId",
35787
+ form: "single",
35788
+ optional: false
35789
+ }],
35790
+ "alarmPanel.arm": [{
35791
+ name: "deviceId",
35792
+ form: "single",
35793
+ optional: false
35794
+ }],
35795
+ "alarmPanel.disarm": [{
35796
+ name: "deviceId",
35797
+ form: "single",
35798
+ optional: false
35799
+ }],
35800
+ "alarmPanel.trigger": [{
35801
+ name: "deviceId",
35802
+ form: "single",
35803
+ optional: false
35804
+ }],
35805
+ "audioAnalysis.resolveDeviceSettings": [{
35806
+ name: "deviceId",
35807
+ form: "single",
35808
+ optional: false
35809
+ }],
35810
+ "audioAnalyzer.classify": [{
35811
+ name: "deviceId",
35812
+ form: "single",
35813
+ optional: true
35814
+ }],
35815
+ "audioMetrics.getCurrentSnapshot": [{
35816
+ name: "deviceId",
35817
+ form: "single",
35818
+ optional: false
35819
+ }],
35820
+ "audioMetrics.getHistory": [{
35821
+ name: "deviceId",
35822
+ form: "single",
35823
+ optional: false
35824
+ }],
35825
+ "automationControl.disable": [{
35826
+ name: "deviceId",
35827
+ form: "single",
35828
+ optional: false
35829
+ }],
35830
+ "automationControl.enable": [{
35831
+ name: "deviceId",
35832
+ form: "single",
35833
+ optional: false
35834
+ }],
35835
+ "automationControl.trigger": [{
35836
+ name: "deviceId",
35837
+ form: "single",
35838
+ optional: false
35839
+ }],
35840
+ "battery.wakeForStream": [{
35841
+ name: "deviceId",
35842
+ form: "single",
35843
+ optional: false
35844
+ }],
35845
+ "brightness.setBrightness": [{
35846
+ name: "deviceId",
35847
+ form: "single",
35848
+ optional: false
35849
+ }],
35850
+ "button.press": [{
35851
+ name: "deviceId",
35852
+ form: "single",
35853
+ optional: false
35854
+ }],
35855
+ "cameraCredentials.getCredentials": [{
35856
+ name: "deviceId",
35857
+ form: "single",
35858
+ optional: false
35859
+ }],
35860
+ "cameraStreams.getBrokerStreams": [{
35861
+ name: "deviceId",
35862
+ form: "single",
35863
+ optional: false
35864
+ }],
35865
+ "cameraStreams.getCameraStreams": [{
35866
+ name: "deviceId",
35867
+ form: "single",
35868
+ optional: false
35869
+ }],
35870
+ "cameraStreams.getProfileRtspEntries": [{
35871
+ name: "deviceId",
35872
+ form: "single",
35873
+ optional: false
35874
+ }],
35875
+ "cameraStreams.getRtspEntries": [{
35876
+ name: "deviceId",
35877
+ form: "single",
35878
+ optional: false
35879
+ }],
35880
+ "cameraStreams.pickStream": [{
35881
+ name: "deviceId",
35882
+ form: "single",
35883
+ optional: false
35884
+ }],
35885
+ "climateControl.setFanMode": [{
35886
+ name: "deviceId",
35887
+ form: "single",
35888
+ optional: false
35889
+ }],
35890
+ "climateControl.setMode": [{
35891
+ name: "deviceId",
35892
+ form: "single",
35893
+ optional: false
35894
+ }],
35895
+ "climateControl.setPreset": [{
35896
+ name: "deviceId",
35897
+ form: "single",
35898
+ optional: false
35899
+ }],
35900
+ "climateControl.setSwingHorizontal": [{
35901
+ name: "deviceId",
35902
+ form: "single",
35903
+ optional: false
35904
+ }],
35905
+ "climateControl.setSwingVertical": [{
35906
+ name: "deviceId",
35907
+ form: "single",
35908
+ optional: false
35909
+ }],
35910
+ "climateControl.setTarget": [{
35911
+ name: "deviceId",
35912
+ form: "single",
35913
+ optional: false
35914
+ }],
35915
+ "climateControl.setTargetHumidity": [{
35916
+ name: "deviceId",
35917
+ form: "single",
35918
+ optional: false
35919
+ }],
35920
+ "climateControl.setTargetRange": [{
35921
+ name: "deviceId",
35922
+ form: "single",
35923
+ optional: false
35924
+ }],
35925
+ "color.setColor": [{
35926
+ name: "deviceId",
35927
+ form: "single",
35928
+ optional: false
35929
+ }],
35930
+ "consumables.reset": [{
35931
+ name: "deviceId",
35932
+ form: "single",
35933
+ optional: false
35934
+ }],
35935
+ "control.setValue": [{
35936
+ name: "deviceId",
35937
+ form: "single",
35938
+ optional: false
35939
+ }],
35940
+ "cover.close": [{
35941
+ name: "deviceId",
35942
+ form: "single",
35943
+ optional: false
35944
+ }],
35945
+ "cover.open": [{
35946
+ name: "deviceId",
35947
+ form: "single",
35948
+ optional: false
35949
+ }],
35950
+ "cover.setPosition": [{
35951
+ name: "deviceId",
35952
+ form: "single",
35953
+ optional: false
35954
+ }],
35955
+ "cover.setTiltPosition": [{
35956
+ name: "deviceId",
35957
+ form: "single",
35958
+ optional: false
35959
+ }],
35960
+ "cover.stop": [{
35961
+ name: "deviceId",
35962
+ form: "single",
35963
+ optional: false
35964
+ }],
35965
+ "dayNight.getOptions": [{
35966
+ name: "deviceId",
35967
+ form: "single",
35968
+ optional: false
35969
+ }],
35970
+ "dayNight.setSettings": [{
35971
+ name: "deviceId",
35972
+ form: "single",
35973
+ optional: false
35974
+ }],
35975
+ "decoder.createSession": [{
35976
+ name: "deviceId",
35977
+ form: "single",
35978
+ optional: true
35979
+ }],
35980
+ "deviceAdoption.release": [{
35981
+ name: "camDeviceId",
35982
+ form: "single",
35983
+ optional: false
35984
+ }],
35985
+ "deviceAdoption.resync": [{
35986
+ name: "camDeviceId",
35987
+ form: "single",
35988
+ optional: false
35989
+ }],
35990
+ "deviceDiscovery.adoptDevice": [{
35991
+ name: "deviceId",
35992
+ form: "single",
35993
+ optional: false
35994
+ }],
35995
+ "deviceDiscovery.listDiscovered": [{
35996
+ name: "deviceId",
35997
+ form: "single",
35998
+ optional: false
35999
+ }],
36000
+ "deviceDiscovery.refreshDiscovery": [{
36001
+ name: "deviceId",
36002
+ form: "single",
36003
+ optional: false
36004
+ }],
36005
+ "deviceDiscovery.releaseDevice": [{
36006
+ name: "childDeviceId",
36007
+ form: "single",
36008
+ optional: false
36009
+ }, {
36010
+ name: "deviceId",
36011
+ form: "single",
36012
+ optional: false
36013
+ }],
36014
+ "deviceManager.adoptionRelease": [{
36015
+ name: "camDeviceId",
36016
+ form: "single",
36017
+ optional: false
36018
+ }],
36019
+ "deviceManager.adoptionResync": [{
36020
+ name: "camDeviceId",
36021
+ form: "single",
36022
+ optional: false
36023
+ }],
36024
+ "deviceManager.applyInitialMeta": [{
36025
+ name: "deviceId",
36026
+ form: "single",
36027
+ optional: false
36028
+ }, {
36029
+ name: "linkDeviceId",
36030
+ form: "single",
36031
+ optional: true
36032
+ }],
36033
+ "deviceManager.disable": [{
36034
+ name: "deviceId",
36035
+ form: "single",
36036
+ optional: false
36037
+ }],
36038
+ "deviceManager.enable": [{
36039
+ name: "deviceId",
36040
+ form: "single",
36041
+ optional: false
36042
+ }],
36043
+ "deviceManager.getBindings": [{
36044
+ name: "deviceId",
36045
+ form: "single",
36046
+ optional: false
36047
+ }],
36048
+ "deviceManager.getChildren": [{
36049
+ name: "parentDeviceId",
36050
+ form: "single",
36051
+ optional: false
36052
+ }],
36053
+ "deviceManager.getConfigSchema": [{
36054
+ name: "deviceId",
36055
+ form: "single",
36056
+ optional: false
36057
+ }],
36058
+ "deviceManager.getDevice": [{
36059
+ name: "deviceId",
36060
+ form: "single",
36061
+ optional: false
36062
+ }],
36063
+ "deviceManager.getDeviceAggregate": [{
36064
+ name: "deviceId",
36065
+ form: "single",
36066
+ optional: false
36067
+ }],
36068
+ "deviceManager.getDeviceLiveInfoAggregate": [{
36069
+ name: "deviceId",
36070
+ form: "single",
36071
+ optional: false
36072
+ }],
36073
+ "deviceManager.getDeviceSettingsAggregate": [{
36074
+ name: "deviceId",
36075
+ form: "single",
36076
+ optional: false
36077
+ }],
36078
+ "deviceManager.getDeviceStatusAggregate": [{
36079
+ name: "deviceId",
36080
+ form: "single",
36081
+ optional: false
36082
+ }],
36083
+ "deviceManager.getDeviceStatusAggregateBatch": [{
36084
+ name: "deviceIds",
36085
+ form: "array",
36086
+ optional: false
36087
+ }],
36088
+ "deviceManager.getLinkedDevices": [{
36089
+ name: "deviceId",
36090
+ form: "single",
36091
+ optional: false
36092
+ }],
36093
+ "deviceManager.getSettingsSchema": [{
36094
+ name: "deviceId",
36095
+ form: "single",
36096
+ optional: false
36097
+ }],
36098
+ "deviceManager.getStreamProfileMap": [{
36099
+ name: "deviceId",
36100
+ form: "single",
36101
+ optional: false
36102
+ }],
36103
+ "deviceManager.getStreamSources": [{
36104
+ name: "deviceId",
36105
+ form: "single",
36106
+ optional: false
36107
+ }],
36108
+ "deviceManager.getWireableFields": [{
36109
+ name: "deviceId",
36110
+ form: "single",
36111
+ optional: false
36112
+ }],
36113
+ "deviceManager.loadConfig": [{
36114
+ name: "deviceId",
36115
+ form: "single",
36116
+ optional: false
36117
+ }],
36118
+ "deviceManager.loadMeta": [{
36119
+ name: "deviceId",
36120
+ form: "single",
36121
+ optional: false
36122
+ }],
36123
+ "deviceManager.loadRuntimeState": [{
36124
+ name: "deviceId",
36125
+ form: "single",
36126
+ optional: false
36127
+ }],
36128
+ "deviceManager.persistConfig": [{
36129
+ name: "deviceId",
36130
+ form: "single",
36131
+ optional: false
36132
+ }],
36133
+ "deviceManager.probeStreams": [{
36134
+ name: "deviceId",
36135
+ form: "single",
36136
+ optional: false
36137
+ }],
36138
+ "deviceManager.registerDevice": [{
36139
+ name: "parentDeviceId",
36140
+ form: "single",
36141
+ optional: true
36142
+ }],
36143
+ "deviceManager.remove": [{
36144
+ name: "deviceId",
36145
+ form: "single",
36146
+ optional: false
36147
+ }],
36148
+ "deviceManager.removeDevice": [{
36149
+ name: "deviceId",
36150
+ form: "single",
36151
+ optional: false
36152
+ }],
36153
+ "deviceManager.runDeviceAction": [{
36154
+ name: "deviceId",
36155
+ form: "single",
36156
+ optional: false
36157
+ }],
36158
+ "deviceManager.setChildLayout": [{
36159
+ name: "deviceId",
36160
+ form: "single",
36161
+ optional: false
36162
+ }],
36163
+ "deviceManager.setDisabled": [{
36164
+ name: "deviceId",
36165
+ form: "single",
36166
+ optional: false
36167
+ }],
36168
+ "deviceManager.setDisplay": [{
36169
+ name: "deviceId",
36170
+ form: "single",
36171
+ optional: false
36172
+ }],
36173
+ "deviceManager.setIntegrationId": [{
36174
+ name: "deviceId",
36175
+ form: "single",
36176
+ optional: false
36177
+ }],
36178
+ "deviceManager.setLinkDeviceId": [{
36179
+ name: "deviceId",
36180
+ form: "single",
36181
+ optional: false
36182
+ }, {
36183
+ name: "linkDeviceId",
36184
+ form: "single",
36185
+ optional: true
36186
+ }],
36187
+ "deviceManager.setLocation": [{
36188
+ name: "deviceId",
36189
+ form: "single",
36190
+ optional: false
36191
+ }],
36192
+ "deviceManager.setMetadata": [{
36193
+ name: "deviceId",
36194
+ form: "single",
36195
+ optional: false
36196
+ }],
36197
+ "deviceManager.setName": [{
36198
+ name: "deviceId",
36199
+ form: "single",
36200
+ optional: false
36201
+ }],
36202
+ "deviceManager.setPrimaryChildEntityId": [{
36203
+ name: "deviceId",
36204
+ form: "single",
36205
+ optional: false
36206
+ }],
36207
+ "deviceManager.setRole": [{
36208
+ name: "deviceId",
36209
+ form: "single",
36210
+ optional: false
36211
+ }],
36212
+ "deviceManager.setStreamProfileMap": [{
36213
+ name: "deviceId",
36214
+ form: "single",
36215
+ optional: false
36216
+ }],
36217
+ "deviceManager.setType": [{
36218
+ name: "deviceId",
36219
+ form: "single",
36220
+ optional: false
36221
+ }],
36222
+ "deviceManager.setWrapperActive": [{
36223
+ name: "deviceId",
36224
+ form: "single",
36225
+ optional: false
36226
+ }],
36227
+ "deviceManager.testField": [{
36228
+ name: "deviceId",
36229
+ form: "single",
36230
+ optional: false
36231
+ }],
36232
+ "deviceManager.updateConfig": [{
36233
+ name: "deviceId",
36234
+ form: "single",
36235
+ optional: false
36236
+ }],
36237
+ "deviceManager.updateDeviceField": [{
36238
+ name: "deviceId",
36239
+ form: "single",
36240
+ optional: false
36241
+ }],
36242
+ "deviceManager.updateDeviceFieldsBatch": [{
36243
+ name: "deviceId",
36244
+ form: "single",
36245
+ optional: false
36246
+ }],
36247
+ "deviceOps.getConfigEntries": [{
36248
+ name: "deviceId",
36249
+ form: "single",
36250
+ optional: false
36251
+ }],
36252
+ "deviceOps.getRawState": [{
36253
+ name: "deviceId",
36254
+ form: "single",
36255
+ optional: false
36256
+ }],
36257
+ "deviceOps.getSettingsSchema": [{
36258
+ name: "deviceId",
36259
+ form: "single",
36260
+ optional: false
36261
+ }],
36262
+ "deviceOps.getStreamSources": [{
36263
+ name: "deviceId",
36264
+ form: "single",
36265
+ optional: false
36266
+ }],
36267
+ "deviceOps.removeDevice": [{
36268
+ name: "deviceId",
36269
+ form: "single",
36270
+ optional: false
36271
+ }],
36272
+ "deviceOps.runAction": [{
36273
+ name: "deviceId",
36274
+ form: "single",
36275
+ optional: false
36276
+ }],
36277
+ "deviceOps.setConfig": [{
36278
+ name: "deviceId",
36279
+ form: "single",
36280
+ optional: false
36281
+ }],
36282
+ "deviceState.getCapSlice": [{
36283
+ name: "deviceId",
36284
+ form: "single",
36285
+ optional: false
36286
+ }],
36287
+ "deviceState.getSnapshot": [{
36288
+ name: "deviceId",
36289
+ form: "single",
36290
+ optional: false
36291
+ }],
36292
+ "deviceState.setCapSlice": [{
36293
+ name: "deviceId",
36294
+ form: "single",
36295
+ optional: false
36296
+ }],
36297
+ "events.getEventClipUrl": [{
36298
+ name: "deviceId",
36299
+ form: "single",
36300
+ optional: false
36301
+ }],
36302
+ "events.getEvents": [{
36303
+ name: "deviceId",
36304
+ form: "single",
36305
+ optional: false
36306
+ }],
36307
+ "events.getEventThumbnail": [{
36308
+ name: "deviceId",
36309
+ form: "single",
36310
+ optional: false
36311
+ }],
36312
+ "faceGallery.getFaceByTrack": [{
36313
+ name: "deviceId",
36314
+ form: "single",
36315
+ optional: false
36316
+ }],
36317
+ "faceGallery.listRecentFaces": [{
36318
+ name: "deviceId",
36319
+ form: "single",
36320
+ optional: true
36321
+ }],
36322
+ "fanControl.setDirection": [{
36323
+ name: "deviceId",
36324
+ form: "single",
36325
+ optional: false
36326
+ }],
36327
+ "fanControl.setOscillating": [{
36328
+ name: "deviceId",
36329
+ form: "single",
36330
+ optional: false
36331
+ }],
36332
+ "fanControl.setPercentage": [{
36333
+ name: "deviceId",
36334
+ form: "single",
36335
+ optional: false
36336
+ }],
36337
+ "fanControl.setPreset": [{
36338
+ name: "deviceId",
36339
+ form: "single",
36340
+ optional: false
36341
+ }],
36342
+ "humidifier.setMode": [{
36343
+ name: "deviceId",
36344
+ form: "single",
36345
+ optional: false
36346
+ }],
36347
+ "humidifier.setOn": [{
36348
+ name: "deviceId",
36349
+ form: "single",
36350
+ optional: false
36351
+ }],
36352
+ "humidifier.setTargetHumidity": [{
36353
+ name: "deviceId",
36354
+ form: "single",
36355
+ optional: false
36356
+ }],
36357
+ "imageSettings.getOptions": [{
36358
+ name: "deviceId",
36359
+ form: "single",
36360
+ optional: false
36361
+ }],
36362
+ "imageSettings.setSettings": [{
36363
+ name: "deviceId",
36364
+ form: "single",
36365
+ optional: false
36366
+ }],
36367
+ "intercom.endTalkSession": [{
36368
+ name: "deviceId",
36369
+ form: "single",
36370
+ optional: false
36371
+ }],
36372
+ "intercom.handleAnswer": [{
36373
+ name: "deviceId",
36374
+ form: "single",
36375
+ optional: false
36376
+ }],
36377
+ "intercom.pushTalkAudio": [{
36378
+ name: "deviceId",
36379
+ form: "single",
36380
+ optional: false
36381
+ }],
36382
+ "intercom.startSession": [{
36383
+ name: "deviceId",
36384
+ form: "single",
36385
+ optional: false
36386
+ }],
36387
+ "intercom.startTalkSession": [{
36388
+ name: "deviceId",
36389
+ form: "single",
36390
+ optional: false
36391
+ }],
36392
+ "intercom.stopSession": [{
36393
+ name: "deviceId",
36394
+ form: "single",
36395
+ optional: false
36396
+ }],
36397
+ "lawnMowerControl.dock": [{
36398
+ name: "deviceId",
36399
+ form: "single",
36400
+ optional: false
36401
+ }],
36402
+ "lawnMowerControl.pause": [{
36403
+ name: "deviceId",
36404
+ form: "single",
36405
+ optional: false
36406
+ }],
36407
+ "lawnMowerControl.startMowing": [{
36408
+ name: "deviceId",
36409
+ form: "single",
36410
+ optional: false
36411
+ }],
36412
+ "lockControl.lock": [{
36413
+ name: "deviceId",
36414
+ form: "single",
36415
+ optional: false
36416
+ }],
36417
+ "lockControl.open": [{
36418
+ name: "deviceId",
36419
+ form: "single",
36420
+ optional: false
36421
+ }],
36422
+ "lockControl.unlock": [{
36423
+ name: "deviceId",
36424
+ form: "single",
36425
+ optional: false
36426
+ }],
36427
+ "mediaPlayer.next": [{
36428
+ name: "deviceId",
36429
+ form: "single",
36430
+ optional: false
36431
+ }],
36432
+ "mediaPlayer.pause": [{
36433
+ name: "deviceId",
36434
+ form: "single",
36435
+ optional: false
36436
+ }],
36437
+ "mediaPlayer.play": [{
36438
+ name: "deviceId",
36439
+ form: "single",
36440
+ optional: false
36441
+ }],
36442
+ "mediaPlayer.playMedia": [{
36443
+ name: "deviceId",
36444
+ form: "single",
36445
+ optional: false
36446
+ }],
36447
+ "mediaPlayer.previous": [{
36448
+ name: "deviceId",
36449
+ form: "single",
36450
+ optional: false
36451
+ }],
36452
+ "mediaPlayer.seek": [{
36453
+ name: "deviceId",
36454
+ form: "single",
36455
+ optional: false
36456
+ }],
36457
+ "mediaPlayer.selectSource": [{
36458
+ name: "deviceId",
36459
+ form: "single",
36460
+ optional: false
36461
+ }],
36462
+ "mediaPlayer.setMute": [{
36463
+ name: "deviceId",
36464
+ form: "single",
36465
+ optional: false
36466
+ }],
36467
+ "mediaPlayer.setRepeat": [{
36468
+ name: "deviceId",
36469
+ form: "single",
36470
+ optional: false
36471
+ }],
36472
+ "mediaPlayer.setShuffle": [{
36473
+ name: "deviceId",
36474
+ form: "single",
36475
+ optional: false
36476
+ }],
36477
+ "mediaPlayer.setVolume": [{
36478
+ name: "deviceId",
36479
+ form: "single",
36480
+ optional: false
36481
+ }],
36482
+ "mediaPlayer.stop": [{
36483
+ name: "deviceId",
36484
+ form: "single",
36485
+ optional: false
36486
+ }],
36487
+ "motion.isDetected": [{
36488
+ name: "deviceId",
36489
+ form: "single",
36490
+ optional: false
36491
+ }],
36492
+ "motionDetection.analyze": [{
36493
+ name: "deviceId",
36494
+ form: "single",
36495
+ optional: false
36496
+ }],
36497
+ "motionDetection.removeCamera": [{
36498
+ name: "deviceId",
36499
+ form: "single",
36500
+ optional: false
36501
+ }],
36502
+ "motionTrigger.setMotionTrigger": [{
36503
+ name: "deviceId",
36504
+ form: "single",
36505
+ optional: false
36506
+ }],
36507
+ "motionZones.getOptions": [{
36508
+ name: "deviceId",
36509
+ form: "single",
36510
+ optional: false
36511
+ }],
36512
+ "motionZones.setZone": [{
36513
+ name: "deviceId",
36514
+ form: "single",
36515
+ optional: false
36516
+ }],
36517
+ "nativeObjectDetection.setEnabled": [{
36518
+ name: "deviceId",
36519
+ form: "single",
36520
+ optional: false
36521
+ }],
36522
+ "networkQuality.getDeviceStats": [{
36523
+ name: "deviceId",
36524
+ form: "single",
36525
+ optional: false
36526
+ }],
36527
+ "networkQuality.reportClientStats": [{
36528
+ name: "deviceId",
36529
+ form: "single",
36530
+ optional: false
36531
+ }],
36532
+ "notificationRules.setDeviceMuted": [{
36533
+ name: "deviceId",
36534
+ form: "single",
36535
+ optional: false
36536
+ }],
36537
+ "notifier.cancel": [{
36538
+ name: "deviceId",
36539
+ form: "single",
36540
+ optional: false
36541
+ }],
36542
+ "notifier.send": [{
36543
+ name: "deviceId",
36544
+ form: "single",
36545
+ optional: false
36546
+ }],
36547
+ "osd.setOverlay": [{
36548
+ name: "deviceId",
36549
+ form: "single",
36550
+ optional: false
36551
+ }],
36552
+ "osdManager.clearSlotBinding": [{
36553
+ name: "deviceId",
36554
+ form: "single",
36555
+ optional: false
36556
+ }],
36557
+ "osdManager.copyDeviceConfiguration": [{
36558
+ name: "sourceDeviceId",
36559
+ form: "single",
36560
+ optional: false
36561
+ }, {
36562
+ name: "targetDeviceId",
36563
+ form: "single",
36564
+ optional: false
36565
+ }],
36566
+ "osdManager.getDeviceOsd": [{
36567
+ name: "deviceId",
36568
+ form: "single",
36569
+ optional: false
36570
+ }],
36571
+ "osdManager.getSourceCatalog": [{
36572
+ name: "deviceId",
36573
+ form: "single",
36574
+ optional: false
36575
+ }],
36576
+ "osdManager.previewSlot": [{
36577
+ name: "deviceId",
36578
+ form: "single",
36579
+ optional: false
36580
+ }],
36581
+ "osdManager.renderDevice": [{
36582
+ name: "deviceId",
36583
+ form: "single",
36584
+ optional: false
36585
+ }],
36586
+ "osdManager.setSlotBinding": [{
36587
+ name: "deviceId",
36588
+ form: "single",
36589
+ optional: false
36590
+ }],
36591
+ "petFeeder.callPet": [{
36592
+ name: "deviceId",
36593
+ form: "single",
36594
+ optional: false
36595
+ }],
36596
+ "petFeeder.cancelFeed": [{
36597
+ name: "deviceId",
36598
+ form: "single",
36599
+ optional: false
36600
+ }],
36601
+ "petFeeder.feed": [{
36602
+ name: "deviceId",
36603
+ form: "single",
36604
+ optional: false
36605
+ }],
36606
+ "petFeeder.markFoodReplenished": [{
36607
+ name: "deviceId",
36608
+ form: "single",
36609
+ optional: false
36610
+ }],
36611
+ "petFeeder.playSound": [{
36612
+ name: "deviceId",
36613
+ form: "single",
36614
+ optional: false
36615
+ }],
36616
+ "petFeeder.resetDesiccant": [{
36617
+ name: "deviceId",
36618
+ form: "single",
36619
+ optional: false
36620
+ }],
36621
+ "petFeeder.setChildLock": [{
36622
+ name: "deviceId",
36623
+ form: "single",
36624
+ optional: false
36625
+ }],
36626
+ "petFeeder.setFeedSound": [{
36627
+ name: "deviceId",
36628
+ form: "single",
36629
+ optional: false
36630
+ }],
36631
+ "petFeeder.setIndicatorLight": [{
36632
+ name: "deviceId",
36633
+ form: "single",
36634
+ optional: false
36635
+ }],
36636
+ "petFeeder.setVolume": [{
36637
+ name: "deviceId",
36638
+ form: "single",
36639
+ optional: false
36640
+ }],
36641
+ "pipelineAnalytics.clearTracks": [{
36642
+ name: "deviceId",
36643
+ form: "single",
36644
+ optional: false
36645
+ }],
36646
+ "pipelineAnalytics.completeRetrainTrack": [{
36647
+ name: "deviceId",
36648
+ form: "single",
36649
+ optional: false
36650
+ }],
36651
+ "pipelineAnalytics.deleteDeviceEvents": [{
36652
+ name: "deviceId",
36653
+ form: "single",
36654
+ optional: false
36655
+ }],
36656
+ "pipelineAnalytics.deleteTracks": [{
36657
+ name: "deviceId",
36658
+ form: "single",
36659
+ optional: false
36660
+ }],
36661
+ "pipelineAnalytics.deselectRetrainFrame": [{
36662
+ name: "deviceId",
36663
+ form: "single",
36664
+ optional: false
36665
+ }],
36666
+ "pipelineAnalytics.getActiveTracks": [{
36667
+ name: "deviceId",
36668
+ form: "single",
36669
+ optional: false
36670
+ }],
36671
+ "pipelineAnalytics.getAudioEvents": [{
36672
+ name: "deviceId",
36673
+ form: "single",
36674
+ optional: false
36675
+ }],
36676
+ "pipelineAnalytics.getEventDensity": [{
36677
+ name: "deviceId",
36678
+ form: "single",
36679
+ optional: false
36680
+ }],
36681
+ "pipelineAnalytics.getKeyEvents": [{
36682
+ name: "deviceId",
36683
+ form: "single",
36684
+ optional: false
36685
+ }],
36686
+ "pipelineAnalytics.getMotionEvents": [{
36687
+ name: "deviceId",
36688
+ form: "single",
36689
+ optional: false
36690
+ }],
36691
+ "pipelineAnalytics.getObjectEvents": [{
36692
+ name: "deviceId",
36693
+ form: "single",
36694
+ optional: false
36695
+ }],
36696
+ "pipelineAnalytics.getRetrainExportUrl": [{
36697
+ name: "deviceIds",
36698
+ form: "array",
36699
+ optional: true
36700
+ }],
36701
+ "pipelineAnalytics.getSensorEvents": [{
36702
+ name: "deviceId",
36703
+ form: "single",
36704
+ optional: false
36705
+ }],
36706
+ "pipelineAnalytics.getTrack": [{
36707
+ name: "deviceId",
36708
+ form: "single",
36709
+ optional: false
36710
+ }],
36711
+ "pipelineAnalytics.getTrainingExportSummary": [{
36712
+ name: "deviceIds",
36713
+ form: "array",
36714
+ optional: true
36715
+ }],
36716
+ "pipelineAnalytics.getTrainingExportUrl": [{
36717
+ name: "deviceIds",
36718
+ form: "array",
36719
+ optional: true
36720
+ }],
36721
+ "pipelineAnalytics.listEventKinds": [{
36722
+ name: "deviceId",
36723
+ form: "single",
36724
+ optional: false
36725
+ }],
36726
+ "pipelineAnalytics.listEventKindsBatch": [{
36727
+ name: "deviceIds",
36728
+ form: "array",
36729
+ optional: false
36730
+ }],
36731
+ "pipelineAnalytics.listOpsLog": [{
36732
+ name: "deviceId",
36733
+ form: "single",
36734
+ optional: true
36735
+ }],
36736
+ "pipelineAnalytics.listRecentTracks": [{
36737
+ name: "deviceIds",
36738
+ form: "array",
36739
+ optional: false
36740
+ }],
36741
+ "pipelineAnalytics.listRetrainStaging": [{
36742
+ name: "deviceIds",
36743
+ form: "array",
36744
+ optional: true
36745
+ }],
36746
+ "pipelineAnalytics.listTracks": [{
36747
+ name: "deviceId",
36748
+ form: "single",
36749
+ optional: false
36750
+ }],
36751
+ "pipelineAnalytics.proposeRetrainAnnotations": [{
36752
+ name: "deviceId",
36753
+ form: "single",
36754
+ optional: false
36755
+ }],
36756
+ "pipelineAnalytics.pruneEventsBefore": [{
36757
+ name: "deviceId",
36758
+ form: "single",
36759
+ optional: false
36760
+ }],
36761
+ "pipelineAnalytics.pruneTracksBefore": [{
36762
+ name: "deviceId",
36763
+ form: "single",
36764
+ optional: false
36765
+ }],
36766
+ "pipelineAnalytics.rebuildObjectEmbeddings": [{
36767
+ name: "deviceId",
36768
+ form: "single",
36769
+ optional: true
36770
+ }],
36771
+ "pipelineAnalytics.restageRetrainTrack": [{
36772
+ name: "deviceId",
36773
+ form: "single",
36774
+ optional: false
36775
+ }],
36776
+ "pipelineAnalytics.saveRetrainAnnotations": [{
36777
+ name: "deviceId",
36778
+ form: "single",
36779
+ optional: false
36780
+ }],
36781
+ "pipelineAnalytics.searchObjectEvents": [{
36782
+ name: "deviceId",
36783
+ form: "single",
36784
+ optional: true
36785
+ }],
36786
+ "pipelineAnalytics.selectRetrainFrames": [{
36787
+ name: "deviceId",
36788
+ form: "single",
36789
+ optional: false
36790
+ }],
36791
+ "pipelineAnalytics.setTrackFlags": [{
36792
+ name: "deviceId",
36793
+ form: "single",
36794
+ optional: false
36795
+ }],
36796
+ "pipelineAnalytics.wipeAllAnalytics": [{
36797
+ name: "deviceId",
36798
+ form: "single",
36799
+ optional: false
36800
+ }],
36801
+ "pipelineExecutor.runPipeline": [{
36802
+ name: "deviceId",
36803
+ form: "single",
36804
+ optional: true
36805
+ }],
36806
+ "pipelineExecutor.runPipelineBatch": [{
36807
+ name: "deviceId",
36808
+ form: "single",
36809
+ optional: true
36810
+ }],
36811
+ "pipelineOrchestrator.assignAudio": [{
36812
+ name: "deviceId",
36813
+ form: "single",
36814
+ optional: false
36815
+ }],
36816
+ "pipelineOrchestrator.assignPipeline": [{
36817
+ name: "deviceId",
36818
+ form: "single",
36819
+ optional: false
36820
+ }],
36821
+ "pipelineOrchestrator.getAudioAssignment": [{
36822
+ name: "deviceId",
36823
+ form: "single",
36824
+ optional: false
36825
+ }],
36826
+ "pipelineOrchestrator.getCameraMetrics": [{
36827
+ name: "deviceId",
36828
+ form: "single",
36829
+ optional: false
36830
+ }],
36831
+ "pipelineOrchestrator.getCameraSettings": [{
36832
+ name: "deviceId",
36833
+ form: "single",
36834
+ optional: false
36835
+ }],
36836
+ "pipelineOrchestrator.getCameraStatus": [{
36837
+ name: "deviceId",
36838
+ form: "single",
36839
+ optional: false
36840
+ }],
36841
+ "pipelineOrchestrator.getCameraStatuses": [{
36842
+ name: "deviceIds",
36843
+ form: "array",
36844
+ optional: true
36845
+ }],
36846
+ "pipelineOrchestrator.getCameraStepOverrides": [{
36847
+ name: "deviceId",
36848
+ form: "single",
36849
+ optional: false
36850
+ }],
36851
+ "pipelineOrchestrator.getCameraSwitches": [{
36852
+ name: "deviceId",
36853
+ form: "single",
36854
+ optional: false
36855
+ }],
36856
+ "pipelineOrchestrator.getPipelineAssignment": [{
36857
+ name: "deviceId",
36858
+ form: "single",
36859
+ optional: false
36860
+ }],
36861
+ "pipelineOrchestrator.getPipelineDevicePin": [{
36862
+ name: "deviceId",
36863
+ form: "single",
36864
+ optional: false
36865
+ }],
36866
+ "pipelineOrchestrator.resolvePipeline": [{
36867
+ name: "deviceId",
36868
+ form: "single",
36869
+ optional: false
36870
+ }],
36871
+ "pipelineOrchestrator.setCameraPipelineForAgent": [{
36872
+ name: "deviceId",
36873
+ form: "single",
36874
+ optional: false
36875
+ }],
36876
+ "pipelineOrchestrator.setCameraStepOverride": [{
36877
+ name: "deviceId",
36878
+ form: "single",
36879
+ optional: false
36880
+ }],
36881
+ "pipelineOrchestrator.setCameraStepToggle": [{
36882
+ name: "deviceId",
36883
+ form: "single",
36884
+ optional: false
36885
+ }],
36886
+ "pipelineOrchestrator.setCameraSwitch": [{
36887
+ name: "deviceId",
36888
+ form: "single",
36889
+ optional: false
36890
+ }],
36891
+ "pipelineOrchestrator.setPipelineDevicePin": [{
36892
+ name: "deviceId",
36893
+ form: "single",
36894
+ optional: false
36895
+ }],
36896
+ "pipelineOrchestrator.unassignAudio": [{
36897
+ name: "deviceId",
36898
+ form: "single",
36899
+ optional: false
36900
+ }],
36901
+ "pipelineOrchestrator.unassignPipeline": [{
36902
+ name: "deviceId",
36903
+ form: "single",
36904
+ optional: false
36905
+ }],
36906
+ "pipelineRunner.attachCamera": [{
36907
+ name: "deviceId",
36908
+ form: "single",
36909
+ optional: false
36910
+ }],
36911
+ "pipelineRunner.detachCamera": [{
36912
+ name: "deviceId",
36913
+ form: "single",
36914
+ optional: false
36915
+ }],
36916
+ "pipelineRunner.getCameraMetrics": [{
36917
+ name: "deviceId",
36918
+ form: "single",
36919
+ optional: false
36920
+ }],
36921
+ "pipelineRunner.reportMotion": [{
36922
+ name: "deviceId",
36923
+ form: "single",
36924
+ optional: false
36925
+ }],
36926
+ "pipelineRunner.runDetailSubtree": [{
36927
+ name: "deviceId",
36928
+ form: "single",
36929
+ optional: false
36930
+ }],
36931
+ "pipelineRunner.runStatelessStep": [{
36932
+ name: "sourceDeviceId",
36933
+ form: "single",
36934
+ optional: false
36935
+ }],
36936
+ "plateGallery.getPlateByTrack": [{
36937
+ name: "deviceId",
36938
+ form: "single",
36939
+ optional: false
36940
+ }],
36941
+ "plateGallery.listPlates": [{
36942
+ name: "deviceId",
36943
+ form: "single",
36944
+ optional: true
36945
+ }],
36946
+ "privacyMask.getOptions": [{
36947
+ name: "deviceId",
36948
+ form: "single",
36949
+ optional: false
36950
+ }],
36951
+ "privacyMask.setAudioEnabled": [{
36952
+ name: "deviceId",
36953
+ form: "single",
36954
+ optional: false
36955
+ }],
36956
+ "privacyMask.setMask": [{
36957
+ name: "deviceId",
36958
+ form: "single",
36959
+ optional: false
36960
+ }],
36961
+ "ptz.continuousMove": [{
36962
+ name: "deviceId",
36963
+ form: "single",
36964
+ optional: false
36965
+ }],
36966
+ "ptz.deletePreset": [{
36967
+ name: "deviceId",
36968
+ form: "single",
36969
+ optional: false
36970
+ }],
36971
+ "ptz.getOptions": [{
36972
+ name: "deviceId",
36973
+ form: "single",
36974
+ optional: false
36975
+ }],
36976
+ "ptz.getPosition": [{
36977
+ name: "deviceId",
36978
+ form: "single",
36979
+ optional: false
36980
+ }],
36981
+ "ptz.getPresets": [{
36982
+ name: "deviceId",
36983
+ form: "single",
36984
+ optional: false
36985
+ }],
36986
+ "ptz.goHome": [{
36987
+ name: "deviceId",
36988
+ form: "single",
36989
+ optional: false
36990
+ }],
36991
+ "ptz.goToPreset": [{
36992
+ name: "deviceId",
36993
+ form: "single",
36994
+ optional: false
36995
+ }],
36996
+ "ptz.move": [{
36997
+ name: "deviceId",
36998
+ form: "single",
36999
+ optional: false
37000
+ }],
37001
+ "ptz.savePreset": [{
37002
+ name: "deviceId",
37003
+ form: "single",
37004
+ optional: false
37005
+ }],
37006
+ "ptz.setAutofocus": [{
37007
+ name: "deviceId",
37008
+ form: "single",
37009
+ optional: false
37010
+ }],
37011
+ "ptz.stop": [{
37012
+ name: "deviceId",
37013
+ form: "single",
37014
+ optional: false
37015
+ }],
37016
+ "ptzAutotrack.getSettings": [{
37017
+ name: "deviceId",
37018
+ form: "single",
37019
+ optional: false
37020
+ }],
37021
+ "ptzAutotrack.getStatus": [{
37022
+ name: "deviceId",
37023
+ form: "single",
37024
+ optional: false
37025
+ }],
37026
+ "ptzAutotrack.setEnabled": [{
37027
+ name: "deviceId",
37028
+ form: "single",
37029
+ optional: false
37030
+ }],
37031
+ "ptzAutotrack.setSettings": [{
37032
+ name: "deviceId",
37033
+ form: "single",
37034
+ optional: false
37035
+ }],
37036
+ "reboot.reboot": [{
37037
+ name: "deviceId",
37038
+ form: "single",
37039
+ optional: false
37040
+ }],
37041
+ "recording.deleteFootprint": [{
37042
+ name: "deviceId",
37043
+ form: "single",
37044
+ optional: false
37045
+ }],
37046
+ "recording.getAvailability": [{
37047
+ name: "deviceId",
37048
+ form: "single",
37049
+ optional: false
37050
+ }],
37051
+ "recording.getDaysWithRecordings": [{
37052
+ name: "deviceId",
37053
+ form: "single",
37054
+ optional: false
37055
+ }],
37056
+ "recording.getDeviceConfig": [{
37057
+ name: "deviceId",
37058
+ form: "single",
37059
+ optional: false
37060
+ }],
37061
+ "recording.getPlaybackManifest": [{
37062
+ name: "deviceId",
37063
+ form: "single",
37064
+ optional: false
37065
+ }],
37066
+ "recording.listOpsLog": [{
37067
+ name: "deviceId",
37068
+ form: "single",
37069
+ optional: true
37070
+ }],
37071
+ "recording.locateSegment": [{
37072
+ name: "deviceId",
37073
+ form: "single",
37074
+ optional: false
37075
+ }],
37076
+ "recording.pruneFootage": [{
37077
+ name: "deviceId",
37078
+ form: "single",
37079
+ optional: false
37080
+ }],
37081
+ "recording.readGopBytes": [{
37082
+ name: "deviceId",
37083
+ form: "single",
37084
+ optional: false
37085
+ }],
37086
+ "recording.readSegmentBytes": [{
37087
+ name: "deviceId",
37088
+ form: "single",
37089
+ optional: false
37090
+ }],
37091
+ "recording.relocateFootage": [{
37092
+ name: "deviceId",
37093
+ form: "single",
37094
+ optional: true
37095
+ }],
37096
+ "recording.renderClip": [{
37097
+ name: "deviceId",
37098
+ form: "single",
37099
+ optional: false
37100
+ }],
37101
+ "recording.renderGif": [{
37102
+ name: "deviceId",
37103
+ form: "single",
37104
+ optional: false
37105
+ }],
37106
+ "recording.rescanStorage": [{
37107
+ name: "deviceId",
37108
+ form: "single",
37109
+ optional: false
37110
+ }],
37111
+ "recording.setDeviceConfig": [{
37112
+ name: "deviceId",
37113
+ form: "single",
37114
+ optional: false
37115
+ }],
37116
+ "recording.startStorageMigrationMove": [{
37117
+ name: "deviceId",
37118
+ form: "single",
37119
+ optional: true
37120
+ }],
37121
+ "recordingExport.createExport": [{
37122
+ name: "deviceId",
37123
+ form: "single",
37124
+ optional: false
37125
+ }],
37126
+ "recordingExport.listExports": [{
37127
+ name: "deviceId",
37128
+ form: "single",
37129
+ optional: true
37130
+ }],
37131
+ "sceneMonitor.captureReference": [{
37132
+ name: "deviceId",
37133
+ form: "single",
37134
+ optional: false
37135
+ }],
37136
+ "sceneMonitor.createScene": [{
37137
+ name: "deviceId",
37138
+ form: "single",
37139
+ optional: false
37140
+ }],
37141
+ "sceneMonitor.deleteReference": [{
37142
+ name: "deviceId",
37143
+ form: "single",
37144
+ optional: false
37145
+ }],
37146
+ "sceneMonitor.deleteScene": [{
37147
+ name: "deviceId",
37148
+ form: "single",
37149
+ optional: false
37150
+ }],
37151
+ "sceneMonitor.listScenes": [{
37152
+ name: "deviceId",
37153
+ form: "single",
37154
+ optional: false
37155
+ }],
37156
+ "sceneMonitor.recheckNow": [{
37157
+ name: "deviceId",
37158
+ form: "single",
37159
+ optional: false
37160
+ }],
37161
+ "sceneMonitor.updateScene": [{
37162
+ name: "deviceId",
37163
+ form: "single",
37164
+ optional: false
37165
+ }],
37166
+ "scriptRunner.run": [{
37167
+ name: "deviceId",
37168
+ form: "single",
37169
+ optional: false
37170
+ }],
37171
+ "scriptRunner.stop": [{
37172
+ name: "deviceId",
37173
+ form: "single",
37174
+ optional: false
37175
+ }],
37176
+ "snapshot.getSnapshot": [{
37177
+ name: "deviceId",
37178
+ form: "single",
37179
+ optional: false
37180
+ }],
37181
+ "snapshot.getSnapshotOverview": [{
37182
+ name: "deviceIds",
37183
+ form: "array",
37184
+ optional: false
37185
+ }],
37186
+ "snapshot.invalidateCache": [{
37187
+ name: "deviceId",
37188
+ form: "single",
37189
+ optional: false
37190
+ }],
37191
+ "streamBroker.acquireEgressTranscode": [{
37192
+ name: "deviceId",
37193
+ form: "single",
37194
+ optional: false
37195
+ }],
37196
+ "streamBroker.assignProfile": [{
37197
+ name: "deviceId",
37198
+ form: "single",
37199
+ optional: false
37200
+ }],
37201
+ "streamBroker.getDeviceAudioMute": [{
37202
+ name: "deviceId",
37203
+ form: "single",
37204
+ optional: false
37205
+ }],
37206
+ "streamBroker.getStreamWithCodec": [{
37207
+ name: "deviceId",
37208
+ form: "single",
37209
+ optional: false
37210
+ }],
37211
+ "streamBroker.produceEventMedia": [{
37212
+ name: "deviceId",
37213
+ form: "single",
37214
+ optional: false
37215
+ }],
37216
+ "streamBroker.publishCameraStream": [{
37217
+ name: "deviceId",
37218
+ form: "single",
37219
+ optional: false
37220
+ }],
37221
+ "streamBroker.renderPreBufferClip": [{
37222
+ name: "deviceId",
37223
+ form: "single",
37224
+ optional: false
37225
+ }],
37226
+ "streamBroker.restartProfile": [{
37227
+ name: "deviceId",
37228
+ form: "single",
37229
+ optional: false
37230
+ }],
37231
+ "streamBroker.retractCameraStream": [{
37232
+ name: "deviceId",
37233
+ form: "single",
37234
+ optional: false
37235
+ }],
37236
+ "streamBroker.setDeviceAudioMute": [{
37237
+ name: "deviceId",
37238
+ form: "single",
37239
+ optional: false
37240
+ }],
37241
+ "streamBroker.unassignProfile": [{
37242
+ name: "deviceId",
37243
+ form: "single",
37244
+ optional: false
37245
+ }],
37246
+ "streamCatalog.getCatalog": [{
37247
+ name: "deviceId",
37248
+ form: "single",
37249
+ optional: false
37250
+ }],
37251
+ "streamParams.getConfigSchema": [{
37252
+ name: "deviceId",
37253
+ form: "single",
37254
+ optional: false
37255
+ }],
37256
+ "streamParams.getOptions": [{
37257
+ name: "deviceId",
37258
+ form: "single",
37259
+ optional: false
37260
+ }],
37261
+ "streamParams.setProfile": [{
37262
+ name: "deviceId",
37263
+ form: "single",
37264
+ optional: false
37265
+ }],
37266
+ "switch.setState": [{
37267
+ name: "deviceId",
37268
+ form: "single",
37269
+ optional: false
37270
+ }],
37271
+ "vacuumControl.locate": [{
37272
+ name: "deviceId",
37273
+ form: "single",
37274
+ optional: false
37275
+ }],
37276
+ "vacuumControl.pause": [{
37277
+ name: "deviceId",
37278
+ form: "single",
37279
+ optional: false
37280
+ }],
37281
+ "vacuumControl.returnToBase": [{
37282
+ name: "deviceId",
37283
+ form: "single",
37284
+ optional: false
37285
+ }],
37286
+ "vacuumControl.setFanSpeed": [{
37287
+ name: "deviceId",
37288
+ form: "single",
37289
+ optional: false
37290
+ }],
37291
+ "vacuumControl.start": [{
37292
+ name: "deviceId",
37293
+ form: "single",
37294
+ optional: false
37295
+ }],
37296
+ "vacuumControl.stop": [{
37297
+ name: "deviceId",
37298
+ form: "single",
37299
+ optional: false
37300
+ }],
37301
+ "valve.close": [{
37302
+ name: "deviceId",
37303
+ form: "single",
37304
+ optional: false
37305
+ }],
37306
+ "valve.open": [{
37307
+ name: "deviceId",
37308
+ form: "single",
37309
+ optional: false
37310
+ }],
37311
+ "valve.setPosition": [{
37312
+ name: "deviceId",
37313
+ form: "single",
37314
+ optional: false
37315
+ }],
37316
+ "valve.stop": [{
37317
+ name: "deviceId",
37318
+ form: "single",
37319
+ optional: false
37320
+ }],
37321
+ "videoclips.getClipPlayback": [{
37322
+ name: "deviceId",
37323
+ form: "single",
37324
+ optional: false
37325
+ }],
37326
+ "videoclips.listClips": [{
37327
+ name: "deviceId",
37328
+ form: "single",
37329
+ optional: false
37330
+ }],
37331
+ "waterHeater.setAway": [{
37332
+ name: "deviceId",
37333
+ form: "single",
37334
+ optional: false
37335
+ }],
37336
+ "waterHeater.setOperationMode": [{
37337
+ name: "deviceId",
37338
+ form: "single",
37339
+ optional: false
37340
+ }],
37341
+ "waterHeater.setTargetTemp": [{
37342
+ name: "deviceId",
37343
+ form: "single",
37344
+ optional: false
37345
+ }],
37346
+ "webrtcSession.addIceCandidate": [{
37347
+ name: "deviceId",
37348
+ form: "single",
37349
+ optional: false
37350
+ }],
37351
+ "webrtcSession.closeSession": [{
37352
+ name: "deviceId",
37353
+ form: "single",
37354
+ optional: false
37355
+ }],
37356
+ "webrtcSession.createSession": [{
37357
+ name: "deviceId",
37358
+ form: "single",
37359
+ optional: false
37360
+ }],
37361
+ "webrtcSession.getIceCandidates": [{
37362
+ name: "deviceId",
37363
+ form: "single",
37364
+ optional: false
37365
+ }],
37366
+ "webrtcSession.getSessionState": [{
37367
+ name: "deviceId",
37368
+ form: "single",
37369
+ optional: false
37370
+ }],
37371
+ "webrtcSession.handleAnswer": [{
37372
+ name: "deviceId",
37373
+ form: "single",
37374
+ optional: false
37375
+ }],
37376
+ "webrtcSession.handleOffer": [{
37377
+ name: "deviceId",
37378
+ form: "single",
37379
+ optional: false
37380
+ }],
37381
+ "webrtcSession.hasAdaptiveBitrate": [{
37382
+ name: "deviceId",
37383
+ form: "single",
37384
+ optional: false
37385
+ }],
37386
+ "webrtcSession.listStreams": [{
37387
+ name: "deviceId",
37388
+ form: "single",
37389
+ optional: false
37390
+ }],
37391
+ "zoneAnalytics.getCameraHistory": [{
37392
+ name: "deviceId",
37393
+ form: "single",
37394
+ optional: false
37395
+ }],
37396
+ "zoneAnalytics.getCurrentSnapshot": [{
37397
+ name: "deviceId",
37398
+ form: "single",
37399
+ optional: false
37400
+ }],
37401
+ "zoneAnalytics.getUnzonedHistory": [{
37402
+ name: "deviceId",
37403
+ form: "single",
37404
+ optional: false
37405
+ }],
37406
+ "zoneAnalytics.getZoneHistory": [{
37407
+ name: "deviceId",
37408
+ form: "single",
37409
+ optional: false
37410
+ }],
37411
+ "zoneRules.listRules": [{
37412
+ name: "deviceId",
37413
+ form: "single",
37414
+ optional: false
37415
+ }],
37416
+ "zoneRules.setRules": [{
37417
+ name: "deviceId",
37418
+ form: "single",
37419
+ optional: false
37420
+ }],
37421
+ "zones.addZone": [{
37422
+ name: "deviceId",
37423
+ form: "single",
37424
+ optional: false
37425
+ }],
37426
+ "zones.listZones": [{
37427
+ name: "deviceId",
37428
+ form: "single",
37429
+ optional: false
37430
+ }],
37431
+ "zones.removeZone": [{
37432
+ name: "deviceId",
37433
+ form: "single",
37434
+ optional: false
37435
+ }],
37436
+ "zones.updateZone": [{
37437
+ name: "deviceId",
37438
+ form: "single",
37439
+ optional: false
37440
+ }]
37441
+ });
35518
37442
  Object.freeze({
35519
37443
  "broker": "broker",
35520
37444
  "device-export": "device-export",
@@ -36230,6 +38154,12 @@ Object.defineProperty(exports, "NcSnoozeSuppressedSchema", {
36230
38154
  return NcSnoozeSuppressedSchema;
36231
38155
  }
36232
38156
  });
38157
+ Object.defineProperty(exports, "NcSystemEventKindSchema", {
38158
+ enumerable: true,
38159
+ get: function() {
38160
+ return NcSystemEventKindSchema;
38161
+ }
38162
+ });
36233
38163
  Object.defineProperty(exports, "NcTaxonomySchema", {
36234
38164
  enumerable: true,
36235
38165
  get: function() {