@camstack/addon-provider-tuya 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
@@ -16945,14 +16945,14 @@ var alarmPanelCapability = {
16945
16945
  code: string().min(1).optional()
16946
16946
  }), _void(), {
16947
16947
  kind: "mutation",
16948
- auth: "admin"
16948
+ auth: "protected"
16949
16949
  }),
16950
16950
  disarm: method(object({
16951
16951
  deviceId: number().int().nonnegative(),
16952
16952
  code: string().min(1).optional()
16953
16953
  }), _void(), {
16954
16954
  kind: "mutation",
16955
- auth: "admin"
16955
+ auth: "protected"
16956
16956
  }),
16957
16957
  /**
16958
16958
  * Force the panel into the `triggered` state — used by HA
@@ -16963,7 +16963,7 @@ var alarmPanelCapability = {
16963
16963
  */
16964
16964
  trigger: method(object({ deviceId: number().int().nonnegative() }), _void(), {
16965
16965
  kind: "mutation",
16966
- auth: "admin"
16966
+ auth: "protected"
16967
16967
  })
16968
16968
  },
16969
16969
  status: {
@@ -24930,7 +24930,7 @@ var brightnessCapability = {
24930
24930
  percentage: number().min(0).max(100)
24931
24931
  }), _void(), {
24932
24932
  kind: "mutation",
24933
- auth: "admin"
24933
+ auth: "protected"
24934
24934
  }) },
24935
24935
  events: {
24936
24936
  /**
@@ -24963,7 +24963,7 @@ onBrightnessChanged: { data: object({
24963
24963
  };
24964
24964
  DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
24965
24965
  kind: "mutation",
24966
- auth: "admin"
24966
+ auth: "protected"
24967
24967
  });
24968
24968
  /**
24969
24969
  * camera-credentials — device-scoped cap exposing the camera's network
@@ -25155,28 +25155,28 @@ var climateControlCapability = {
25155
25155
  mode: HvacModeSchema
25156
25156
  }), _void(), {
25157
25157
  kind: "mutation",
25158
- auth: "admin"
25158
+ auth: "protected"
25159
25159
  }),
25160
25160
  setFanMode: method(object({
25161
25161
  deviceId: number().int().nonnegative(),
25162
25162
  fanMode: string().min(1)
25163
25163
  }), _void(), {
25164
25164
  kind: "mutation",
25165
- auth: "admin"
25165
+ auth: "protected"
25166
25166
  }),
25167
25167
  setPreset: method(object({
25168
25168
  deviceId: number().int().nonnegative(),
25169
25169
  preset: string().min(1)
25170
25170
  }), _void(), {
25171
25171
  kind: "mutation",
25172
- auth: "admin"
25172
+ auth: "protected"
25173
25173
  }),
25174
25174
  setTarget: method(object({
25175
25175
  deviceId: number().int().nonnegative(),
25176
25176
  target: number()
25177
25177
  }), _void(), {
25178
25178
  kind: "mutation",
25179
- auth: "admin"
25179
+ auth: "protected"
25180
25180
  }),
25181
25181
  setTargetRange: method(object({
25182
25182
  deviceId: number().int().nonnegative(),
@@ -25184,28 +25184,28 @@ var climateControlCapability = {
25184
25184
  targetHigh: number()
25185
25185
  }), _void(), {
25186
25186
  kind: "mutation",
25187
- auth: "admin"
25187
+ auth: "protected"
25188
25188
  }),
25189
25189
  setTargetHumidity: method(object({
25190
25190
  deviceId: number().int().nonnegative(),
25191
25191
  targetHumidity: number().min(0).max(100)
25192
25192
  }), _void(), {
25193
25193
  kind: "mutation",
25194
- auth: "admin"
25194
+ auth: "protected"
25195
25195
  }),
25196
25196
  setSwingVertical: method(object({
25197
25197
  deviceId: number().int().nonnegative(),
25198
25198
  on: boolean()
25199
25199
  }), _void(), {
25200
25200
  kind: "mutation",
25201
- auth: "admin"
25201
+ auth: "protected"
25202
25202
  }),
25203
25203
  setSwingHorizontal: method(object({
25204
25204
  deviceId: number().int().nonnegative(),
25205
25205
  on: boolean()
25206
25206
  }), _void(), {
25207
25207
  kind: "mutation",
25208
- auth: "admin"
25208
+ auth: "protected"
25209
25209
  })
25210
25210
  },
25211
25211
  status: {
@@ -25305,7 +25305,7 @@ var colorCapability = {
25305
25305
  color: ColorInputSchema
25306
25306
  }), _void(), {
25307
25307
  kind: "mutation",
25308
- auth: "admin"
25308
+ auth: "protected"
25309
25309
  }) },
25310
25310
  events: {
25311
25311
  /**
@@ -25642,7 +25642,7 @@ var controlCapability = {
25642
25642
  control: ControlSetValueInputSchema
25643
25643
  }), _void(), {
25644
25644
  kind: "mutation",
25645
- auth: "admin"
25645
+ auth: "protected"
25646
25646
  }) },
25647
25647
  status: {
25648
25648
  schema: ControlStatusSchema,
@@ -25688,29 +25688,29 @@ var coverCapability = {
25688
25688
  methods: {
25689
25689
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
25690
25690
  kind: "mutation",
25691
- auth: "admin"
25691
+ auth: "protected"
25692
25692
  }),
25693
25693
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
25694
25694
  kind: "mutation",
25695
- auth: "admin"
25695
+ auth: "protected"
25696
25696
  }),
25697
25697
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
25698
25698
  kind: "mutation",
25699
- auth: "admin"
25699
+ auth: "protected"
25700
25700
  }),
25701
25701
  setPosition: method(object({
25702
25702
  deviceId: number().int().nonnegative(),
25703
25703
  position: number().min(0).max(100)
25704
25704
  }), _void(), {
25705
25705
  kind: "mutation",
25706
- auth: "admin"
25706
+ auth: "protected"
25707
25707
  }),
25708
25708
  setTiltPosition: method(object({
25709
25709
  deviceId: number().int().nonnegative(),
25710
25710
  tiltPosition: number().min(0).max(100)
25711
25711
  }), _void(), {
25712
25712
  kind: "mutation",
25713
- auth: "admin"
25713
+ auth: "protected"
25714
25714
  })
25715
25715
  },
25716
25716
  status: {
@@ -26096,6 +26096,59 @@ var IdentitySampleInfoSchema = object({
26096
26096
  deviceId: number().int().optional(),
26097
26097
  base64: string().optional()
26098
26098
  });
26099
+ /**
26100
+ * One enrolled sample, judged against the gallery it lives in.
26101
+ *
26102
+ * The gallery is the one input to recognition nobody re-reads: a sample
26103
+ * enrolled from the wrong face keeps voting forever, and because the matches it
26104
+ * pulls then look confident, nobody goes back. The 2026-09-08 audit found
26105
+ * exactly one such pair on this cluster — a sample scoring 0.61 against three
26106
+ * samples of ANOTHER person, enrolled from the same camera in the same minute,
26107
+ * where every other cross-identity pair sits under 0.50.
26108
+ */
26109
+ var IdentitySampleAuditRowSchema = object({
26110
+ sampleId: string(),
26111
+ enrolledAt: number().int(),
26112
+ deviceId: number().int().optional(),
26113
+ source: _enum(["detected", "photo"]),
26114
+ /** The enrolled crop's media key, so the panel can show the evidence. */
26115
+ mediaKey: string().optional(),
26116
+ /**
26117
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
26118
+ * across feature spaces is a well-formed float with no meaning. Every number
26119
+ * below then says nothing — it must read as "cannot say", never as an
26120
+ * accusation and never as a clean bill: this list ends in a Remove button.
26121
+ */
26122
+ comparable: boolean(),
26123
+ /** Mean cosine against this person's other samples. Null when there are none
26124
+ * to compare with — never 0, which would read as "opposite". */
26125
+ selfMean: number().nullable(),
26126
+ /** The other person this sample looks most like, when it looks like one.
26127
+ * This is the half that convicts: not looking like yourself can be a hard
26128
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
26129
+ bestForeign: object({
26130
+ identityId: string(),
26131
+ name: string(),
26132
+ score: number()
26133
+ }).optional(),
26134
+ /** 0 = nothing to say. Higher = look at this one sooner. */
26135
+ suspicion: number()
26136
+ });
26137
+ var IdentitySampleAuditSchema = object({
26138
+ identityId: string(),
26139
+ name: string(),
26140
+ /** The cluster face model every comparison was made in. */
26141
+ modelId: string(),
26142
+ totalSamples: number().int(),
26143
+ comparableSamples: number().int(),
26144
+ flagged: number().int(),
26145
+ /** The bar `flagged` counts against, so the panel states the RULE and not
26146
+ * only its current result. */
26147
+ flagThreshold: number(),
26148
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
26149
+ * operator asked to see the gallery, not only its accusations. */
26150
+ rows: array(IdentitySampleAuditRowSchema).readonly()
26151
+ });
26099
26152
  var FaceInfoSchema = object({
26100
26153
  faceId: string(),
26101
26154
  deviceId: number().int(),
@@ -26247,7 +26300,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
26247
26300
  }), method(object({ id: string() }), _void(), {
26248
26301
  kind: "mutation",
26249
26302
  auth: "admin"
26250
- }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
26303
+ }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
26251
26304
  identityId: string(),
26252
26305
  sampleId: string()
26253
26306
  }), _void(), {
@@ -26440,28 +26493,28 @@ var fanControlCapability = {
26440
26493
  percentage: number().min(0).max(100)
26441
26494
  }), _void(), {
26442
26495
  kind: "mutation",
26443
- auth: "admin"
26496
+ auth: "protected"
26444
26497
  }),
