camstack 1.2.124 → 1.2.126

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.
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
23633
23633
  }
23634
23634
  });
23635
23635
 
23636
- // ../system/dist/dist-CEUwB91M.js
23637
- var require_dist_CEUwB91M = __commonJS({
23638
- "../system/dist/dist-CEUwB91M.js"(exports) {
23636
+ // ../system/dist/dist-C_WvDOQ9.js
23637
+ var require_dist_C_WvDOQ9 = __commonJS({
23638
+ "../system/dist/dist-C_WvDOQ9.js"(exports) {
23639
23639
  "use strict";
23640
23640
  var zod = require_zod();
23641
23641
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -34742,14 +34742,14 @@ var require_dist_CEUwB91M = __commonJS({
34742
34742
  code: zod.z.string().min(1).optional()
34743
34743
  }), zod.z.void(), {
34744
34744
  kind: "mutation",
34745
- auth: "admin"
34745
+ auth: "protected"
34746
34746
  }),
34747
34747
  disarm: method(zod.z.object({
34748
34748
  deviceId: zod.z.number().int().nonnegative(),
34749
34749
  code: zod.z.string().min(1).optional()
34750
34750
  }), zod.z.void(), {
34751
34751
  kind: "mutation",
34752
- auth: "admin"
34752
+ auth: "protected"
34753
34753
  }),
34754
34754
  /**
34755
34755
  * Force the panel into the `triggered` state — used by HA
@@ -34760,7 +34760,7 @@ var require_dist_CEUwB91M = __commonJS({
34760
34760
  */
34761
34761
  trigger: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
34762
34762
  kind: "mutation",
34763
- auth: "admin"
34763
+ auth: "protected"
34764
34764
  })
34765
34765
  },
34766
34766
  status: {
@@ -43020,7 +43020,7 @@ var require_dist_CEUwB91M = __commonJS({
43020
43020
  percentage: zod.z.number().min(0).max(100)
43021
43021
  }), zod.z.void(), {
43022
43022
  kind: "mutation",
43023
- auth: "admin"
43023
+ auth: "protected"
43024
43024
  }) },
43025
43025
  events: {
43026
43026
  /**
@@ -43060,7 +43060,7 @@ var require_dist_CEUwB91M = __commonJS({
43060
43060
  deviceTypes: [DeviceType.Button],
43061
43061
  methods: { press: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43062
43062
  kind: "mutation",
43063
- auth: "admin"
43063
+ auth: "protected"
43064
43064
  }) }
43065
43065
  };
43066
43066
  var CameraCredentialsSchema = zod.z.object({
@@ -43207,28 +43207,28 @@ var require_dist_CEUwB91M = __commonJS({
43207
43207
  mode: HvacModeSchema
43208
43208
  }), zod.z.void(), {
43209
43209
  kind: "mutation",
43210
- auth: "admin"
43210
+ auth: "protected"
43211
43211
  }),
43212
43212
  setFanMode: method(zod.z.object({
43213
43213
  deviceId: zod.z.number().int().nonnegative(),
43214
43214
  fanMode: zod.z.string().min(1)
43215
43215
  }), zod.z.void(), {
43216
43216
  kind: "mutation",
43217
- auth: "admin"
43217
+ auth: "protected"
43218
43218
  }),
43219
43219
  setPreset: method(zod.z.object({
43220
43220
  deviceId: zod.z.number().int().nonnegative(),
43221
43221
  preset: zod.z.string().min(1)
43222
43222
  }), zod.z.void(), {
43223
43223
  kind: "mutation",
43224
- auth: "admin"
43224
+ auth: "protected"
43225
43225
  }),
43226
43226
  setTarget: method(zod.z.object({
43227
43227
  deviceId: zod.z.number().int().nonnegative(),
43228
43228
  target: zod.z.number()
43229
43229
  }), zod.z.void(), {
43230
43230
  kind: "mutation",
43231
- auth: "admin"
43231
+ auth: "protected"
43232
43232
  }),
43233
43233
  setTargetRange: method(zod.z.object({
43234
43234
  deviceId: zod.z.number().int().nonnegative(),
@@ -43236,28 +43236,28 @@ var require_dist_CEUwB91M = __commonJS({
43236
43236
  targetHigh: zod.z.number()
43237
43237
  }), zod.z.void(), {
43238
43238
  kind: "mutation",
43239
- auth: "admin"
43239
+ auth: "protected"
43240
43240
  }),
43241
43241
  setTargetHumidity: method(zod.z.object({
43242
43242
  deviceId: zod.z.number().int().nonnegative(),
43243
43243
  targetHumidity: zod.z.number().min(0).max(100)
43244
43244
  }), zod.z.void(), {
43245
43245
  kind: "mutation",
43246
- auth: "admin"
43246
+ auth: "protected"
43247
43247
  }),
43248
43248
  setSwingVertical: method(zod.z.object({
43249
43249
  deviceId: zod.z.number().int().nonnegative(),
43250
43250
  on: zod.z.boolean()
43251
43251
  }), zod.z.void(), {
43252
43252
  kind: "mutation",
43253
- auth: "admin"
43253
+ auth: "protected"
43254
43254
  }),
43255
43255
  setSwingHorizontal: method(zod.z.object({
43256
43256
  deviceId: zod.z.number().int().nonnegative(),
43257
43257
  on: zod.z.boolean()
43258
43258
  }), zod.z.void(), {
43259
43259
  kind: "mutation",
43260
- auth: "admin"
43260
+ auth: "protected"
43261
43261
  })
43262
43262
  },
43263
43263
  status: {
@@ -43333,7 +43333,7 @@ var require_dist_CEUwB91M = __commonJS({
43333
43333
  color: ColorInputSchema
43334
43334
  }), zod.z.void(), {
43335
43335
  kind: "mutation",
43336
- auth: "admin"
43336
+ auth: "protected"
43337
43337
  }) },
43338
43338
  events: {
43339
43339
  /**
@@ -43613,7 +43613,7 @@ var require_dist_CEUwB91M = __commonJS({
43613
43613
  control: ControlSetValueInputSchema
43614
43614
  }), zod.z.void(), {
43615
43615
  kind: "mutation",
43616
- auth: "admin"
43616
+ auth: "protected"
43617
43617
  }) },
43618
43618
  status: {
43619
43619
  schema: ControlStatusSchema,
@@ -43660,29 +43660,29 @@ var require_dist_CEUwB91M = __commonJS({
43660
43660
  methods: {
43661
43661
  open: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43662
43662
  kind: "mutation",
43663
- auth: "admin"
43663
+ auth: "protected"
43664
43664
  }),
43665
43665
  close: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43666
43666
  kind: "mutation",
43667
- auth: "admin"
43667
+ auth: "protected"
43668
43668
  }),
43669
43669
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43670
43670
  kind: "mutation",
43671
- auth: "admin"
43671
+ auth: "protected"
43672
43672
  }),
43673
43673
  setPosition: method(zod.z.object({
43674
43674
  deviceId: zod.z.number().int().nonnegative(),
43675
43675
  position: zod.z.number().min(0).max(100)
43676
43676
  }), zod.z.void(), {
43677
43677
  kind: "mutation",
43678
- auth: "admin"
43678
+ auth: "protected"
43679
43679
  }),
43680
43680
  setTiltPosition: method(zod.z.object({
43681
43681
  deviceId: zod.z.number().int().nonnegative(),
43682
43682
  tiltPosition: zod.z.number().min(0).max(100)
43683
43683
  }), zod.z.void(), {
43684
43684
  kind: "mutation",
43685
- auth: "admin"
43685
+ auth: "protected"
43686
43686
  })
43687
43687
  },
43688
43688
  status: {
@@ -43989,6 +43989,49 @@ var require_dist_CEUwB91M = __commonJS({
43989
43989
  deviceId: zod.z.number().int().optional(),
43990
43990
  base64: zod.z.string().optional()
43991
43991
  });
43992
+ var IdentitySampleAuditRowSchema = zod.z.object({
43993
+ sampleId: zod.z.string(),
43994
+ enrolledAt: zod.z.number().int(),
43995
+ deviceId: zod.z.number().int().optional(),
43996
+ source: zod.z.enum(["detected", "photo"]),
43997
+ /** The enrolled crop's media key, so the panel can show the evidence. */
43998
+ mediaKey: zod.z.string().optional(),
43999
+ /**
44000
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
44001
+ * across feature spaces is a well-formed float with no meaning. Every number
44002
+ * below then says nothing — it must read as "cannot say", never as an
44003
+ * accusation and never as a clean bill: this list ends in a Remove button.
44004
+ */
44005
+ comparable: zod.z.boolean(),
44006
+ /** Mean cosine against this person's other samples. Null when there are none
44007
+ * to compare with — never 0, which would read as "opposite". */
44008
+ selfMean: zod.z.number().nullable(),
44009
+ /** The other person this sample looks most like, when it looks like one.
44010
+ * This is the half that convicts: not looking like yourself can be a hard
44011
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
44012
+ bestForeign: zod.z.object({
44013
+ identityId: zod.z.string(),
44014
+ name: zod.z.string(),
44015
+ score: zod.z.number()
44016
+ }).optional(),
44017
+ /** 0 = nothing to say. Higher = look at this one sooner. */
44018
+ suspicion: zod.z.number()
44019
+ });
44020
+ var IdentitySampleAuditSchema = zod.z.object({
44021
+ identityId: zod.z.string(),
44022
+ name: zod.z.string(),
44023
+ /** The cluster face model every comparison was made in. */
44024
+ modelId: zod.z.string(),
44025
+ totalSamples: zod.z.number().int(),
44026
+ comparableSamples: zod.z.number().int(),
44027
+ flagged: zod.z.number().int(),
44028
+ /** The bar `flagged` counts against, so the panel states the RULE and not
44029
+ * only its current result. */
44030
+ flagThreshold: zod.z.number(),
44031
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
44032
+ * operator asked to see the gallery, not only its accusations. */
44033
+ rows: zod.z.array(IdentitySampleAuditRowSchema).readonly()
44034
+ });
43992
44035
  var FaceInfoSchema = zod.z.object({
43993
44036
  faceId: zod.z.string(),
43994
44037
  deviceId: zod.z.number().int(),
@@ -44116,6 +44159,19 @@ var require_dist_CEUwB91M = __commonJS({
44116
44159
  auth: "admin"
44117
44160
  }),
44118
44161
  listIdentitySamples: method(zod.z.object({ identityId: zod.z.string() }), zod.z.array(IdentitySampleInfoSchema).readonly()),
44162
+ /**
44163
+ * Re-analyse ONE person's enrolled samples against the whole gallery.
44164
+ *
44165
+ * A pure read — no write, no inference, just dot products over vectors the
44166
+ * hub already holds (327 of them on this cluster). `admin` for the same
44167
+ * reason `listIdentitySamples` is: the answer names every enrolled person
44168
+ * and how well one person's samples match them, which is the gallery's
44169
+ * shape and not a viewer-level fact.
44170
+ *
44171
+ * Removal deliberately stays `removeSample`: an analysis that could also
44172
+ * delete would be one confirmation away from emptying a gallery.
44173
+ */
44174
+ auditIdentitySamples: method(zod.z.object({ identityId: zod.z.string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }),
44119
44175
  removeSample: method(zod.z.object({
44120
44176
  identityId: zod.z.string(),
44121
44177
  sampleId: zod.z.string()
@@ -44307,28 +44363,28 @@ var require_dist_CEUwB91M = __commonJS({
44307
44363
  percentage: zod.z.number().min(0).max(100)
44308
44364
  }), zod.z.void(), {
44309
44365
  kind: "mutation",
44310
- auth: "admin"
44366
+ auth: "protected"
44311
44367
  }),
44312
44368
  setPreset: method(zod.z.object({
44313
44369
  deviceId: zod.z.number().int().nonnegative(),
44314
44370
  preset: zod.z.string().min(1)
44315
44371
  }), zod.z.void(), {
44316
44372
  kind: "mutation",
44317
- auth: "admin"
44373
+ auth: "protected"
44318
44374
  }),
44319
44375
  setDirection: method(zod.z.object({
44320
44376
  deviceId: zod.z.number().int().nonnegative(),
44321
44377
  direction: FanDirectionSchema
44322
44378
  }), zod.z.void(), {
44323
44379
  kind: "mutation",
44324
- auth: "admin"
44380
+ auth: "protected"
44325
44381
  }),
44326
44382
  setOscillating: method(zod.z.object({
44327
44383
  deviceId: zod.z.number().int().nonnegative(),
44328
44384
  oscillating: zod.z.boolean()
44329
44385
  }), zod.z.void(), {
44330
44386
  kind: "mutation",
44331
- auth: "admin"
44387
+ auth: "protected"
44332
44388
  })
44333
44389
  },
44334
44390
  status: {
@@ -44499,21 +44555,21 @@ var require_dist_CEUwB91M = __commonJS({
44499
44555
  on: zod.z.boolean()
44500
44556
  }), zod.z.void(), {
44501
44557
  kind: "mutation",
44502
- auth: "admin"
44558
+ auth: "protected"
44503
44559
  }),
44504
44560
  setTargetHumidity: method(zod.z.object({
44505
44561
  deviceId: zod.z.number().int().nonnegative(),
44506
44562
  humidity: zod.z.number().min(0).max(100)
44507
44563
  }), zod.z.void(), {
44508
44564
  kind: "mutation",
44509
- auth: "admin"
44565
+ auth: "protected"
44510
44566
  }),
44511
44567
  setMode: method(zod.z.object({
44512
44568
  deviceId: zod.z.number().int().nonnegative(),
44513
44569
  mode: zod.z.string().min(1)
44514
44570
  }), zod.z.void(), {
44515
44571
  kind: "mutation",
44516
- auth: "admin"
44572
+ auth: "protected"
44517
44573
  })
44518
44574
  },
44519
44575
  status: {
@@ -45084,15 +45140,15 @@ var require_dist_CEUwB91M = __commonJS({
45084
45140
  methods: {
45085
45141
  startMowing: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45086
45142
  kind: "mutation",
45087
- auth: "admin"
45143
+ auth: "protected"
45088
45144
  }),
45089
45145
  pause: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45090
45146
  kind: "mutation",
45091
- auth: "admin"
45147
+ auth: "protected"
45092
45148
  }),
45093
45149
  dock: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45094
45150
  kind: "mutation",
45095
- auth: "admin"
45151
+ auth: "protected"
45096
45152
  })
45097
45153
  },
