@camstack/addon-provider-unifi 0.2.84 → 0.2.86

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 (3) hide show
  1. package/dist/addon.js +129 -70
  2. package/dist/addon.mjs +129 -70
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -16108,14 +16108,14 @@ var alarmPanelCapability = {
16108
16108
  code: string().min(1).optional()
16109
16109
  }), _void(), {
16110
16110
  kind: "mutation",
16111
- auth: "admin"
16111
+ auth: "protected"
16112
16112
  }),
16113
16113
  disarm: method(object({
16114
16114
  deviceId: number().int().nonnegative(),
16115
16115
  code: string().min(1).optional()
16116
16116
  }), _void(), {
16117
16117
  kind: "mutation",
16118
- auth: "admin"
16118
+ auth: "protected"
16119
16119
  }),
16120
16120
  /**
16121
16121
  * Force the panel into the `triggered` state — used by HA
@@ -16126,7 +16126,7 @@ var alarmPanelCapability = {
16126
16126
  */
16127
16127
  trigger: method(object({ deviceId: number().int().nonnegative() }), _void(), {
16128
16128
  kind: "mutation",
16129
- auth: "admin"
16129
+ auth: "protected"
16130
16130
  })
16131
16131
  },
16132
16132
  status: {
@@ -24093,7 +24093,7 @@ var brightnessCapability = {
24093
24093
  percentage: number().min(0).max(100)
24094
24094
  }), _void(), {
24095
24095
  kind: "mutation",
24096
- auth: "admin"
24096
+ auth: "protected"
24097
24097
  }) },
24098
24098
  events: {
24099
24099
  /**
@@ -24142,7 +24142,7 @@ var buttonCapability = {
24142
24142
  deviceTypes: [DeviceType.Button],
24143
24143
  methods: { press: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24144
24144
  kind: "mutation",
24145
- auth: "admin"
24145
+ auth: "protected"
24146
24146
  }) }
24147
24147
  };
24148
24148
  /**
@@ -24335,28 +24335,28 @@ var climateControlCapability = {
24335
24335
  mode: HvacModeSchema
24336
24336
  }), _void(), {
24337
24337
  kind: "mutation",
24338
- auth: "admin"
24338
+ auth: "protected"
24339
24339
  }),
24340
24340
  setFanMode: method(object({
24341
24341
  deviceId: number().int().nonnegative(),
24342
24342
  fanMode: string().min(1)
24343
24343
  }), _void(), {
24344
24344
  kind: "mutation",
24345
- auth: "admin"
24345
+ auth: "protected"
24346
24346
  }),
24347
24347
  setPreset: method(object({
24348
24348
  deviceId: number().int().nonnegative(),
24349
24349
  preset: string().min(1)
24350
24350
  }), _void(), {
24351
24351
  kind: "mutation",
24352
- auth: "admin"
24352
+ auth: "protected"
24353
24353
  }),
24354
24354
  setTarget: method(object({
24355
24355
  deviceId: number().int().nonnegative(),
24356
24356
  target: number()
24357
24357
  }), _void(), {
24358
24358
  kind: "mutation",
24359
- auth: "admin"
24359
+ auth: "protected"
24360
24360
  }),
24361
24361
  setTargetRange: method(object({
24362
24362
  deviceId: number().int().nonnegative(),
@@ -24364,28 +24364,28 @@ var climateControlCapability = {
24364
24364
  targetHigh: number()
24365
24365
  }), _void(), {
24366
24366
  kind: "mutation",
24367
- auth: "admin"
24367
+ auth: "protected"
24368
24368
  }),
24369
24369
  setTargetHumidity: method(object({
24370
24370
  deviceId: number().int().nonnegative(),
24371
24371
  targetHumidity: number().min(0).max(100)
24372
24372
  }), _void(), {
24373
24373
  kind: "mutation",
24374
- auth: "admin"
24374
+ auth: "protected"
24375
24375
  }),
24376
24376
  setSwingVertical: method(object({
24377
24377
  deviceId: number().int().nonnegative(),
24378
24378
  on: boolean()
24379
24379
  }), _void(), {
24380
24380
  kind: "mutation",
24381
- auth: "admin"
24381
+ auth: "protected"
24382
24382
  }),
24383
24383
  setSwingHorizontal: method(object({
24384
24384
  deviceId: number().int().nonnegative(),
24385
24385
  on: boolean()
24386
24386
  }), _void(), {
24387
24387
  kind: "mutation",
24388
- auth: "admin"
24388
+ auth: "protected"
24389
24389
  })
24390
24390
  },
24391
24391
  status: {
@@ -24485,7 +24485,7 @@ var colorCapability = {
24485
24485
  color: ColorInputSchema
24486
24486
  }), _void(), {
24487
24487
  kind: "mutation",
24488
- auth: "admin"
24488
+ auth: "protected"
24489
24489
  }) },
24490
24490
  events: {
24491
24491
  /**
@@ -24814,7 +24814,7 @@ var controlCapability = {
24814
24814
  control: ControlSetValueInputSchema
24815
24815
  }), _void(), {
24816
24816
  kind: "mutation",
24817
- auth: "admin"
24817
+ auth: "protected"
24818
24818
  }) },
24819
24819
  status: {
24820
24820
  schema: ControlStatusSchema,
@@ -24860,29 +24860,29 @@ var coverCapability = {
24860
24860
  methods: {
24861
24861
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24862
24862
  kind: "mutation",
24863
- auth: "admin"
24863
+ auth: "protected"
24864
24864
  }),
24865
24865
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24866
24866
  kind: "mutation",
24867
- auth: "admin"
24867
+ auth: "protected"
24868
24868
  }),
24869
24869
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24870
24870
  kind: "mutation",
24871
- auth: "admin"
24871
+ auth: "protected"
24872
24872
  }),
24873
24873
  setPosition: method(object({
24874
24874
  deviceId: number().int().nonnegative(),
24875
24875
  position: number().min(0).max(100)
24876
24876
  }), _void(), {
24877
24877
  kind: "mutation",
24878
- auth: "admin"
24878
+ auth: "protected"
24879
24879
  }),
24880
24880
  setTiltPosition: method(object({
24881
24881
  deviceId: number().int().nonnegative(),
24882
24882
  tiltPosition: number().min(0).max(100)
24883
24883
  }), _void(), {
24884
24884
  kind: "mutation",
24885
- auth: "admin"
24885
+ auth: "protected"
24886
24886
  })
24887
24887
  },
24888
24888
  status: {
@@ -25268,6 +25268,59 @@ var IdentitySampleInfoSchema = object({
25268
25268
  deviceId: number().int().optional(),
25269
25269
  base64: string().optional()
25270
25270
  });
25271
+ /**
25272
+ * One enrolled sample, judged against the gallery it lives in.
25273
+ *
25274
+ * The gallery is the one input to recognition nobody re-reads: a sample
25275
+ * enrolled from the wrong face keeps voting forever, and because the matches it
25276
+ * pulls then look confident, nobody goes back. The 2026-09-08 audit found
25277
+ * exactly one such pair on this cluster — a sample scoring 0.61 against three
25278
+ * samples of ANOTHER person, enrolled from the same camera in the same minute,
25279
+ * where every other cross-identity pair sits under 0.50.
25280
+ */
25281
+ var IdentitySampleAuditRowSchema = object({
25282
+ sampleId: string(),
25283
+ enrolledAt: number().int(),
25284
+ deviceId: number().int().optional(),
25285
+ source: _enum(["detected", "photo"]),
25286
+ /** The enrolled crop's media key, so the panel can show the evidence. */
25287
+ mediaKey: string().optional(),
25288
+ /**
25289
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
25290
+ * across feature spaces is a well-formed float with no meaning. Every number
25291
+ * below then says nothing — it must read as "cannot say", never as an
25292
+ * accusation and never as a clean bill: this list ends in a Remove button.
25293
+ */
25294
+ comparable: boolean(),
25295
+ /** Mean cosine against this person's other samples. Null when there are none
25296
+ * to compare with — never 0, which would read as "opposite". */
25297
+ selfMean: number().nullable(),
25298
+ /** The other person this sample looks most like, when it looks like one.
25299
+ * This is the half that convicts: not looking like yourself can be a hard
25300
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
25301
+ bestForeign: object({
25302
+ identityId: string(),
25303
+ name: string(),
25304
+ score: number()
25305
+ }).optional(),
25306
+ /** 0 = nothing to say. Higher = look at this one sooner. */
25307
+ suspicion: number()
25308
+ });
25309
+ var IdentitySampleAuditSchema = object({
25310
+ identityId: string(),
25311
+ name: string(),
25312
+ /** The cluster face model every comparison was made in. */
25313
+ modelId: string(),
25314
+ totalSamples: number().int(),
25315
+ comparableSamples: number().int(),
25316
+ flagged: number().int(),
25317
+ /** The bar `flagged` counts against, so the panel states the RULE and not
25318
+ * only its current result. */
25319
+ flagThreshold: number(),
25320
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
25321
+ * operator asked to see the gallery, not only its accusations. */
25322
+ rows: array(IdentitySampleAuditRowSchema).readonly()
25323
+ });
25271
25324
  var FaceInfoSchema = object({
25272
25325
  faceId: string(),
25273
25326
  deviceId: number().int(),
@@ -25419,7 +25472,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
25419
25472
  }), method(object({ id: string() }), _void(), {
25420
25473
  kind: "mutation",
25421
25474
  auth: "admin"
25422
- }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
25475
+ }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
25423
25476
  identityId: string(),
25424
25477
  sampleId: string()
25425
25478
  }), _void(), {
@@ -25612,28 +25665,28 @@ var fanControlCapability = {
25612
25665
  percentage: number().min(0).max(100)
25613
25666
  }), _void(), {
25614
25667
  kind: "mutation",
25615
- auth: "admin"
25668
+ auth: "protected"
25616
25669
  }),
