@camstack/addon-pipeline 1.2.74 → 1.2.76

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.
Files changed (36) hide show
  1. package/dist/{addon-utils-CQs-AjTJ.js → addon-utils-CTpQfjSR.js} +4 -4
  2. package/dist/audio-analyzer/index.js +5 -6
  3. package/dist/audio-analyzer/index.mjs +3 -3
  4. package/dist/detection-pipeline/index.js +9 -10
  5. package/dist/detection-pipeline/index.mjs +5 -5
  6. package/dist/{dist-CgJ8MRAy.js → dist-CZLjObZZ.js} +1996 -29
  7. package/dist/{dist-CKY0efl3.mjs → dist-zksfWnEA.mjs} +1961 -29
  8. package/dist/{event-loop-stall-monitor-CIapFIez.mjs → event-loop-stall-monitor-BuZA3loB.mjs} +1 -1
  9. package/dist/{event-loop-stall-monitor-Dx-zXcNg.js → event-loop-stall-monitor-CcBQAI28.js} +1 -1
  10. package/dist/lazy-sharp-6oymT_yf.mjs +341 -0
  11. package/dist/lazy-sharp-SWR_D1Um.js +360 -0
  12. package/dist/motion-wasm/index.js +3 -3
  13. package/dist/motion-wasm/index.mjs +3 -3
  14. package/dist/pipeline-runner/index.js +280 -18
  15. package/dist/pipeline-runner/index.mjs +278 -15
  16. package/dist/recorder/index.js +138 -32
  17. package/dist/recorder/index.mjs +137 -30
  18. package/dist/session-decode/decode-worker-child.js +311 -126
  19. package/dist/session-decode/decode-worker-child.mjs +311 -123
  20. package/dist/stream-broker/_stub.js +94 -94
  21. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DVJ4gKkk.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Dd6XOtVn.mjs} +2 -2
  22. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-RYTOS6B-.mjs +26 -0
  23. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DfsLsn2e.mjs +26 -0
  24. package/dist/stream-broker/{hostInit-5SFdfUyc.mjs → hostInit-COc_Q_xX.mjs} +2 -2
  25. package/dist/stream-broker/index.js +12 -13
  26. package/dist/stream-broker/index.mjs +3 -3
  27. package/dist/stream-broker/remoteEntry.js +1 -1
  28. package/dist/{worker-protocol-D44DCkcs.js → worker-protocol-DAQ1iZFK.js} +1 -1
  29. package/dist/{worker-protocol-BzAQPUR-.mjs → worker-protocol-DyX_HbaJ.mjs} +1 -1
  30. package/package.json +1 -1
  31. package/dist/chunk-emK7D4bc.js +0 -35
  32. package/dist/lazy-sharp-B-mb8uWx.mjs +0 -20
  33. package/dist/lazy-sharp-CcYuXtsa.js +0 -25
  34. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C_plRUtD.mjs +0 -26
  35. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CExO0piw.mjs +0 -26
  36. package/dist/{addon-utils-CZ2xo67g.mjs → addon-utils-A2S9D7pu.mjs} +2 -2
@@ -1,5 +1,28 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
+ get: ((k) => from[k]).bind(null, key),
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
20
+ value: mod,
21
+ enumerable: true
22
+ }) : target, mod));
23
+ //#endregion
1
24
  let node_crypto = require("node:crypto");
2
- //#region ../types/dist/event-category-Cv9dO26A.mjs
25
+ //#region ../types/dist/event-category-Bxo5yJjt.mjs
3
26
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
27
  EventCategory["SystemBoot"] = "system.boot";
5
28
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -206,6 +229,33 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
206
229
  EventCategory["PipelineCameraAssigned"] = "pipeline.camera-assigned";
207
230
  EventCategory["PipelineCameraUnassigned"] = "pipeline.camera-unassigned";
208
231
  /**
232
+ * A node the orchestrator would otherwise place cameras on has NO usable
233
+ * inference device: the operator enabled one or more accelerators there and
234
+ * the live probe reports every one of them unavailable. Emitted once per
235
+ * TRANSITION into that state (never per dispatch), and the node is dropped
236
+ * from the placement candidate set for as long as it holds.
237
+ *
238
+ * This exists because the state was previously invisible: little-unraid
239
+ * absorbed 283k inference errors in a day while still being handed cameras,
240
+ * and nothing in the system said so.
241
+ *
242
+ * A node with no accelerators configured at all is NOT this — its devices
243
+ * are `disabled`, not `unavailable`, and the runner's default CPU pool
244
+ * serves it exactly as before.
245
+ */
246
+ EventCategory["PipelineNodeInferenceUnavailable"] = "pipeline.node-inference-unavailable";
247
+ /**
248
+ * A camera has an OPEN detection session and has produced no detection at
249
+ * all for longer than the blind threshold — the camera is being decoded and
250
+ * inferred and is returning nothing. Emitted once per transition into blind,
251
+ * per camera.
252
+ *
253
+ * The failure it reports: a 1h43 detection blackout on the entrance camera
254
+ * that nobody noticed, because "a camera that detects nothing" and "a quiet
255
+ * camera" produce byte-identical silence.
256
+ */
257
+ EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
258
+ /**
209
259
  * Per-camera pipeline config was mutated by the orchestrator
210
260
  * (3-level settings change via `setAgentAddonDefaults` /
211
261
  * `setCameraStepToggle` / `setCameraPipelineForAgent` or a
@@ -2997,6 +3047,9 @@ function handlePipeResult(left, next, ctx) {
2997
3047
  fallback: left.fallback
2998
3048
  }, ctx);
2999
3049
  }
3050
+ var $ZodPreprocess = /*@__PURE__*/ $constructor("$ZodPreprocess", (inst, def) => {
3051
+ $ZodPipe.init(inst, def);
3052
+ });
3000
3053
  var $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => {
3001
3054
  $ZodType.init(inst, def);
3002
3055
  defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues);
@@ -5182,6 +5235,10 @@ function pipe(in_, out) {
5182
5235
  out
5183
5236
  });
5184
5237
  }
5238
+ var ZodPreprocess = /*@__PURE__*/ $constructor("ZodPreprocess", (inst, def) => {
5239
+ ZodPipe.init(inst, def);
5240
+ $ZodPreprocess.init(inst, def);
5241
+ });
5185
5242
  var ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => {
5186
5243
  $ZodReadonly.init(inst, def);
5187
5244
  ZodType.init(inst, def);
@@ -5240,6 +5297,13 @@ function _instanceof(cls, params = {}) {
5240
5297
  };
5241
5298
  return inst;
5242
5299
  }
5300
+ function preprocess(fn, schema) {
5301
+ return new ZodPreprocess({
5302
+ type: "pipe",
5303
+ in: transform(fn),
5304
+ out: schema
5305
+ });
5306
+ }
5243
5307
  //#endregion
5244
5308
  //#region ../../node_modules/zod/v4/classic/compat.js
5245
5309
  /** @deprecated Use the raw string literal codes instead, e.g. "invalid_type". */