45098
45154
  status: {
@@ -45450,18 +45506,18 @@ var require_dist_CEUwB91M = __commonJS({
45450
45506
  code: zod.z.string().min(1).optional()
45451
45507
  }), zod.z.void(), {
45452
45508
  kind: "mutation",
45453
- auth: "admin"
45509
+ auth: "protected"
45454
45510
  }),
45455
45511
  unlock: method(zod.z.object({
45456
45512
  deviceId: zod.z.number().int().nonnegative(),
45457
45513
  code: zod.z.string().min(1).optional()
45458
45514
  }), zod.z.void(), {
45459
45515
  kind: "mutation",
45460
- auth: "admin"
45516
+ auth: "protected"
45461
45517
  }),
45462
45518
  open: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45463
45519
  kind: "mutation",
45464
- auth: "admin"
45520
+ auth: "protected"
45465
45521
  })
45466
45522
  },
45467
45523
  status: {
@@ -45552,65 +45608,65 @@ var require_dist_CEUwB91M = __commonJS({
45552
45608
  methods: {
45553
45609
  play: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45554
45610
  kind: "mutation",
45555
- auth: "admin"
45611
+ auth: "protected"
45556
45612
  }),
45557
45613
  pause: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45558
45614
  kind: "mutation",
45559
- auth: "admin"
45615
+ auth: "protected"
45560
45616
  }),
45561
45617
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45562
45618
  kind: "mutation",
45563
- auth: "admin"
45619
+ auth: "protected"
45564
45620
  }),
45565
45621
  next: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45566
45622
  kind: "mutation",
45567
- auth: "admin"
45623
+ auth: "protected"
45568
45624
  }),
45569
45625
  previous: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45570
45626
  kind: "mutation",
45571
- auth: "admin"
45627
+ auth: "protected"
45572
45628
  }),
45573
45629
  seek: method(zod.z.object({
45574
45630
  deviceId: zod.z.number().int().nonnegative(),
45575
45631
  positionMs: zod.z.number().int().nonnegative()
45576
45632
  }), zod.z.void(), {
45577
45633
  kind: "mutation",
45578
- auth: "admin"
45634
+ auth: "protected"
45579
45635
  }),