26445
26498
  setPreset: method(object({
26446
26499
  deviceId: number().int().nonnegative(),
26447
26500
  preset: string().min(1)
26448
26501
  }), _void(), {
26449
26502
  kind: "mutation",
26450
- auth: "admin"
26503
+ auth: "protected"
26451
26504
  }),
26452
26505
  setDirection: method(object({
26453
26506
  deviceId: number().int().nonnegative(),
26454
26507
  direction: FanDirectionSchema
26455
26508
  }), _void(), {
26456
26509
  kind: "mutation",
26457
- auth: "admin"
26510
+ auth: "protected"
26458
26511
  }),
26459
26512
  setOscillating: method(object({
26460
26513
  deviceId: number().int().nonnegative(),
26461
26514
  oscillating: boolean()
26462
26515
  }), _void(), {
26463
26516
  kind: "mutation",
26464
- auth: "admin"
26517
+ auth: "protected"
26465
26518
  })
26466
26519
  },
26467
26520
  status: {
@@ -26683,21 +26736,21 @@ var humidifierCapability = {
26683
26736
  on: boolean()
26684
26737
  }), _void(), {
26685
26738
  kind: "mutation",
26686
- auth: "admin"
26739
+ auth: "protected"
26687
26740
  }),
26688
26741
  setTargetHumidity: method(object({
26689
26742
  deviceId: number().int().nonnegative(),
26690
26743
  humidity: number().min(0).max(100)
26691
26744
  }), _void(), {
26692
26745
  kind: "mutation",
26693
- auth: "admin"
26746
+ auth: "protected"
26694
26747
  }),
26695
26748
  setMode: method(object({
26696
26749
  deviceId: number().int().nonnegative(),
26697
26750
  mode: string().min(1)
26698
26751
  }), _void(), {
26699
26752
  kind: "mutation",
26700
- auth: "admin"
26753
+ auth: "protected"
26701
26754
  })
26702
26755
  },