25617
25670
  setPreset: method(object({
25618
25671
  deviceId: number().int().nonnegative(),
25619
25672
  preset: string().min(1)
25620
25673
  }), _void(), {
25621
25674
  kind: "mutation",
25622
- auth: "admin"
25675
+ auth: "protected"
25623
25676
  }),
25624
25677
  setDirection: method(object({
25625
25678
  deviceId: number().int().nonnegative(),
25626
25679
  direction: FanDirectionSchema
25627
25680
  }), _void(), {
25628
25681
  kind: "mutation",
25629
- auth: "admin"
25682
+ auth: "protected"
25630
25683
  }),
25631
25684
  setOscillating: method(object({
25632
25685
  deviceId: number().int().nonnegative(),
25633
25686
  oscillating: boolean()
25634
25687
  }), _void(), {
25635
25688
  kind: "mutation",
25636
- auth: "admin"
25689
+ auth: "protected"
25637
25690
  })
25638
25691
  },
25639
25692
  status: {
@@ -25855,21 +25908,21 @@ var humidifierCapability = {
25855
25908
  on: boolean()
25856
25909
  }), _void(), {
25857
25910
  kind: "mutation",
25858
- auth: "admin"
25911
+ auth: "protected"
25859
25912
  }),
25860
25913
  setTargetHumidity: method(object({
25861
25914
  deviceId: number().int().nonnegative(),
25862
25915
  humidity: number().min(0).max(100)
25863
25916
  }), _void(), {
25864
25917
  kind: "mutation",
25865
- auth: "admin"
25918
+ auth: "protected"
25866
25919
  }),
25867
25920
  setMode: method(object({
25868
25921
  deviceId: number().int().nonnegative(),
25869
25922
  mode: string().min(1)
25870
25923
  }), _void(), {
25871
25924
  kind: "mutation",
25872
- auth: "admin"
25925
+ auth: "protected"
25873
25926
  })
25874
25927
  },