45580
45636
  setVolume: method(zod.z.object({
45581
45637
  deviceId: zod.z.number().int().nonnegative(),
45582
45638
  volumeLevel: zod.z.number().min(0).max(100)
45583
45639
  }), zod.z.void(), {
45584
45640
  kind: "mutation",
45585
- auth: "admin"
45641
+ auth: "protected"
45586
45642
  }),
45587
45643
  setMute: method(zod.z.object({
45588
45644
  deviceId: zod.z.number().int().nonnegative(),
45589
45645
  muted: zod.z.boolean()
45590
45646
  }), zod.z.void(), {
45591
45647
  kind: "mutation",
45592
- auth: "admin"
45648
+ auth: "protected"
45593
45649
  }),
45594
45650
  setShuffle: method(zod.z.object({
45595
45651
  deviceId: zod.z.number().int().nonnegative(),
45596
45652
  shuffle: zod.z.boolean()
45597
45653
  }), zod.z.void(), {
45598
45654
  kind: "mutation",
45599
- auth: "admin"
45655
+ auth: "protected"
45600
45656
  }),
45601
45657
  setRepeat: method(zod.z.object({
45602
45658
  deviceId: zod.z.number().int().nonnegative(),
45603
45659
  repeat: MediaPlayerRepeatSchema
45604
45660
  }), zod.z.void(), {
45605
45661
  kind: "mutation",
45606
- auth: "admin"
45662
+ auth: "protected"
45607
45663
  }),
45608
45664
  selectSource: method(zod.z.object({
45609
45665
  deviceId: zod.z.number().int().nonnegative(),
45610
45666
  source: zod.z.string().min(1)
45611
45667
  }), zod.z.void(), {
45612
45668
  kind: "mutation",
45613
- auth: "admin"
45669
+ auth: "protected"
45614
45670
  }),
45615
45671
  playMedia: method(zod.z.object({
45616
45672
  deviceId: zod.z.number().int().nonnegative(),
@@ -45621,7 +45677,7 @@ var require_dist_CEUwB91M = __commonJS({
45621
45677
  mediaType: zod.z.string().min(1)
45622
45678
  }), zod.z.void(), {
45623
45679
  kind: "mutation",
45624
- auth: "admin"
45680
+ auth: "protected"
45625
45681
  })
45626
45682
  },
45627
45683
  status: {
@@ -47070,27 +47126,27 @@ var require_dist_CEUwB91M = __commonJS({
47070
47126
  hopper2: gramsPortion.optional()
47071
47127
  }), zod.z.void(), {
47072
47128
  kind: "mutation",
47073
- auth: "admin"
47129
+ auth: "protected"
47074
47130
  }),
47075
47131
  /** Cancel an in-progress manual feed. */
47076
47132
  cancelFeed: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47077
47133
  kind: "mutation",
47078
- auth: "admin"
47134
+ auth: "protected"
47079
47135
  }),
47080
47136
  /** Reset the desiccant "days remaining" counter after replacing it. */
47081
47137
  resetDesiccant: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47082
47138
  kind: "mutation",
47083
- auth: "admin"
47139
+ auth: "protected"
47084
47140
  }),
47085
47141
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
47086
47142
  markFoodReplenished: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47087
47143
  kind: "mutation",
47088
- auth: "admin"
47144
+ auth: "protected"
47089
47145
  }),
47090
47146
  /** Call the pet with the recorded prompt (D3). */
47091
47147
  callPet: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47092
47148
  kind: "mutation",
47093
- auth: "admin"
47149
+ auth: "protected"
47094
47150
  }),
47095
47151
  /** Play a stored sound by id (D3 / D4H / D4SH). */
47096
47152
  playSound: method(zod.z.object({
@@ -47098,7 +47154,7 @@ var require_dist_CEUwB91M = __commonJS({
47098
47154
  soundId: zod.z.number().int().nonnegative()
47099
47155
  }), zod.z.void(), {
47100
47156
  kind: "mutation",
47101
- auth: "admin"
47157
+ auth: "protected"
47102
47158
  }),
47103
47159
  /** Toggle the child-lock (manual-lock) setting. */
47104
47160
  setChildLock: method(zod.z.object({
@@ -47106,7 +47162,7 @@ var require_dist_CEUwB91M = __commonJS({
47106
47162
  on: zod.z.boolean()
47107
47163
  }), zod.z.void(), {
47108
47164
  kind: "mutation",
47109
- auth: "admin"
47165
+ auth: "protected"
47110
47166
  }),
47111
47167
  /** Toggle the front indicator light. */
47112
47168
  setIndicatorLight: method(zod.z.object({
@@ -47114,7 +47170,7 @@ var require_dist_CEUwB91M = __commonJS({
47114
47170
  on: zod.z.boolean()
47115
47171
  }), zod.z.void(), {
47116
47172
  kind: "mutation",
47117
- auth: "admin"
47173
+ auth: "protected"
47118
47174
  }),
47119
47175
  /** Toggle the dispense chime. */
47120
47176
  setFeedSound: method(zod.z.object({
@@ -47122,7 +47178,7 @@ var require_dist_CEUwB91M = __commonJS({
47122
47178
  on: zod.z.boolean()
47123
47179
  }), zod.z.void(), {
47124
47180
  kind: "mutation",
47125
- auth: "admin"
47181
+ auth: "protected"
47126
47182
  }),
47127
47183
  /** Set the speaker / prompt volume level. */
47128
47184
  setVolume: method(zod.z.object({
@@ -47130,7 +47186,7 @@ var require_dist_CEUwB91M = __commonJS({
47130
47186
  level: zod.z.number().int().nonnegative()
47131
47187
  }), zod.z.void(), {
47132
47188
  kind: "mutation",
47133
- auth: "admin"
47189
+ auth: "protected"
47134
47190
  })
47135
47191
  },
47136
47192
  status: {
@@ -49492,7 +49548,7 @@ var require_dist_CEUwB91M = __commonJS({
49492
49548
  on: zod.z.boolean()
49493
49549
  }), zod.z.void(), {
49494
49550
  kind: "mutation",
49495
- auth: "admin"
49551
+ auth: "protected"
49496
49552
  }) },
49497
49553
  events: { onStateChanged: { data: zod.z.object({
49498
49554
  deviceId: zod.z.number(),
@@ -50358,30 +50414,30 @@ var require_dist_CEUwB91M = __commonJS({
50358
50414
  methods: {
50359
50415
  start: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50360
50416
  kind: "mutation",
50361
- auth: "admin"
50417
+ auth: "protected"
50362
50418
  }),
50363
50419
  pause: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50364
50420
  kind: "mutation",
50365
- auth: "admin"
50421
+ auth: "protected"
50366
50422
  }),
50367
50423
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50368
50424
  kind: "mutation",
50369
- auth: "admin"
50425
+ auth: "protected"
50370
50426
  }),
50371
50427
  returnToBase: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50372
50428
  kind: "mutation",
50373
- auth: "admin"
50429
+ auth: "protected"
50374
50430
  }),
50375
50431
  locate: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50376
50432
  kind: "mutation",
50377
- auth: "admin"
50433
+ auth: "protected"
50378
50434
  }),
50379
50435
  setFanSpeed: method(zod.z.object({
50380
50436
  deviceId: zod.z.number().int().nonnegative(),
50381
50437
  speed: zod.z.string().min(1)
50382
50438
  }), zod.z.void(), {
50383
50439
  kind: "mutation",
50384
- auth: "admin"
50440
+ auth: "protected"
50385
50441
  })
50386
50442
  },
50387
50443
  status: {
@@ -50426,22 +50482,22 @@ var require_dist_CEUwB91M = __commonJS({
50426
50482
  methods: {
50427
50483
  open: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50428
50484
  kind: "mutation",
50429
- auth: "admin"
50485
+ auth: "protected"
50430
50486
  }),
50431
50487
  close: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50432
50488
  kind: "mutation",
50433
- auth: "admin"
50489
+ auth: "protected"
50434
50490
  }),
50435
50491
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50436
50492
  kind: "mutation",
50437
- auth: "admin"
50493
+ auth: "protected"
50438
50494
  }),
50439
50495
  setPosition: method(zod.z.object({
50440
50496
  deviceId: zod.z.number().int().nonnegative(),
50441
50497
  position: zod.z.number().min(0).max(100)
50442
50498
  }), zod.z.void(), {
50443
50499
  kind: "mutation",
50444
- auth: "admin"
50500
+ auth: "protected"
50445
50501
  })
50446
50502
  },
50447
50503
  status: {
@@ -50522,21 +50578,21 @@ var require_dist_CEUwB91M = __commonJS({
50522
50578
  temp: zod.z.number().finite()
50523
50579
  }), zod.z.void(), {
50524
50580
  kind: "mutation",
50525
- auth: "admin"
50581
+ auth: "protected"
50526
50582
  }),
50527
50583
  setOperationMode: method(zod.z.object({
50528
50584
  deviceId: zod.z.number().int().nonnegative(),
50529
50585
  mode: zod.z.string().min(1)
50530
50586
  }), zod.z.void(), {
50531
50587
  kind: "mutation",
50532
- auth: "admin"
50588
+ auth: "protected"
50533
50589
  }),
50534
50590
  setAway: method(zod.z.object({
50535
50591
  deviceId: zod.z.number().int().nonnegative(),
50536
50592
  on: zod.z.boolean()
50537
50593
  }), zod.z.void(), {
50538
50594
  kind: "mutation",
50539
- auth: "admin"
50595
+ auth: "protected"
50540
50596
  })
50541
50597
  },