26703
26756
  status: {
@@ -27398,15 +27451,15 @@ var lawnMowerControlCapability = {
27398
27451
  methods: {
27399
27452
  startMowing: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27400
27453
  kind: "mutation",
27401
- auth: "admin"
27454
+ auth: "protected"
27402
27455
  }),
27403
27456
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27404
27457
  kind: "mutation",
27405
- auth: "admin"
27458
+ auth: "protected"
27406
27459
  }),
27407
27460
  dock: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27408
27461
  kind: "mutation",
27409
- auth: "admin"
27462
+ auth: "protected"
27410
27463
  })
27411
27464
  },
27412
27465
  status: {
@@ -27691,18 +27744,18 @@ var lockControlCapability = {
27691
27744
  code: string().min(1).optional()
27692
27745
  }), _void(), {
27693
27746
  kind: "mutation",
27694
- auth: "admin"
27747
+ auth: "protected"
27695
27748
  }),
27696
27749
  unlock: method(object({
27697
27750
  deviceId: number().int().nonnegative(),
27698
27751
  code: string().min(1).optional()
27699
27752
  }), _void(), {
27700
27753
  kind: "mutation",
27701
- auth: "admin"
27754
+ auth: "protected"
27702
27755
  }),
27703
27756
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27704
27757
  kind: "mutation",
27705
- auth: "admin"
27758
+ auth: "protected"
27706
27759
  })
27707
27760
  },
27708
27761
  status: {
@@ -27805,65 +27858,65 @@ var mediaPlayerCapability = {
27805
27858
  methods: {
27806
27859
  play: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27807
27860
  kind: "mutation",
27808
- auth: "admin"
27861
+ auth: "protected"
27809
27862
  }),
27810
27863
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27811
27864
  kind: "mutation",
27812
- auth: "admin"
27865
+ auth: "protected"
27813
27866
  }),
27814
27867
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27815
27868
  kind: "mutation",
27816
- auth: "admin"
27869
+ auth: "protected"
27817
27870
  }),
27818
27871
  next: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27819
27872
  kind: "mutation",
27820
- auth: "admin"
27873
+ auth: "protected"
27821
27874
  }),
27822
27875
  previous: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27823
27876
  kind: "mutation",
27824
- auth: "admin"
27877
+ auth: "protected"
27825
27878
  }),
27826
27879
  seek: method(object({
27827
27880
  deviceId: number().int().nonnegative(),
27828
27881
  positionMs: number().int().nonnegative()
27829
27882
  }), _void(), {
27830
27883
  kind: "mutation",
27831
- auth: "admin"
27884
+ auth: "protected"
27832
27885
  }),
27833
27886
  setVolume: method(object({
27834
27887
  deviceId: number().int().nonnegative(),
27835
27888
  volumeLevel: number().min(0).max(100)
27836
27889
  }), _void(), {
27837
27890
  kind: "mutation",
27838
- auth: "admin"
27891
+ auth: "protected"
27839
27892
  }),
27840
27893
  setMute: method(object({
27841
27894
  deviceId: number().int().nonnegative(),
27842
27895
  muted: boolean()
27843
27896
  }), _void(), {
27844
27897
  kind: "mutation",
27845
- auth: "admin"
27898
+ auth: "protected"
27846
27899
  }),
27847
27900
  setShuffle: method(object({
27848
27901
  deviceId: number().int().nonnegative(),
27849
27902
  shuffle: boolean()
27850
27903
  }), _void(), {
27851
27904
  kind: "mutation",
27852
- auth: "admin"
27905
+ auth: "protected"
27853
27906
  }),
27854
27907
  setRepeat: method(object({
27855
27908
  deviceId: number().int().nonnegative(),
27856
27909
  repeat: MediaPlayerRepeatSchema
27857
27910
  }), _void(), {
27858
27911
  kind: "mutation",
27859
- auth: "admin"
27912
+ auth: "protected"
27860
27913
  }),
27861
27914
  selectSource: method(object({
27862
27915
  deviceId: number().int().nonnegative(),
27863
27916
  source: string().min(1)
27864
27917
  }), _void(), {
27865
27918
  kind: "mutation",
27866
- auth: "admin"
27919
+ auth: "protected"
27867
27920
  }),
27868
27921
  playMedia: method(object({
27869
27922
  deviceId: number().int().nonnegative(),
@@ -27874,7 +27927,7 @@ var mediaPlayerCapability = {
27874
27927
  mediaType: string().min(1)
27875
27928
  }), _void(), {
27876
27929
  kind: "mutation",
27877
- auth: "admin"
27930
+ auth: "protected"
27878
27931
  })
27879
27932
  },
27880
27933
  status: {
@@ -29467,27 +29520,27 @@ var petFeederCapability = {
29467
29520
  hopper2: gramsPortion.optional()
29468
29521
  }), _void(), {
29469
29522
  kind: "mutation",
29470
- auth: "admin"
29523
+ auth: "protected"
29471
29524
  }),
29472
29525
  /** Cancel an in-progress manual feed. */
29473
29526
  cancelFeed: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29474
29527
  kind: "mutation",
29475
- auth: "admin"
29528
+ auth: "protected"
29476
29529
  }),
29477
29530
  /** Reset the desiccant "days remaining" counter after replacing it. */
29478
29531
  resetDesiccant: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29479
29532
  kind: "mutation",
29480
- auth: "admin"
29533
+ auth: "protected"
29481
29534
  }),
29482
29535
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
29483
29536
  markFoodReplenished: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29484
29537
  kind: "mutation",
29485
- auth: "admin"
29538
+ auth: "protected"
29486
29539
  }),
29487
29540
  /** Call the pet with the recorded prompt (D3). */
29488
29541
  callPet: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29489
29542
  kind: "mutation",
29490
- auth: "admin"
29543
+ auth: "protected"
29491
29544
  }),
29492
29545
  /** Play a stored sound by id (D3 / D4H / D4SH). */