25875
25928
  status: {
@@ -26570,15 +26623,15 @@ var lawnMowerControlCapability = {
26570
26623
  methods: {
26571
26624
  startMowing: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26572
26625
  kind: "mutation",
26573
- auth: "admin"
26626
+ auth: "protected"
26574
26627
  }),
26575
26628
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26576
26629
  kind: "mutation",
26577
- auth: "admin"
26630
+ auth: "protected"
26578
26631
  }),
26579
26632
  dock: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26580
26633
  kind: "mutation",
26581
- auth: "admin"
26634
+ auth: "protected"
26582
26635
  })
26583
26636
  },
26584
26637
  status: {
@@ -26863,18 +26916,18 @@ var lockControlCapability = {
26863
26916
  code: string().min(1).optional()
26864
26917
  }), _void(), {
26865
26918
  kind: "mutation",
26866
- auth: "admin"
26919
+ auth: "protected"
26867
26920
  }),
26868
26921
  unlock: method(object({
26869
26922
  deviceId: number().int().nonnegative(),
26870
26923
  code: string().min(1).optional()
26871
26924
  }), _void(), {
26872
26925
  kind: "mutation",
26873
- auth: "admin"
26926
+ auth: "protected"
26874
26927
  }),
26875
26928
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26876
26929
  kind: "mutation",
26877
- auth: "admin"
26930
+ auth: "protected"
26878
26931
  })
26879
26932
  },
26880
26933
  status: {
@@ -26977,65 +27030,65 @@ var mediaPlayerCapability = {
26977
27030
  methods: {
26978
27031
  play: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26979
27032
  kind: "mutation",
26980
- auth: "admin"
27033
+ auth: "protected"
26981
27034
  }),
26982
27035
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26983
27036
  kind: "mutation",
26984
- auth: "admin"
27037
+ auth: "protected"
26985
27038
  }),
26986
27039
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26987
27040
  kind: "mutation",
26988
- auth: "admin"
27041
+ auth: "protected"
26989
27042
  }),
26990
27043
  next: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26991
27044
  kind: "mutation",
26992
- auth: "admin"
27045
+ auth: "protected"
26993
27046
  }),
26994
27047
  previous: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26995
27048
  kind: "mutation",
26996
- auth: "admin"
27049
+ auth: "protected"
26997
27050
  }),
26998
27051
  seek: method(object({
26999
27052
  deviceId: number().int().nonnegative(),
27000
27053
  positionMs: number().int().nonnegative()
27001
27054
  }), _void(), {
27002
27055
  kind: "mutation",
27003
- auth: "admin"
27056
+ auth: "protected"
27004
27057
  }),
27005
27058
  setVolume: method(object({
27006
27059
  deviceId: number().int().nonnegative(),
27007
27060
  volumeLevel: number().min(0).max(100)
27008
27061
  }), _void(), {
27009
27062
  kind: "mutation",
27010
- auth: "admin"
27063
+ auth: "protected"
27011
27064
  }),
27012
27065
  setMute: method(object({
27013
27066
  deviceId: number().int().nonnegative(),
27014
27067
  muted: boolean()
27015
27068
  }), _void(), {
27016
27069
  kind: "mutation",
27017
- auth: "admin"
27070
+ auth: "protected"
27018
27071
  }),
27019
27072
  setShuffle: method(object({
27020
27073
  deviceId: number().int().nonnegative(),
27021
27074
  shuffle: boolean()
27022
27075
  }), _void(), {
27023
27076
  kind: "mutation",
27024
- auth: "admin"
27077
+ auth: "protected"
27025
27078
  }),
27026
27079
  setRepeat: method(object({
27027
27080
  deviceId: number().int().nonnegative(),
27028
27081
  repeat: MediaPlayerRepeatSchema
27029
27082
  }), _void(), {
27030
27083
  kind: "mutation",
27031
- auth: "admin"
27084
+ auth: "protected"
27032
27085
  }),
27033
27086
  selectSource: method(object({
27034
27087
  deviceId: number().int().nonnegative(),
27035
27088
  source: string().min(1)
27036
27089
  }), _void(), {
27037
27090
  kind: "mutation",
27038
- auth: "admin"
27091
+ auth: "protected"
27039
27092
  }),
27040
27093
  playMedia: method(object({
27041
27094
  deviceId: number().int().nonnegative(),
@@ -27046,7 +27099,7 @@ var mediaPlayerCapability = {
27046
27099
  mediaType: string().min(1)
27047
27100
  }), _void(), {
27048
27101
  kind: "mutation",
27049
- auth: "admin"
27102
+ auth: "protected"
27050
27103
  })
27051
27104
  },
27052
27105
  status: {
@@ -28639,27 +28692,27 @@ var petFeederCapability = {
28639
28692
  hopper2: gramsPortion.optional()
28640
28693
  }), _void(), {
28641
28694
  kind: "mutation",
28642
- auth: "admin"
28695
+ auth: "protected"
28643
28696
  }),
28644
28697
  /** Cancel an in-progress manual feed. */
28645
28698
  cancelFeed: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28646
28699
  kind: "mutation",
28647
- auth: "admin"
28700
+ auth: "protected"
28648
28701
  }),
28649
28702
  /** Reset the desiccant "days remaining" counter after replacing it. */
28650
28703
  resetDesiccant: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28651
28704
  kind: "mutation",
28652
- auth: "admin"
28705
+ auth: "protected"
28653
28706
  }),
28654
28707
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
28655
28708
  markFoodReplenished: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28656
28709
  kind: "mutation",
28657
- auth: "admin"
28710
+ auth: "protected"
28658
28711
  }),
28659
28712
  /** Call the pet with the recorded prompt (D3). */
28660
28713
  callPet: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28661
28714
  kind: "mutation",
28662
- auth: "admin"
28715
+ auth: "protected"
28663
28716
  }),
28664
28717
  /** Play a stored sound by id (D3 / D4H / D4SH). */