50542
50598
  status: {
@@ -53352,6 +53408,12 @@ var require_dist_CEUwB91M = __commonJS({
53352
53408
  addonId: null,
53353
53409
  access: "create"
53354
53410
  },
53411
+ "faceGallery.auditIdentitySamples": {
53412
+ capName: "face-gallery",
53413
+ capScope: "system",
53414
+ addonId: null,
53415
+ access: "view"
53416
+ },
53355
53417
  "faceGallery.createIdentity": {
53356
53418
  capName: "face-gallery",
53357
53419
  capScope: "system",
@@ -60981,7 +61043,7 @@ var require_alerts_addon = __commonJS({
60981
61043
  [Symbol.toStringTag]: { value: "Module" }
60982
61044
  });
60983
61045
  require_chunk_Cek0wNdY();
60984
- var require_dist10 = require_dist_CEUwB91M();
61046
+ var require_dist10 = require_dist_C_WvDOQ9();
60985
61047
  function selectExpired(alerts, cutoffMs) {
60986
61048
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
60987
61049
  }
@@ -61800,7 +61862,7 @@ var require_console_logging = __commonJS({
61800
61862
  [Symbol.toStringTag]: { value: "Module" }
61801
61863
  });
61802
61864
  require_chunk_Cek0wNdY();
61803
- var require_dist10 = require_dist_CEUwB91M();
61865
+ var require_dist10 = require_dist_C_WvDOQ9();
61804
61866
  var require_formatter = require_formatter_DqAKDlvN();
61805
61867
  var LEVEL_RANK = {
61806
61868
  debug: 0,
@@ -61894,7 +61956,7 @@ var require_core_blocks_addon = __commonJS({
61894
61956
  "use strict";
61895
61957
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
61896
61958
  var require_chunk = require_chunk_Cek0wNdY();
61897
- var require_dist10 = require_dist_CEUwB91M();
61959
+ var require_dist10 = require_dist_C_WvDOQ9();
61898
61960
  var node_crypto = __require("crypto");
61899
61961
  var node_fs_promises = __require("fs/promises");
61900
61962
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -62791,11 +62853,11 @@ var require_core_blocks = __commonJS({
62791
62853
  }
62792
62854
  });
62793
62855
 
62794
- // ../system/dist/retired-settings-keys-DtPZcaQ_.js
62795
- var require_retired_settings_keys_DtPZcaQ = __commonJS({
62796
- "../system/dist/retired-settings-keys-DtPZcaQ_.js"(exports) {
62856
+ // ../system/dist/retired-settings-keys-BpasSgff.js
62857
+ var require_retired_settings_keys_BpasSgff = __commonJS({
62858
+ "../system/dist/retired-settings-keys-BpasSgff.js"(exports) {
62797
62859
  "use strict";
62798
- var require_dist10 = require_dist_CEUwB91M();
62860
+ var require_dist10 = require_dist_C_WvDOQ9();
62799
62861
  function settingsStoreIsAuthoritativeHere(env) {
62800
62862
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
62801
62863
  return raw === "" || raw === "hub";
@@ -65030,8 +65092,8 @@ var require_device_manager_addon = __commonJS({
65030
65092
  [Symbol.toStringTag]: { value: "Module" }
65031
65093
  });
65032
65094
  require_chunk_Cek0wNdY();
65033
- var require_dist10 = require_dist_CEUwB91M();
65034
- var require_retired_settings_keys = require_retired_settings_keys_DtPZcaQ();
65095
+ var require_dist10 = require_dist_C_WvDOQ9();
65096
+ var require_retired_settings_keys = require_retired_settings_keys_BpasSgff();
65035
65097
  var node_crypto = __require("crypto");
65036
65098
  var _camstack_types_node = require_node();
65037
65099
  var JOB_HISTORY = 20;
@@ -70656,7 +70718,7 @@ var require_hub_forwarder = __commonJS({
70656
70718
  [Symbol.toStringTag]: { value: "Module" }
70657
70719
  });
70658
70720
  require_chunk_Cek0wNdY();
70659
- var require_dist10 = require_dist_CEUwB91M();
70721
+ var require_dist10 = require_dist_C_WvDOQ9();
70660
70722
  var require_formatter = require_formatter_DqAKDlvN();
70661
70723
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
70662
70724
  var HubForwarderDestination = class {
@@ -70793,7 +70855,7 @@ var require_liveness_monitor_addon = __commonJS({
70793
70855
  "use strict";
70794
70856
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
70795
70857
  require_chunk_Cek0wNdY();
70796
- var require_dist10 = require_dist_CEUwB91M();
70858
+ var require_dist10 = require_dist_C_WvDOQ9();
70797
70859
  var NO_DEVICES = "liveness:no-devices";
70798
70860
  var ALL_OFFLINE = "liveness:all-devices-offline";
70799
70861
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -70989,7 +71051,7 @@ var require_local_auth_addon = __commonJS({
70989
71051
  [Symbol.toStringTag]: { value: "Module" }
70990
71052
  });
70991
71053
  var require_chunk = require_chunk_Cek0wNdY();
70992
- var require_dist10 = require_dist_CEUwB91M();
71054
+ var require_dist10 = require_dist_C_WvDOQ9();
70993
71055
  var node_crypto = __require("crypto");
70994
71056
  node_crypto = require_chunk.__toESM(node_crypto);
70995
71057
  var crypto$1 = __require("crypto");
@@ -78802,7 +78864,7 @@ var require_loki_logging = __commonJS({
78802
78864
  [Symbol.toStringTag]: { value: "Module" }
78803
78865
  });
78804
78866
  require_chunk_Cek0wNdY();
78805
- var require_dist10 = require_dist_CEUwB91M();
78867
+ var require_dist10 = require_dist_C_WvDOQ9();
78806
78868
  function sanitizeLabelName(raw) {
78807
78869
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
78808
78870
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -79367,7 +79429,7 @@ var require_native_metrics_addon = __commonJS({
79367
79429
  [Symbol.toStringTag]: { value: "Module" }
79368
79430
  });
79369
79431
  var require_chunk = require_chunk_Cek0wNdY();
79370
- var require_dist10 = require_dist_CEUwB91M();
79432
+ var require_dist10 = require_dist_C_WvDOQ9();
79371
79433
  var node_fs_promises = __require("fs/promises");
79372
79434
  var node_child_process = __require("child_process");
79373
79435
  var node_util = __require("util");
@@ -81951,7 +82013,7 @@ var require_filesystem_storage_addon = __commonJS({
81951
82013
  [Symbol.toStringTag]: { value: "Module" }
81952
82014
  });
81953
82015
  var require_chunk = require_chunk_Cek0wNdY();
81954
- var require_dist10 = require_dist_CEUwB91M();
82016
+ var require_dist10 = require_dist_C_WvDOQ9();
81955
82017
  var node_crypto = __require("crypto");
81956
82018
  var node_fs_promises = __require("fs/promises");
81957
82019
  var node_path = __require("path");
@@ -83067,8 +83129,8 @@ var require_sqlite_settings_addon = __commonJS({
83067
83129
  [Symbol.toStringTag]: { value: "Module" }
83068
83130
  });
83069
83131
  var require_chunk = require_chunk_Cek0wNdY();
83070
- var require_dist10 = require_dist_CEUwB91M();
83071
- var require_retired_settings_keys = require_retired_settings_keys_DtPZcaQ();
83132
+ var require_dist10 = require_dist_C_WvDOQ9();
83133
+ var require_retired_settings_keys = require_retired_settings_keys_BpasSgff();
83072
83134
  var node_crypto = __require("crypto");
83073
83135
  var node_fs = __require("fs");
83074
83136
  var node_module = __require("module");
@@ -85572,7 +85634,7 @@ var require_storage_orchestrator_addon = __commonJS({
85572
85634
  [Symbol.toStringTag]: { value: "Module" }
85573
85635
  });
85574
85636
  var require_chunk = require_chunk_Cek0wNdY();
85575
- var require_dist10 = require_dist_CEUwB91M();
85637
+ var require_dist10 = require_dist_C_WvDOQ9();
85576
85638
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
85577
85639
  var zod = require_zod();
85578
85640
  var node_crypto = __require("crypto");
@@ -86548,6 +86610,41 @@ var require_storage_orchestrator_addon = __commonJS({
86548
86610
  }
86549
86611
  };
86550
86612
  }
86613
+ async function collectFiles(io, prefix) {
86614
+ const entries = await io.list(prefix);
86615
+ const files = [];
86616
+ for (const entry of entries) {
86617
+ if ((await io.list(entry)).length > 0) {
86618
+ files.push(...await collectFiles(io, entry));
86619
+ continue;
86620
+ }
86621
+ files.push(entry);
86622
+ }
86623
+ return files;
86624
+ }
86625
+ async function moveLocationTree(io) {
86626
+ const candidates = await collectFiles(io);
86627
+ const copied = [];
86628
+ let bytes = 0;
86629
+ for (const relativePath of candidates) {
86630
+ let data;
86631
+ try {
86632
+ data = await io.read(relativePath);
86633
+ } catch {
86634
+ continue;
86635
+ }
86636
+ await io.write(relativePath, data);
86637
+ const landed = await io.readBack(relativePath);
86638
+ if (landed.length !== data.length) throw new Error(`location repoint: size mismatch after copying "${relativePath}" (${String(landed.length)} != ${String(data.length)}) \u2014 nothing deleted`);
86639
+ copied.push(relativePath);
86640
+ bytes += data.length;
86641
+ }
86642
+ for (const relativePath of copied) await io.deleteSource(relativePath);
86643
+ return {
86644
+ files: copied.length,
86645
+ bytes
86646
+ };
86647
+ }
86551
86648
  function resolveRefusalFor(location, locality) {
86552
86649
  if (locality !== false) return null;
86553
86650
  return `storage.resolve is a request for a path this node can open with node:fs, and location "${location.id}" is served by the remote provider "${location.providerId}" (nodeLocal: false) \u2014 the path it would return exists on the remote host, not here. Read and write this location through the storage cap (read/write, or beginUpload/writeChunk/finalizeUpload) instead.`;
@@ -88306,10 +88403,12 @@ var require_storage_orchestrator_addon = __commonJS({
88306
88403
  upsertLocation: async (input) => {
88307
88404
  const stored = service.getLocationById(input.id);
88308
88405
  const config = restoreRedactedSecrets(input.config, stored?.config, this.secretKeysFor(input.providerId, stored?.config ?? {}));
88309
- const saved = service.upsertLocation(config === input.config ? input : {
88406
+ const next = config === input.config ? input : {
88310
88407
  ...input,
88311
88408
  config
88312
- });
88409
+ };
88410
+ await this.carryDataOnRepoint(stored, next);
88411
+ const saved = service.upsertLocation(next);
88313
88412
  this.announceLocationsChanged(saved.id, saved.type, "upsert");
88314
88413
  return this.redacted(saved);
88315
88414
  },
@@ -88804,6 +88903,63 @@ var require_storage_orchestrator_addon = __commonJS({
88804
88903
  return this.secretKeysByProvider.get(providerId);
88805
88904
  }
88806
88905
  /** Which keys of a given stored config must never leave this process. */
88906
+ /**
88907
+ * Move a singleton location's bytes when its root changes.
88908
+ *
88909
+ * Runs BEFORE the row is saved: a copy that fails throws out of the mutation,
88910
+ * so the location keeps pointing at the intact original and the operator is
88911
+ * told why rather than discovering it in a blank panel weeks later.
88912
+ * `moveLocationTree` deletes nothing until every file has been read back from
88913
+ * the destination.
88914
+ *
88915
+ * A no-op for everything else — a rename, a mode change, a `multi` kind, or a
88916
+ * location being created for the first time.
88917
+ */
88918
+ async carryDataOnRepoint(stored, next) {
88919
+ if (stored === void 0) return;
88920
+ const service = this.service;
88921
+ if (service === null) return;
88922
+ if (service.listDeclarations().find((entry) => entry.id === next.type)?.cardinality !== "single") return;
88923
+ const from = stored.config["basePath"];
88924
+ const to = next.config["basePath"];
88925
+ if (typeof from !== "string" || typeof to !== "string" || from === to) return;
88926
+ const source = await service.getProviderFor(stored);
88927
+ const target = {
88928
+ ...stored,
88929
+ config: next.config
88930
+ };
88931
+ const destination = await service.getProviderFor(target);
88932
+ const moved = await moveLocationTree({
88933
+ list: (prefix) => source.list(prefix === void 0 ? { location: stored } : {
88934
+ location: stored,
88935
+ prefix
88936
+ }),
88937
+ read: (relativePath) => source.read({
88938
+ location: stored,
88939
+ relativePath
88940
+ }),
88941
+ write: (relativePath, data) => destination.write({
88942
+ location: target,
88943
+ relativePath,
88944
+ data
88945
+ }),
88946
+ readBack: (relativePath) => destination.read({
88947
+ location: target,
88948
+ relativePath
88949
+ }),
88950
+ deleteSource: (relativePath) => source.delete({
88951
+ location: stored,
88952
+ relativePath
88953
+ })
88954
+ });
88955
+ this.ctx.logger.info("storage-orchestrator: singleton location re-pointed \u2014 its data was carried over", { meta: {
88956
+ id: stored.id,
88957
+ type: stored.type,
88958
+ from,
88959
+ to,
88960
+ ...moved
88961
+ } });
88962
+ }
88807
88963
  secretKeysFor(providerId, config) {
88808
88964
  return secretKeysForConfig(config, this.declaredSecretKeys(providerId));
88809
88965
  }
@@ -89128,7 +89284,7 @@ var require_system_config_addon = __commonJS({
89128
89284
  [Symbol.toStringTag]: { value: "Module" }
89129
89285
  });
89130
89286
  require_chunk_Cek0wNdY();
89131
- var require_dist10 = require_dist_CEUwB91M();
89287
+ var require_dist10 = require_dist_C_WvDOQ9();
89132
89288
  var SECTION_TITLES = {
89133
89289
  server: "Server",
89134
89290
  auth: "Authentication"
@@ -107189,7 +107345,7 @@ var require_winston_logging = __commonJS({
107189
107345
  [Symbol.toStringTag]: { value: "Module" }
107190
107346
  });
107191
107347
  var require_chunk = require_chunk_Cek0wNdY();
107192
- var require_dist10 = require_dist_CEUwB91M();
107348
+ var require_dist10 = require_dist_C_WvDOQ9();
107193
107349
  var require_formatter = require_formatter_DqAKDlvN();
107194
107350
  var node_path = __require("path");
107195
107351
  node_path = require_chunk.__toESM(node_path);
@@ -131799,7 +131955,7 @@ var require_dist3 = __commonJS({
131799
131955
  "use strict";
131800
131956
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
131801
131957
  var require_chunk = require_chunk_Cek0wNdY();
131802
- var require_dist10 = require_dist_CEUwB91M();
131958
+ var require_dist10 = require_dist_C_WvDOQ9();
131803
131959
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
131804
131960
  require_alerts();
131805
131961
  var require_formatter = require_formatter_DqAKDlvN();
@@ -224305,14 +224461,14 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
224305
224461
  code: zod.z.string().min(1).optional()
224306
224462
  }), zod.z.void(), {
224307
224463
  kind: "mutation",
224308
- auth: "admin"
224464
+ auth: "protected"
224309
224465
  }),
224310
224466
  disarm: require_sleep.method(zod.z.object({
224311
224467
  deviceId: zod.z.number().int().nonnegative(),
224312
224468
  code: zod.z.string().min(1).optional()
224313
224469
  }), zod.z.void(), {
224314
224470
  kind: "mutation",
224315
- auth: "admin"
224471
+ auth: "protected"
224316
224472
  }),
224317
224473
  /**
224318
224474
  * Force the panel into the `triggered` state — used by HA
@@ -224323,7 +224479,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
224323
224479
  */
224324
224480
  trigger: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
224325
224481
  kind: "mutation",
224326
- auth: "admin"
224482
+ auth: "protected"
224327
224483
  })
224328
224484
  },
224329
224485
  status: {
@@ -233217,7 +233373,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233217
233373
  percentage: zod.z.number().min(0).max(100)
233218
233374
  }), zod.z.void(), {
233219
233375
  kind: "mutation",
233220
- auth: "admin"
233376
+ auth: "protected"
233221
233377
  }) },
233222
233378
  events: {
233223
233379
  /**
@@ -233257,7 +233413,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233257
233413
  deviceTypes: [require_sleep.DeviceType.Button],
233258
233414
  methods: { press: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233259
233415
  kind: "mutation",
233260
- auth: "admin"
233416
+ auth: "protected"
233261
233417
  }) }
233262
233418
  };
233263
233419
  var CameraCredentialsSchema = zod.z.object({
@@ -233404,28 +233560,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233404
233560
  mode: HvacModeSchema
233405
233561
  }), zod.z.void(), {
233406
233562
  kind: "mutation",
233407
- auth: "admin"
233563
+ auth: "protected"
233408
233564
  }),
233409
233565
  setFanMode: require_sleep.method(zod.z.object({
233410
233566
  deviceId: zod.z.number().int().nonnegative(),
233411
233567
  fanMode: zod.z.string().min(1)
233412
233568
  }), zod.z.void(), {
233413
233569
  kind: "mutation",
233414
- auth: "admin"
233570
+ auth: "protected"
233415
233571
  }),
233416
233572
  setPreset: require_sleep.method(zod.z.object({
233417
233573
  deviceId: zod.z.number().int().nonnegative(),
233418
233574
  preset: zod.z.string().min(1)
233419
233575
  }), zod.z.void(), {
233420
233576
  kind: "mutation",
233421
- auth: "admin"
233577
+ auth: "protected"
233422
233578
  }),
233423
233579
  setTarget: require_sleep.method(zod.z.object({
233424
233580
  deviceId: zod.z.number().int().nonnegative(),
233425
233581
  target: zod.z.number()
233426
233582
  }), zod.z.void(), {
233427
233583
  kind: "mutation",
233428
- auth: "admin"
233584
+ auth: "protected"
233429
233585
  }),
233430
233586
  setTargetRange: require_sleep.method(zod.z.object({
233431
233587
  deviceId: zod.z.number().int().nonnegative(),
@@ -233433,28 +233589,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233433
233589
  targetHigh: zod.z.number()
233434
233590
  }), zod.z.void(), {
233435
233591
  kind: "mutation",
233436
- auth: "admin"
233592
+ auth: "protected"
233437
233593
  }),
233438
233594
  setTargetHumidity: require_sleep.method(zod.z.object({
233439
233595
  deviceId: zod.z.number().int().nonnegative(),
233440
233596
  targetHumidity: zod.z.number().min(0).max(100)
233441
233597
  }), zod.z.void(), {
233442
233598
  kind: "mutation",
233443
- auth: "admin"
233599
+ auth: "protected"
233444
233600
  }),
233445
233601
  setSwingVertical: require_sleep.method(zod.z.object({
233446
233602
  deviceId: zod.z.number().int().nonnegative(),
233447
233603
  on: zod.z.boolean()
233448
233604
  }), zod.z.void(), {
233449
233605
  kind: "mutation",
233450
- auth: "admin"
233606
+ auth: "protected"
233451
233607
  }),
233452
233608
  setSwingHorizontal: require_sleep.method(zod.z.object({
233453
233609
  deviceId: zod.z.number().int().nonnegative(),
233454
233610
  on: zod.z.boolean()
233455
233611
  }), zod.z.void(), {
233456
233612
  kind: "mutation",
233457
- auth: "admin"
233613
+ auth: "protected"
233458
233614
  })
233459
233615
  },
233460
233616
  status: {
@@ -233530,7 +233686,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233530
233686
  color: ColorInputSchema
233531
233687
  }), zod.z.void(), {
233532
233688
  kind: "mutation",
233533
- auth: "admin"
233689
+ auth: "protected"
233534
233690
  }) },
233535
233691
  events: {
233536
233692
  /**
@@ -233811,7 +233967,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233811
233967
  control: ControlSetValueInputSchema
233812
233968
  }), zod.z.void(), {
233813
233969
  kind: "mutation",
233814
- auth: "admin"
233970
+ auth: "protected"
233815
233971
  }) },
233816
233972
  status: {
233817
233973
  schema: ControlStatusSchema,
@@ -233858,29 +234014,29 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233858
234014
  methods: {
233859
234015
  open: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233860
234016
  kind: "mutation",
233861
- auth: "admin"
234017
+ auth: "protected"
233862
234018
  }),
233863
234019
  close: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233864
234020
  kind: "mutation",
233865
- auth: "admin"
234021
+ auth: "protected"
233866
234022
  }),
233867
234023
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233868
234024
  kind: "mutation",
233869
- auth: "admin"
234025
+ auth: "protected"
233870
234026
  }),
233871
234027
  setPosition: require_sleep.method(zod.z.object({
233872
234028
  deviceId: zod.z.number().int().nonnegative(),
233873
234029
  position: zod.z.number().min(0).max(100)
233874
234030
  }), zod.z.void(), {
233875
234031
  kind: "mutation",
233876
- auth: "admin"
234032
+ auth: "protected"
233877
234033
  }),
233878
234034
  setTiltPosition: require_sleep.method(zod.z.object({
233879
234035
  deviceId: zod.z.number().int().nonnegative(),
233880
234036
  tiltPosition: zod.z.number().min(0).max(100)
233881
234037
  }), zod.z.void(), {
233882
234038
  kind: "mutation",
233883
- auth: "admin"
234039
+ auth: "protected"
233884
234040
  })
233885
234041
  },
233886
234042
  status: {
@@ -234187,6 +234343,49 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
234187
234343
  deviceId: zod.z.number().int().optional(),
234188
234344
  base64: zod.z.string().optional()
234189
234345
  });
234346
+ var IdentitySampleAuditRowSchema = zod.z.object({
234347
+ sampleId: zod.z.string(),
234348
+ enrolledAt: zod.z.number().int(),
234349
+ deviceId: zod.z.number().int().optional(),
234350
+ source: zod.z.enum(["detected", "photo"]),
234351
+ /** The enrolled crop's media key, so the panel can show the evidence. */
234352
+ mediaKey: zod.z.string().optional(),
234353
+ /**
234354
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
234355
+ * across feature spaces is a well-formed float with no meaning. Every number
234356
+ * below then says nothing — it must read as "cannot say", never as an
234357
+ * accusation and never as a clean bill: this list ends in a Remove button.
234358
+ */
234359
+ comparable: zod.z.boolean(),
234360
+ /** Mean cosine against this person's other samples. Null when there are none
234361
+ * to compare with — never 0, which would read as "opposite". */
234362
+ selfMean: zod.z.number().nullable(),
234363
+ /** The other person this sample looks most like, when it looks like one.
234364
+ * This is the half that convicts: not looking like yourself can be a hard
234365
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
234366
+ bestForeign: zod.z.object({
234367
+ identityId: zod.z.string(),
234368
+ name: zod.z.string(),
234369
+ score: zod.z.number()
234370
+ }).optional(),
234371
+ /** 0 = nothing to say. Higher = look at this one sooner. */
234372
+ suspicion: zod.z.number()
234373
+ });
234374
+ var IdentitySampleAuditSchema = zod.z.object({
234375
+ identityId: zod.z.string(),
234376
+ name: zod.z.string(),
234377
+ /** The cluster face model every comparison was made in. */
234378
+ modelId: zod.z.string(),
234379
+ totalSamples: zod.z.number().int(),
234380
+ comparableSamples: zod.z.number().int(),
234381
+ flagged: zod.z.number().int(),
234382
+ /** The bar `flagged` counts against, so the panel states the RULE and not
234383
+ * only its current result. */
234384
+ flagThreshold: zod.z.number(),
234385
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
234386
+ * operator asked to see the gallery, not only its accusations. */
234387
+ rows: zod.z.array(IdentitySampleAuditRowSchema).readonly()
234388
+ });
234190
234389
  var FaceInfoSchema = zod.z.object({
234191
234390
  faceId: zod.z.string(),
234192
234391
  deviceId: zod.z.number().int(),
@@ -234314,6 +234513,19 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
234314
234513
  auth: "admin"
234315
234514
  }),
234316
234515
  listIdentitySamples: require_sleep.method(zod.z.object({ identityId: zod.z.string() }), zod.z.array(IdentitySampleInfoSchema).readonly()),
234516
+ /**
234517
+ * Re-analyse ONE person's enrolled samples against the whole gallery.
234518
+ *
234519
+ * A pure read — no write, no inference, just dot products over vectors the
234520
+ * hub already holds (327 of them on this cluster). `admin` for the same
234521
+ * reason `listIdentitySamples` is: the answer names every enrolled person
234522
+ * and how well one person's samples match them, which is the gallery's
234523
+ * shape and not a viewer-level fact.
234524
+ *
234525
+ * Removal deliberately stays `removeSample`: an analysis that could also
234526
+ * delete would be one confirmation away from emptying a gallery.
234527
+ */
234528
+ auditIdentitySamples: require_sleep.method(zod.z.object({ identityId: zod.z.string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }),
234317
234529
  removeSample: require_sleep.method(zod.z.object({
234318
234530
  identityId: zod.z.string(),
234319
234531
  sampleId: zod.z.string()
@@ -234505,28 +234717,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
234505
234717
  percentage: zod.z.number().min(0).max(100)
234506
234718
  }), zod.z.void(), {
234507
234719
  kind: "mutation",
234508
- auth: "admin"
234720
+ auth: "protected"
234509
234721
  }),
234510
234722
  setPreset: require_sleep.method(zod.z.object({
234511
234723
  deviceId: zod.z.number().int().nonnegative(),
234512
234724
  preset: zod.z.string().min(1)
234513
234725
  }), zod.z.void(), {
234514
234726
  kind: "mutation",
234515
- auth: "admin"
234727
+ auth: "protected"
234516
234728
  }),
234517
234729
  setDirection: require_sleep.method(zod.z.object({
234518
234730
  deviceId: zod.z.number().int().nonnegative(),
234519
234731
  direction: FanDirectionSchema
234520
234732
  }), zod.z.void(), {
234521
234733
  kind: "mutation",
234522
- auth: "admin"
234734
+ auth: "protected"
234523
234735
  }),
234524
234736
  setOscillating: require_sleep.method(zod.z.object({
234525
234737
  deviceId: zod.z.number().int().nonnegative(),
234526
234738
  oscillating: zod.z.boolean()
234527
234739
  }), zod.z.void(), {
234528
234740
  kind: "mutation",
234529
- auth: "admin"
234741
+ auth: "protected"
234530
234742
  })
234531
234743
  },
234532
234744
  status: {
@@ -234697,21 +234909,21 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
234697
234909
  on: zod.z.boolean()
234698
234910
  }), zod.z.void(), {
234699
234911
  kind: "mutation",
234700
- auth: "admin"
234912
+ auth: "protected"
234701
234913
  }),
234702
234914
  setTargetHumidity: require_sleep.method(zod.z.object({
234703
234915
  deviceId: zod.z.number().int().nonnegative(),
234704
234916
  humidity: zod.z.number().min(0).max(100)
234705
234917
  }), zod.z.void(), {
234706
234918
  kind: "mutation",
234707
- auth: "admin"
234919
+ auth: "protected"
234708
234920
  }),
234709
234921
  setMode: require_sleep.method(zod.z.object({
234710
234922
  deviceId: zod.z.number().int().nonnegative(),
234711
234923
  mode: zod.z.string().min(1)
234712
234924
  }), zod.z.void(), {
234713
234925
  kind: "mutation",
234714
- auth: "admin"
234926
+ auth: "protected"
234715
234927
  })
234716
234928
  },
234717
234929
  status: {
@@ -235282,15 +235494,15 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235282
235494
  methods: {
235283
235495
  startMowing: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235284
235496
  kind: "mutation",
235285
- auth: "admin"
235497
+ auth: "protected"
235286
235498
  }),
235287
235499
  pause: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235288
235500
  kind: "mutation",
235289
- auth: "admin"
235501
+ auth: "protected"
235290
235502
  }),
235291
235503
  dock: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235292
235504
  kind: "mutation",
235293
- auth: "admin"
235505
+ auth: "protected"
235294
235506
  })
235295
235507
  },
235296
235508
  status: {
@@ -235648,18 +235860,18 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235648
235860
  code: zod.z.string().min(1).optional()
235649
235861
  }), zod.z.void(), {
235650
235862
  kind: "mutation",
235651
- auth: "admin"
235863
+ auth: "protected"
235652
235864
  }),
235653
235865
  unlock: require_sleep.method(zod.z.object({
235654
235866
  deviceId: zod.z.number().int().nonnegative(),
235655
235867
  code: zod.z.string().min(1).optional()
235656
235868
  }), zod.z.void(), {
235657
235869
  kind: "mutation",
235658
- auth: "admin"
235870
+ auth: "protected"
235659
235871
  }),
235660
235872
  open: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235661
235873
  kind: "mutation",
235662
- auth: "admin"
235874
+ auth: "protected"
235663
235875
  })