29493
29546
  playSound: method(object({
@@ -29495,7 +29548,7 @@ var petFeederCapability = {
29495
29548
  soundId: number().int().nonnegative()
29496
29549
  }), _void(), {
29497
29550
  kind: "mutation",
29498
- auth: "admin"
29551
+ auth: "protected"
29499
29552
  }),
29500
29553
  /** Toggle the child-lock (manual-lock) setting. */
29501
29554
  setChildLock: method(object({
@@ -29503,7 +29556,7 @@ var petFeederCapability = {
29503
29556
  on: boolean()
29504
29557
  }), _void(), {
29505
29558
  kind: "mutation",
29506
- auth: "admin"
29559
+ auth: "protected"
29507
29560
  }),
29508
29561
  /** Toggle the front indicator light. */
29509
29562
  setIndicatorLight: method(object({
@@ -29511,7 +29564,7 @@ var petFeederCapability = {
29511
29564
  on: boolean()
29512
29565
  }), _void(), {
29513
29566
  kind: "mutation",
29514
- auth: "admin"
29567
+ auth: "protected"
29515
29568
  }),
29516
29569
  /** Toggle the dispense chime. */
29517
29570
  setFeedSound: method(object({
@@ -29519,7 +29572,7 @@ var petFeederCapability = {
29519
29572
  on: boolean()
29520
29573
  }), _void(), {
29521
29574
  kind: "mutation",
29522
- auth: "admin"
29575
+ auth: "protected"
29523
29576
  }),
29524
29577
  /** Set the speaker / prompt volume level. */
29525
29578
  setVolume: method(object({
@@ -29527,7 +29580,7 @@ var petFeederCapability = {
29527
29580
  level: number().int().nonnegative()
29528
29581
  }), _void(), {
29529
29582
  kind: "mutation",
29530
- auth: "admin"
29583
+ auth: "protected"
29531
29584
  })
29532
29585
  },
29533
29586
  status: {
@@ -31823,7 +31876,7 @@ var switchCapability = {
31823
31876
  on: boolean()
31824
31877
  }), _void(), {
31825
31878
  kind: "mutation",
31826
- auth: "admin"
31879
+ auth: "protected"
31827
31880
  }) },
31828
31881
  events: { onStateChanged: { data: object({
31829
31882
  deviceId: number(),
@@ -32811,30 +32864,30 @@ var vacuumControlCapability = {
32811
32864
  methods: {
32812
32865
  start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32813
32866
  kind: "mutation",
32814
- auth: "admin"
32867
+ auth: "protected"
32815
32868
  }),
32816
32869
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32817
32870
  kind: "mutation",
32818
- auth: "admin"
32871
+ auth: "protected"
32819
32872
  }),
32820
32873
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32821
32874
  kind: "mutation",
32822
- auth: "admin"
32875
+ auth: "protected"
32823
32876
  }),
32824
32877
  returnToBase: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32825
32878
  kind: "mutation",
32826
- auth: "admin"
32879
+ auth: "protected"
32827
32880
  }),
32828
32881
  locate: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32829
32882
  kind: "mutation",
32830
- auth: "admin"
32883
+ auth: "protected"
32831
32884
  }),
32832
32885
  setFanSpeed: method(object({
32833
32886
  deviceId: number().int().nonnegative(),
32834
32887
  speed: string().min(1)
32835
32888
  }), _void(), {
32836
32889
  kind: "mutation",
32837
- auth: "admin"
32890
+ auth: "protected"
32838
32891
  })
32839
32892
  },
32840
32893
  status: {
@@ -32878,22 +32931,22 @@ var valveCapability = {
32878
32931
  methods: {
32879
32932
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32880
32933
  kind: "mutation",
32881
- auth: "admin"
32934
+ auth: "protected"
32882
32935
  }),
32883
32936
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32884
32937
  kind: "mutation",
32885
- auth: "admin"
32938
+ auth: "protected"
32886
32939
  }),
32887
32940
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32888
32941
  kind: "mutation",
32889
- auth: "admin"
32942
+ auth: "protected"
32890
32943
  }),
32891
32944
  setPosition: method(object({
32892
32945
  deviceId: number().int().nonnegative(),
32893
32946
  position: number().min(0).max(100)
32894
32947
  }), _void(), {
32895
32948
  kind: "mutation",
32896
- auth: "admin"
32949
+ auth: "protected"
32897
32950
  })
32898
32951
  },
32899
32952
  status: {
@@ -32992,21 +33045,21 @@ var waterHeaterCapability = {
32992
33045
  temp: number().finite()
32993
33046
  }), _void(), {
32994
33047
  kind: "mutation",
32995
- auth: "admin"
33048
+ auth: "protected"
32996
33049
  }),
32997
33050
  setOperationMode: method(object({
32998
33051
  deviceId: number().int().nonnegative(),
32999
33052
  mode: string().min(1)
33000
33053
  }), _void(), {
33001
33054
  kind: "mutation",
33002
- auth: "admin"
33055
+ auth: "protected"
33003
33056
  }),
33004
33057
  setAway: method(object({
33005
33058
  deviceId: number().int().nonnegative(),
33006
33059
  on: boolean()
33007
33060
  }), _void(), {
33008
33061
  kind: "mutation",
33009
- auth: "admin"
33062
+ auth: "protected"
33010
33063
  })
33011
33064
  },
33012
33065
  status: {
@@ -36740,6 +36793,12 @@ Object.freeze({
36740
36793
  addonId: null,
36741
36794
  access: "create"
36742
36795
  },
36796
+ "faceGallery.auditIdentitySamples": {
36797
+ capName: "face-gallery",
36798
+ capScope: "system",
36799
+ addonId: null,
36800
+ access: "view"
36801
+ },
36743
36802
  "faceGallery.createIdentity": {
36744
36803
  capName: "face-gallery",
36745
36804
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -16944,14 +16944,14 @@ var alarmPanelCapability = {
16944
16944
  code: string().min(1).optional()
16945
16945
  }), _void(), {
16946
16946
  kind: "mutation",
16947
- auth: "admin"
16947
+ auth: "protected"
16948
16948
  }),
16949
16949
  disarm: method(object({
16950
16950
  deviceId: number().int().nonnegative(),
16951
16951
  code: string().min(1).optional()
16952
16952
  }), _void(), {
16953
16953
  kind: "mutation",
16954
- auth: "admin"
16954
+ auth: "protected"
16955
16955
  }),
16956
16956
  /**
16957
16957
  * Force the panel into the `triggered` state — used by HA
@@ -16962,7 +16962,7 @@ var alarmPanelCapability = {
16962
16962
  */
16963
16963
  trigger: method(object({ deviceId: number().int().nonnegative() }), _void(), {
16964
16964
  kind: "mutation",
16965
- auth: "admin"
16965
+ auth: "protected"
16966
16966
  })
16967
16967
  },