28665
28718
  playSound: method(object({
@@ -28667,7 +28720,7 @@ var petFeederCapability = {
28667
28720
  soundId: number().int().nonnegative()
28668
28721
  }), _void(), {
28669
28722
  kind: "mutation",
28670
- auth: "admin"
28723
+ auth: "protected"
28671
28724
  }),
28672
28725
  /** Toggle the child-lock (manual-lock) setting. */
28673
28726
  setChildLock: method(object({
@@ -28675,7 +28728,7 @@ var petFeederCapability = {
28675
28728
  on: boolean()
28676
28729
  }), _void(), {
28677
28730
  kind: "mutation",
28678
- auth: "admin"
28731
+ auth: "protected"
28679
28732
  }),
28680
28733
  /** Toggle the front indicator light. */
28681
28734
  setIndicatorLight: method(object({
@@ -28683,7 +28736,7 @@ var petFeederCapability = {
28683
28736
  on: boolean()
28684
28737
  }), _void(), {
28685
28738
  kind: "mutation",
28686
- auth: "admin"
28739
+ auth: "protected"
28687
28740
  }),
28688
28741
  /** Toggle the dispense chime. */
28689
28742
  setFeedSound: method(object({
@@ -28691,7 +28744,7 @@ var petFeederCapability = {
28691
28744
  on: boolean()
28692
28745
  }), _void(), {
28693
28746
  kind: "mutation",
28694
- auth: "admin"
28747
+ auth: "protected"
28695
28748
  }),
28696
28749
  /** Set the speaker / prompt volume level. */
28697
28750
  setVolume: method(object({
@@ -28699,7 +28752,7 @@ var petFeederCapability = {
28699
28752
  level: number().int().nonnegative()
28700
28753
  }), _void(), {
28701
28754
  kind: "mutation",
28702
- auth: "admin"
28755
+ auth: "protected"
28703
28756
  })
28704
28757
  },
28705
28758
  status: {
@@ -30995,7 +31048,7 @@ var switchCapability = {
30995
31048
  on: boolean()
30996
31049
  }), _void(), {
30997
31050
  kind: "mutation",
30998
- auth: "admin"
31051
+ auth: "protected"
30999
31052
  }) },
31000
31053
  events: { onStateChanged: { data: object({
31001
31054
  deviceId: number(),
@@ -31983,30 +32036,30 @@ var vacuumControlCapability = {
31983
32036
  methods: {
31984
32037
  start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31985
32038
  kind: "mutation",
31986
- auth: "admin"
32039
+ auth: "protected"
31987
32040
  }),
31988
32041
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31989
32042
  kind: "mutation",
31990
- auth: "admin"
32043
+ auth: "protected"
31991
32044
  }),
31992
32045
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31993
32046
  kind: "mutation",
31994
- auth: "admin"
32047
+ auth: "protected"
31995
32048
  }),
31996
32049
  returnToBase: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31997
32050
  kind: "mutation",
31998
- auth: "admin"
32051
+ auth: "protected"
31999
32052
  }),
32000
32053
  locate: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32001
32054
  kind: "mutation",
32002
- auth: "admin"
32055
+ auth: "protected"
32003
32056
  }),
32004
32057
  setFanSpeed: method(object({
32005
32058
  deviceId: number().int().nonnegative(),
32006
32059
  speed: string().min(1)
32007
32060
  }), _void(), {
32008
32061
  kind: "mutation",
32009
- auth: "admin"
32062
+ auth: "protected"
32010
32063
  })
32011
32064
  },
32012
32065
  status: {
@@ -32050,22 +32103,22 @@ var valveCapability = {
32050
32103
  methods: {
32051
32104
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32052
32105
  kind: "mutation",
32053
- auth: "admin"
32106
+ auth: "protected"
32054
32107
  }),
32055
32108
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32056
32109
  kind: "mutation",
32057
- auth: "admin"
32110
+ auth: "protected"
32058
32111
  }),
32059
32112
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32060
32113
  kind: "mutation",
32061
- auth: "admin"
32114
+ auth: "protected"
32062
32115
  }),
32063
32116
  setPosition: method(object({
32064
32117
  deviceId: number().int().nonnegative(),
32065
32118
  position: number().min(0).max(100)
32066
32119
  }), _void(), {
32067
32120
  kind: "mutation",
32068
- auth: "admin"
32121
+ auth: "protected"
32069
32122
  })
32070
32123
  },
32071
32124
  status: {
@@ -32164,21 +32217,21 @@ var waterHeaterCapability = {
32164
32217
  temp: number().finite()
32165
32218
  }), _void(), {
32166
32219
  kind: "mutation",
32167
- auth: "admin"
32220
+ auth: "protected"
32168
32221
  }),
32169
32222
  setOperationMode: method(object({
32170
32223
  deviceId: number().int().nonnegative(),
32171
32224
  mode: string().min(1)
32172
32225
  }), _void(), {
32173
32226
  kind: "mutation",
32174
- auth: "admin"
32227
+ auth: "protected"
32175
32228
  }),
32176
32229
  setAway: method(object({
32177
32230
  deviceId: number().int().nonnegative(),
32178
32231
  on: boolean()
32179
32232
  }), _void(), {
32180
32233
  kind: "mutation",
32181
- auth: "admin"
32234
+ auth: "protected"
32182
32235
  })
32183
32236
  },