235664
235876
  },
235665
235877
  status: {
@@ -235750,65 +235962,65 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235750
235962
  methods: {
235751
235963
  play: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235752
235964
  kind: "mutation",
235753
- auth: "admin"
235965
+ auth: "protected"
235754
235966
  }),
235755
235967
  pause: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235756
235968
  kind: "mutation",
235757
- auth: "admin"
235969
+ auth: "protected"
235758
235970
  }),
235759
235971
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235760
235972
  kind: "mutation",
235761
- auth: "admin"
235973
+ auth: "protected"
235762
235974
  }),
235763
235975
  next: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235764
235976
  kind: "mutation",
235765
- auth: "admin"
235977
+ auth: "protected"
235766
235978
  }),
235767
235979
  previous: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235768
235980
  kind: "mutation",
235769
- auth: "admin"
235981
+ auth: "protected"
235770
235982
  }),
235771
235983
  seek: require_sleep.method(zod.z.object({
235772
235984
  deviceId: zod.z.number().int().nonnegative(),
235773
235985
  positionMs: zod.z.number().int().nonnegative()
235774
235986
  }), zod.z.void(), {
235775
235987
  kind: "mutation",
235776
- auth: "admin"
235988
+ auth: "protected"
235777
235989
  }),
235778
235990
  setVolume: require_sleep.method(zod.z.object({
235779
235991
  deviceId: zod.z.number().int().nonnegative(),
235780
235992
  volumeLevel: zod.z.number().min(0).max(100)
235781
235993
  }), zod.z.void(), {
235782
235994
  kind: "mutation",
235783
- auth: "admin"
235995
+ auth: "protected"
235784
235996
  }),