16968
16968
  status: {
@@ -24929,7 +24929,7 @@ var brightnessCapability = {
24929
24929
  percentage: number().min(0).max(100)
24930
24930
  }), _void(), {
24931
24931
  kind: "mutation",
24932
- auth: "admin"
24932
+ auth: "protected"
24933
24933
  }) },
24934
24934
  events: {
24935
24935
  /**
@@ -24962,7 +24962,7 @@ onBrightnessChanged: { data: object({
24962
24962
  };
24963
24963
  DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
24964
24964
  kind: "mutation",
24965
- auth: "admin"
24965
+ auth: "protected"
24966
24966
  });
24967
24967
  /**
24968
24968
  * camera-credentials — device-scoped cap exposing the camera's network
@@ -25154,28 +25154,28 @@ var climateControlCapability = {
25154
25154
  mode: HvacModeSchema
25155
25155
  }), _void(), {
25156
25156
  kind: "mutation",
25157
- auth: "admin"
25157
+ auth: "protected"
25158
25158
  }),
25159
25159
  setFanMode: method(object({
25160
25160
  deviceId: number().int().nonnegative(),
25161
25161
  fanMode: string().min(1)
25162
25162
  }), _void(), {
25163
25163
  kind: "mutation",
25164
- auth: "admin"
25164
+ auth: "protected"
25165
25165
  }),
25166
25166
  setPreset: method(object({
25167
25167
  deviceId: number().int().nonnegative(),
25168
25168
  preset: string().min(1)
25169
25169
  }), _void(), {
25170
25170
  kind: "mutation",
25171
- auth: "admin"
25171
+ auth: "protected"
25172
25172
  }),
25173
25173
  setTarget: method(object({
25174
25174
  deviceId: number().int().nonnegative(),
25175
25175
  target: number()
25176
25176
  }), _void(), {
25177
25177
  kind: "mutation",
25178
- auth: "admin"
25178
+ auth: "protected"
25179
25179
  }),
25180
25180
  setTargetRange: method(object({
25181
25181
  deviceId: number().int().nonnegative(),
@@ -25183,28 +25183,28 @@ var climateControlCapability = {
25183
25183
  targetHigh: number()
25184
25184
  }), _void(), {
25185
25185
  kind: "mutation",
25186
- auth: "admin"
25186
+ auth: "protected"
25187
25187
  }),
25188
25188
  setTargetHumidity: method(object({
25189
25189
  deviceId: number().int().nonnegative(),
25190
25190
  targetHumidity: number().min(0).max(100)
25191
25191
  }), _void(), {
25192
25192
  kind: "mutation",
25193
- auth: "admin"
25193
+ auth: "protected"
25194
25194
  }),
25195
25195
  setSwingVertical: method(object({
25196
25196
  deviceId: number().int().nonnegative(),
25197
25197
  on: boolean()
25198
25198
  }), _void(), {
25199
25199
  kind: "mutation",
25200
- auth: "admin"
25200
+ auth: "protected"
25201
25201
  }),
25202
25202
  setSwingHorizontal: method(object({
25203
25203
  deviceId: number().int().nonnegative(),
25204
25204
  on: boolean()
25205
25205
  }), _void(), {
25206
25206
  kind: "mutation",
25207
- auth: "admin"
25207
+ auth: "protected"
25208
25208
  })
25209
25209
  },
25210
25210
  status: {
@@ -25304,7 +25304,7 @@ var colorCapability = {
25304
25304
  color: ColorInputSchema
25305
25305
  }), _void(), {
25306
25306
  kind: "mutation",
25307
- auth: "admin"
25307
+ auth: "protected"
25308
25308
  }) },
25309
25309
  events: {
25310
25310
  /**
@@ -25641,7 +25641,7 @@ var controlCapability = {
25641
25641
  control: ControlSetValueInputSchema
25642
25642
  }), _void(), {
25643
25643
  kind: "mutation",
25644
- auth: "admin"
25644
+ auth: "protected"
25645
25645
  }) },
25646
25646
  status: {
25647
25647
  schema: ControlStatusSchema,
@@ -25687,29 +25687,29 @@ var coverCapability = {
25687
25687
  methods: {
25688
25688
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
25689
25689
  kind: "mutation",
25690
- auth: "admin"
25690
+ auth: "protected"
25691
25691
  }),
25692
25692
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
25693
25693
  kind: "mutation",
25694
- auth: "admin"
25694
+ auth: "protected"
25695
25695
  }),
25696
25696
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
25697
25697
  kind: "mutation",
25698
- auth: "admin"
25698
+ auth: "protected"
25699
25699
  }),
25700
25700
  setPosition: method(object({
25701
25701
  deviceId: number().int().nonnegative(),
25702
25702
  position: number().min(0).max(100)
25703
25703
  }), _void(), {
25704
25704
  kind: "mutation",
25705
- auth: "admin"
25705
+ auth: "protected"
25706
25706
  }),
25707
25707
  setTiltPosition: method(object({
25708
25708
  deviceId: number().int().nonnegative(),
25709
25709
  tiltPosition: number().min(0).max(100)
25710
25710
  }), _void(), {
25711
25711
  kind: "mutation",
25712
- auth: "admin"
25712
+ auth: "protected"
25713
25713
  })
25714
25714
  },
25715
25715
  status: {
@@ -26095,6 +26095,59 @@ var IdentitySampleInfoSchema = object({
26095
26095
  deviceId: number().int().optional(),
26096
26096
  base64: string().optional()
26097
26097
  });
26098
+ /**
26099
+ * One enrolled sample, judged against the gallery it lives in.
26100
+ *
26101
+ * The gallery is the one input to recognition nobody re-reads: a sample
26102
+ * enrolled from the wrong face keeps voting forever, and because the matches it
26103
+ * pulls then look confident, nobody goes back. The 2026-09-08 audit found
26104
+ * exactly one such pair on this cluster — a sample scoring 0.61 against three
26105
+ * samples of ANOTHER person, enrolled from the same camera in the same minute,
26106
+ * where every other cross-identity pair sits under 0.50.
26107
+ */
26108
+ var IdentitySampleAuditRowSchema = object({
26109
+ sampleId: string(),
26110
+ enrolledAt: number().int(),
26111
+ deviceId: number().int().optional(),
26112
+ source: _enum(["detected", "photo"]),
26113
+ /** The enrolled crop's media key, so the panel can show the evidence. */
26114
+ mediaKey: string().optional(),
26115
+ /**
26116
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
26117
+ * across feature spaces is a well-formed float with no meaning. Every number
26118
+ * below then says nothing — it must read as "cannot say", never as an
26119
+ * accusation and never as a clean bill: this list ends in a Remove button.
26120
+ */
26121
+ comparable: boolean(),
26122
+ /** Mean cosine against this person's other samples. Null when there are none
26123
+ * to compare with — never 0, which would read as "opposite". */
26124
+ selfMean: number().nullable(),
26125
+ /** The other person this sample looks most like, when it looks like one.
26126
+ * This is the half that convicts: not looking like yourself can be a hard
26127
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
26128
+ bestForeign: object({
26129
+ identityId: string(),
26130
+ name: string(),
26131
+ score: number()
26132
+ }).optional(),
26133
+ /** 0 = nothing to say. Higher = look at this one sooner. */
26134
+ suspicion: number()
26135
+ });
26136
+ var IdentitySampleAuditSchema = object({
26137
+ identityId: string(),
26138
+ name: string(),
26139
+ /** The cluster face model every comparison was made in. */
26140
+ modelId: string(),
26141
+ totalSamples: number().int(),
26142
+ comparableSamples: number().int(),
26143
+ flagged: number().int(),
26144
+ /** The bar `flagged` counts against, so the panel states the RULE and not
26145
+ * only its current result. */
26146
+ flagThreshold: number(),
26147
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
26148
+ * operator asked to see the gallery, not only its accusations. */
26149
+ rows: array(IdentitySampleAuditRowSchema).readonly()
26150
+ });
26098
26151
  var FaceInfoSchema = object({
26099
26152
  faceId: string(),
26100
26153
  deviceId: number().int(),
@@ -26246,7 +26299,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
26246
26299
  }), method(object({ id: string() }), _void(), {
26247
26300
  kind: "mutation",
26248
26301
  auth: "admin"
26249
- }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
26302
+ }), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
26250
26303
  identityId: string(),