32184
32237
  status: {
@@ -35912,6 +35965,12 @@ Object.freeze({
35912
35965
  addonId: null,
35913
35966
  access: "create"
35914
35967
  },
35968
+ "faceGallery.auditIdentitySamples": {
35969
+ capName: "face-gallery",
35970
+ capScope: "system",
35971
+ addonId: null,
35972
+ access: "view"
35973
+ },
35915
35974
  "faceGallery.createIdentity": {
35916
35975
  capName: "face-gallery",
35917
35976
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -16107,14 +16107,14 @@ var alarmPanelCapability = {
16107
16107
  code: string().min(1).optional()
16108
16108
  }), _void(), {
16109
16109
  kind: "mutation",
16110
- auth: "admin"
16110
+ auth: "protected"
16111
16111
  }),
16112
16112
  disarm: method(object({
16113
16113
  deviceId: number().int().nonnegative(),
16114
16114
  code: string().min(1).optional()
16115
16115
  }), _void(), {
16116
16116
  kind: "mutation",
16117
- auth: "admin"
16117
+ auth: "protected"
16118
16118
  }),
16119
16119
  /**
16120
16120
  * Force the panel into the `triggered` state — used by HA
@@ -16125,7 +16125,7 @@ var alarmPanelCapability = {
16125
16125
  */
16126
16126
  trigger: method(object({ deviceId: number().int().nonnegative() }), _void(), {
16127
16127
  kind: "mutation",
16128
- auth: "admin"
16128
+ auth: "protected"
16129
16129
  })
16130
16130
  },
16131
16131
  status: {
@@ -24092,7 +24092,7 @@ var brightnessCapability = {
24092
24092
  percentage: number().min(0).max(100)
24093
24093
  }), _void(), {
24094
24094
  kind: "mutation",
24095
- auth: "admin"
24095
+ auth: "protected"
24096
24096
  }) },
24097
24097
  events: {
24098
24098
  /**
@@ -24141,7 +24141,7 @@ var buttonCapability = {
24141
24141
  deviceTypes: [DeviceType.Button],
24142
24142
  methods: { press: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24143
24143
  kind: "mutation",
24144
- auth: "admin"
24144
+ auth: "protected"
24145
24145
  }) }
24146
24146
  };
24147
24147
  /**
@@ -24334,28 +24334,28 @@ var climateControlCapability = {
24334
24334
  mode: HvacModeSchema
24335
24335
  }), _void(), {
24336
24336
  kind: "mutation",
24337
- auth: "admin"
24337
+ auth: "protected"
24338
24338
  }),
24339
24339
  setFanMode: method(object({
24340
24340
  deviceId: number().int().nonnegative(),
24341
24341
  fanMode: string().min(1)
24342
24342
  }), _void(), {
24343
24343
  kind: "mutation",
24344
- auth: "admin"
24344
+ auth: "protected"
24345
24345
  }),
24346
24346
  setPreset: method(object({
24347
24347
  deviceId: number().int().nonnegative(),
24348
24348
  preset: string().min(1)
24349
24349
  }), _void(), {
24350
24350
  kind: "mutation",
24351
- auth: "admin"
24351
+ auth: "protected"
24352
24352
  }),
24353
24353
  setTarget: method(object({
24354
24354
  deviceId: number().int().nonnegative(),
24355
24355
  target: number()
24356
24356
  }), _void(), {
24357
24357
  kind: "mutation",
24358
- auth: "admin"
24358
+ auth: "protected"
24359
24359
  }),
24360
24360
  setTargetRange: method(object({
24361
24361
  deviceId: number().int().nonnegative(),
@@ -24363,28 +24363,28 @@ var climateControlCapability = {
24363
24363
  targetHigh: number()
24364
24364
  }), _void(), {
24365
24365
  kind: "mutation",
24366
- auth: "admin"
24366
+ auth: "protected"
24367
24367
  }),
24368
24368
  setTargetHumidity: method(object({
24369
24369
  deviceId: number().int().nonnegative(),
24370
24370
  targetHumidity: number().min(0).max(100)
24371
24371
  }), _void(), {
24372
24372
  kind: "mutation",
24373
- auth: "admin"
24373
+ auth: "protected"
24374
24374
  }),
24375
24375
  setSwingVertical: method(object({
24376
24376
  deviceId: number().int().nonnegative(),
24377
24377
  on: boolean()
24378
24378
  }), _void(), {
24379
24379
  kind: "mutation",
24380
- auth: "admin"
24380
+ auth: "protected"
24381
24381
  }),
24382
24382
  setSwingHorizontal: method(object({
24383
24383
  deviceId: number().int().nonnegative(),
24384
24384
  on: boolean()
24385
24385
  }), _void(), {
24386
24386
  kind: "mutation",
24387
- auth: "admin"
24387
+ auth: "protected"
24388
24388
  })
24389
24389
  },
24390
24390
  status: {
@@ -24484,7 +24484,7 @@ var colorCapability = {
24484
24484
  color: ColorInputSchema
24485
24485
  }), _void(), {
24486
24486
  kind: "mutation",
24487
- auth: "admin"
24487
+ auth: "protected"
24488
24488
  }) },
24489
24489
  events: {
24490
24490
  /**
@@ -24813,7 +24813,7 @@ var controlCapability = {
24813
24813
  control: ControlSetValueInputSchema
24814
24814
  }), _void(), {
24815
24815
  kind: "mutation",
24816
- auth: "admin"
24816
+ auth: "protected"
24817
24817
  }) },
24818
24818
  status: {
24819
24819
  schema: ControlStatusSchema,
@@ -24859,29 +24859,29 @@ var coverCapability = {
24859
24859
  methods: {
24860
24860
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24861
24861
  kind: "mutation",
24862
- auth: "admin"
24862
+ auth: "protected"
24863
24863
  }),
24864
24864
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24865
24865
  kind: "mutation",
24866
- auth: "admin"
24866
+ auth: "protected"
24867
24867
  }),
24868
24868
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
24869
24869
  kind: "mutation",
24870
- auth: "admin"
24870
+ auth: "protected"
24871
24871
  }),
24872
24872
  setPosition: method(object({
24873
24873
  deviceId: number().int().nonnegative(),
24874
24874
  position: number().min(0).max(100)
24875
24875
  }), _void(), {
24876
24876
  kind: "mutation",
24877
- auth: "admin"
24877
+ auth: "protected"
24878
24878
  }),
24879
24879
  setTiltPosition: method(object({
24880
24880
  deviceId: number().int().nonnegative(),
24881
24881
  tiltPosition: number().min(0).max(100)
24882
24882
  }), _void(), {
24883
24883
  kind: "mutation",
24884
- auth: "admin"
24884
+ auth: "protected"
24885
24885
  })
24886
24886
  },
24887
24887
  status: {
@@ -25267,6 +25267,59 @@ var IdentitySampleInfoSchema = object({
25267
25267
  deviceId: number().int().optional(),
25268
25268
  base64: string().optional()
25269
25269
  });
25270
+ /**
25271
+ * One enrolled sample, judged against the gallery it lives in.
25272
+ *
25273
+ * The gallery is the one input to recognition nobody re-reads: a sample
25274
+ * enrolled from the wrong face keeps voting forever, and because the matches it
25275
+ * pulls then look confident, nobody goes back. The 2026-09-08 audit found
25276
+ * exactly one such pair on this cluster — a sample scoring 0.61 against three
25277
+ * samples of ANOTHER person, enrolled from the same camera in the same minute,
25278
+ * where every other cross-identity pair sits under 0.50.
25279
+ */
25280
+ var IdentitySampleAuditRowSchema = object({
25281
+ sampleId: string(),
25282
+ enrolledAt: number().int(),
25283
+ deviceId: number().int().optional(),
25284
+ source: _enum(["detected", "photo"]),
25285
+ /** The enrolled crop's media key, so the panel can show the evidence. */
25286
+ mediaKey: string().optional(),
25287
+ /**
25288
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
25289
+ * across feature spaces is a well-formed float with no meaning. Every number
25290
+ * below then says nothing — it must read as "cannot say", never as an
25291
+ * accusation and never as a clean bill: this list ends in a Remove button.
25292
+ */
25293
+ comparable: boolean(),
25294
+ /** Mean cosine against this person's other samples. Null when there are none
25295
+ * to compare with — never 0, which would read as "opposite". */
25296
+ selfMean: number().nullable(),
25297
+ /** The other person this sample looks most like, when it looks like one.
25298
+ * This is the half that convicts: not looking like yourself can be a hard
25299
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
25300
+ bestForeign: object({
25301
+ identityId: string(),
25302
+ name: string(),
25303
+ score: number()
25304
+ }).optional(),
25305
+ /** 0 = nothing to say. Higher = look at this one sooner. */
25306
+ suspicion: number()
25307
+ });
25308
+ var IdentitySampleAuditSchema = object({
25309
+ identityId: string(),
25310
+ name: string(),
25311
+ /** The cluster face model every comparison was made in. */
25312
+ modelId: string(),
25313
+ totalSamples: number().int(),
25314
+ comparableSamples: number().int(),
25315
+ flagged: number().int(),
25316
+ /** The bar `flagged` counts against, so the panel states the RULE and not
25317
+ * only its current result. */
25318
+ flagThreshold: number(),
25319
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
25320
+ * operator asked to see the gallery, not only its accusations. */
25321
+ rows: array(IdentitySampleAuditRowSchema).readonly()
25322
+ });
25270
25323
  var FaceInfoSchema = object({
25271
25324
  faceId: string(),
25272
25325
  deviceId: number().int(),
@@ -25418,7 +25471,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
25418
25471
  }), method(object({ id: string() }), _void(), {
25419
25472
  kind: "mutation",
25420
25473
  auth: "admin"
25421
- }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
25474
+ }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
25422
25475
  identityId: string(),
25423
25476
  sampleId: string()
25424
25477
  }), _void(), {
@@ -25611,28 +25664,28 @@ var fanControlCapability = {
25611
25664
  percentage: number().min(0).max(100)
25612
25665
  }), _void(), {
25613
25666
  kind: "mutation",
25614
- auth: "admin"
25667
+ auth: "protected"
25615
25668
  }),