235785
235997
  setMute: require_sleep.method(zod.z.object({
235786
235998
  deviceId: zod.z.number().int().nonnegative(),
235787
235999
  muted: zod.z.boolean()
235788
236000
  }), zod.z.void(), {
235789
236001
  kind: "mutation",
235790
- auth: "admin"
236002
+ auth: "protected"
235791
236003
  }),
235792
236004
  setShuffle: require_sleep.method(zod.z.object({
235793
236005
  deviceId: zod.z.number().int().nonnegative(),
235794
236006
  shuffle: zod.z.boolean()
235795
236007
  }), zod.z.void(), {
235796
236008
  kind: "mutation",
235797
- auth: "admin"
236009
+ auth: "protected"
235798
236010
  }),
235799
236011
  setRepeat: require_sleep.method(zod.z.object({
235800
236012
  deviceId: zod.z.number().int().nonnegative(),
235801
236013
  repeat: MediaPlayerRepeatSchema
235802
236014
  }), zod.z.void(), {
235803
236015
  kind: "mutation",
235804
- auth: "admin"
236016
+ auth: "protected"
235805
236017
  }),
235806
236018
  selectSource: require_sleep.method(zod.z.object({
235807
236019
  deviceId: zod.z.number().int().nonnegative(),
235808
236020
  source: zod.z.string().min(1)
235809
236021
  }), zod.z.void(), {
235810
236022
  kind: "mutation",
235811
- auth: "admin"
236023
+ auth: "protected"
235812
236024
  }),