26251
26304
  sampleId: string()
26252
26305
  }), _void(), {
@@ -26439,28 +26492,28 @@ var fanControlCapability = {
26439
26492
  percentage: number().min(0).max(100)
26440
26493
  }), _void(), {
26441
26494
  kind: "mutation",
26442
- auth: "admin"
26495
+ auth: "protected"
26443
26496
  }),
26444
26497
  setPreset: method(object({
26445
26498
  deviceId: number().int().nonnegative(),
26446
26499
  preset: string().min(1)
26447
26500
  }), _void(), {
26448
26501
  kind: "mutation",
26449
- auth: "admin"
26502
+ auth: "protected"
26450
26503
  }),
26451
26504
  setDirection: method(object({
26452
26505
  deviceId: number().int().nonnegative(),
26453
26506
  direction: FanDirectionSchema
26454
26507
  }), _void(), {
26455
26508
  kind: "mutation",
26456
- auth: "admin"
26509
+ auth: "protected"
26457
26510
  }),
26458
26511
  setOscillating: method(object({
26459
26512
  deviceId: number().int().nonnegative(),
26460
26513
  oscillating: boolean()
26461
26514
  }), _void(), {
26462
26515
  kind: "mutation",
26463
- auth: "admin"
26516
+ auth: "protected"
26464
26517
  })
26465
26518
  },
26466
26519
  status: {
@@ -26682,21 +26735,21 @@ var humidifierCapability = {
26682
26735
  on: boolean()
26683
26736
  }), _void(), {
26684
26737
  kind: "mutation",
26685
- auth: "admin"
26738
+ auth: "protected"
26686
26739
  }),
26687
26740
  setTargetHumidity: method(object({
26688
26741
  deviceId: number().int().nonnegative(),
26689
26742
  humidity: number().min(0).max(100)
26690
26743
  }), _void(), {
26691
26744
  kind: "mutation",
26692
- auth: "admin"
26745
+ auth: "protected"
26693
26746
  }),
26694
26747
  setMode: method(object({
26695
26748
  deviceId: number().int().nonnegative(),
26696
26749
  mode: string().min(1)
26697
26750
  }), _void(), {
26698
26751
  kind: "mutation",
26699
- auth: "admin"
26752
+ auth: "protected"
26700
26753
  })
26701
26754
  },
26702
26755
  status: {
@@ -27397,15 +27450,15 @@ var lawnMowerControlCapability = {
27397
27450
  methods: {
27398
27451
  startMowing: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27399
27452
  kind: "mutation",
27400
- auth: "admin"
27453
+ auth: "protected"
27401
27454
  }),
27402
27455
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27403
27456
  kind: "mutation",
27404
- auth: "admin"
27457
+ auth: "protected"
27405
27458
  }),