25616
25669
  setPreset: method(object({
25617
25670
  deviceId: number().int().nonnegative(),
25618
25671
  preset: string().min(1)
25619
25672
  }), _void(), {
25620
25673
  kind: "mutation",
25621
- auth: "admin"
25674
+ auth: "protected"
25622
25675
  }),
25623
25676
  setDirection: method(object({
25624
25677
  deviceId: number().int().nonnegative(),
25625
25678
  direction: FanDirectionSchema
25626
25679
  }), _void(), {
25627
25680
  kind: "mutation",
25628
- auth: "admin"
25681
+ auth: "protected"
25629
25682
  }),
25630
25683
  setOscillating: method(object({
25631
25684
  deviceId: number().int().nonnegative(),
25632
25685
  oscillating: boolean()
25633
25686
  }), _void(), {
25634
25687
  kind: "mutation",
25635
- auth: "admin"
25688
+ auth: "protected"
25636
25689
  })
25637
25690
  },
25638
25691
  status: {
@@ -25854,21 +25907,21 @@ var humidifierCapability = {
25854
25907
  on: boolean()
25855
25908
  }), _void(), {
25856
25909
  kind: "mutation",
25857
- auth: "admin"
25910
+ auth: "protected"
25858
25911
  }),
25859
25912
  setTargetHumidity: method(object({
25860
25913
  deviceId: number().int().nonnegative(),
25861
25914
  humidity: number().min(0).max(100)
25862
25915
  }), _void(), {
25863
25916
  kind: "mutation",
25864
- auth: "admin"
25917
+ auth: "protected"
25865
25918
  }),
25866
25919
  setMode: method(object({
25867
25920
  deviceId: number().int().nonnegative(),
25868
25921
  mode: string().min(1)
25869
25922
  }), _void(), {
25870
25923
  kind: "mutation",
25871
- auth: "admin"
25924
+ auth: "protected"
25872
25925
  })
25873
25926
  },
25874
25927
  status: {
@@ -26569,15 +26622,15 @@ var lawnMowerControlCapability = {
26569
26622
  methods: {
26570
26623
  startMowing: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26571
26624
  kind: "mutation",
26572
- auth: "admin"
26625
+ auth: "protected"
26573
26626
  }),
26574
26627
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26575
26628
  kind: "mutation",
26576
- auth: "admin"
26629
+ auth: "protected"
26577
26630
  }),