235813
236025
  playMedia: require_sleep.method(zod.z.object({
235814
236026
  deviceId: zod.z.number().int().nonnegative(),
@@ -235819,7 +236031,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235819
236031
  mediaType: zod.z.string().min(1)
235820
236032
  }), zod.z.void(), {
235821
236033
  kind: "mutation",
235822
- auth: "admin"
236034
+ auth: "protected"
235823
236035
  })
235824
236036
  },
235825
236037
  status: {
@@ -237409,27 +237621,27 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237409
237621
  hopper2: gramsPortion.optional()
237410
237622
  }), zod.z.void(), {
237411
237623
  kind: "mutation",
237412
- auth: "admin"
237624
+ auth: "protected"
237413
237625
  }),
237414
237626
  /** Cancel an in-progress manual feed. */
237415
237627
  cancelFeed: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237416
237628
  kind: "mutation",
237417
- auth: "admin"
237629
+ auth: "protected"
237418
237630
  }),
237419
237631
  /** Reset the desiccant "days remaining" counter after replacing it. */
237420
237632
  resetDesiccant: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237421
237633
  kind: "mutation",
237422
- auth: "admin"
237634
+ auth: "protected"
237423
237635
  }),
237424
237636
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
237425
237637
  markFoodReplenished: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237426