27406
27459
  dock: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27407
27460
  kind: "mutation",
27408
- auth: "admin"
27461
+ auth: "protected"
27409
27462
  })
27410
27463
  },
27411
27464
  status: {
@@ -27690,18 +27743,18 @@ var lockControlCapability = {
27690
27743
  code: string().min(1).optional()
27691
27744
  }), _void(), {
27692
27745
  kind: "mutation",
27693
- auth: "admin"
27746
+ auth: "protected"
27694
27747
  }),
27695
27748
  unlock: method(object({
27696
27749
  deviceId: number().int().nonnegative(),
27697
27750
  code: string().min(1).optional()
27698
27751
  }), _void(), {
27699
27752
  kind: "mutation",
27700
- auth: "admin"
27753
+ auth: "protected"
27701
27754
  }),
27702
27755
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27703
27756
  kind: "mutation",
27704
- auth: "admin"
27757
+ auth: "protected"
27705
27758
  })
27706
27759
  },
27707
27760
  status: {
@@ -27804,65 +27857,65 @@ var mediaPlayerCapability = {
27804
27857
  methods: {
27805
27858
  play: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27806
27859
  kind: "mutation",
27807
- auth: "admin"
27860
+ auth: "protected"
27808
27861
  }),
27809
27862
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27810
27863
  kind: "mutation",
27811
- auth: "admin"
27864
+ auth: "protected"
27812
27865
  }),
27813
27866
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27814
27867
  kind: "mutation",
27815
- auth: "admin"
27868
+ auth: "protected"
27816
27869
  }),
27817
27870
  next: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27818
27871
  kind: "mutation",
27819
- auth: "admin"
27872
+ auth: "protected"
27820
27873
  }),
27821
27874
  previous: method(object({ deviceId: number().int().nonnegative() }), _void(), {
27822
27875
  kind: "mutation",
27823
- auth: "admin"
27876
+ auth: "protected"
27824
27877
  }),
27825
27878
  seek: method(object({
27826
27879
  deviceId: number().int().nonnegative(),
27827
27880
  positionMs: number().int().nonnegative()
27828
27881
  }), _void(), {
27829
27882
  kind: "mutation",
27830
- auth: "admin"
27883
+ auth: "protected"
27831
27884
  }),
27832
27885
  setVolume: method(object({
27833
27886
  deviceId: number().int().nonnegative(),
27834
27887
  volumeLevel: number().min(0).max(100)
27835
27888
  }), _void(), {
27836
27889
  kind: "mutation",
27837
- auth: "admin"
27890
+ auth: "protected"
27838
27891
  }),
27839
27892
  setMute: method(object({
27840
27893
  deviceId: number().int().nonnegative(),
27841
27894
  muted: boolean()
27842
27895
  }), _void(), {
27843
27896
  kind: "mutation",
27844
- auth: "admin"
27897
+ auth: "protected"
27845
27898
  }),
27846
27899
  setShuffle: method(object({
27847
27900
  deviceId: number().int().nonnegative(),
27848
27901
  shuffle: boolean()
27849
27902
  }), _void(), {
27850
27903
  kind: "mutation",
27851
- auth: "admin"
27904
+ auth: "protected"
27852
27905
  }),
27853
27906
  setRepeat: method(object({
27854
27907
  deviceId: number().int().nonnegative(),
27855
27908
  repeat: MediaPlayerRepeatSchema
27856
27909
  }), _void(), {
27857
27910
  kind: "mutation",
27858
- auth: "admin"
27911
+ auth: "protected"
27859
27912
  }),
27860
27913
  selectSource: method(object({
27861
27914
  deviceId: number().int().nonnegative(),
27862
27915
  source: string().min(1)
27863
27916
  }), _void(), {
27864
27917
  kind: "mutation",
27865
- auth: "admin"
27918
+ auth: "protected"
27866
27919
  }),
27867
27920
  playMedia: method(object({
27868
27921
  deviceId: number().int().nonnegative(),
@@ -27873,7 +27926,7 @@ var mediaPlayerCapability = {
27873
27926
  mediaType: string().min(1)
27874
27927
  }), _void(), {
27875
27928
  kind: "mutation",
27876
- auth: "admin"
27929
+ auth: "protected"
27877
27930
  })
27878
27931
  },
27879
27932
  status: {
@@ -29466,27 +29519,27 @@ var petFeederCapability = {
29466
29519
  hopper2: gramsPortion.optional()
29467
29520
  }), _void(), {
29468
29521
  kind: "mutation",
29469
- auth: "admin"
29522
+ auth: "protected"
29470
29523
  }),
29471
29524
  /** Cancel an in-progress manual feed. */
29472
29525
  cancelFeed: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29473
29526
  kind: "mutation",
29474
- auth: "admin"
29527
+ auth: "protected"
29475
29528
  }),
29476
29529
  /** Reset the desiccant "days remaining" counter after replacing it. */
29477
29530
  resetDesiccant: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29478
29531
  kind: "mutation",
29479
- auth: "admin"
29532
+ auth: "protected"
29480
29533
  }),
29481
29534
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
29482
29535
  markFoodReplenished: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29483
29536
  kind: "mutation",
29484
- auth: "admin"
29537
+ auth: "protected"
29485
29538
  }),
29486
29539
  /** Call the pet with the recorded prompt (D3). */
29487
29540
  callPet: method(object({ deviceId: number().int().nonnegative() }), _void(), {
29488
29541
  kind: "mutation",
29489
- auth: "admin"
29542
+ auth: "protected"
29490
29543
  }),
29491
29544
  /** Play a stored sound by id (D3 / D4H / D4SH). */