26578
26631
  dock: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26579
26632
  kind: "mutation",
26580
- auth: "admin"
26633
+ auth: "protected"
26581
26634
  })
26582
26635
  },
26583
26636
  status: {
@@ -26862,18 +26915,18 @@ var lockControlCapability = {
26862
26915
  code: string().min(1).optional()
26863
26916
  }), _void(), {
26864
26917
  kind: "mutation",
26865
- auth: "admin"
26918
+ auth: "protected"
26866
26919
  }),
26867
26920
  unlock: method(object({
26868
26921
  deviceId: number().int().nonnegative(),
26869
26922
  code: string().min(1).optional()
26870
26923
  }), _void(), {
26871
26924
  kind: "mutation",
26872
- auth: "admin"
26925
+ auth: "protected"
26873
26926
  }),
26874
26927
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26875
26928
  kind: "mutation",
26876
- auth: "admin"
26929
+ auth: "protected"
26877
26930
  })
26878
26931
  },
26879
26932
  status: {
@@ -26976,65 +27029,65 @@ var mediaPlayerCapability = {
26976
27029
  methods: {
26977
27030
  play: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26978
27031
  kind: "mutation",
26979
- auth: "admin"
27032
+ auth: "protected"
26980
27033
  }),
26981
27034
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26982
27035
  kind: "mutation",
26983
- auth: "admin"
27036
+ auth: "protected"
26984
27037
  }),
26985
27038
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26986
27039
  kind: "mutation",
26987
- auth: "admin"
27040
+ auth: "protected"
26988
27041
  }),
26989
27042
  next: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26990
27043
  kind: "mutation",
26991
- auth: "admin"
27044
+ auth: "protected"
26992
27045
  }),
26993
27046
  previous: method(object({ deviceId: number().int().nonnegative() }), _void(), {
26994
27047
  kind: "mutation",
26995
- auth: "admin"
27048
+ auth: "protected"
26996
27049
  }),
26997
27050
  seek: method(object({
26998
27051
  deviceId: number().int().nonnegative(),
26999
27052
  positionMs: number().int().nonnegative()
27000
27053
  }), _void(), {
27001
27054
  kind: "mutation",
27002
- auth: "admin"
27055
+ auth: "protected"
27003
27056
  }),
27004
27057
  setVolume: method(object({
27005
27058
  deviceId: number().int().nonnegative(),
27006
27059
  volumeLevel: number().min(0).max(100)
27007
27060
  }), _void(), {
27008
27061
  kind: "mutation",
27009
- auth: "admin"
27062
+ auth: "protected"
27010
27063
  }),
27011
27064
  setMute: method(object({
27012
27065
  deviceId: number().int().nonnegative(),
27013
27066
  muted: boolean()
27014
27067
  }), _void(), {
27015
27068
  kind: "mutation",
27016
- auth: "admin"
27069
+ auth: "protected"
27017
27070
  }),
27018
27071
  setShuffle: method(object({
27019
27072
  deviceId: number().int().nonnegative(),
27020
27073
  shuffle: boolean()
27021
27074
  }), _void(), {
27022
27075
  kind: "mutation",
27023
- auth: "admin"
27076
+ auth: "protected"
27024
27077
  }),
27025
27078
  setRepeat: method(object({
27026
27079
  deviceId: number().int().nonnegative(),
27027
27080
  repeat: MediaPlayerRepeatSchema
27028
27081
  }), _void(), {
27029
27082
  kind: "mutation",
27030
- auth: "admin"
27083
+ auth: "protected"
27031
27084
  }),
27032
27085
  selectSource: method(object({
27033
27086
  deviceId: number().int().nonnegative(),
27034
27087
  source: string().min(1)
27035
27088
  }), _void(), {
27036
27089
  kind: "mutation",
27037
- auth: "admin"
27090
+ auth: "protected"
27038
27091
  }),
27039
27092
  playMedia: method(object({
27040
27093
  deviceId: number().int().nonnegative(),
@@ -27045,7 +27098,7 @@ var mediaPlayerCapability = {
27045
27098
  mediaType: string().min(1)
27046
27099
  }), _void(), {
27047
27100
  kind: "mutation",
27048
- auth: "admin"
27101
+ auth: "protected"
27049
27102
  })
27050
27103
  },
27051
27104
  status: {
@@ -28638,27 +28691,27 @@ var petFeederCapability = {
28638
28691
  hopper2: gramsPortion.optional()
28639
28692
  }), _void(), {
28640
28693
  kind: "mutation",
28641
- auth: "admin"
28694
+ auth: "protected"
28642
28695
  }),
28643
28696
  /** Cancel an in-progress manual feed. */
28644
28697
  cancelFeed: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28645
28698
  kind: "mutation",
28646
- auth: "admin"
28699
+ auth: "protected"
28647
28700
  }),
28648
28701
  /** Reset the desiccant "days remaining" counter after replacing it. */
28649
28702
  resetDesiccant: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28650
28703
  kind: "mutation",
28651
- auth: "admin"
28704
+ auth: "protected"
28652
28705
  }),
28653
28706
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
28654
28707
  markFoodReplenished: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28655
28708
  kind: "mutation",
28656
- auth: "admin"
28709
+ auth: "protected"
28657
28710
  }),
28658
28711
  /** Call the pet with the recorded prompt (D3). */
28659
28712
  callPet: method(object({ deviceId: number().int().nonnegative() }), _void(), {
28660
28713
  kind: "mutation",
28661
- auth: "admin"
28714
+ auth: "protected"
28662
28715
  }),
28663
28716
  /** Play a stored sound by id (D3 / D4H / D4SH). */