237638
  kind: "mutation",
237427
- auth: "admin"
237639
+ auth: "protected"
237428
237640
  }),
237429
237641
  /** Call the pet with the recorded prompt (D3). */
237430
237642
  callPet: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237431
237643
  kind: "mutation",
237432
- auth: "admin"
237644
+ auth: "protected"
237433
237645
  }),
237434
237646
  /** Play a stored sound by id (D3 / D4H / D4SH). */
237435
237647
  playSound: require_sleep.method(zod.z.object({
@@ -237437,7 +237649,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237437
237649
  soundId: zod.z.number().int().nonnegative()
237438
237650
  }), zod.z.void(), {
237439
237651
  kind: "mutation",
237440
- auth: "admin"
237652
+ auth: "protected"
237441
237653
  }),
237442
237654
  /** Toggle the child-lock (manual-lock) setting. */
237443
237655
  setChildLock: require_sleep.method(zod.z.object({
@@ -237445,7 +237657,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237445
237657
  on: zod.z.boolean()
237446
237658
  }), zod.z.void(), {
237447
237659
  kind: "mutation",
237448
- auth: "admin"
237660
+ auth: "protected"
237449
237661
  }),
237450
237662
  /** Toggle the front indicator light. */
237451
237663
  setIndicatorLight: require_sleep.method(zod.z.object({
@@ -237453,7 +237665,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237453
237665
  on: zod.z.boolean()
237454
237666
  }), zod.z.void(), {
237455
237667
  kind: "mutation",
237456
- auth: "admin"
237668
+ auth: "protected"
237457
237669
  }),
237458
237670
  /** Toggle the dispense chime. */
237459
237671
  setFeedSound: require_sleep.method(zod.z.object({
@@ -237461,7 +237673,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237461
237673
  on: zod.z.boolean()
237462
237674
  }), zod.z.void(), {
237463
237675
  kind: "mutation",
237464
- auth: "admin"
237676
+ auth: "protected"
237465
237677
  }),
237466
237678
  /** Set the speaker / prompt volume level. */
237467
237679
  setVolume: require_sleep.method(zod.z.object({
@@ -237469,7 +237681,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237469
237681
  level: zod.z.number().int().nonnegative()
237470
237682
  }), zod.z.void(), {
237471
237683
  kind: "mutation",
237472
- auth: "admin"
237684
+ auth: "protected"
237473
237685
  })
237474
237686
  },
237475
237687
  status: {
@@ -239853,7 +240065,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
239853
240065
  on: zod.z.boolean()
239854
240066
  }), zod.z.void(), {
239855
240067
  kind: "mutation",
239856
- auth: "admin"
240068
+ auth: "protected"
239857
240069
  }) },
239858
240070
  events: { onStateChanged: { data: zod.z.object({
239859
240071
  deviceId: zod.z.number(),
@@ -240720,30 +240932,30 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
240720
240932
  methods: {
240721
240933
  start: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240722
240934
  kind: "mutation",
240723
- auth: "admin"
240935
+ auth: "protected"
240724
240936
  }),
240725
240937
  pause: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240726
240938
  kind: "mutation",
240727
- auth: "admin"
240939
+ auth: "protected"
240728
240940
  }),
240729
240941
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240730
240942
  kind: "mutation",
240731
- auth: "admin"
240943
+ auth: "protected"
240732
240944
  }),
240733
240945
  returnToBase: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240734
240946
  kind: "mutation",
240735
- auth: "admin"
240947
+ auth: "protected"
240736
240948
  }),
240737
240949
  locate: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240738
240950
  kind: "mutation",
240739
- auth: "admin"
240951
+ auth: "protected"
240740
240952
  }),
240741
240953
  setFanSpeed: require_sleep.method(zod.z.object({
240742
240954
  deviceId: zod.z.number().int().nonnegative(),
240743
240955
  speed: zod.z.string().min(1)
240744
240956
  }), zod.z.void(), {
240745
240957
  kind: "mutation",
240746
- auth: "admin"
240958
+ auth: "protected"
240747
240959
  })
240748
240960
  },
240749
240961
  status: {
@@ -240788,22 +241000,22 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
240788
241000
  methods: {
240789
241001
  open: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240790
241002
  kind: "mutation",
240791
- auth: "admin"
241003
+ auth: "protected"
240792
241004
  }),
240793
241005
  close: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240794
241006
  kind: "mutation",
240795
- auth: "admin"
241007
+ auth: "protected"
240796
241008
  }),
240797
241009
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240798
241010
  kind: "mutation",
240799
- auth: "admin"
241011
+ auth: "protected"
240800
241012
  }),
240801
241013
  setPosition: require_sleep.method(zod.z.object({
240802
241014
  deviceId: zod.z.number().int().nonnegative(),
240803
241015
  position: zod.z.number().min(0).max(100)
240804
241016
  }), zod.z.void(), {
240805
241017
  kind: "mutation",
240806
- auth: "admin"
241018
+ auth: "protected"
240807
241019
  })
240808
241020
  },
240809
241021
  status: {
@@ -240884,21 +241096,21 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
240884
241096
  temp: zod.z.number().finite()
240885
241097
  }), zod.z.void(), {
240886
241098
  kind: "mutation",
240887
- auth: "admin"
241099
+ auth: "protected"
240888
241100
  }),
240889
241101
  setOperationMode: require_sleep.method(zod.z.object({
240890
241102
  deviceId: zod.z.number().int().nonnegative(),
240891
241103
  mode: zod.z.string().min(1)
240892
241104
  }), zod.z.void(), {
240893
241105
  kind: "mutation",
240894
- auth: "admin"
241106
+ auth: "protected"
240895
241107
  }),
240896
241108
  setAway: require_sleep.method(zod.z.object({
240897
241109
  deviceId: zod.z.number().int().nonnegative(),
240898
241110
  on: zod.z.boolean()
240899
241111
  }), zod.z.void(), {
240900
241112
  kind: "mutation",
240901
- auth: "admin"
241113
+ auth: "protected"
240902
241114
  })
240903
241115
  },
240904
241116
  status: {
@@ -247063,6 +247275,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
247063
247275
  addonId: null,
247064
247276
  access: "create"
247065
247277
  },
247278
+ "faceGallery.auditIdentitySamples": {
247279
+ capName: "face-gallery",
247280
+ capScope: "system",
247281
+ addonId: null,
247282
+ access: "view"
247283
+ },
247066
247284
  "faceGallery.createIdentity": {
247067
247285
  capName: "face-gallery",
247068
247286
  capScope: "system",
@@ -254237,6 +254455,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
254237
254455
  renameIdentity: (input) => dispatch("faceGallery", "renameIdentity", "mutation", input),
254238
254456
  deleteIdentity: (input) => dispatch("faceGallery", "deleteIdentity", "mutation", input),
254239
254457
  listIdentitySamples: (input) => dispatch("faceGallery", "listIdentitySamples", "query", input),
254458
+ auditIdentitySamples: (input) => dispatch("faceGallery", "auditIdentitySamples", "query", input),
254240
254459
  removeSample: (input) => dispatch("faceGallery", "removeSample", "mutation", input),
254241
254460
  getFaceMedia: (input) => dispatch("faceGallery", "getFaceMedia", "query", input),
254242
254461
  assignFace: (input) => dispatch("faceGallery", "assignFace", "mutation", input),