29492
29545
  playSound: method(object({
@@ -29494,7 +29547,7 @@ var petFeederCapability = {
29494
29547
  soundId: number().int().nonnegative()
29495
29548
  }), _void(), {
29496
29549
  kind: "mutation",
29497
- auth: "admin"
29550
+ auth: "protected"
29498
29551
  }),
29499
29552
  /** Toggle the child-lock (manual-lock) setting. */
29500
29553
  setChildLock: method(object({
@@ -29502,7 +29555,7 @@ var petFeederCapability = {
29502
29555
  on: boolean()
29503
29556
  }), _void(), {
29504
29557
  kind: "mutation",
29505
- auth: "admin"
29558
+ auth: "protected"
29506
29559
  }),
29507
29560
  /** Toggle the front indicator light. */
29508
29561
  setIndicatorLight: method(object({
@@ -29510,7 +29563,7 @@ var petFeederCapability = {
29510
29563
  on: boolean()
29511
29564
  }), _void(), {
29512
29565
  kind: "mutation",
29513
- auth: "admin"
29566
+ auth: "protected"
29514
29567
  }),
29515
29568
  /** Toggle the dispense chime. */
29516
29569
  setFeedSound: method(object({
@@ -29518,7 +29571,7 @@ var petFeederCapability = {
29518
29571
  on: boolean()
29519
29572
  }), _void(), {
29520
29573
  kind: "mutation",
29521
- auth: "admin"
29574
+ auth: "protected"
29522
29575
  }),
29523
29576
  /** Set the speaker / prompt volume level. */
29524
29577
  setVolume: method(object({
@@ -29526,7 +29579,7 @@ var petFeederCapability = {
29526
29579
  level: number().int().nonnegative()
29527
29580
  }), _void(), {
29528
29581
  kind: "mutation",
29529
- auth: "admin"
29582
+ auth: "protected"
29530
29583
  })
29531
29584
  },
29532
29585
  status: {
@@ -31822,7 +31875,7 @@ var switchCapability = {
31822
31875
  on: boolean()
31823
31876
  }), _void(), {
31824
31877
  kind: "mutation",
31825
- auth: "admin"
31878
+ auth: "protected"
31826
31879
  }) },
31827
31880
  events: { onStateChanged: { data: object({
31828
31881
  deviceId: number(),
@@ -32810,30 +32863,30 @@ var vacuumControlCapability = {
32810
32863
  methods: {
32811
32864
  start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32812
32865
  kind: "mutation",
32813
- auth: "admin"
32866
+ auth: "protected"
32814
32867
  }),
32815
32868
  pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32816
32869
  kind: "mutation",
32817
- auth: "admin"
32870
+ auth: "protected"
32818
32871
  }),
32819
32872
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32820
32873
  kind: "mutation",
32821
- auth: "admin"
32874
+ auth: "protected"
32822
32875
  }),
32823
32876
  returnToBase: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32824
32877
  kind: "mutation",
32825
- auth: "admin"
32878
+ auth: "protected"
32826
32879
  }),
32827
32880
  locate: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32828
32881
  kind: "mutation",
32829
- auth: "admin"
32882
+ auth: "protected"
32830
32883
  }),
32831
32884
  setFanSpeed: method(object({
32832
32885
  deviceId: number().int().nonnegative(),
32833
32886
  speed: string().min(1)
32834
32887
  }), _void(), {
32835
32888
  kind: "mutation",
32836
- auth: "admin"
32889
+ auth: "protected"
32837
32890
  })
32838
32891
  },
32839
32892
  status: {
@@ -32877,22 +32930,22 @@ var valveCapability = {
32877
32930
  methods: {
32878
32931
  open: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32879
32932
  kind: "mutation",
32880
- auth: "admin"
32933
+ auth: "protected"
32881
32934
  }),
32882
32935
  close: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32883
32936
  kind: "mutation",
32884
- auth: "admin"
32937
+ auth: "protected"
32885
32938
  }),
32886
32939
  stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
32887
32940
  kind: "mutation",
32888
- auth: "admin"
32941
+ auth: "protected"
32889
32942
  }),
32890
32943
  setPosition: method(object({
32891
32944
  deviceId: number().int().nonnegative(),
32892
32945
  position: number().min(0).max(100)
32893
32946
  }), _void(), {
32894
32947
  kind: "mutation",
32895
- auth: "admin"
32948
+ auth: "protected"
32896
32949
  })
32897
32950
  },
32898
32951
  status: {
@@ -32991,21 +33044,21 @@ var waterHeaterCapability = {
32991
33044
  temp: number().finite()
32992
33045
  }), _void(), {
32993
33046
  kind: "mutation",
32994
- auth: "admin"
33047
+ auth: "protected"
32995
33048
  }),
32996
33049
  setOperationMode: method(object({
32997
33050
  deviceId: number().int().nonnegative(),
32998
33051
  mode: string().min(1)
32999
33052
  }), _void(), {
33000
33053
  kind: "mutation",
33001
- auth: "admin"
33054
+ auth: "protected"
33002
33055
  }),
33003
33056
  setAway: method(object({
33004
33057
  deviceId: number().int().nonnegative(),
33005
33058
  on: boolean()
33006
33059
  }), _void(), {
33007
33060
  kind: "mutation",
33008
- auth: "admin"
33061
+ auth: "protected"
33009
33062
  })
33010
33063
  },
33011
33064
  status: {
@@ -36739,6 +36792,12 @@ Object.freeze({
36739
36792
  addonId: null,
36740
36793
  access: "create"
36741
36794
  },
36795
+ "faceGallery.auditIdentitySamples": {
36796
+ capName: "face-gallery",
36797
+ capScope: "system",
36798
+ addonId: null,
36799
+ access: "view"
36800
+ },
36742
36801
  "faceGallery.createIdentity": {
36743
36802
  capName: "face-gallery",
36744
36803
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-tuya",
3
- "version": "0.2.84",
3
+ "version": "0.2.86",
4
4
  "description": "Tuya / Smart Life device-provider addon for CamStack — account-onboarded (Tuya IoT cloud fetch of device localKeys) + LOCAL DP control via the @apocaliss92/nodetuya encrypted-LAN client, exposing switch / water-heater-family kettle entities",
5
5
  "keywords": [
6
6
  "camstack",