28664
28717
  playSound: method(object({
@@ -28666,7 +28719,7 @@ var petFeederCapability = {
28666
28719
  soundId: number().int().nonnegative()
28667
28720
  }), _void(), {
28668
28721
  kind: "mutation",
28669
- auth: "admin"
28722
+ auth: "protected"
28670
28723
  }),
28671
28724
  /** Toggle the child-lock (manual-lock) setting. */
28672
28725
  setChildLock: method(object({
@@ -28674,7 +28727,7 @@ var petFeederCapability = {
28674
28727
  on: boolean()
28675
28728
  }), _void(), {
28676
28729
  kind: "mutation",
28677
- auth: "admin"
28730
+ auth: "protected"
28678
28731
  }),
28679
28732
  /** Toggle the front indicator light. */
28680
28733
  setIndicatorLight: method(object({
@@ -28682,7 +28735,7 @@ var petFeederCapability = {
28682
28735
  on: boolean()
28683
28736
  }), _void(), {
28684
28737
  kind: "mutation",
28685
- auth: "admin"
28738
+ auth: "protected"
28686
28739
  }),
28687
28740
  /** Toggle the dispense chime. */
28688
28741
  setFeedSound: method(object({
@@ -28690,7 +28743,7 @@ var petFeederCapability = {
28690
28743
  on: boolean()
28691
28744
  }), _void(), {
28692
28745
  kind: "mutation",
28693
- auth: "admin"
28746
+ auth: "protected"
28694
28747
  }),
28695
28748
  /** Set the speaker / prompt volume level. */
28696
28749
  setVolume: method(object({
@@ -28698,7 +28751,7 @@ var petFeederCapability = {
28698
28751
  level: number().int().nonnegative()
28699
28752
  }), _void(), {
28700
28753
  kind: "mutation",
28701
- auth: "admin"
28754
+ auth: "protected"
28702
28755
  })
28703
28756
  },
28704
28757
  status: {
@@ -30994,7 +31047,7 @@ var switchCapability = {
30994
31047
  on: boolean()
30995
31048
  }), _void(), {
30996
31049
  kind: "mutation",
30997
- auth: "admin"
31050
+ auth: "protected"
30998
31051
  }) },
30999
31052
  events: { onStateChanged: { data: object({
31000
31053
  deviceId: number(),
@@ -31982,30 +32035,30 @@ var vacuumControlCapability = {
31982
32035
  methods: {
31983
32036
  start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31984
32037
  kind: "mutation",
31985
- auth: "admin"
32038
+ auth: "protected"
31986
32039
  }),
31987
32040
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31988
32041
  kind: "mutation",
31989
- auth: "admin"
32042
+ auth: "protected"
31990
32043
  }),
31991
32044
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31992
32045
  kind: "mutation",
31993
- auth: "admin"
32046
+ auth: "protected"
31994
32047
  }),
31995
32048
  returnToBase: method(object({ deviceId: number().int().nonnegative() }), _void(), {
31996
32049
  kind: "mutation",
31997
- auth: "admin"
32050
+ auth: "protected"
31998
32051
  }),
31999
32052
  locate: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32000
32053
  kind: "mutation",
32001
- auth: "admin"
32054
+ auth: "protected"
32002
32055
  }),
32003
32056
  setFanSpeed: method(object({
32004
32057
  deviceId: number().int().nonnegative(),
32005
32058
  speed: string().min(1)
32006
32059
  }), _void(), {
32007
32060
  kind: "mutation",
32008
- auth: "admin"
32061
+ auth: "protected"
32009
32062
  })
32010
32063
  },
32011
32064
  status: {
@@ -32049,22 +32102,22 @@ var valveCapability = {
32049
32102
  methods: {
32050
32103
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32051
32104
  kind: "mutation",
32052
- auth: "admin"
32105
+ auth: "protected"
32053
32106
  }),
32054
32107
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32055
32108
  kind: "mutation",
32056
- auth: "admin"
32109
+ auth: "protected"
32057
32110
  }),
32058
32111
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32059
32112
  kind: "mutation",
32060
- auth: "admin"
32113
+ auth: "protected"
32061
32114
  }),
32062
32115
  setPosition: method(object({
32063
32116
  deviceId: number().int().nonnegative(),
32064
32117
  position: number().min(0).max(100)
32065
32118
  }), _void(), {
32066
32119
  kind: "mutation",
32067
- auth: "admin"
32120
+ auth: "protected"
32068
32121
  })
32069
32122
  },
32070
32123
  status: {
@@ -32163,21 +32216,21 @@ var waterHeaterCapability = {
32163
32216
  temp: number().finite()
32164
32217
  }), _void(), {
32165
32218
  kind: "mutation",
32166
- auth: "admin"
32219
+ auth: "protected"
32167
32220
  }),
32168
32221
  setOperationMode: method(object({
32169
32222
  deviceId: number().int().nonnegative(),
32170
32223
  mode: string().min(1)
32171
32224
  }), _void(), {
32172
32225
  kind: "mutation",
32173
- auth: "admin"
32226
+ auth: "protected"
32174
32227
  }),
32175
32228
  setAway: method(object({
32176
32229
  deviceId: number().int().nonnegative(),
32177
32230
  on: boolean()
32178
32231
  }), _void(), {
32179
32232
  kind: "mutation",
32180
- auth: "admin"
32233
+ auth: "protected"
32181
32234
  })
32182
32235
  },
32183
32236
  status: {
@@ -35911,6 +35964,12 @@ Object.freeze({
35911
35964
  addonId: null,
35912
35965
  access: "create"
35913
35966
  },
35967
+ "faceGallery.auditIdentitySamples": {
35968
+ capName: "face-gallery",
35969
+ capScope: "system",
35970
+ addonId: null,
35971
+ access: "view"
35972
+ },
35914
35973
  "faceGallery.createIdentity": {
35915
35974
  capName: "face-gallery",
35916
35975
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-unifi",
3
- "version": "0.2.84",
3
+ "version": "0.2.86",
4
4
  "description": "UniFi Network controller device-provider addon for CamStack — local-controller infra switches/APs (as containers) + network-client presence. NO cameras/Protect.",
5
5
  "keywords": [
6
6
  "camstack",