@@ -15784,6 +15848,8 @@ var NcSystemEventKindSchema = _enum([
15784
15848
  "stream-offline",
15785
15849
  "node-online",
15786
15850
  "node-offline",
15851
+ "node-inference-unavailable",
15852
+ "detection-blind",
15787
15853
  "addon-update-available",
15788
15854
  "server-update-available",
15789
15855
  "alarm-triggered",
@@ -15845,7 +15911,16 @@ var NcScheduleSchema = object({
15845
15911
  });
15846
15912
  /** Fuzzy plate matcher — OCR noise makes exact match useless (spec row 12/13). */
15847
15913
  var NcPlateMatcherSchema = object({
15848
- values: array(string().min(1)).min(1),
15914
+ /**
15915
+ * Plate texts (or gallery vehicle names) to match. EMPTY = **any plate the
15916
+ * pipeline could read** — the plate half of "no selection = no narrowing",
15917
+ * and the switch that says this rule is about vehicles that were IDENTIFIED
15918
+ * rather than merely seen. A subject carrying no plate still fails.
15919
+ *
15920
+ * The `.min(1)` this used to carry made that state unauthorable; nothing has
15921
+ * ever persisted an empty list, so widening it cannot change an existing rule.
15922
+ */
15923
+ values: array(string().min(1)),
15849
15924
  /** Max Levenshtein distance after normalization (uppercase alphanumeric). */
15850
15925
  maxDistance: number().int().min(0).max(3).default(1)
15851
15926
  });
@@ -16084,18 +16159,47 @@ var NcConditionsSchema = object({
16084
16159
  */
16085
16160
  labelEquals: array(string().min(1)).optional(),
16086
16161
  /**
16087
- * Identity matcher. P1 boundary: matched against the record's collapsed
16088
- * `label` (the identity display name propagated by the face pipeline) —
16089
- * identity-ID matching rides in P2 when identity ids reach the record.
16162
+ * KNOWN FACES the rule's identity scope, and the switch that says the rule
16163
+ * is about recognised people at all.
16164
+ *
16165
+ * Three states, and the empty one is the point:
16166
+ *
16167
+ * | value | meaning |
16168
+ * | --- | --- |
16169
+ * | absent | the rule does not care who it is; an unrecognised person matches |
16170
+ * | `[]` | **only known faces** — any identity in the gallery, nobody in particular |
16171
+ * | a list | only these identities |
16172
+ *
16173
+ * `[]` is the repo-wide "no selection = no narrowing" reading (an absent
16174
+ * `devices` list is every device), applied one level down: the operator has
16175
+ * turned the face scope ON and narrowed it to nothing, which is every known
16176
+ * face. No second field states the same thing — a switch that can disagree
16177
+ * with the list under it is worse than no switch (D62).
16178
+ *
16179
+ * MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
16180
+ * renameable, and a rule authored on "Gianluca" went silently dark the moment
16181
+ * the operator fixed the spelling. The id reaches the record on
16182
+ * `LabelAttribution.identityId`; the name is what the editor shows and what
16183
+ * `{{label}}` renders.
16184
+ *
16185
+ * Rules written before this carry NAMES, and are resolved to ids lazily at
16186
+ * load (`NcRuleStore.load`) against the live gallery — a name nothing answers
16187
+ * for is left as it stands and reported, never dropped. The engine also
16188
+ * accepts a display-name hit as a compatibility leg, so a rule whose
16189
+ * migration could not resolve keeps matching exactly what it matched before.
16090
16190
  */
16091
16191
  identities: array(string().min(1)).optional(),
16092
- /** Fuzzy plate matcher against the record's `label` (plate text). */
16192
+ /**
16193
+ * KNOWN PLATES / VEHICLES — the plate mirror of {@link identities}, including
16194
+ * the empty-list reading: `values: []` is "any plate the OCR could read",
16195
+ * a non-empty list is those plates (fuzzily). See {@link NcPlateMatcherSchema}.
16196
+ */
16093
16197
  plates: NcPlateMatcherSchema.optional(),
16094
16198
  /**
16095
- * Identity EXCLUDE — mirror of {@link identities} with `notIn` semantics.
16096
- * Same P1 boundary: matched against the record's collapsed `label` (the
16097
- * identity display name). A record with NO label passes (nothing to
16098
- * exclude), unlike the include variant which fails on an absent label.
16199
+ * Identity EXCLUDE — mirror of {@link identities} with `notIn` semantics, and
16200
+ * the same id members and the same lazy name→id migration. A record with NO
16201
+ * identity passes (nothing to exclude), unlike the include variant which
16202
+ * fails on an unrecognised subject. An EMPTY list excludes nobody.
16099
16203
  */
16100
16204
  identitiesExclude: array(string().min(1)).optional(),
16101
16205
  /**
@@ -16487,7 +16591,80 @@ var NcRuleInputSchema = object({
16487
16591
  * a rule that predates the gate must keep delivering byte-for-byte as it
16488
16592
  * did, and absent is the only way to say that without a migration.
16489
16593
  */
16490
- confirm: NcConfirmSchema.optional()
16594
+ confirm: NcConfirmSchema.optional(),
16595
+ /**
16596
+ * WAIT for face/plate recognition before saying anything.
16597
+ *
16598
+ * A notification's TEXT is frozen at enqueue and its media is re-resolved at
16599
+ * send; the identity is neither. A face is confirmed after `confirmFrames`
16600
+ * agreeing observations — p50 **11.4 s** after the track was first seen,
16601
+ * measured on this hub — and an `immediate` rule enqueues on the first object
16602
+ * event, seconds before that. So "Gianluca è arrivato" is unsayable on the
16603
+ * immediate path, and no amount of media re-resolution fixes a sentence.
16604
+ *
16605
+ * Only two honest answers exist, and this flag picks between them. It has
16606
+ * effect ONLY on a rule that declares a recognition scope
16607
+ * ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
16608
+ * other rule there is nothing to wait for and the flag is inert.
16609
+ *
16610
+ * | value | what happens |
16611
+ * | --- | --- |
16612
+ * | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
16613
+ * | 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) |
16614
+ *
16615
+ * `.optional()` and deliberately NOT `.default()`: a Zod default does not run
16616
+ * on the addon cap path, and absent has to keep meaning exactly what every
16617
+ * rule authored before this field meant.
16618
+ *
16619
+ * The cost of `true` is stated here because the editor states it too: a rule
16620
+ * that waits also inherits track-close SEMANTICS — its `zones` condition
16621
+ * tests every zone the track visited and a `crossing` condition can no longer
16622
+ * be satisfied, because a closed track carries no crossing.
16623
+ */
16624
+ waitForEnhancement: boolean().optional(),
16625
+ /**
16626
+ * GROUP a burst of subjects into ONE notification that grows.
16627
+ *
16628
+ * Seconds of quiet after the last matching subject before the burst is
16629
+ * considered over. While it is open, the first subject enqueues immediately —
16630
+ * **exactly as today, with no added latency** — and every real growth (a new
16631
+ * subject, or a name confirmed on one already in it) REPLACES that
16632
+ * notification with an updated one naming everybody. The push carries the
16633
+ * group's own coalescing tag, so the phone replaces rather than stacks.
16634
+ *
16635
+ * `0` / absent = off, and off is today's behaviour byte for byte.
16636
+ *
16637
+ * ### Why an idle cutoff and not a window
16638
+ *
16639
+ * The measured seven-person arrival on device 590 spans 110 s with every
16640
+ * internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
16641
+ * idle cutoff holds it as one and ends it when the arrival actually ends.
16642
+ * 30 is Frigate's shipped value for the same decision.
16643
+ *
16644
+ * ### What it replaces
16645
+ *
16646
+ * The blind cooldown, which collapses a burst by DISCARDING it. Measured on
16647
+ * device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
16648
+ * notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
16649
+ * track that did fire and 7 carrying a confirmed identity nobody heard about.
16650
+ * A group collapses the same volume by MERGING, so the cooldown becomes a
16651
+ * budget over GROUPS — which is what it always meant — and a growth is never
16652
+ * throttled by the window its own first member spent.
16653
+ *
16654
+ * ### Interaction with {@link waitForEnhancement}
16655
+ *
16656
+ * They compose, and the order matters. `waitForEnhancement` defers the rule to
16657
+ * TRACK CLOSE, so with both set the group is opened by the first member to
16658
+ * CLOSE — already carrying its name — and grows as later members close. That
16659
+ * is later, and complete. With grouping alone the group opens on the first
16660
+ * object event and picks up names as they are confirmed, through the growth
16661
+ * path. Neither combination fires twice for one subject.
16662
+ *
16663
+ * `.optional()` and deliberately NOT `.default()`: a Zod default does not run
16664
+ * on the addon cap path, so absent must keep meaning what it meant before this
16665
+ * field existed.
16666
+ */
16667
+ groupIdleSec: number().int().min(0).max(600).optional()
16491
16668
  });
16492
16669
  /**
16493
16670
  * Partial patch for `updateRule` — any subset of the input fields, plus the
@@ -16999,7 +17176,87 @@ var MethodAccessSchema = _enum([
16999
17176
  var AllowedProviderSchema = union([literal("*"), array(string())]);
17000
17177
  var AllowedDevicesSchema = record(string(), union([literal("*"), array(string())]));
17001
17178
  var CapScopeSchema = _enum(["device", "system"]);
17002
- var TokenScopeSchema = discriminatedUnion("type", [
17179
+ /**
17180
+ * DeviceSelector (scope model v3 — 2026-08-12).
17181
+ *
17182
+ * A `device` grant no longer carries a frozen list of deviceIds. It carries
17183
+ * a SELECTOR the matcher resolves against the live fleet, so the grant can be
17184
+ * DYNAMIC: a `types:['camera']` selector automatically covers a camera added
17185
+ * AFTER the grant was minted — no re-grant, no re-login.
17186
+ *
17187
+ * - `all` — every device in the deployment. The broad viewer/operator
17188
+ * lever without a `category` grant (a `category` grant also covers device
17189
+ * caps that carry no deviceId; `all` is specifically the device set).
17190
+ * - `ids` — an explicit deviceId list. This is what a v2 `device:[…]`
17191
+ * grant migrates to (see {@link TokenScopeSchema}); STATIC — a new camera
17192
+ * is NOT covered until the grant is edited.
17193
+ * - `types` — every device of a `DeviceType` (e.g. every `camera`).
17194
+ * DYNAMIC. A device that changes type, or a new device of the type,
17195
+ * re-resolves on the next request.
17196
+ * - `locations` — every device whose operator-assigned `location` label is
17197
+ * in the set (e.g. "Garden", "Front door"). DYNAMIC. A device with a
17198
+ * null/unset location matches NO `locations` selector.
17199
+ */
17200
+ var DeviceSelectorSchema = discriminatedUnion("kind", [
17201
+ object({ kind: literal("all") }),
17202
+ object({
17203
+ kind: literal("ids"),
17204
+ ids: array(number().int()).min(1)
17205
+ }),
17206
+ object({
17207
+ kind: literal("types"),
17208
+ types: array(_enum(DeviceType)).min(1)
17209
+ }),
17210
+ object({
17211
+ kind: literal("locations"),
17212
+ locations: array(string().min(1)).min(1)
17213
+ })
17214
+ ]);
17215
+ var DeviceTokenScopeSchema = object({
17216
+ type: literal("device"),
17217
+ /** The device SET this grant covers — resolved against the live fleet. */
17218
+ selector: DeviceSelectorSchema,
17219
+ access: array(MethodAccessSchema).min(1),
17220
+ /**
17221
+ * Whether a grant on a PARENT device transparently covers its accessory
17222
+ * CHILDREN (siren / floodlight / PIR) via the persisted-parentage walk.
17223
+ * Direction is parent → children ONLY.
17224
+ *
17225
+ * Absent → the matcher DERIVES it from the access flavour: `view`
17226
+ * inherits (a camera viewer sees the camera's accessories), `create` /
17227
+ * `delete` do NOT (actuating/removing a child is an explicit act the
17228
+ * operator must grant on the child, not inherit from the parent). Set it
17229
+ * explicitly to override that default per grant.
17230
+ */
17231
+ includeLinked: boolean().optional()
17232
+ });
17233
+ /**
17234
+ * v2 → v3 lazy migration. A pre-v3 `device` grant carried
17235
+ * `targets: string[]` (stringified deviceIds); it rewrites to the equivalent
17236
+ * `selector: {kind:'ids', ids}`. Applied as a `preprocess` so it runs on
17237
+ * EVERY parse path — stored records AND the JWT-carried scope arrays
17238
+ * normalised at the request boundary ({@link normalizeTokenScopes} in
17239
+ * `device-selector.ts`). Chosen over a one-time DB migration because a
17240
+ * migration cannot reach a JWT already in a client's hands; parse-time
17241
+ * migration covers both without a flag day. No cast — the raw object is read
17242
+ * through `Reflect.get` (its static type is `unknown`).
17243
+ */
17244
+ function migrateLegacyTokenScope(raw) {
17245
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return raw;
17246
+ if (Reflect.get(raw, "type") !== "device") return raw;
17247
+ if (Reflect.get(raw, "selector") !== void 0) return raw;
17248
+ const targets = Reflect.get(raw, "targets");
17249
+ if (!Array.isArray(targets)) return raw;
17250
+ return {
17251
+ type: "device",
17252
+ selector: {
17253
+ kind: "ids",
17254
+ ids: targets.map((t) => typeof t === "string" ? Number(t) : t).filter((n) => typeof n === "number" && Number.isInteger(n))
17255
+ },
17256
+ access: Reflect.get(raw, "access")
17257
+ };
17258
+ }
17259
+ var TokenScopeSchema = preprocess(migrateLegacyTokenScope, discriminatedUnion("type", [
17003
17260
  object({
17004
17261
  type: literal("category"),
17005
17262
  target: CapScopeSchema,
@@ -17015,18 +17272,8 @@ var TokenScopeSchema = discriminatedUnion("type", [
17015
17272
  target: string(),
17016
17273
  access: array(MethodAccessSchema).min(1)
17017
17274
  }),
17018
- object({
17019
- type: literal("device"),
17020
- /**
17021
- * One or more deviceIds (serialised as strings for wire-format
17022
- * consistency with the rest of the union). Matcher accepts if
17023
- * `input.deviceId` ∈ `targets`. Array shape avoids the row-explosion
17024
- * of one scope-per-device when granting access to a set of cameras.
17025
- */
17026
- targets: array(string()).min(1),
17027
- access: array(MethodAccessSchema).min(1)
17028
- })
17029
- ]);
17275
+ DeviceTokenScopeSchema
17276
+ ]));
17030
17277
  object({
17031
17278
  id: string(),
17032
17279
  username: string(),
@@ -17343,7 +17590,7 @@ var TrackEnvelopeSchema = object({
17343
17590
  * `snapshots[]` references — megabytes across a page of tracks. `slim`
17344
17591
  * keeps every scalar the list surfaces actually render (ids, class(es),
17345
17592
  * label / audioLabels / importance enrichment, firstSeen/lastSeen, state,
17346
- * zonesVisited, bestEventId, envelope, hasFace) and returns `positions` /
17593
+ * zonesVisited, bestEventId, envelope, hasFace, hasRider) and returns `positions` /
17347
17594
  * `snapshots` as EMPTY arrays — detail views re-fetch the full row via
17348
17595
  * `getTrack`. Mirrors the event-store `projection` convention
17349
17596
  * (`getObjectEvents` et al.).
@@ -17479,7 +17726,21 @@ union([literal(1), literal(2)]);
17479
17726
  var LabelAttributionSchema = object({
17480
17727
  stepId: string(),
17481
17728
  modelId: string().optional(),
17482
- decidedAt: number()
17729
+ decidedAt: number(),
17730
+ /**
17731
+ * The GALLERY id behind a recognised tier-2 label — a face-gallery
17732
+ * `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
17733
+ *
17734
+ * The text alone is a DISPLAY NAME, and a display name is renameable: a
17735
+ * notification rule authored on "Gianluca" stopped matching the moment the
17736
+ * operator fixed the spelling in the gallery, and nothing said so. The id is
17737
+ * the thing that does not move, so it is what a rule matches on
17738
+ * (`NcConditions.identities`) and the text is what a human is shown.
17739
+ *
17740
+ * Absent when the label names no gallery row — a plate the OCR read but no
17741
+ * vehicle claims, a sub-class, a species, any tier-1 value.
17742
+ */
17743
+ identityId: string().optional()
17483
17744
  });
17484
17745
  /**
17485
17746
  * The TIERED label model (roadmap 4g), spread into `TrackSchema` and
@@ -17616,6 +17877,28 @@ var TrackSchema = object({
17616
17877
  * `=== true` and render nothing otherwise, never infer "no face".
17617
17878
  */
17618
17879
  hasFace: boolean().optional(),
17880
+ /**
17881
+ * This subject CONTAINS a folded rider — a person the rider-pairing step
17882
+ * ([D34](../decisions/adr-0034.md)) removed from the frame BEFORE the tracker,
17883
+ * so the passage is tracked once and as a VEHICLE.
17884
+ *
17885
+ * It exists because the fold's record was dishonest. D34 and the code both
17886
+ * said "the person is not lost — it is reported so both entities stay on the
17887
+ * record"; in fact the pair went into a per-processor RAM field behind an
17888
+ * accessor nobody called, and every durable surface said `vehicle`, full
17889
+ * stop. This is the composition note that makes the row true.
17890
+ *
17891
+ * A COMPOSITION, never a class and never a label. "This vehicle contains a
17892
+ * person" is not an answer to "what is this" — both label tiers would refuse
17893
+ * a macro token anyway (D89), and correctly. Nothing here changes what the
17894
+ * subject IS: a cyclist stays one vehicle track, occupancy still counts one,
17895
+ * and a `person` rule still does not fire for someone cycling past.
17896
+ *
17897
+ * **Absent ≠ false**, exactly like {@link hasFace}: every row written before
17898
+ * the column, and every hub that predates the field, omits it. Test
17899
+ * `=== true` and render nothing otherwise — never infer "no rider".
17900
+ */
17901
+ hasRider: boolean().optional(),
17619
17902
  ...TrackFlagFields,
17620
17903
  ...TrackRetrainFields
17621
17904
  });
@@ -25756,7 +26039,7 @@ var recordingCapability = {
25756
26039
  toMs: number()
25757
26040
  }), RecordingAvailabilitySchema, {
25758
26041
  kind: "query",
25759
- auth: "admin"
26042
+ auth: "protected"
25760
26043
  }),
25761
26044
  /** Which calendar days in [fromMs,toMs) have ≥1 recorded segment, bucketed by
25762
26045
  * the client's local day (`tzOffsetMinutes` = minutes to add to UTC). Drives
@@ -25768,7 +26051,7 @@ var recordingCapability = {
25768
26051
  tzOffsetMinutes: number()
25769
26052
  }), RecordingDaysSchema, {
25770
26053
  kind: "query",
25771
- auth: "admin"
26054
+ auth: "protected"
25772
26055
  }),
25773
26056
  getPlaybackManifest: method(object({
25774
26057
  deviceId: number(),
@@ -25776,7 +26059,7 @@ var recordingCapability = {
25776
26059
  toMs: number()
25777
26060
  }), RecordingManifestSchema, {
25778
26061
  kind: "query",
25779
- auth: "admin"
26062
+ auth: "protected"
25780
26063
  }),
25781
26064
  getStorageUsage: method(object({}), RecordingStorageUsageSchema, {
25782
26065
  kind: "query",
@@ -32913,6 +33196,1678 @@ Object.freeze({
32913
33196
  access: "create"
32914
33197
  }
32915
33198
  });
33199
+ Object.freeze({
33200
+ "accessories.setChildHidden": [{
33201
+ name: "childDeviceId",
33202
+ form: "single",
33203
+ optional: false
33204
+ }, {
33205
+ name: "deviceId",
33206
+ form: "single",
33207
+ optional: false
33208
+ }],
33209
+ "addonSettings.getDeviceSettings": [{
33210
+ name: "deviceId",
33211
+ form: "single",
33212
+ optional: false
33213
+ }],
33214
+ "addonSettings.updateDeviceSettings": [{
33215
+ name: "deviceId",
33216
+ form: "single",
33217
+ optional: false
33218
+ }],
33219
+ "alarmPanel.arm": [{
33220
+ name: "deviceId",
33221
+ form: "single",
33222
+ optional: false
33223
+ }],
33224
+ "alarmPanel.disarm": [{
33225
+ name: "deviceId",
33226
+ form: "single",
33227
+ optional: false
33228
+ }],
33229
+ "alarmPanel.trigger": [{
33230
+ name: "deviceId",
33231
+ form: "single",
33232
+ optional: false
33233
+ }],
33234
+ "audioAnalysis.resolveDeviceSettings": [{
33235
+ name: "deviceId",
33236
+ form: "single",
33237
+ optional: false
33238
+ }],
33239
+ "audioAnalyzer.classify": [{
33240
+ name: "deviceId",
33241
+ form: "single",
33242
+ optional: true
33243
+ }],
33244
+ "audioMetrics.getCurrentSnapshot": [{
33245
+ name: "deviceId",
33246
+ form: "single",
33247
+ optional: false
33248
+ }],
33249
+ "audioMetrics.getHistory": [{
33250
+ name: "deviceId",
33251
+ form: "single",
33252
+ optional: false
33253
+ }],
33254
+ "automationControl.disable": [{
33255
+ name: "deviceId",
33256
+ form: "single",
33257
+ optional: false
33258
+ }],
33259
+ "automationControl.enable": [{
33260
+ name: "deviceId",
33261
+ form: "single",
33262
+ optional: false
33263
+ }],
33264
+ "automationControl.trigger": [{
33265
+ name: "deviceId",
33266
+ form: "single",
33267
+ optional: false
33268
+ }],
33269
+ "battery.wakeForStream": [{
33270
+ name: "deviceId",
33271
+ form: "single",
33272
+ optional: false
33273
+ }],
33274
+ "brightness.setBrightness": [{
33275
+ name: "deviceId",
33276
+ form: "single",
33277
+ optional: false
33278
+ }],
33279
+ "button.press": [{
33280
+ name: "deviceId",
33281
+ form: "single",
33282
+ optional: false
33283
+ }],
33284
+ "cameraCredentials.getCredentials": [{
33285
+ name: "deviceId",
33286
+ form: "single",
33287
+ optional: false
33288
+ }],
33289
+ "cameraStreams.getBrokerStreams": [{
33290
+ name: "deviceId",
33291
+ form: "single",
33292
+ optional: false
33293
+ }],
33294
+ "cameraStreams.getCameraStreams": [{
33295
+ name: "deviceId",
33296
+ form: "single",
33297
+ optional: false
33298
+ }],
33299
+ "cameraStreams.getProfileRtspEntries": [{
33300
+ name: "deviceId",
33301
+ form: "single",
33302
+ optional: false
33303
+ }],
33304
+ "cameraStreams.getRtspEntries": [{
33305
+ name: "deviceId",
33306
+ form: "single",
33307
+ optional: false
33308
+ }],
33309
+ "cameraStreams.pickStream": [{
33310
+ name: "deviceId",
33311
+ form: "single",
33312
+ optional: false
33313
+ }],
33314
+ "climateControl.setFanMode": [{
33315
+ name: "deviceId",
33316
+ form: "single",
33317
+ optional: false
33318
+ }],
33319
+ "climateControl.setMode": [{
33320
+ name: "deviceId",
33321
+ form: "single",
33322
+ optional: false
33323
+ }],
33324
+ "climateControl.setPreset": [{
33325
+ name: "deviceId",
33326
+ form: "single",
33327
+ optional: false
33328
+ }],
33329
+ "climateControl.setSwingHorizontal": [{
33330
+ name: "deviceId",
33331
+ form: "single",
33332
+ optional: false
33333
+ }],
33334
+ "climateControl.setSwingVertical": [{
33335
+ name: "deviceId",
33336
+ form: "single",
33337
+ optional: false
33338
+ }],
33339
+ "climateControl.setTarget": [{
33340
+ name: "deviceId",
33341
+ form: "single",
33342
+ optional: false
33343
+ }],
33344
+ "climateControl.setTargetHumidity": [{
33345
+ name: "deviceId",
33346
+ form: "single",
33347
+ optional: false
33348
+ }],
33349
+ "climateControl.setTargetRange": [{
33350
+ name: "deviceId",
33351
+ form: "single",
33352
+ optional: false
33353
+ }],
33354
+ "color.setColor": [{
33355
+ name: "deviceId",
33356
+ form: "single",
33357
+ optional: false
33358
+ }],
33359
+ "consumables.reset": [{
33360
+ name: "deviceId",
33361
+ form: "single",
33362
+ optional: false
33363
+ }],
33364
+ "control.setValue": [{
33365
+ name: "deviceId",
33366
+ form: "single",
33367
+ optional: false
33368
+ }],
33369
+ "cover.close": [{
33370
+ name: "deviceId",
33371
+ form: "single",
33372
+ optional: false
33373
+ }],
33374
+ "cover.open": [{
33375
+ name: "deviceId",
33376
+ form: "single",
33377
+ optional: false
33378
+ }],
33379
+ "cover.setPosition": [{
33380
+ name: "deviceId",
33381
+ form: "single",
33382
+ optional: false
33383
+ }],
33384
+ "cover.setTiltPosition": [{
33385
+ name: "deviceId",
33386
+ form: "single",
33387
+ optional: false
33388
+ }],
33389
+ "cover.stop": [{
33390
+ name: "deviceId",
33391
+ form: "single",
33392
+ optional: false
33393
+ }],
33394
+ "dayNight.getOptions": [{
33395
+ name: "deviceId",
33396
+ form: "single",
33397
+ optional: false
33398
+ }],
33399
+ "dayNight.setSettings": [{
33400
+ name: "deviceId",
33401
+ form: "single",
33402
+ optional: false
33403
+ }],
33404
+ "decoder.createSession": [{
33405
+ name: "deviceId",
33406
+ form: "single",
33407
+ optional: true
33408
+ }],
33409
+ "deviceAdoption.release": [{
33410
+ name: "camDeviceId",
33411
+ form: "single",
33412
+ optional: false
33413
+ }],
33414
+ "deviceAdoption.resync": [{
33415
+ name: "camDeviceId",
33416
+ form: "single",
33417
+ optional: false
33418
+ }],
33419
+ "deviceDiscovery.adoptDevice": [{
33420
+ name: "deviceId",
33421
+ form: "single",
33422
+ optional: false
33423
+ }],
33424
+ "deviceDiscovery.listDiscovered": [{
33425
+ name: "deviceId",
33426
+ form: "single",
33427
+ optional: false
33428
+ }],
33429
+ "deviceDiscovery.refreshDiscovery": [{
33430
+ name: "deviceId",
33431
+ form: "single",
33432
+ optional: false
33433
+ }],
33434
+ "deviceDiscovery.releaseDevice": [{
33435
+ name: "childDeviceId",
33436
+ form: "single",
33437
+ optional: false
33438
+ }, {
33439
+ name: "deviceId",
33440
+ form: "single",
33441
+ optional: false
33442
+ }],
33443
+ "deviceManager.adoptionRelease": [{
33444
+ name: "camDeviceId",
33445
+ form: "single",
33446
+ optional: false
33447
+ }],
33448
+ "deviceManager.adoptionResync": [{
33449
+ name: "camDeviceId",
33450
+ form: "single",
33451
+ optional: false
33452
+ }],
33453
+ "deviceManager.applyInitialMeta": [{
33454
+ name: "deviceId",
33455
+ form: "single",
33456
+ optional: false
33457
+ }, {
33458
+ name: "linkDeviceId",
33459
+ form: "single",
33460
+ optional: true
33461
+ }],
33462
+ "deviceManager.disable": [{
33463
+ name: "deviceId",
33464
+ form: "single",
33465
+ optional: false
33466
+ }],
33467
+ "deviceManager.enable": [{
33468
+ name: "deviceId",
33469
+ form: "single",
33470
+ optional: false
33471
+ }],
33472
+ "deviceManager.getBindings": [{
33473
+ name: "deviceId",
33474
+ form: "single",
33475
+ optional: false
33476
+ }],
33477
+ "deviceManager.getChildren": [{
33478
+ name: "parentDeviceId",
33479
+ form: "single",
33480
+ optional: false
33481
+ }],
33482
+ "deviceManager.getConfigSchema": [{
33483
+ name: "deviceId",
33484
+ form: "single",
33485
+ optional: false
33486
+ }],
33487
+ "deviceManager.getDevice": [{
33488
+ name: "deviceId",
33489
+ form: "single",
33490
+ optional: false
33491
+ }],
33492
+ "deviceManager.getDeviceAggregate": [{
33493
+ name: "deviceId",
33494
+ form: "single",
33495
+ optional: false
33496
+ }],
33497
+ "deviceManager.getDeviceLiveInfoAggregate": [{
33498
+ name: "deviceId",
33499
+ form: "single",
33500
+ optional: false
33501
+ }],
33502
+ "deviceManager.getDeviceSettingsAggregate": [{
33503
+ name: "deviceId",
33504
+ form: "single",
33505
+ optional: false
33506
+ }],
33507
+ "deviceManager.getDeviceStatusAggregate": [{
33508
+ name: "deviceId",
33509
+ form: "single",
33510
+ optional: false
33511
+ }],
33512
+ "deviceManager.getDeviceStatusAggregateBatch": [{
33513
+ name: "deviceIds",
33514
+ form: "array",
33515
+ optional: false
33516
+ }],
33517
+ "deviceManager.getLinkedDevices": [{
33518
+ name: "deviceId",
33519
+ form: "single",
33520
+ optional: false
33521
+ }],
33522
+ "deviceManager.getSettingsSchema": [{
33523
+ name: "deviceId",
33524
+ form: "single",
33525
+ optional: false
33526
+ }],
33527
+ "deviceManager.getStreamProfileMap": [{
33528
+ name: "deviceId",
33529
+ form: "single",
33530
+ optional: false
33531
+ }],
33532
+ "deviceManager.getStreamSources": [{
33533
+ name: "deviceId",
33534
+ form: "single",
33535
+ optional: false
33536
+ }],
33537
+ "deviceManager.getWireableFields": [{
33538
+ name: "deviceId",
33539
+ form: "single",
33540
+ optional: false
33541
+ }],
33542
+ "deviceManager.loadConfig": [{
33543
+ name: "deviceId",
33544
+ form: "single",
33545
+ optional: false
33546
+ }],
33547
+ "deviceManager.loadMeta": [{
33548
+ name: "deviceId",
33549
+ form: "single",
33550
+ optional: false
33551
+ }],
33552
+ "deviceManager.loadRuntimeState": [{
33553
+ name: "deviceId",
33554
+ form: "single",
33555
+ optional: false
33556
+ }],
33557
+ "deviceManager.persistConfig": [{
33558
+ name: "deviceId",
33559
+ form: "single",
33560
+ optional: false
33561
+ }],
33562
+ "deviceManager.probeStreams": [{
33563
+ name: "deviceId",
33564
+ form: "single",
33565
+ optional: false
33566
+ }],
33567
+ "deviceManager.registerDevice": [{
33568
+ name: "parentDeviceId",
33569
+ form: "single",
33570
+ optional: true
33571
+ }],
33572
+ "deviceManager.remove": [{
33573
+ name: "deviceId",
33574
+ form: "single",
33575
+ optional: false
33576
+ }],
33577
+ "deviceManager.removeDevice": [{
33578
+ name: "deviceId",
33579
+ form: "single",
33580
+ optional: false
33581
+ }],
33582
+ "deviceManager.runDeviceAction": [{
33583
+ name: "deviceId",
33584
+ form: "single",
33585
+ optional: false
33586
+ }],
33587
+ "deviceManager.setChildLayout": [{
33588
+ name: "deviceId",
33589
+ form: "single",
33590
+ optional: false
33591
+ }],
33592
+ "deviceManager.setDisabled": [{
33593
+ name: "deviceId",
33594
+ form: "single",
33595
+ optional: false
33596
+ }],
33597
+ "deviceManager.setDisplay": [{
33598
+ name: "deviceId",
33599
+ form: "single",
33600
+ optional: false
33601
+ }],
33602
+ "deviceManager.setIntegrationId": [{
33603
+ name: "deviceId",
33604
+ form: "single",
33605
+ optional: false
33606
+ }],
33607
+ "deviceManager.setLinkDeviceId": [{
33608
+ name: "deviceId",
33609
+ form: "single",
33610
+ optional: false
33611
+ }, {
33612
+ name: "linkDeviceId",
33613
+ form: "single",
33614
+ optional: true
33615
+ }],
33616
+ "deviceManager.setLocation": [{
33617
+ name: "deviceId",
33618
+ form: "single",
33619
+ optional: false
33620
+ }],
33621
+ "deviceManager.setMetadata": [{
33622
+ name: "deviceId",
33623
+ form: "single",
33624
+ optional: false
33625
+ }],
33626
+ "deviceManager.setName": [{
33627
+ name: "deviceId",
33628
+ form: "single",
33629
+ optional: false
33630
+ }],
33631
+ "deviceManager.setPrimaryChildEntityId": [{
33632
+ name: "deviceId",
33633
+ form: "single",
33634
+ optional: false
33635
+ }],
33636
+ "deviceManager.setRole": [{
33637
+ name: "deviceId",
33638
+ form: "single",
33639
+ optional: false
33640
+ }],
33641
+ "deviceManager.setStreamProfileMap": [{
33642
+ name: "deviceId",
33643
+ form: "single",
33644
+ optional: false
33645
+ }],
33646
+ "deviceManager.setType": [{
33647
+ name: "deviceId",
33648
+ form: "single",
33649
+ optional: false
33650
+ }],
33651
+ "deviceManager.setWrapperActive": [{
33652
+ name: "deviceId",
33653
+ form: "single",
33654
+ optional: false
33655
+ }],
33656
+ "deviceManager.testField": [{
33657
+ name: "deviceId",
33658
+ form: "single",
33659
+ optional: false
33660
+ }],
33661
+ "deviceManager.updateConfig": [{
33662
+ name: "deviceId",
33663
+ form: "single",
33664
+ optional: false
33665
+ }],
33666
+ "deviceManager.updateDeviceField": [{
33667
+ name: "deviceId",
33668
+ form: "single",
33669
+ optional: false
33670
+ }],
33671
+ "deviceManager.updateDeviceFieldsBatch": [{
33672
+ name: "deviceId",
33673
+ form: "single",
33674
+ optional: false
33675
+ }],
33676
+ "deviceOps.getConfigEntries": [{
33677
+ name: "deviceId",
33678
+ form: "single",
33679
+ optional: false
33680
+ }],
33681
+ "deviceOps.getRawState": [{
33682
+ name: "deviceId",
33683
+ form: "single",
33684
+ optional: false
33685
+ }],
33686
+ "deviceOps.getSettingsSchema": [{
33687
+ name: "deviceId",
33688
+ form: "single",
33689
+ optional: false
33690
+ }],
33691
+ "deviceOps.getStreamSources": [{
33692
+ name: "deviceId",
33693
+ form: "single",
33694
+ optional: false
33695
+ }],
33696
+ "deviceOps.removeDevice": [{
33697
+ name: "deviceId",
33698
+ form: "single",
33699
+ optional: false
33700
+ }],
33701
+ "deviceOps.runAction": [{
33702
+ name: "deviceId",
33703
+ form: "single",
33704
+ optional: false
33705
+ }],
33706
+ "deviceOps.setConfig": [{
33707
+ name: "deviceId",
33708
+ form: "single",
33709
+ optional: false
33710
+ }],
33711
+ "deviceState.getCapSlice": [{
33712
+ name: "deviceId",
33713
+ form: "single",
33714
+ optional: false
33715
+ }],
33716
+ "deviceState.getSnapshot": [{
33717
+ name: "deviceId",
33718
+ form: "single",
33719
+ optional: false
33720
+ }],
33721
+ "deviceState.setCapSlice": [{
33722
+ name: "deviceId",
33723
+ form: "single",
33724
+ optional: false
33725
+ }],
33726
+ "events.getEventClipUrl": [{
33727
+ name: "deviceId",
33728
+ form: "single",
33729
+ optional: false
33730
+ }],
33731
+ "events.getEvents": [{
33732
+ name: "deviceId",
33733
+ form: "single",
33734
+ optional: false
33735
+ }],
33736
+ "events.getEventThumbnail": [{
33737
+ name: "deviceId",
33738
+ form: "single",
33739
+ optional: false
33740
+ }],
33741
+ "faceGallery.getFaceByTrack": [{
33742
+ name: "deviceId",
33743
+ form: "single",
33744
+ optional: false
33745
+ }],
33746
+ "faceGallery.listRecentFaces": [{
33747
+ name: "deviceId",
33748
+ form: "single",
33749
+ optional: true
33750
+ }],
33751
+ "fanControl.setDirection": [{
33752
+ name: "deviceId",
33753
+ form: "single",
33754
+ optional: false
33755
+ }],
33756
+ "fanControl.setOscillating": [{
33757
+ name: "deviceId",
33758
+ form: "single",
33759
+ optional: false
33760
+ }],
33761
+ "fanControl.setPercentage": [{
33762
+ name: "deviceId",
33763
+ form: "single",
33764
+ optional: false
33765
+ }],
33766
+ "fanControl.setPreset": [{
33767
+ name: "deviceId",
33768
+ form: "single",
33769
+ optional: false
33770
+ }],
33771
+ "humidifier.setMode": [{
33772
+ name: "deviceId",
33773
+ form: "single",
33774
+ optional: false
33775
+ }],
33776
+ "humidifier.setOn": [{
33777
+ name: "deviceId",
33778
+ form: "single",
33779
+ optional: false
33780
+ }],
33781
+ "humidifier.setTargetHumidity": [{
33782
+ name: "deviceId",
33783
+ form: "single",
33784
+ optional: false
33785
+ }],
33786
+ "imageSettings.getOptions": [{
33787
+ name: "deviceId",
33788
+ form: "single",
33789
+ optional: false
33790
+ }],
33791
+ "imageSettings.setSettings": [{
33792
+ name: "deviceId",
33793
+ form: "single",
33794
+ optional: false
33795
+ }],
33796
+ "intercom.endTalkSession": [{
33797
+ name: "deviceId",
33798
+ form: "single",
33799
+ optional: false
33800
+ }],
33801
+ "intercom.handleAnswer": [{
33802
+ name: "deviceId",
33803
+ form: "single",
33804
+ optional: false
33805
+ }],
33806
+ "intercom.pushTalkAudio": [{
33807
+ name: "deviceId",
33808
+ form: "single",
33809
+ optional: false
33810
+ }],
33811
+ "intercom.startSession": [{
33812
+ name: "deviceId",
33813
+ form: "single",
33814
+ optional: false
33815
+ }],
33816
+ "intercom.startTalkSession": [{
33817
+ name: "deviceId",
33818
+ form: "single",
33819
+ optional: false
33820
+ }],
33821
+ "intercom.stopSession": [{
33822
+ name: "deviceId",
33823
+ form: "single",
33824
+ optional: false
33825
+ }],
33826
+ "lawnMowerControl.dock": [{
33827
+ name: "deviceId",
33828
+ form: "single",
33829
+ optional: false
33830
+ }],
33831
+ "lawnMowerControl.pause": [{
33832
+ name: "deviceId",
33833
+ form: "single",
33834
+ optional: false
33835
+ }],
33836
+ "lawnMowerControl.startMowing": [{
33837
+ name: "deviceId",
33838
+ form: "single",
33839
+ optional: false
33840
+ }],
33841
+ "lockControl.lock": [{
33842
+ name: "deviceId",
33843
+ form: "single",
33844
+ optional: false
33845
+ }],
33846
+ "lockControl.open": [{
33847
+ name: "deviceId",
33848
+ form: "single",
33849
+ optional: false
33850
+ }],
33851
+ "lockControl.unlock": [{
33852
+ name: "deviceId",
33853
+ form: "single",
33854
+ optional: false
33855
+ }],
33856
+ "mediaPlayer.next": [{
33857
+ name: "deviceId",
33858
+ form: "single",
33859
+ optional: false
33860
+ }],
33861
+ "mediaPlayer.pause": [{
33862
+ name: "deviceId",
33863
+ form: "single",
33864
+ optional: false
33865
+ }],
33866
+ "mediaPlayer.play": [{
33867
+ name: "deviceId",
33868
+ form: "single",
33869
+ optional: false
33870
+ }],
33871
+ "mediaPlayer.playMedia": [{
33872
+ name: "deviceId",
33873
+ form: "single",
33874
+ optional: false
33875
+ }],
33876
+ "mediaPlayer.previous": [{
33877
+ name: "deviceId",
33878
+ form: "single",
33879
+ optional: false
33880
+ }],
33881
+ "mediaPlayer.seek": [{
33882
+ name: "deviceId",
33883
+ form: "single",
33884
+ optional: false
33885
+ }],
33886
+ "mediaPlayer.selectSource": [{
33887
+ name: "deviceId",
33888
+ form: "single",
33889
+ optional: false
33890
+ }],
33891
+ "mediaPlayer.setMute": [{
33892
+ name: "deviceId",
33893
+ form: "single",
33894
+ optional: false
33895
+ }],
33896
+ "mediaPlayer.setRepeat": [{
33897
+ name: "deviceId",
33898
+ form: "single",
33899
+ optional: false
33900
+ }],
33901
+ "mediaPlayer.setShuffle": [{
33902
+ name: "deviceId",
33903
+ form: "single",
33904
+ optional: false
33905
+ }],
33906
+ "mediaPlayer.setVolume": [{
33907
+ name: "deviceId",
33908
+ form: "single",
33909
+ optional: false
33910
+ }],
33911
+ "mediaPlayer.stop": [{
33912
+ name: "deviceId",
33913
+ form: "single",
33914
+ optional: false
33915
+ }],
33916
+ "motion.isDetected": [{
33917
+ name: "deviceId",
33918
+ form: "single",
33919
+ optional: false
33920
+ }],
33921
+ "motionDetection.analyze": [{
33922
+ name: "deviceId",
33923
+ form: "single",
33924
+ optional: false
33925
+ }],
33926
+ "motionDetection.removeCamera": [{
33927
+ name: "deviceId",
33928
+ form: "single",
33929
+ optional: false
33930
+ }],
33931
+ "motionTrigger.setMotionTrigger": [{
33932
+ name: "deviceId",
33933
+ form: "single",
33934
+ optional: false
33935
+ }],
33936
+ "motionZones.getOptions": [{
33937
+ name: "deviceId",
33938
+ form: "single",
33939
+ optional: false
33940
+ }],
33941
+ "motionZones.setZone": [{
33942
+ name: "deviceId",
33943
+ form: "single",
33944
+ optional: false
33945
+ }],
33946
+ "nativeObjectDetection.setEnabled": [{
33947
+ name: "deviceId",
33948
+ form: "single",
33949
+ optional: false
33950
+ }],
33951
+ "networkQuality.getDeviceStats": [{
33952
+ name: "deviceId",
33953
+ form: "single",
33954
+ optional: false
33955
+ }],
33956
+ "networkQuality.reportClientStats": [{
33957
+ name: "deviceId",
33958
+ form: "single",
33959
+ optional: false
33960
+ }],
33961
+ "notificationRules.setDeviceMuted": [{
33962
+ name: "deviceId",
33963
+ form: "single",
33964
+ optional: false
33965
+ }],
33966
+ "notifier.cancel": [{
33967
+ name: "deviceId",
33968
+ form: "single",
33969
+ optional: false
33970
+ }],
33971
+ "notifier.send": [{
33972
+ name: "deviceId",
33973
+ form: "single",
33974
+ optional: false
33975
+ }],
33976
+ "osd.setOverlay": [{
33977
+ name: "deviceId",
33978
+ form: "single",
33979
+ optional: false
33980
+ }],
33981
+ "osdManager.clearSlotBinding": [{
33982
+ name: "deviceId",
33983
+ form: "single",
33984
+ optional: false
33985
+ }],
33986
+ "osdManager.copyDeviceConfiguration": [{
33987
+ name: "sourceDeviceId",
33988
+ form: "single",
33989
+ optional: false
33990
+ }, {
33991
+ name: "targetDeviceId",
33992
+ form: "single",
33993
+ optional: false
33994
+ }],
33995
+ "osdManager.getDeviceOsd": [{
33996
+ name: "deviceId",
33997
+ form: "single",
33998
+ optional: false
33999
+ }],
34000
+ "osdManager.getSourceCatalog": [{
34001
+ name: "deviceId",
34002
+ form: "single",
34003
+ optional: false
34004
+ }],
34005
+ "osdManager.previewSlot": [{
34006
+ name: "deviceId",
34007
+ form: "single",
34008
+ optional: false
34009
+ }],
34010
+ "osdManager.renderDevice": [{
34011
+ name: "deviceId",
34012
+ form: "single",
34013
+ optional: false
34014
+ }],
34015
+ "osdManager.setSlotBinding": [{
34016
+ name: "deviceId",
34017
+ form: "single",
34018
+ optional: false
34019
+ }],
34020
+ "petFeeder.callPet": [{
34021
+ name: "deviceId",
34022
+ form: "single",
34023
+ optional: false
34024
+ }],
34025
+ "petFeeder.cancelFeed": [{
34026
+ name: "deviceId",
34027
+ form: "single",
34028
+ optional: false
34029
+ }],
34030
+ "petFeeder.feed": [{
34031
+ name: "deviceId",
34032
+ form: "single",
34033
+ optional: false
34034
+ }],
34035
+ "petFeeder.markFoodReplenished": [{
34036
+ name: "deviceId",
34037
+ form: "single",
34038
+ optional: false
34039
+ }],
34040
+ "petFeeder.playSound": [{
34041
+ name: "deviceId",
34042
+ form: "single",
34043
+ optional: false
34044
+ }],
34045
+ "petFeeder.resetDesiccant": [{
34046
+ name: "deviceId",
34047
+ form: "single",
34048
+ optional: false
34049
+ }],
34050
+ "petFeeder.setChildLock": [{
34051
+ name: "deviceId",
34052
+ form: "single",
34053
+ optional: false
34054
+ }],
34055
+ "petFeeder.setFeedSound": [{
34056
+ name: "deviceId",
34057
+ form: "single",
34058
+ optional: false
34059
+ }],
34060
+ "petFeeder.setIndicatorLight": [{
34061
+ name: "deviceId",
34062
+ form: "single",
34063
+ optional: false
34064
+ }],
34065
+ "petFeeder.setVolume": [{
34066
+ name: "deviceId",
34067
+ form: "single",
34068
+ optional: false
34069
+ }],
34070
+ "pipelineAnalytics.clearTracks": [{
34071
+ name: "deviceId",
34072
+ form: "single",
34073
+ optional: false
34074
+ }],
34075
+ "pipelineAnalytics.completeRetrainTrack": [{
34076
+ name: "deviceId",
34077
+ form: "single",
34078
+ optional: false
34079
+ }],
34080
+ "pipelineAnalytics.deleteDeviceEvents": [{
34081
+ name: "deviceId",
34082
+ form: "single",
34083
+ optional: false
34084
+ }],
34085
+ "pipelineAnalytics.deleteTracks": [{
34086
+ name: "deviceId",
34087
+ form: "single",
34088
+ optional: false
34089
+ }],
34090
+ "pipelineAnalytics.deselectRetrainFrame": [{
34091
+ name: "deviceId",
34092
+ form: "single",
34093
+ optional: false
34094
+ }],
34095
+ "pipelineAnalytics.getActiveTracks": [{
34096
+ name: "deviceId",
34097
+ form: "single",
34098
+ optional: false
34099
+ }],
34100
+ "pipelineAnalytics.getAudioEvents": [{
34101
+ name: "deviceId",
34102
+ form: "single",
34103
+ optional: false
34104
+ }],
34105
+ "pipelineAnalytics.getEventDensity": [{
34106
+ name: "deviceId",
34107
+ form: "single",
34108
+ optional: false
34109
+ }],
34110
+ "pipelineAnalytics.getKeyEvents": [{
34111
+ name: "deviceId",
34112
+ form: "single",
34113
+ optional: false
34114
+ }],
34115
+ "pipelineAnalytics.getMotionEvents": [{
34116
+ name: "deviceId",
34117
+ form: "single",
34118
+ optional: false
34119
+ }],
34120
+ "pipelineAnalytics.getObjectEvents": [{
34121
+ name: "deviceId",
34122
+ form: "single",
34123
+ optional: false
34124
+ }],
34125
+ "pipelineAnalytics.getRetrainExportUrl": [{
34126
+ name: "deviceIds",
34127
+ form: "array",
34128
+ optional: true
34129
+ }],
34130
+ "pipelineAnalytics.getSensorEvents": [{
34131
+ name: "deviceId",
34132
+ form: "single",
34133
+ optional: false
34134
+ }],
34135
+ "pipelineAnalytics.getTrack": [{
34136
+ name: "deviceId",
34137
+ form: "single",
34138
+ optional: false
34139
+ }],
34140
+ "pipelineAnalytics.getTrainingExportSummary": [{
34141
+ name: "deviceIds",
34142
+ form: "array",
34143
+ optional: true
34144
+ }],
34145
+ "pipelineAnalytics.getTrainingExportUrl": [{
34146
+ name: "deviceIds",
34147
+ form: "array",
34148
+ optional: true
34149
+ }],
34150
+ "pipelineAnalytics.listEventKinds": [{
34151
+ name: "deviceId",
34152
+ form: "single",
34153
+ optional: false
34154
+ }],
34155
+ "pipelineAnalytics.listEventKindsBatch": [{
34156
+ name: "deviceIds",
34157
+ form: "array",
34158
+ optional: false
34159
+ }],
34160
+ "pipelineAnalytics.listOpsLog": [{
34161
+ name: "deviceId",
34162
+ form: "single",
34163
+ optional: true
34164
+ }],
34165
+ "pipelineAnalytics.listRecentTracks": [{
34166
+ name: "deviceIds",
34167
+ form: "array",
34168
+ optional: false
34169
+ }],
34170
+ "pipelineAnalytics.listRetrainStaging": [{
34171
+ name: "deviceIds",
34172
+ form: "array",
34173
+ optional: true
34174
+ }],
34175
+ "pipelineAnalytics.listTracks": [{
34176
+ name: "deviceId",
34177
+ form: "single",
34178
+ optional: false
34179
+ }],
34180
+ "pipelineAnalytics.proposeRetrainAnnotations": [{
34181
+ name: "deviceId",
34182
+ form: "single",
34183
+ optional: false
34184
+ }],
34185
+ "pipelineAnalytics.pruneEventsBefore": [{
34186
+ name: "deviceId",
34187
+ form: "single",
34188
+ optional: false
34189
+ }],
34190
+ "pipelineAnalytics.pruneTracksBefore": [{
34191
+ name: "deviceId",
34192
+ form: "single",
34193
+ optional: false
34194
+ }],
34195
+ "pipelineAnalytics.rebuildObjectEmbeddings": [{
34196
+ name: "deviceId",
34197
+ form: "single",
34198
+ optional: true
34199
+ }],
34200
+ "pipelineAnalytics.restageRetrainTrack": [{
34201
+ name: "deviceId",
34202
+ form: "single",
34203
+ optional: false
34204
+ }],
34205
+ "pipelineAnalytics.saveRetrainAnnotations": [{
34206
+ name: "deviceId",
34207
+ form: "single",
34208
+ optional: false
34209
+ }],
34210
+ "pipelineAnalytics.searchObjectEvents": [{
34211
+ name: "deviceId",
34212
+ form: "single",
34213
+ optional: true
34214
+ }],
34215
+ "pipelineAnalytics.selectRetrainFrames": [{
34216
+ name: "deviceId",
34217
+ form: "single",
34218
+ optional: false
34219
+ }],
34220
+ "pipelineAnalytics.setTrackFlags": [{
34221
+ name: "deviceId",
34222
+ form: "single",
34223
+ optional: false
34224
+ }],
34225
+ "pipelineAnalytics.wipeAllAnalytics": [{
34226
+ name: "deviceId",
34227
+ form: "single",
34228
+ optional: false
34229
+ }],
34230
+ "pipelineExecutor.runPipeline": [{
34231
+ name: "deviceId",
34232
+ form: "single",
34233
+ optional: true
34234
+ }],
34235
+ "pipelineExecutor.runPipelineBatch": [{
34236
+ name: "deviceId",
34237
+ form: "single",
34238
+ optional: true
34239
+ }],
34240
+ "pipelineOrchestrator.assignAudio": [{
34241
+ name: "deviceId",
34242
+ form: "single",
34243
+ optional: false
34244
+ }],
34245
+ "pipelineOrchestrator.assignPipeline": [{
34246
+ name: "deviceId",
34247
+ form: "single",
34248
+ optional: false
34249
+ }],
34250
+ "pipelineOrchestrator.getAudioAssignment": [{
34251
+ name: "deviceId",
34252
+ form: "single",
34253
+ optional: false
34254
+ }],
34255
+ "pipelineOrchestrator.getCameraMetrics": [{
34256
+ name: "deviceId",
34257
+ form: "single",
34258
+ optional: false
34259
+ }],
34260
+ "pipelineOrchestrator.getCameraSettings": [{
34261
+ name: "deviceId",
34262
+ form: "single",
34263
+ optional: false
34264
+ }],
34265
+ "pipelineOrchestrator.getCameraStatus": [{
34266
+ name: "deviceId",
34267
+ form: "single",
34268
+ optional: false
34269
+ }],
34270
+ "pipelineOrchestrator.getCameraStatuses": [{
34271
+ name: "deviceIds",
34272
+ form: "array",
34273
+ optional: true
34274
+ }],
34275
+ "pipelineOrchestrator.getCameraStepOverrides": [{
34276
+ name: "deviceId",
34277
+ form: "single",
34278
+ optional: false
34279
+ }],
34280
+ "pipelineOrchestrator.getCameraSwitches": [{
34281
+ name: "deviceId",
34282
+ form: "single",
34283
+ optional: false
34284
+ }],
34285
+ "pipelineOrchestrator.getPipelineAssignment": [{
34286
+ name: "deviceId",
34287
+ form: "single",
34288
+ optional: false
34289
+ }],
34290
+ "pipelineOrchestrator.getPipelineDevicePin": [{
34291
+ name: "deviceId",
34292
+ form: "single",
34293
+ optional: false
34294
+ }],
34295
+ "pipelineOrchestrator.resolvePipeline": [{
34296
+ name: "deviceId",
34297
+ form: "single",
34298
+ optional: false
34299
+ }],
34300
+ "pipelineOrchestrator.setCameraPipelineForAgent": [{
34301
+ name: "deviceId",
34302
+ form: "single",
34303
+ optional: false
34304
+ }],
34305
+ "pipelineOrchestrator.setCameraStepOverride": [{
34306
+ name: "deviceId",
34307
+ form: "single",
34308
+ optional: false
34309
+ }],
34310
+ "pipelineOrchestrator.setCameraStepToggle": [{
34311
+ name: "deviceId",
34312
+ form: "single",
34313
+ optional: false
34314
+ }],
34315
+ "pipelineOrchestrator.setCameraSwitch": [{
34316
+ name: "deviceId",
34317
+ form: "single",
34318
+ optional: false
34319
+ }],
34320
+ "pipelineOrchestrator.setPipelineDevicePin": [{
34321
+ name: "deviceId",
34322
+ form: "single",
34323
+ optional: false
34324
+ }],
34325
+ "pipelineOrchestrator.unassignAudio": [{
34326
+ name: "deviceId",
34327
+ form: "single",
34328
+ optional: false
34329
+ }],
34330
+ "pipelineOrchestrator.unassignPipeline": [{
34331
+ name: "deviceId",
34332
+ form: "single",
34333
+ optional: false
34334
+ }],
34335
+ "pipelineRunner.attachCamera": [{
34336
+ name: "deviceId",
34337
+ form: "single",
34338
+ optional: false
34339
+ }],
34340
+ "pipelineRunner.detachCamera": [{
34341
+ name: "deviceId",
34342
+ form: "single",
34343
+ optional: false
34344
+ }],
34345
+ "pipelineRunner.getCameraMetrics": [{
34346
+ name: "deviceId",
34347
+ form: "single",
34348
+ optional: false
34349
+ }],
34350
+ "pipelineRunner.reportMotion": [{
34351
+ name: "deviceId",
34352
+ form: "single",
34353
+ optional: false
34354
+ }],
34355
+ "pipelineRunner.runDetailSubtree": [{
34356
+ name: "deviceId",
34357
+ form: "single",
34358
+ optional: false
34359
+ }],
34360
+ "pipelineRunner.runStatelessStep": [{
34361
+ name: "sourceDeviceId",
34362
+ form: "single",
34363
+ optional: false
34364
+ }],
34365
+ "plateGallery.getPlateByTrack": [{
34366
+ name: "deviceId",
34367
+ form: "single",
34368
+ optional: false
34369
+ }],
34370
+ "plateGallery.listPlates": [{
34371
+ name: "deviceId",
34372
+ form: "single",
34373
+ optional: true
34374
+ }],
34375
+ "privacyMask.getOptions": [{
34376
+ name: "deviceId",
34377
+ form: "single",
34378
+ optional: false
34379
+ }],
34380
+ "privacyMask.setAudioEnabled": [{
34381
+ name: "deviceId",
34382
+ form: "single",
34383
+ optional: false
34384
+ }],
34385
+ "privacyMask.setMask": [{
34386
+ name: "deviceId",
34387
+ form: "single",
34388
+ optional: false
34389
+ }],
34390
+ "ptz.continuousMove": [{
34391
+ name: "deviceId",
34392
+ form: "single",
34393
+ optional: false
34394
+ }],
34395
+ "ptz.deletePreset": [{
34396
+ name: "deviceId",
34397
+ form: "single",
34398
+ optional: false
34399
+ }],
34400
+ "ptz.getOptions": [{
34401
+ name: "deviceId",
34402
+ form: "single",
34403
+ optional: false
34404
+ }],
34405
+ "ptz.getPosition": [{
34406
+ name: "deviceId",
34407
+ form: "single",
34408
+ optional: false
34409
+ }],
34410
+ "ptz.getPresets": [{
34411
+ name: "deviceId",
34412
+ form: "single",
34413
+ optional: false
34414
+ }],
34415
+ "ptz.goHome": [{
34416
+ name: "deviceId",
34417
+ form: "single",
34418
+ optional: false
34419
+ }],
34420
+ "ptz.goToPreset": [{
34421
+ name: "deviceId",
34422
+ form: "single",
34423
+ optional: false
34424
+ }],
34425
+ "ptz.move": [{
34426
+ name: "deviceId",
34427
+ form: "single",
34428
+ optional: false
34429
+ }],
34430
+ "ptz.savePreset": [{
34431
+ name: "deviceId",
34432
+ form: "single",
34433
+ optional: false
34434
+ }],
34435
+ "ptz.setAutofocus": [{
34436
+ name: "deviceId",
34437
+ form: "single",
34438
+ optional: false
34439
+ }],
34440
+ "ptz.stop": [{
34441
+ name: "deviceId",
34442
+ form: "single",
34443
+ optional: false
34444
+ }],
34445
+ "ptzAutotrack.getSettings": [{
34446
+ name: "deviceId",
34447
+ form: "single",
34448
+ optional: false
34449
+ }],
34450
+ "ptzAutotrack.getStatus": [{
34451
+ name: "deviceId",
34452
+ form: "single",
34453
+ optional: false
34454
+ }],
34455
+ "ptzAutotrack.setEnabled": [{
34456
+ name: "deviceId",
34457
+ form: "single",
34458
+ optional: false
34459
+ }],
34460
+ "ptzAutotrack.setSettings": [{
34461
+ name: "deviceId",
34462
+ form: "single",
34463
+ optional: false
34464
+ }],
34465
+ "reboot.reboot": [{
34466
+ name: "deviceId",
34467
+ form: "single",
34468
+ optional: false
34469
+ }],
34470
+ "recording.deleteFootprint": [{
34471
+ name: "deviceId",
34472
+ form: "single",
34473
+ optional: false
34474
+ }],
34475
+ "recording.getAvailability": [{
34476
+ name: "deviceId",
34477
+ form: "single",
34478
+ optional: false
34479
+ }],
34480
+ "recording.getDaysWithRecordings": [{
34481
+ name: "deviceId",
34482
+ form: "single",
34483
+ optional: false
34484
+ }],
34485
+ "recording.getDeviceConfig": [{
34486
+ name: "deviceId",
34487
+ form: "single",
34488
+ optional: false
34489
+ }],
34490
+ "recording.getPlaybackManifest": [{
34491
+ name: "deviceId",
34492
+ form: "single",
34493
+ optional: false
34494
+ }],
34495
+ "recording.listOpsLog": [{
34496
+ name: "deviceId",
34497
+ form: "single",
34498
+ optional: true
34499
+ }],
34500
+ "recording.locateSegment": [{
34501
+ name: "deviceId",
34502
+ form: "single",
34503
+ optional: false
34504
+ }],
34505
+ "recording.pruneFootage": [{
34506
+ name: "deviceId",
34507
+ form: "single",
34508
+ optional: false
34509
+ }],
34510
+ "recording.readGopBytes": [{
34511
+ name: "deviceId",
34512
+ form: "single",
34513
+ optional: false
34514
+ }],
34515
+ "recording.readSegmentBytes": [{
34516
+ name: "deviceId",
34517
+ form: "single",
34518
+ optional: false
34519
+ }],
34520
+ "recording.relocateFootage": [{
34521
+ name: "deviceId",
34522
+ form: "single",
34523
+ optional: true
34524
+ }],
34525
+ "recording.renderClip": [{
34526
+ name: "deviceId",
34527
+ form: "single",
34528
+ optional: false
34529
+ }],
34530
+ "recording.renderGif": [{
34531
+ name: "deviceId",
34532
+ form: "single",
34533
+ optional: false
34534
+ }],
34535
+ "recording.rescanStorage": [{
34536
+ name: "deviceId",
34537
+ form: "single",
34538
+ optional: false
34539
+ }],
34540
+ "recording.setDeviceConfig": [{
34541
+ name: "deviceId",
34542
+ form: "single",
34543
+ optional: false
34544
+ }],
34545
+ "recording.startStorageMigrationMove": [{
34546
+ name: "deviceId",
34547
+ form: "single",
34548
+ optional: true
34549
+ }],
34550
+ "recordingExport.createExport": [{
34551
+ name: "deviceId",
34552
+ form: "single",
34553
+ optional: false
34554
+ }],
34555
+ "recordingExport.listExports": [{
34556
+ name: "deviceId",
34557
+ form: "single",
34558
+ optional: true
34559
+ }],
34560
+ "sceneMonitor.captureReference": [{
34561
+ name: "deviceId",
34562
+ form: "single",
34563
+ optional: false
34564
+ }],
34565
+ "sceneMonitor.createScene": [{
34566
+ name: "deviceId",
34567
+ form: "single",
34568
+ optional: false
34569
+ }],
34570
+ "sceneMonitor.deleteReference": [{
34571
+ name: "deviceId",
34572
+ form: "single",
34573
+ optional: false
34574
+ }],
34575
+ "sceneMonitor.deleteScene": [{
34576
+ name: "deviceId",
34577
+ form: "single",
34578
+ optional: false
34579
+ }],
34580
+ "sceneMonitor.listScenes": [{
34581
+ name: "deviceId",
34582
+ form: "single",
34583
+ optional: false
34584
+ }],
34585
+ "sceneMonitor.recheckNow": [{
34586
+ name: "deviceId",
34587
+ form: "single",
34588
+ optional: false
34589
+ }],
34590
+ "sceneMonitor.updateScene": [{
34591
+ name: "deviceId",
34592
+ form: "single",
34593
+ optional: false
34594
+ }],
34595
+ "scriptRunner.run": [{
34596
+ name: "deviceId",
34597
+ form: "single",
34598
+ optional: false
34599
+ }],
34600
+ "scriptRunner.stop": [{
34601
+ name: "deviceId",
34602
+ form: "single",
34603
+ optional: false
34604
+ }],
34605
+ "snapshot.getSnapshot": [{
34606
+ name: "deviceId",
34607
+ form: "single",
34608
+ optional: false
34609
+ }],
34610
+ "snapshot.getSnapshotOverview": [{
34611
+ name: "deviceIds",
34612
+ form: "array",
34613
+ optional: false
34614
+ }],
34615
+ "snapshot.invalidateCache": [{
34616
+ name: "deviceId",
34617
+ form: "single",
34618
+ optional: false
34619
+ }],
34620
+ "streamBroker.acquireEgressTranscode": [{
34621
+ name: "deviceId",
34622
+ form: "single",
34623
+ optional: false
34624
+ }],
34625
+ "streamBroker.assignProfile": [{
34626
+ name: "deviceId",
34627
+ form: "single",
34628
+ optional: false
34629
+ }],
34630
+ "streamBroker.getDeviceAudioMute": [{
34631
+ name: "deviceId",
34632
+ form: "single",
34633
+ optional: false
34634
+ }],
34635
+ "streamBroker.getStreamWithCodec": [{
34636
+ name: "deviceId",
34637
+ form: "single",
34638
+ optional: false
34639
+ }],
34640
+ "streamBroker.produceEventMedia": [{
34641
+ name: "deviceId",
34642
+ form: "single",
34643
+ optional: false
34644
+ }],
34645
+ "streamBroker.publishCameraStream": [{
34646
+ name: "deviceId",
34647
+ form: "single",
34648
+ optional: false
34649
+ }],
34650
+ "streamBroker.renderPreBufferClip": [{
34651
+ name: "deviceId",
34652
+ form: "single",
34653
+ optional: false
34654
+ }],
34655
+ "streamBroker.restartProfile": [{
34656
+ name: "deviceId",
34657
+ form: "single",
34658
+ optional: false
34659
+ }],
34660
+ "streamBroker.retractCameraStream": [{
34661
+ name: "deviceId",
34662
+ form: "single",
34663
+ optional: false
34664
+ }],
34665
+ "streamBroker.setDeviceAudioMute": [{
34666
+ name: "deviceId",
34667
+ form: "single",
34668
+ optional: false
34669
+ }],
34670
+ "streamBroker.unassignProfile": [{
34671
+ name: "deviceId",
34672
+ form: "single",
34673
+ optional: false
34674
+ }],
34675
+ "streamCatalog.getCatalog": [{
34676
+ name: "deviceId",
34677
+ form: "single",
34678
+ optional: false
34679
+ }],
34680
+ "streamParams.getConfigSchema": [{
34681
+ name: "deviceId",
34682
+ form: "single",
34683
+ optional: false
34684
+ }],
34685
+ "streamParams.getOptions": [{
34686
+ name: "deviceId",
34687
+ form: "single",
34688
+ optional: false
34689
+ }],
34690
+ "streamParams.setProfile": [{
34691
+ name: "deviceId",
34692
+ form: "single",
34693
+ optional: false
34694
+ }],
34695
+ "switch.setState": [{
34696
+ name: "deviceId",
34697
+ form: "single",
34698
+ optional: false
34699
+ }],
34700
+ "vacuumControl.locate": [{
34701
+ name: "deviceId",
34702
+ form: "single",
34703
+ optional: false
34704
+ }],
34705
+ "vacuumControl.pause": [{
34706
+ name: "deviceId",
34707
+ form: "single",
34708
+ optional: false
34709
+ }],
34710
+ "vacuumControl.returnToBase": [{
34711
+ name: "deviceId",
34712
+ form: "single",
34713
+ optional: false
34714
+ }],
34715
+ "vacuumControl.setFanSpeed": [{
34716
+ name: "deviceId",
34717
+ form: "single",
34718
+ optional: false
34719
+ }],
34720
+ "vacuumControl.start": [{
34721
+ name: "deviceId",
34722
+ form: "single",
34723
+ optional: false
34724
+ }],
34725
+ "vacuumControl.stop": [{
34726
+ name: "deviceId",
34727
+ form: "single",
34728
+ optional: false
34729
+ }],
34730
+ "valve.close": [{
34731
+ name: "deviceId",
34732
+ form: "single",
34733
+ optional: false
34734
+ }],
34735
+ "valve.open": [{
34736
+ name: "deviceId",
34737
+ form: "single",
34738
+ optional: false
34739
+ }],
34740
+ "valve.setPosition": [{
34741
+ name: "deviceId",
34742
+ form: "single",
34743
+ optional: false
34744
+ }],
34745
+ "valve.stop": [{
34746
+ name: "deviceId",
34747
+ form: "single",
34748
+ optional: false
34749
+ }],
34750
+ "videoclips.getClipPlayback": [{
34751
+ name: "deviceId",
34752
+ form: "single",
34753
+ optional: false
34754
+ }],
34755
+ "videoclips.listClips": [{
34756
+ name: "deviceId",
34757
+ form: "single",
34758
+ optional: false
34759
+ }],
34760
+ "waterHeater.setAway": [{
34761
+ name: "deviceId",
34762
+ form: "single",
34763
+ optional: false
34764
+ }],
34765
+ "waterHeater.setOperationMode": [{
34766
+ name: "deviceId",
34767
+ form: "single",
34768
+ optional: false
34769
+ }],
34770
+ "waterHeater.setTargetTemp": [{
34771
+ name: "deviceId",
34772
+ form: "single",
34773
+ optional: false
34774
+ }],
34775
+ "webrtcSession.addIceCandidate": [{
34776
+ name: "deviceId",
34777
+ form: "single",
34778
+ optional: false
34779
+ }],
34780
+ "webrtcSession.closeSession": [{
34781
+ name: "deviceId",
34782
+ form: "single",
34783
+ optional: false
34784
+ }],
34785
+ "webrtcSession.createSession": [{
34786
+ name: "deviceId",
34787
+ form: "single",
34788
+ optional: false
34789
+ }],
34790
+ "webrtcSession.getIceCandidates": [{
34791
+ name: "deviceId",
34792
+ form: "single",
34793
+ optional: false
34794
+ }],
34795
+ "webrtcSession.getSessionState": [{
34796
+ name: "deviceId",
34797
+ form: "single",
34798
+ optional: false
34799
+ }],
34800
+ "webrtcSession.handleAnswer": [{
34801
+ name: "deviceId",
34802
+ form: "single",
34803
+ optional: false
34804
+ }],
34805
+ "webrtcSession.handleOffer": [{
34806
+ name: "deviceId",
34807
+ form: "single",
34808
+ optional: false
34809
+ }],
34810
+ "webrtcSession.hasAdaptiveBitrate": [{
34811
+ name: "deviceId",
34812
+ form: "single",
34813
+ optional: false
34814
+ }],
34815
+ "webrtcSession.listStreams": [{
34816
+ name: "deviceId",
34817
+ form: "single",
34818
+ optional: false
34819
+ }],
34820
+ "zoneAnalytics.getCameraHistory": [{
34821
+ name: "deviceId",
34822
+ form: "single",
34823
+ optional: false
34824
+ }],
34825
+ "zoneAnalytics.getCurrentSnapshot": [{
34826
+ name: "deviceId",
34827
+ form: "single",
34828
+ optional: false
34829
+ }],
34830
+ "zoneAnalytics.getUnzonedHistory": [{
34831
+ name: "deviceId",
34832
+ form: "single",
34833
+ optional: false
34834
+ }],
34835
+ "zoneAnalytics.getZoneHistory": [{
34836
+ name: "deviceId",
34837
+ form: "single",
34838
+ optional: false
34839
+ }],
34840
+ "zoneRules.listRules": [{
34841
+ name: "deviceId",
34842
+ form: "single",
34843
+ optional: false
34844
+ }],
34845
+ "zoneRules.setRules": [{
34846
+ name: "deviceId",
34847
+ form: "single",
34848
+ optional: false
34849
+ }],
34850
+ "zones.addZone": [{
34851
+ name: "deviceId",
34852
+ form: "single",
34853
+ optional: false
34854
+ }],
34855
+ "zones.listZones": [{
34856
+ name: "deviceId",
34857
+ form: "single",
34858
+ optional: false
34859
+ }],
34860
+ "zones.removeZone": [{
34861
+ name: "deviceId",
34862
+ form: "single",
34863
+ optional: false
34864
+ }],
34865
+ "zones.updateZone": [{
34866
+ name: "deviceId",
34867
+ form: "single",
34868
+ optional: false
34869
+ }]
34870
+ });
32916
34871
  Object.freeze({
32917
34872
  "broker": "broker",
32918
34873
  "device-export": "device-export",
@@ -34091,6 +36046,18 @@ Object.defineProperty(exports, "YAMNET_TO_MACRO", {
34091
36046
  return YAMNET_TO_MACRO;
34092
36047
  }
34093
36048
  });
36049
+ Object.defineProperty(exports, "__commonJSMin", {
36050
+ enumerable: true,
36051
+ get: function() {
36052
+ return __commonJSMin;
36053
+ }
36054
+ });
36055
+ Object.defineProperty(exports, "__toESM", {
36056
+ enumerable: true,
36057
+ get: function() {
36058
+ return __toESM;
36059
+ }
36060
+ });
34094
36061
  Object.defineProperty(exports, "_enum", {
34095
36062
  enumerable: true,
34096
36063
  get: function() {