camstack 1.2.125 → 1.2.127

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-CNxDnJwz.js
23637
- var require_dist_CNxDnJwz = __commonJS({
23638
- "../system/dist/dist-CNxDnJwz.js"(exports) {
23636
+ // ../system/dist/dist-C5xJy-uL.js
23637
+ var require_dist_C5xJy_uL = __commonJS({
23638
+ "../system/dist/dist-C5xJy-uL.js"(exports) {
23639
23639
  "use strict";
23640
23640
  var zod = require_zod();
23641
23641
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -26065,6 +26065,32 @@ var require_dist_CNxDnJwz = __commonJS({
26065
26065
  for (const tab of tabs) for (const child of fieldsOf(tab)) walkField(child, out);
26066
26066
  }
26067
26067
  }
26068
+ var ArchivedDebugNoteSchema = zod.z.object({
26069
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
26070
+ * same sentence about the same track lands on the row already there. */
26071
+ id: zod.z.string(),
26072
+ /** The operator's own words, verbatim. */
26073
+ note: zod.z.string(),
26074
+ /** The camera. Required — every question here is asked per-camera. */
26075
+ deviceId: zod.z.number().int(),
26076
+ /** The track the note was written on. PROVENANCE, not ownership: the track
26077
+ * is expected to be gone, and this row is not a reference to it. */
26078
+ sourceTrackId: zod.z.string(),
26079
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
26080
+ archivedAt: zod.z.number().int(),
26081
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
26082
+ trackStartedAt: zod.z.number().int().nullable(),
26083
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
26084
+ trackClass: zod.z.string().nullable(),
26085
+ /** The track's display label at review time; `null` when it had none. */
26086
+ trackLabel: zod.z.string().nullable()
26087
+ });
26088
+ var ArchivedDebugNoteQueryInputSchema = zod.z.object({
26089
+ /** Restrict to a single camera; omit for every row. */
26090
+ deviceId: zod.z.number().int().optional(),
26091
+ /** Max rows returned, newest-first. */
26092
+ limit: zod.z.number().int().min(1).max(1e3).optional()
26093
+ });
26068
26094
  var STREAM_QUALITY_LABELS = {
26069
26095
  high: "High",
26070
26096
  mid: "Mid",
@@ -34742,14 +34768,14 @@ var require_dist_CNxDnJwz = __commonJS({
34742
34768
  code: zod.z.string().min(1).optional()
34743
34769
  }), zod.z.void(), {
34744
34770
  kind: "mutation",
34745
- auth: "admin"
34771
+ auth: "protected"
34746
34772
  }),
34747
34773
  disarm: method(zod.z.object({
34748
34774
  deviceId: zod.z.number().int().nonnegative(),
34749
34775
  code: zod.z.string().min(1).optional()
34750
34776
  }), zod.z.void(), {
34751
34777
  kind: "mutation",
34752
- auth: "admin"
34778
+ auth: "protected"
34753
34779
  }),
34754
34780
  /**
34755
34781
  * Force the panel into the `triggered` state — used by HA
@@ -34760,7 +34786,7 @@ var require_dist_CNxDnJwz = __commonJS({
34760
34786
  */
34761
34787
  trigger: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
34762
34788
  kind: "mutation",
34763
- auth: "admin"
34789
+ auth: "protected"
34764
34790
  })
34765
34791
  },
34766
34792
  status: {
@@ -38200,6 +38226,31 @@ var require_dist_CNxDnJwz = __commonJS({
38200
38226
  flags: TrackFlagsPatchSchema
38201
38227
  }), TrackFlagsSchema, { kind: "mutation" }),
38202
38228
  /**
38229
+ * The archived debug notes, newest first — the corpus of what operators
38230
+ * have asked to be checked, across tracks that no longer exist (D405).
38231
+ *
38232
+ * `setTrackFlags` writes it: a patch carrying `debug: false` still clears
38233
+ * the note off the track row in the same statement (D353's invariant is
38234
+ * untouched), but the note is APPENDED here first. That is the whole point
38235
+ * — before D405, finishing a review destroyed every note written during it,
38236
+ * and the ones that survived aged out with their tracks. This method is the
38237
+ * only way to read what was kept.
38238
+ *
38239
+ * `auth: 'protected'`, matching `setTrackFlags` next door and for the same
38240
+ * reason: the notes are written from the viewer, by an authenticated
38241
+ * non-admin session, and a corpus only an admin can read is a corpus the
38242
+ * person who wrote it cannot use. It carries operator prose about cameras
38243
+ * and nothing else — no media, no paths, no identities beyond a track's
38244
+ * own display label.
38245
+ *
38246
+ * Newest-first, capped by `limit` (default
38247
+ * {@link ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT}), optionally one camera. The
38248
+ * table itself is bounded by row count, not by age — see
38249
+ * {@link MAX_ARCHIVED_DEBUG_NOTES} for why an age clock would be the wrong
38250
+ * bound for exactly this data.
38251
+ */
38252
+ listArchivedDebugNotes: method(ArchivedDebugNoteQueryInputSchema, zod.z.array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }),
38253
+ /**
38203
38254
  * Durable event-store footprint for the management UI: event rows
38204
38255
  * (motion + object + audio) counted per camera + total, plus the
38205
38256
  * event-owned media bytes on disk per camera + total. Stat/count-based,
@@ -43020,7 +43071,7 @@ var require_dist_CNxDnJwz = __commonJS({
43020
43071
  percentage: zod.z.number().min(0).max(100)
43021
43072
  }), zod.z.void(), {
43022
43073
  kind: "mutation",
43023
- auth: "admin"
43074
+ auth: "protected"
43024
43075
  }) },
43025
43076
  events: {
43026
43077
  /**
@@ -43060,7 +43111,7 @@ var require_dist_CNxDnJwz = __commonJS({
43060
43111
  deviceTypes: [DeviceType.Button],
43061
43112
  methods: { press: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43062
43113
  kind: "mutation",
43063
- auth: "admin"
43114
+ auth: "protected"
43064
43115
  }) }
43065
43116
  };
43066
43117
  var CameraCredentialsSchema = zod.z.object({
@@ -43207,28 +43258,28 @@ var require_dist_CNxDnJwz = __commonJS({
43207
43258
  mode: HvacModeSchema
43208
43259
  }), zod.z.void(), {
43209
43260
  kind: "mutation",
43210
- auth: "admin"
43261
+ auth: "protected"
43211
43262
  }),
43212
43263
  setFanMode: method(zod.z.object({
43213
43264
  deviceId: zod.z.number().int().nonnegative(),
43214
43265
  fanMode: zod.z.string().min(1)
43215
43266
  }), zod.z.void(), {
43216
43267
  kind: "mutation",
43217
- auth: "admin"
43268
+ auth: "protected"
43218
43269
  }),
43219
43270
  setPreset: method(zod.z.object({
43220
43271
  deviceId: zod.z.number().int().nonnegative(),
43221
43272
  preset: zod.z.string().min(1)
43222
43273
  }), zod.z.void(), {
43223
43274
  kind: "mutation",
43224
- auth: "admin"
43275
+ auth: "protected"
43225
43276
  }),
43226
43277
  setTarget: method(zod.z.object({
43227
43278
  deviceId: zod.z.number().int().nonnegative(),
43228
43279
  target: zod.z.number()
43229
43280
  }), zod.z.void(), {
43230
43281
  kind: "mutation",
43231
- auth: "admin"
43282
+ auth: "protected"
43232
43283
  }),
43233
43284
  setTargetRange: method(zod.z.object({
43234
43285
  deviceId: zod.z.number().int().nonnegative(),
@@ -43236,28 +43287,28 @@ var require_dist_CNxDnJwz = __commonJS({
43236
43287
  targetHigh: zod.z.number()
43237
43288
  }), zod.z.void(), {
43238
43289
  kind: "mutation",
43239
- auth: "admin"
43290
+ auth: "protected"
43240
43291
  }),
43241
43292
  setTargetHumidity: method(zod.z.object({
43242
43293
  deviceId: zod.z.number().int().nonnegative(),
43243
43294
  targetHumidity: zod.z.number().min(0).max(100)
43244
43295
  }), zod.z.void(), {
43245
43296
  kind: "mutation",
43246
- auth: "admin"
43297
+ auth: "protected"
43247
43298
  }),
43248
43299
  setSwingVertical: method(zod.z.object({
43249
43300
  deviceId: zod.z.number().int().nonnegative(),
43250
43301
  on: zod.z.boolean()
43251
43302
  }), zod.z.void(), {
43252
43303
  kind: "mutation",
43253
- auth: "admin"
43304
+ auth: "protected"
43254
43305
  }),
43255
43306
  setSwingHorizontal: method(zod.z.object({
43256
43307
  deviceId: zod.z.number().int().nonnegative(),
43257
43308
  on: zod.z.boolean()
43258
43309
  }), zod.z.void(), {
43259
43310
  kind: "mutation",
43260
- auth: "admin"
43311
+ auth: "protected"
43261
43312
  })
43262
43313
  },
43263
43314
  status: {
@@ -43333,7 +43384,7 @@ var require_dist_CNxDnJwz = __commonJS({
43333
43384
  color: ColorInputSchema
43334
43385
  }), zod.z.void(), {
43335
43386
  kind: "mutation",
43336
- auth: "admin"
43387
+ auth: "protected"
43337
43388
  }) },
43338
43389
  events: {
43339
43390
  /**
@@ -43613,7 +43664,7 @@ var require_dist_CNxDnJwz = __commonJS({
43613
43664
  control: ControlSetValueInputSchema
43614
43665
  }), zod.z.void(), {
43615
43666
  kind: "mutation",
43616
- auth: "admin"
43667
+ auth: "protected"
43617
43668
  }) },
43618
43669
  status: {
43619
43670
  schema: ControlStatusSchema,
@@ -43660,29 +43711,29 @@ var require_dist_CNxDnJwz = __commonJS({
43660
43711
  methods: {
43661
43712
  open: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43662
43713
  kind: "mutation",
43663
- auth: "admin"
43714
+ auth: "protected"
43664
43715
  }),
43665
43716
  close: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43666
43717
  kind: "mutation",
43667
- auth: "admin"
43718
+ auth: "protected"
43668
43719
  }),
43669
43720
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
43670
43721
  kind: "mutation",
43671
- auth: "admin"
43722
+ auth: "protected"
43672
43723
  }),
43673
43724
  setPosition: method(zod.z.object({
43674
43725
  deviceId: zod.z.number().int().nonnegative(),
43675
43726
  position: zod.z.number().min(0).max(100)
43676
43727
  }), zod.z.void(), {
43677
43728
  kind: "mutation",
43678
- auth: "admin"
43729
+ auth: "protected"
43679
43730
  }),
43680
43731
  setTiltPosition: method(zod.z.object({
43681
43732
  deviceId: zod.z.number().int().nonnegative(),
43682
43733
  tiltPosition: zod.z.number().min(0).max(100)
43683
43734
  }), zod.z.void(), {
43684
43735
  kind: "mutation",
43685
- auth: "admin"
43736
+ auth: "protected"
43686
43737
  })
43687
43738
  },
43688
43739
  status: {
@@ -44363,28 +44414,28 @@ var require_dist_CNxDnJwz = __commonJS({
44363
44414
  percentage: zod.z.number().min(0).max(100)
44364
44415
  }), zod.z.void(), {
44365
44416
  kind: "mutation",
44366
- auth: "admin"
44417
+ auth: "protected"
44367
44418
  }),
44368
44419
  setPreset: method(zod.z.object({
44369
44420
  deviceId: zod.z.number().int().nonnegative(),
44370
44421
  preset: zod.z.string().min(1)
44371
44422
  }), zod.z.void(), {
44372
44423
  kind: "mutation",
44373
- auth: "admin"
44424
+ auth: "protected"
44374
44425
  }),
44375
44426
  setDirection: method(zod.z.object({
44376
44427
  deviceId: zod.z.number().int().nonnegative(),
44377
44428
  direction: FanDirectionSchema
44378
44429
  }), zod.z.void(), {
44379
44430
  kind: "mutation",
44380
- auth: "admin"
44431
+ auth: "protected"
44381
44432
  }),
44382
44433
  setOscillating: method(zod.z.object({
44383
44434
  deviceId: zod.z.number().int().nonnegative(),
44384
44435
  oscillating: zod.z.boolean()
44385
44436
  }), zod.z.void(), {
44386
44437
  kind: "mutation",
44387
- auth: "admin"
44438
+ auth: "protected"
44388
44439
  })
44389
44440
  },
44390
44441
  status: {
@@ -44555,21 +44606,21 @@ var require_dist_CNxDnJwz = __commonJS({
44555
44606
  on: zod.z.boolean()
44556
44607
  }), zod.z.void(), {
44557
44608
  kind: "mutation",
44558
- auth: "admin"
44609
+ auth: "protected"
44559
44610
  }),
44560
44611
  setTargetHumidity: method(zod.z.object({
44561
44612
  deviceId: zod.z.number().int().nonnegative(),
44562
44613
  humidity: zod.z.number().min(0).max(100)
44563
44614
  }), zod.z.void(), {
44564
44615
  kind: "mutation",
44565
- auth: "admin"
44616
+ auth: "protected"
44566
44617
  }),
44567
44618
  setMode: method(zod.z.object({
44568
44619
  deviceId: zod.z.number().int().nonnegative(),
44569
44620
  mode: zod.z.string().min(1)
44570
44621
  }), zod.z.void(), {
44571
44622
  kind: "mutation",
44572
- auth: "admin"
44623
+ auth: "protected"
44573
44624
  })
44574
44625
  },
44575
44626
  status: {
@@ -45140,15 +45191,15 @@ var require_dist_CNxDnJwz = __commonJS({
45140
45191
  methods: {
45141
45192
  startMowing: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45142
45193
  kind: "mutation",
45143
- auth: "admin"
45194
+ auth: "protected"
45144
45195
  }),
45145
45196
  pause: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45146
45197
  kind: "mutation",
45147
- auth: "admin"
45198
+ auth: "protected"
45148
45199
  }),
45149
45200
  dock: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45150
45201
  kind: "mutation",
45151
- auth: "admin"
45202
+ auth: "protected"
45152
45203
  })
45153
45204
  },
45154
45205
  status: {
@@ -45506,18 +45557,18 @@ var require_dist_CNxDnJwz = __commonJS({
45506
45557
  code: zod.z.string().min(1).optional()
45507
45558
  }), zod.z.void(), {
45508
45559
  kind: "mutation",
45509
- auth: "admin"
45560
+ auth: "protected"
45510
45561
  }),
45511
45562
  unlock: method(zod.z.object({
45512
45563
  deviceId: zod.z.number().int().nonnegative(),
45513
45564
  code: zod.z.string().min(1).optional()
45514
45565
  }), zod.z.void(), {
45515
45566
  kind: "mutation",
45516
- auth: "admin"
45567
+ auth: "protected"
45517
45568
  }),
45518
45569
  open: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45519
45570
  kind: "mutation",
45520
- auth: "admin"
45571
+ auth: "protected"
45521
45572
  })
45522
45573
  },
45523
45574
  status: {
@@ -45608,65 +45659,65 @@ var require_dist_CNxDnJwz = __commonJS({
45608
45659
  methods: {
45609
45660
  play: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45610
45661
  kind: "mutation",
45611
- auth: "admin"
45662
+ auth: "protected"
45612
45663
  }),
45613
45664
  pause: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45614
45665
  kind: "mutation",
45615
- auth: "admin"
45666
+ auth: "protected"
45616
45667
  }),
45617
45668
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45618
45669
  kind: "mutation",
45619
- auth: "admin"
45670
+ auth: "protected"
45620
45671
  }),
45621
45672
  next: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45622
45673
  kind: "mutation",
45623
- auth: "admin"
45674
+ auth: "protected"
45624
45675
  }),
45625
45676
  previous: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
45626
45677
  kind: "mutation",
45627
- auth: "admin"
45678
+ auth: "protected"
45628
45679
  }),
45629
45680
  seek: method(zod.z.object({
45630
45681
  deviceId: zod.z.number().int().nonnegative(),
45631
45682
  positionMs: zod.z.number().int().nonnegative()
45632
45683
  }), zod.z.void(), {
45633
45684
  kind: "mutation",
45634
- auth: "admin"
45685
+ auth: "protected"
45635
45686
  }),
45636
45687
  setVolume: method(zod.z.object({
45637
45688
  deviceId: zod.z.number().int().nonnegative(),
45638
45689
  volumeLevel: zod.z.number().min(0).max(100)
45639
45690
  }), zod.z.void(), {
45640
45691
  kind: "mutation",
45641
- auth: "admin"
45692
+ auth: "protected"
45642
45693
  }),
45643
45694
  setMute: method(zod.z.object({
45644
45695
  deviceId: zod.z.number().int().nonnegative(),
45645
45696
  muted: zod.z.boolean()
45646
45697
  }), zod.z.void(), {
45647
45698
  kind: "mutation",
45648
- auth: "admin"
45699
+ auth: "protected"
45649
45700
  }),
45650
45701
  setShuffle: method(zod.z.object({
45651
45702
  deviceId: zod.z.number().int().nonnegative(),
45652
45703
  shuffle: zod.z.boolean()
45653
45704
  }), zod.z.void(), {
45654
45705
  kind: "mutation",
45655
- auth: "admin"
45706
+ auth: "protected"
45656
45707
  }),
45657
45708
  setRepeat: method(zod.z.object({
45658
45709
  deviceId: zod.z.number().int().nonnegative(),
45659
45710
  repeat: MediaPlayerRepeatSchema
45660
45711
  }), zod.z.void(), {
45661
45712
  kind: "mutation",
45662
- auth: "admin"
45713
+ auth: "protected"
45663
45714
  }),
45664
45715
  selectSource: method(zod.z.object({
45665
45716
  deviceId: zod.z.number().int().nonnegative(),
45666
45717
  source: zod.z.string().min(1)
45667
45718
  }), zod.z.void(), {
45668
45719
  kind: "mutation",
45669
- auth: "admin"
45720
+ auth: "protected"
45670
45721
  }),
45671
45722
  playMedia: method(zod.z.object({
45672
45723
  deviceId: zod.z.number().int().nonnegative(),
@@ -45677,7 +45728,7 @@ var require_dist_CNxDnJwz = __commonJS({
45677
45728
  mediaType: zod.z.string().min(1)
45678
45729
  }), zod.z.void(), {
45679
45730
  kind: "mutation",
45680
- auth: "admin"
45731
+ auth: "protected"
45681
45732
  })
45682
45733
  },
45683
45734
  status: {
@@ -47126,27 +47177,27 @@ var require_dist_CNxDnJwz = __commonJS({
47126
47177
  hopper2: gramsPortion.optional()
47127
47178
  }), zod.z.void(), {
47128
47179
  kind: "mutation",
47129
- auth: "admin"
47180
+ auth: "protected"
47130
47181
  }),
47131
47182
  /** Cancel an in-progress manual feed. */
47132
47183
  cancelFeed: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47133
47184
  kind: "mutation",
47134
- auth: "admin"
47185
+ auth: "protected"
47135
47186
  }),
47136
47187
  /** Reset the desiccant "days remaining" counter after replacing it. */
47137
47188
  resetDesiccant: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47138
47189
  kind: "mutation",
47139
- auth: "admin"
47190
+ auth: "protected"
47140
47191
  }),
47141
47192
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
47142
47193
  markFoodReplenished: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47143
47194
  kind: "mutation",
47144
- auth: "admin"
47195
+ auth: "protected"
47145
47196
  }),
47146
47197
  /** Call the pet with the recorded prompt (D3). */
47147
47198
  callPet: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
47148
47199
  kind: "mutation",
47149
- auth: "admin"
47200
+ auth: "protected"
47150
47201
  }),
47151
47202
  /** Play a stored sound by id (D3 / D4H / D4SH). */
47152
47203
  playSound: method(zod.z.object({
@@ -47154,7 +47205,7 @@ var require_dist_CNxDnJwz = __commonJS({
47154
47205
  soundId: zod.z.number().int().nonnegative()
47155
47206
  }), zod.z.void(), {
47156
47207
  kind: "mutation",
47157
- auth: "admin"
47208
+ auth: "protected"
47158
47209
  }),
47159
47210
  /** Toggle the child-lock (manual-lock) setting. */
47160
47211
  setChildLock: method(zod.z.object({
@@ -47162,7 +47213,7 @@ var require_dist_CNxDnJwz = __commonJS({
47162
47213
  on: zod.z.boolean()
47163
47214
  }), zod.z.void(), {
47164
47215
  kind: "mutation",
47165
- auth: "admin"
47216
+ auth: "protected"
47166
47217
  }),
47167
47218
  /** Toggle the front indicator light. */
47168
47219
  setIndicatorLight: method(zod.z.object({
@@ -47170,7 +47221,7 @@ var require_dist_CNxDnJwz = __commonJS({
47170
47221
  on: zod.z.boolean()
47171
47222
  }), zod.z.void(), {
47172
47223
  kind: "mutation",
47173
- auth: "admin"
47224
+ auth: "protected"
47174
47225
  }),
47175
47226
  /** Toggle the dispense chime. */
47176
47227
  setFeedSound: method(zod.z.object({
@@ -47178,7 +47229,7 @@ var require_dist_CNxDnJwz = __commonJS({
47178
47229
  on: zod.z.boolean()
47179
47230
  }), zod.z.void(), {
47180
47231
  kind: "mutation",
47181
- auth: "admin"
47232
+ auth: "protected"
47182
47233
  }),
47183
47234
  /** Set the speaker / prompt volume level. */
47184
47235
  setVolume: method(zod.z.object({
@@ -47186,7 +47237,7 @@ var require_dist_CNxDnJwz = __commonJS({
47186
47237
  level: zod.z.number().int().nonnegative()
47187
47238
  }), zod.z.void(), {
47188
47239
  kind: "mutation",
47189
- auth: "admin"
47240
+ auth: "protected"
47190
47241
  })
47191
47242
  },
47192
47243
  status: {
@@ -49548,7 +49599,7 @@ var require_dist_CNxDnJwz = __commonJS({
49548
49599
  on: zod.z.boolean()
49549
49600
  }), zod.z.void(), {
49550
49601
  kind: "mutation",
49551
- auth: "admin"
49602
+ auth: "protected"
49552
49603
  }) },
49553
49604
  events: { onStateChanged: { data: zod.z.object({
49554
49605
  deviceId: zod.z.number(),
@@ -50414,30 +50465,30 @@ var require_dist_CNxDnJwz = __commonJS({
50414
50465
  methods: {
50415
50466
  start: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50416
50467
  kind: "mutation",
50417
- auth: "admin"
50468
+ auth: "protected"
50418
50469
  }),
50419
50470
  pause: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50420
50471
  kind: "mutation",
50421
- auth: "admin"
50472
+ auth: "protected"
50422
50473
  }),
50423
50474
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50424
50475
  kind: "mutation",
50425
- auth: "admin"
50476
+ auth: "protected"
50426
50477
  }),
50427
50478
  returnToBase: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50428
50479
  kind: "mutation",
50429
- auth: "admin"
50480
+ auth: "protected"
50430
50481
  }),
50431
50482
  locate: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50432
50483
  kind: "mutation",
50433
- auth: "admin"
50484
+ auth: "protected"
50434
50485
  }),
50435
50486
  setFanSpeed: method(zod.z.object({
50436
50487
  deviceId: zod.z.number().int().nonnegative(),
50437
50488
  speed: zod.z.string().min(1)
50438
50489
  }), zod.z.void(), {
50439
50490
  kind: "mutation",
50440
- auth: "admin"
50491
+ auth: "protected"
50441
50492
  })
50442
50493
  },
50443
50494
  status: {
@@ -50482,22 +50533,22 @@ var require_dist_CNxDnJwz = __commonJS({
50482
50533
  methods: {
50483
50534
  open: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50484
50535
  kind: "mutation",
50485
- auth: "admin"
50536
+ auth: "protected"
50486
50537
  }),
50487
50538
  close: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50488
50539
  kind: "mutation",
50489
- auth: "admin"
50540
+ auth: "protected"
50490
50541
  }),
50491
50542
  stop: method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
50492
50543
  kind: "mutation",
50493
- auth: "admin"
50544
+ auth: "protected"
50494
50545
  }),
50495
50546
  setPosition: method(zod.z.object({
50496
50547
  deviceId: zod.z.number().int().nonnegative(),
50497
50548
  position: zod.z.number().min(0).max(100)
50498
50549
  }), zod.z.void(), {
50499
50550
  kind: "mutation",
50500
- auth: "admin"
50551
+ auth: "protected"
50501
50552
  })
50502
50553
  },
50503
50554
  status: {
@@ -50578,21 +50629,21 @@ var require_dist_CNxDnJwz = __commonJS({
50578
50629
  temp: zod.z.number().finite()
50579
50630
  }), zod.z.void(), {
50580
50631
  kind: "mutation",
50581
- auth: "admin"
50632
+ auth: "protected"
50582
50633
  }),
50583
50634
  setOperationMode: method(zod.z.object({
50584
50635
  deviceId: zod.z.number().int().nonnegative(),
50585
50636
  mode: zod.z.string().min(1)
50586
50637
  }), zod.z.void(), {
50587
50638
  kind: "mutation",
50588
- auth: "admin"
50639
+ auth: "protected"
50589
50640
  }),
50590
50641
  setAway: method(zod.z.object({
50591
50642
  deviceId: zod.z.number().int().nonnegative(),
50592
50643
  on: zod.z.boolean()
50593
50644
  }), zod.z.void(), {
50594
50645
  kind: "mutation",
50595
- auth: "admin"
50646
+ auth: "protected"
50596
50647
  })
50597
50648
  },
50598
50649
  status: {
@@ -54944,6 +54995,12 @@ var require_dist_CNxDnJwz = __commonJS({
54944
54995
  addonId: null,
54945
54996
  access: "view"
54946
54997
  },
54998
+ "pipelineAnalytics.listArchivedDebugNotes": {
54999
+ capName: "pipeline-analytics",
55000
+ capScope: "device",
55001
+ addonId: null,
55002
+ access: "view"
55003
+ },
54947
55004
  "pipelineAnalytics.listEventKinds": {
54948
55005
  capName: "pipeline-analytics",
54949
55006
  capScope: "device",
@@ -58731,6 +58788,11 @@ var require_dist_CNxDnJwz = __commonJS({
58731
58788
  form: "array",
58732
58789
  optional: true
58733
58790
  }],
58791
+ "pipelineAnalytics.listArchivedDebugNotes": [{
58792
+ name: "deviceId",
58793
+ form: "single",
58794
+ optional: true
58795
+ }],
58734
58796
  "pipelineAnalytics.listEventKinds": [{
58735
58797
  name: "deviceId",
58736
58798
  form: "single",
@@ -61043,7 +61105,7 @@ var require_alerts_addon = __commonJS({
61043
61105
  [Symbol.toStringTag]: { value: "Module" }
61044
61106
  });
61045
61107
  require_chunk_Cek0wNdY();
61046
- var require_dist10 = require_dist_CNxDnJwz();
61108
+ var require_dist10 = require_dist_C5xJy_uL();
61047
61109
  function selectExpired(alerts, cutoffMs) {
61048
61110
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
61049
61111
  }
@@ -61862,7 +61924,7 @@ var require_console_logging = __commonJS({
61862
61924
  [Symbol.toStringTag]: { value: "Module" }
61863
61925
  });
61864
61926
  require_chunk_Cek0wNdY();
61865
- var require_dist10 = require_dist_CNxDnJwz();
61927
+ var require_dist10 = require_dist_C5xJy_uL();
61866
61928
  var require_formatter = require_formatter_DqAKDlvN();
61867
61929
  var LEVEL_RANK = {
61868
61930
  debug: 0,
@@ -61956,7 +62018,7 @@ var require_core_blocks_addon = __commonJS({
61956
62018
  "use strict";
61957
62019
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
61958
62020
  var require_chunk = require_chunk_Cek0wNdY();
61959
- var require_dist10 = require_dist_CNxDnJwz();
62021
+ var require_dist10 = require_dist_C5xJy_uL();
61960
62022
  var node_crypto = __require("crypto");
61961
62023
  var node_fs_promises = __require("fs/promises");
61962
62024
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -62853,11 +62915,11 @@ var require_core_blocks = __commonJS({
62853
62915
  }
62854
62916
  });
62855
62917
 
62856
- // ../system/dist/retired-settings-keys-D9wnrXOC.js
62857
- var require_retired_settings_keys_D9wnrXOC = __commonJS({
62858
- "../system/dist/retired-settings-keys-D9wnrXOC.js"(exports) {
62918
+ // ../system/dist/retired-settings-keys-CONISA8J.js
62919
+ var require_retired_settings_keys_CONISA8J = __commonJS({
62920
+ "../system/dist/retired-settings-keys-CONISA8J.js"(exports) {
62859
62921
  "use strict";
62860
- var require_dist10 = require_dist_CNxDnJwz();
62922
+ var require_dist10 = require_dist_C5xJy_uL();
62861
62923
  function settingsStoreIsAuthoritativeHere(env) {
62862
62924
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
62863
62925
  return raw === "" || raw === "hub";
@@ -65092,8 +65154,8 @@ var require_device_manager_addon = __commonJS({
65092
65154
  [Symbol.toStringTag]: { value: "Module" }
65093
65155
  });
65094
65156
  require_chunk_Cek0wNdY();
65095
- var require_dist10 = require_dist_CNxDnJwz();
65096
- var require_retired_settings_keys = require_retired_settings_keys_D9wnrXOC();
65157
+ var require_dist10 = require_dist_C5xJy_uL();
65158
+ var require_retired_settings_keys = require_retired_settings_keys_CONISA8J();
65097
65159
  var node_crypto = __require("crypto");
65098
65160
  var _camstack_types_node = require_node();
65099
65161
  var JOB_HISTORY = 20;
@@ -70718,7 +70780,7 @@ var require_hub_forwarder = __commonJS({
70718
70780
  [Symbol.toStringTag]: { value: "Module" }
70719
70781
  });
70720
70782
  require_chunk_Cek0wNdY();
70721
- var require_dist10 = require_dist_CNxDnJwz();
70783
+ var require_dist10 = require_dist_C5xJy_uL();
70722
70784
  var require_formatter = require_formatter_DqAKDlvN();
70723
70785
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
70724
70786
  var HubForwarderDestination = class {
@@ -70855,7 +70917,7 @@ var require_liveness_monitor_addon = __commonJS({
70855
70917
  "use strict";
70856
70918
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
70857
70919
  require_chunk_Cek0wNdY();
70858
- var require_dist10 = require_dist_CNxDnJwz();
70920
+ var require_dist10 = require_dist_C5xJy_uL();
70859
70921
  var NO_DEVICES = "liveness:no-devices";
70860
70922
  var ALL_OFFLINE = "liveness:all-devices-offline";
70861
70923
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -71051,7 +71113,7 @@ var require_local_auth_addon = __commonJS({
71051
71113
  [Symbol.toStringTag]: { value: "Module" }
71052
71114
  });
71053
71115
  var require_chunk = require_chunk_Cek0wNdY();
71054
- var require_dist10 = require_dist_CNxDnJwz();
71116
+ var require_dist10 = require_dist_C5xJy_uL();
71055
71117
  var node_crypto = __require("crypto");
71056
71118
  node_crypto = require_chunk.__toESM(node_crypto);
71057
71119
  var crypto$1 = __require("crypto");
@@ -78864,7 +78926,7 @@ var require_loki_logging = __commonJS({
78864
78926
  [Symbol.toStringTag]: { value: "Module" }
78865
78927
  });
78866
78928
  require_chunk_Cek0wNdY();
78867
- var require_dist10 = require_dist_CNxDnJwz();
78929
+ var require_dist10 = require_dist_C5xJy_uL();
78868
78930
  function sanitizeLabelName(raw) {
78869
78931
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
78870
78932
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -79429,7 +79491,7 @@ var require_native_metrics_addon = __commonJS({
79429
79491
  [Symbol.toStringTag]: { value: "Module" }
79430
79492
  });
79431
79493
  var require_chunk = require_chunk_Cek0wNdY();
79432
- var require_dist10 = require_dist_CNxDnJwz();
79494
+ var require_dist10 = require_dist_C5xJy_uL();
79433
79495
  var node_fs_promises = __require("fs/promises");
79434
79496
  var node_child_process = __require("child_process");
79435
79497
  var node_util = __require("util");
@@ -82013,7 +82075,7 @@ var require_filesystem_storage_addon = __commonJS({
82013
82075
  [Symbol.toStringTag]: { value: "Module" }
82014
82076
  });
82015
82077
  var require_chunk = require_chunk_Cek0wNdY();
82016
- var require_dist10 = require_dist_CNxDnJwz();
82078
+ var require_dist10 = require_dist_C5xJy_uL();
82017
82079
  var node_crypto = __require("crypto");
82018
82080
  var node_fs_promises = __require("fs/promises");
82019
82081
  var node_path = __require("path");
@@ -83129,8 +83191,8 @@ var require_sqlite_settings_addon = __commonJS({
83129
83191
  [Symbol.toStringTag]: { value: "Module" }
83130
83192
  });
83131
83193
  var require_chunk = require_chunk_Cek0wNdY();
83132
- var require_dist10 = require_dist_CNxDnJwz();
83133
- var require_retired_settings_keys = require_retired_settings_keys_D9wnrXOC();
83194
+ var require_dist10 = require_dist_C5xJy_uL();
83195
+ var require_retired_settings_keys = require_retired_settings_keys_CONISA8J();
83134
83196
  var node_crypto = __require("crypto");
83135
83197
  var node_fs = __require("fs");
83136
83198
  var node_module = __require("module");
@@ -85634,7 +85696,7 @@ var require_storage_orchestrator_addon = __commonJS({
85634
85696
  [Symbol.toStringTag]: { value: "Module" }
85635
85697
  });
85636
85698
  var require_chunk = require_chunk_Cek0wNdY();
85637
- var require_dist10 = require_dist_CNxDnJwz();
85699
+ var require_dist10 = require_dist_C5xJy_uL();
85638
85700
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
85639
85701
  var zod = require_zod();
85640
85702
  var node_crypto = __require("crypto");
@@ -86610,6 +86672,41 @@ var require_storage_orchestrator_addon = __commonJS({
86610
86672
  }
86611
86673
  };
86612
86674
  }
86675
+ async function collectFiles(io, prefix) {
86676
+ const entries = await io.list(prefix);
86677
+ const files = [];
86678
+ for (const entry of entries) {
86679
+ if ((await io.list(entry)).length > 0) {
86680
+ files.push(...await collectFiles(io, entry));
86681
+ continue;
86682
+ }
86683
+ files.push(entry);
86684
+ }
86685
+ return files;
86686
+ }
86687
+ async function moveLocationTree(io) {
86688
+ const candidates = await collectFiles(io);
86689
+ const copied = [];
86690
+ let bytes = 0;
86691
+ for (const relativePath of candidates) {
86692
+ let data;
86693
+ try {
86694
+ data = await io.read(relativePath);
86695
+ } catch {
86696
+ continue;
86697
+ }
86698
+ await io.write(relativePath, data);
86699
+ const landed = await io.readBack(relativePath);
86700
+ if (landed.length !== data.length) throw new Error(`location repoint: size mismatch after copying "${relativePath}" (${String(landed.length)} != ${String(data.length)}) \u2014 nothing deleted`);
86701
+ copied.push(relativePath);
86702
+ bytes += data.length;
86703
+ }
86704
+ for (const relativePath of copied) await io.deleteSource(relativePath);
86705
+ return {
86706
+ files: copied.length,
86707
+ bytes
86708
+ };
86709
+ }
86613
86710
  function resolveRefusalFor(location, locality) {
86614
86711
  if (locality !== false) return null;
86615
86712
  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.`;
@@ -88368,10 +88465,12 @@ var require_storage_orchestrator_addon = __commonJS({
88368
88465
  upsertLocation: async (input) => {
88369
88466
  const stored = service.getLocationById(input.id);
88370
88467
  const config = restoreRedactedSecrets(input.config, stored?.config, this.secretKeysFor(input.providerId, stored?.config ?? {}));
88371
- const saved = service.upsertLocation(config === input.config ? input : {
88468
+ const next = config === input.config ? input : {
88372
88469
  ...input,
88373
88470
  config
88374
- });
88471
+ };
88472
+ await this.carryDataOnRepoint(stored, next);
88473
+ const saved = service.upsertLocation(next);
88375
88474
  this.announceLocationsChanged(saved.id, saved.type, "upsert");
88376
88475
  return this.redacted(saved);
88377
88476
  },
@@ -88866,6 +88965,63 @@ var require_storage_orchestrator_addon = __commonJS({
88866
88965
  return this.secretKeysByProvider.get(providerId);
88867
88966
  }
88868
88967
  /** Which keys of a given stored config must never leave this process. */
88968
+ /**
88969
+ * Move a singleton location's bytes when its root changes.
88970
+ *
88971
+ * Runs BEFORE the row is saved: a copy that fails throws out of the mutation,
88972
+ * so the location keeps pointing at the intact original and the operator is
88973
+ * told why rather than discovering it in a blank panel weeks later.
88974
+ * `moveLocationTree` deletes nothing until every file has been read back from
88975
+ * the destination.
88976
+ *
88977
+ * A no-op for everything else — a rename, a mode change, a `multi` kind, or a
88978
+ * location being created for the first time.
88979
+ */
88980
+ async carryDataOnRepoint(stored, next) {
88981
+ if (stored === void 0) return;
88982
+ const service = this.service;
88983
+ if (service === null) return;
88984
+ if (service.listDeclarations().find((entry) => entry.id === next.type)?.cardinality !== "single") return;
88985
+ const from = stored.config["basePath"];
88986
+ const to = next.config["basePath"];
88987
+ if (typeof from !== "string" || typeof to !== "string" || from === to) return;
88988
+ const source = await service.getProviderFor(stored);
88989
+ const target = {
88990
+ ...stored,
88991
+ config: next.config
88992
+ };
88993
+ const destination = await service.getProviderFor(target);
88994
+ const moved = await moveLocationTree({
88995
+ list: (prefix) => source.list(prefix === void 0 ? { location: stored } : {
88996
+ location: stored,
88997
+ prefix
88998
+ }),
88999
+ read: (relativePath) => source.read({
89000
+ location: stored,
89001
+ relativePath
89002
+ }),
89003
+ write: (relativePath, data) => destination.write({
89004
+ location: target,
89005
+ relativePath,
89006
+ data
89007
+ }),
89008
+ readBack: (relativePath) => destination.read({
89009
+ location: target,
89010
+ relativePath
89011
+ }),
89012
+ deleteSource: (relativePath) => source.delete({
89013
+ location: stored,
89014
+ relativePath
89015
+ })
89016
+ });
89017
+ this.ctx.logger.info("storage-orchestrator: singleton location re-pointed \u2014 its data was carried over", { meta: {
89018
+ id: stored.id,
89019
+ type: stored.type,
89020
+ from,
89021
+ to,
89022
+ ...moved
89023
+ } });
89024
+ }
88869
89025
  secretKeysFor(providerId, config) {
88870
89026
  return secretKeysForConfig(config, this.declaredSecretKeys(providerId));
88871
89027
  }
@@ -89190,7 +89346,7 @@ var require_system_config_addon = __commonJS({
89190
89346
  [Symbol.toStringTag]: { value: "Module" }
89191
89347
  });
89192
89348
  require_chunk_Cek0wNdY();
89193
- var require_dist10 = require_dist_CNxDnJwz();
89349
+ var require_dist10 = require_dist_C5xJy_uL();
89194
89350
  var SECTION_TITLES = {
89195
89351
  server: "Server",
89196
89352
  auth: "Authentication"
@@ -107251,7 +107407,7 @@ var require_winston_logging = __commonJS({
107251
107407
  [Symbol.toStringTag]: { value: "Module" }
107252
107408
  });
107253
107409
  var require_chunk = require_chunk_Cek0wNdY();
107254
- var require_dist10 = require_dist_CNxDnJwz();
107410
+ var require_dist10 = require_dist_C5xJy_uL();
107255
107411
  var require_formatter = require_formatter_DqAKDlvN();
107256
107412
  var node_path = __require("path");
107257
107413
  node_path = require_chunk.__toESM(node_path);
@@ -109196,9 +109352,9 @@ var require_event_category_BVo6ta6 = __commonJS({
109196
109352
  }
109197
109353
  });
109198
109354
 
109199
- // ../types/dist/sleep-BZtO-eFY.js
109200
- var require_sleep_BZtO_eFY = __commonJS({
109201
- "../types/dist/sleep-BZtO-eFY.js"(exports) {
109355
+ // ../types/dist/sleep-IjLtwkO5.js
109356
+ var require_sleep_IjLtwkO5 = __commonJS({
109357
+ "../types/dist/sleep-IjLtwkO5.js"(exports) {
109202
109358
  "use strict";
109203
109359
  var require_event_category = require_event_category_BVo6ta6();
109204
109360
  var zod = require_zod();
@@ -111930,6 +112086,7 @@ var require_sleep_BZtO_eFY = __commonJS({
111930
112086
  reconcileFromDisk: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "reconcileFromDisk", "mutation", input),
111931
112087
  deleteTracks: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "deleteTracks", "mutation", input),
111932
112088
  setTrackFlags: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "setTrackFlags", "mutation", input),
112089
+ listArchivedDebugNotes: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listArchivedDebugNotes", "query", input),
111933
112090
  getEventStoreFootprint: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventStoreFootprint", "query", input),
111934
112091
  getEventMediaFootprintByKind: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventMediaFootprintByKind", "query", input),
111935
112092
  pruneEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "pruneEvents", "mutation", input),
@@ -112930,7 +113087,7 @@ var require_addon = __commonJS({
112930
113087
  "use strict";
112931
113088
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
112932
113089
  var require_event_category = require_event_category_BVo6ta6();
112933
- var require_sleep = require_sleep_BZtO_eFY();
113090
+ var require_sleep = require_sleep_IjLtwkO5();
112934
113091
  var require_err_msg = require_err_msg_COpsHMw2();
112935
113092
  var CAP_INPUT_DEFAULTS = Object.freeze({
112936
113093
  "addons": { "getLogs": { "limit": 100 } },
@@ -131861,7 +132018,7 @@ var require_dist3 = __commonJS({
131861
132018
  "use strict";
131862
132019
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
131863
132020
  var require_chunk = require_chunk_Cek0wNdY();
131864
- var require_dist10 = require_dist_CNxDnJwz();
132021
+ var require_dist10 = require_dist_C5xJy_uL();
131865
132022
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
131866
132023
  require_alerts();
131867
132024
  var require_formatter = require_formatter_DqAKDlvN();
@@ -212978,7 +213135,7 @@ var require_dist4 = __commonJS({
212978
213135
  "use strict";
212979
213136
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
212980
213137
  var require_event_category = require_event_category_BVo6ta6();
212981
- var require_sleep = require_sleep_BZtO_eFY();
213138
+ var require_sleep = require_sleep_IjLtwkO5();
212982
213139
  var require_canonical_hash = require_canonical_hash_DNV8S5ET();
212983
213140
  var require_enums2 = require_enums();
212984
213141
  var require_err_msg = require_err_msg_COpsHMw2();
@@ -213731,6 +213888,34 @@ var require_dist4 = __commonJS({
213731
213888
  for (const tab of tabs) for (const child of fieldsOf(tab)) walkField(child, out);
213732
213889
  }
213733
213890
  }
213891
+ var MAX_ARCHIVED_DEBUG_NOTES = 5e3;
213892
+ var ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT = 200;
213893
+ var ArchivedDebugNoteSchema = zod.z.object({
213894
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
213895
+ * same sentence about the same track lands on the row already there. */
213896
+ id: zod.z.string(),
213897
+ /** The operator's own words, verbatim. */
213898
+ note: zod.z.string(),
213899
+ /** The camera. Required — every question here is asked per-camera. */
213900
+ deviceId: zod.z.number().int(),
213901
+ /** The track the note was written on. PROVENANCE, not ownership: the track
213902
+ * is expected to be gone, and this row is not a reference to it. */
213903
+ sourceTrackId: zod.z.string(),
213904
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
213905
+ archivedAt: zod.z.number().int(),
213906
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
213907
+ trackStartedAt: zod.z.number().int().nullable(),
213908
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
213909
+ trackClass: zod.z.string().nullable(),
213910
+ /** The track's display label at review time; `null` when it had none. */
213911
+ trackLabel: zod.z.string().nullable()
213912
+ });
213913
+ var ArchivedDebugNoteQueryInputSchema = zod.z.object({
213914
+ /** Restrict to a single camera; omit for every row. */
213915
+ deviceId: zod.z.number().int().optional(),
213916
+ /** Max rows returned, newest-first. */
213917
+ limit: zod.z.number().int().min(1).max(1e3).optional()
213918
+ });
213734
213919
  var STREAM_QUALITY_LABELS = {
213735
213920
  high: "High",
213736
213921
  mid: "Mid",
@@ -224367,14 +224552,14 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
224367
224552
  code: zod.z.string().min(1).optional()
224368
224553
  }), zod.z.void(), {
224369
224554
  kind: "mutation",
224370
- auth: "admin"
224555
+ auth: "protected"
224371
224556
  }),
224372
224557
  disarm: require_sleep.method(zod.z.object({
224373
224558
  deviceId: zod.z.number().int().nonnegative(),
224374
224559
  code: zod.z.string().min(1).optional()
224375
224560
  }), zod.z.void(), {
224376
224561
  kind: "mutation",
224377
- auth: "admin"
224562
+ auth: "protected"
224378
224563
  }),
224379
224564
  /**
224380
224565
  * Force the panel into the `triggered` state — used by HA
@@ -224385,7 +224570,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
224385
224570
  */
224386
224571
  trigger: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
224387
224572
  kind: "mutation",
224388
- auth: "admin"
224573
+ auth: "protected"
224389
224574
  })
224390
224575
  },
224391
224576
  status: {
@@ -228286,6 +228471,31 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
228286
228471
  flags: TrackFlagsPatchSchema
228287
228472
  }), TrackFlagsSchema, { kind: "mutation" }),
228288
228473
  /**
228474
+ * The archived debug notes, newest first — the corpus of what operators
228475
+ * have asked to be checked, across tracks that no longer exist (D405).
228476
+ *
228477
+ * `setTrackFlags` writes it: a patch carrying `debug: false` still clears
228478
+ * the note off the track row in the same statement (D353's invariant is
228479
+ * untouched), but the note is APPENDED here first. That is the whole point
228480
+ * — before D405, finishing a review destroyed every note written during it,
228481
+ * and the ones that survived aged out with their tracks. This method is the
228482
+ * only way to read what was kept.
228483
+ *
228484
+ * `auth: 'protected'`, matching `setTrackFlags` next door and for the same
228485
+ * reason: the notes are written from the viewer, by an authenticated
228486
+ * non-admin session, and a corpus only an admin can read is a corpus the
228487
+ * person who wrote it cannot use. It carries operator prose about cameras
228488
+ * and nothing else — no media, no paths, no identities beyond a track's
228489
+ * own display label.
228490
+ *
228491
+ * Newest-first, capped by `limit` (default
228492
+ * {@link ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT}), optionally one camera. The
228493
+ * table itself is bounded by row count, not by age — see
228494
+ * {@link MAX_ARCHIVED_DEBUG_NOTES} for why an age clock would be the wrong
228495
+ * bound for exactly this data.
228496
+ */
228497
+ listArchivedDebugNotes: require_sleep.method(ArchivedDebugNoteQueryInputSchema, zod.z.array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }),
228498
+ /**
228289
228499
  * Durable event-store footprint for the management UI: event rows
228290
228500
  * (motion + object + audio) counted per camera + total, plus the
228291
228501
  * event-owned media bytes on disk per camera + total. Stat/count-based,
@@ -233279,7 +233489,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233279
233489
  percentage: zod.z.number().min(0).max(100)
233280
233490
  }), zod.z.void(), {
233281
233491
  kind: "mutation",
233282
- auth: "admin"
233492
+ auth: "protected"
233283
233493
  }) },
233284
233494
  events: {
233285
233495
  /**
@@ -233319,7 +233529,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233319
233529
  deviceTypes: [require_sleep.DeviceType.Button],
233320
233530
  methods: { press: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233321
233531
  kind: "mutation",
233322
- auth: "admin"
233532
+ auth: "protected"
233323
233533
  }) }
233324
233534
  };
233325
233535
  var CameraCredentialsSchema = zod.z.object({
@@ -233466,28 +233676,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233466
233676
  mode: HvacModeSchema
233467
233677
  }), zod.z.void(), {
233468
233678
  kind: "mutation",
233469
- auth: "admin"
233679
+ auth: "protected"
233470
233680
  }),
233471
233681
  setFanMode: require_sleep.method(zod.z.object({
233472
233682
  deviceId: zod.z.number().int().nonnegative(),
233473
233683
  fanMode: zod.z.string().min(1)
233474
233684
  }), zod.z.void(), {
233475
233685
  kind: "mutation",
233476
- auth: "admin"
233686
+ auth: "protected"
233477
233687
  }),
233478
233688
  setPreset: require_sleep.method(zod.z.object({
233479
233689
  deviceId: zod.z.number().int().nonnegative(),
233480
233690
  preset: zod.z.string().min(1)
233481
233691
  }), zod.z.void(), {
233482
233692
  kind: "mutation",
233483
- auth: "admin"
233693
+ auth: "protected"
233484
233694
  }),
233485
233695
  setTarget: require_sleep.method(zod.z.object({
233486
233696
  deviceId: zod.z.number().int().nonnegative(),
233487
233697
  target: zod.z.number()
233488
233698
  }), zod.z.void(), {
233489
233699
  kind: "mutation",
233490
- auth: "admin"
233700
+ auth: "protected"
233491
233701
  }),
233492
233702
  setTargetRange: require_sleep.method(zod.z.object({
233493
233703
  deviceId: zod.z.number().int().nonnegative(),
@@ -233495,28 +233705,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233495
233705
  targetHigh: zod.z.number()
233496
233706
  }), zod.z.void(), {
233497
233707
  kind: "mutation",
233498
- auth: "admin"
233708
+ auth: "protected"
233499
233709
  }),
233500
233710
  setTargetHumidity: require_sleep.method(zod.z.object({
233501
233711
  deviceId: zod.z.number().int().nonnegative(),
233502
233712
  targetHumidity: zod.z.number().min(0).max(100)
233503
233713
  }), zod.z.void(), {
233504
233714
  kind: "mutation",
233505
- auth: "admin"
233715
+ auth: "protected"
233506
233716
  }),
233507
233717
  setSwingVertical: require_sleep.method(zod.z.object({
233508
233718
  deviceId: zod.z.number().int().nonnegative(),
233509
233719
  on: zod.z.boolean()
233510
233720
  }), zod.z.void(), {
233511
233721
  kind: "mutation",
233512
- auth: "admin"
233722
+ auth: "protected"
233513
233723
  }),
233514
233724
  setSwingHorizontal: require_sleep.method(zod.z.object({
233515
233725
  deviceId: zod.z.number().int().nonnegative(),
233516
233726
  on: zod.z.boolean()
233517
233727
  }), zod.z.void(), {
233518
233728
  kind: "mutation",
233519
- auth: "admin"
233729
+ auth: "protected"
233520
233730
  })
233521
233731
  },
233522
233732
  status: {
@@ -233592,7 +233802,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233592
233802
  color: ColorInputSchema
233593
233803
  }), zod.z.void(), {
233594
233804
  kind: "mutation",
233595
- auth: "admin"
233805
+ auth: "protected"
233596
233806
  }) },
233597
233807
  events: {
233598
233808
  /**
@@ -233873,7 +234083,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233873
234083
  control: ControlSetValueInputSchema
233874
234084
  }), zod.z.void(), {
233875
234085
  kind: "mutation",
233876
- auth: "admin"
234086
+ auth: "protected"
233877
234087
  }) },
233878
234088
  status: {
233879
234089
  schema: ControlStatusSchema,
@@ -233920,29 +234130,29 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
233920
234130
  methods: {
233921
234131
  open: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233922
234132
  kind: "mutation",
233923
- auth: "admin"
234133
+ auth: "protected"
233924
234134
  }),
233925
234135
  close: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233926
234136
  kind: "mutation",
233927
- auth: "admin"
234137
+ auth: "protected"
233928
234138
  }),
233929
234139
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
233930
234140
  kind: "mutation",
233931
- auth: "admin"
234141
+ auth: "protected"
233932
234142
  }),
233933
234143
  setPosition: require_sleep.method(zod.z.object({
233934
234144
  deviceId: zod.z.number().int().nonnegative(),
233935
234145
  position: zod.z.number().min(0).max(100)
233936
234146
  }), zod.z.void(), {
233937
234147
  kind: "mutation",
233938
- auth: "admin"
234148
+ auth: "protected"
233939
234149
  }),
233940
234150
  setTiltPosition: require_sleep.method(zod.z.object({
233941
234151
  deviceId: zod.z.number().int().nonnegative(),
233942
234152
  tiltPosition: zod.z.number().min(0).max(100)
233943
234153
  }), zod.z.void(), {
233944
234154
  kind: "mutation",
233945
- auth: "admin"
234155
+ auth: "protected"
233946
234156
  })
233947
234157
  },
233948
234158
  status: {
@@ -234623,28 +234833,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
234623
234833
  percentage: zod.z.number().min(0).max(100)
234624
234834
  }), zod.z.void(), {
234625
234835
  kind: "mutation",
234626
- auth: "admin"
234836
+ auth: "protected"
234627
234837
  }),
234628
234838
  setPreset: require_sleep.method(zod.z.object({
234629
234839
  deviceId: zod.z.number().int().nonnegative(),
234630
234840
  preset: zod.z.string().min(1)
234631
234841
  }), zod.z.void(), {
234632
234842
  kind: "mutation",
234633
- auth: "admin"
234843
+ auth: "protected"
234634
234844
  }),
234635
234845
  setDirection: require_sleep.method(zod.z.object({
234636
234846
  deviceId: zod.z.number().int().nonnegative(),
234637
234847
  direction: FanDirectionSchema
234638
234848
  }), zod.z.void(), {
234639
234849
  kind: "mutation",
234640
- auth: "admin"
234850
+ auth: "protected"
234641
234851
  }),
234642
234852
  setOscillating: require_sleep.method(zod.z.object({
234643
234853
  deviceId: zod.z.number().int().nonnegative(),
234644
234854
  oscillating: zod.z.boolean()
234645
234855
  }), zod.z.void(), {
234646
234856
  kind: "mutation",
234647
- auth: "admin"
234857
+ auth: "protected"
234648
234858
  })
234649
234859
  },
234650
234860
  status: {
@@ -234815,21 +235025,21 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
234815
235025
  on: zod.z.boolean()
234816
235026
  }), zod.z.void(), {
234817
235027
  kind: "mutation",
234818
- auth: "admin"
235028
+ auth: "protected"
234819
235029
  }),
234820
235030
  setTargetHumidity: require_sleep.method(zod.z.object({
234821
235031
  deviceId: zod.z.number().int().nonnegative(),
234822
235032
  humidity: zod.z.number().min(0).max(100)
234823
235033
  }), zod.z.void(), {
234824
235034
  kind: "mutation",
234825
- auth: "admin"
235035
+ auth: "protected"
234826
235036
  }),
234827
235037
  setMode: require_sleep.method(zod.z.object({
234828
235038
  deviceId: zod.z.number().int().nonnegative(),
234829
235039
  mode: zod.z.string().min(1)
234830
235040
  }), zod.z.void(), {
234831
235041
  kind: "mutation",
234832
- auth: "admin"
235042
+ auth: "protected"
234833
235043
  })
234834
235044
  },
234835
235045
  status: {
@@ -235400,15 +235610,15 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235400
235610
  methods: {
235401
235611
  startMowing: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235402
235612
  kind: "mutation",
235403
- auth: "admin"
235613
+ auth: "protected"
235404
235614
  }),
235405
235615
  pause: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235406
235616
  kind: "mutation",
235407
- auth: "admin"
235617
+ auth: "protected"
235408
235618
  }),
235409
235619
  dock: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235410
235620
  kind: "mutation",
235411
- auth: "admin"
235621
+ auth: "protected"
235412
235622
  })
235413
235623
  },
235414
235624
  status: {
@@ -235766,18 +235976,18 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235766
235976
  code: zod.z.string().min(1).optional()
235767
235977
  }), zod.z.void(), {
235768
235978
  kind: "mutation",
235769
- auth: "admin"
235979
+ auth: "protected"
235770
235980
  }),
235771
235981
  unlock: require_sleep.method(zod.z.object({
235772
235982
  deviceId: zod.z.number().int().nonnegative(),
235773
235983
  code: zod.z.string().min(1).optional()
235774
235984
  }), zod.z.void(), {
235775
235985
  kind: "mutation",
235776
- auth: "admin"
235986
+ auth: "protected"
235777
235987
  }),
235778
235988
  open: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235779
235989
  kind: "mutation",
235780
- auth: "admin"
235990
+ auth: "protected"
235781
235991
  })
235782
235992
  },
235783
235993
  status: {
@@ -235868,65 +236078,65 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235868
236078
  methods: {
235869
236079
  play: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235870
236080
  kind: "mutation",
235871
- auth: "admin"
236081
+ auth: "protected"
235872
236082
  }),
235873
236083
  pause: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235874
236084
  kind: "mutation",
235875
- auth: "admin"
236085
+ auth: "protected"
235876
236086
  }),
235877
236087
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235878
236088
  kind: "mutation",
235879
- auth: "admin"
236089
+ auth: "protected"
235880
236090
  }),
235881
236091
  next: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235882
236092
  kind: "mutation",
235883
- auth: "admin"
236093
+ auth: "protected"
235884
236094
  }),
235885
236095
  previous: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
235886
236096
  kind: "mutation",
235887
- auth: "admin"
236097
+ auth: "protected"
235888
236098
  }),
235889
236099
  seek: require_sleep.method(zod.z.object({
235890
236100
  deviceId: zod.z.number().int().nonnegative(),
235891
236101
  positionMs: zod.z.number().int().nonnegative()
235892
236102
  }), zod.z.void(), {
235893
236103
  kind: "mutation",
235894
- auth: "admin"
236104
+ auth: "protected"
235895
236105
  }),
235896
236106
  setVolume: require_sleep.method(zod.z.object({
235897
236107
  deviceId: zod.z.number().int().nonnegative(),
235898
236108
  volumeLevel: zod.z.number().min(0).max(100)
235899
236109
  }), zod.z.void(), {
235900
236110
  kind: "mutation",
235901
- auth: "admin"
236111
+ auth: "protected"
235902
236112
  }),
235903
236113
  setMute: require_sleep.method(zod.z.object({
235904
236114
  deviceId: zod.z.number().int().nonnegative(),
235905
236115
  muted: zod.z.boolean()
235906
236116
  }), zod.z.void(), {
235907
236117
  kind: "mutation",
235908
- auth: "admin"
236118
+ auth: "protected"
235909
236119
  }),
235910
236120
  setShuffle: require_sleep.method(zod.z.object({
235911
236121
  deviceId: zod.z.number().int().nonnegative(),
235912
236122
  shuffle: zod.z.boolean()
235913
236123
  }), zod.z.void(), {
235914
236124
  kind: "mutation",
235915
- auth: "admin"
236125
+ auth: "protected"
235916
236126
  }),
235917
236127
  setRepeat: require_sleep.method(zod.z.object({
235918
236128
  deviceId: zod.z.number().int().nonnegative(),
235919
236129
  repeat: MediaPlayerRepeatSchema
235920
236130
  }), zod.z.void(), {
235921
236131
  kind: "mutation",
235922
- auth: "admin"
236132
+ auth: "protected"
235923
236133
  }),
235924
236134
  selectSource: require_sleep.method(zod.z.object({
235925
236135
  deviceId: zod.z.number().int().nonnegative(),
235926
236136
  source: zod.z.string().min(1)
235927
236137
  }), zod.z.void(), {
235928
236138
  kind: "mutation",
235929
- auth: "admin"
236139
+ auth: "protected"
235930
236140
  }),
235931
236141
  playMedia: require_sleep.method(zod.z.object({
235932
236142
  deviceId: zod.z.number().int().nonnegative(),
@@ -235937,7 +236147,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
235937
236147
  mediaType: zod.z.string().min(1)
235938
236148
  }), zod.z.void(), {
235939
236149
  kind: "mutation",
235940
- auth: "admin"
236150
+ auth: "protected"
235941
236151
  })
235942
236152
  },
235943
236153
  status: {
@@ -237527,27 +237737,27 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237527
237737
  hopper2: gramsPortion.optional()
237528
237738
  }), zod.z.void(), {
237529
237739
  kind: "mutation",
237530
- auth: "admin"
237740
+ auth: "protected"
237531
237741
  }),
237532
237742
  /** Cancel an in-progress manual feed. */
237533
237743
  cancelFeed: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237534
237744
  kind: "mutation",
237535
- auth: "admin"
237745
+ auth: "protected"
237536
237746
  }),
237537
237747
  /** Reset the desiccant "days remaining" counter after replacing it. */
237538
237748
  resetDesiccant: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237539
237749
  kind: "mutation",
237540
- auth: "admin"
237750
+ auth: "protected"
237541
237751
  }),
237542
237752
  /** Mark a hopper as refilled (D4H/D4S/D4SH). */
237543
237753
  markFoodReplenished: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237544
237754
  kind: "mutation",
237545
- auth: "admin"
237755
+ auth: "protected"
237546
237756
  }),
237547
237757
  /** Call the pet with the recorded prompt (D3). */
237548
237758
  callPet: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
237549
237759
  kind: "mutation",
237550
- auth: "admin"
237760
+ auth: "protected"
237551
237761
  }),
237552
237762
  /** Play a stored sound by id (D3 / D4H / D4SH). */
237553
237763
  playSound: require_sleep.method(zod.z.object({
@@ -237555,7 +237765,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237555
237765
  soundId: zod.z.number().int().nonnegative()
237556
237766
  }), zod.z.void(), {
237557
237767
  kind: "mutation",
237558
- auth: "admin"
237768
+ auth: "protected"
237559
237769
  }),
237560
237770
  /** Toggle the child-lock (manual-lock) setting. */
237561
237771
  setChildLock: require_sleep.method(zod.z.object({
@@ -237563,7 +237773,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237563
237773
  on: zod.z.boolean()
237564
237774
  }), zod.z.void(), {
237565
237775
  kind: "mutation",
237566
- auth: "admin"
237776
+ auth: "protected"
237567
237777
  }),
237568
237778
  /** Toggle the front indicator light. */
237569
237779
  setIndicatorLight: require_sleep.method(zod.z.object({
@@ -237571,7 +237781,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237571
237781
  on: zod.z.boolean()
237572
237782
  }), zod.z.void(), {
237573
237783
  kind: "mutation",
237574
- auth: "admin"
237784
+ auth: "protected"
237575
237785
  }),
237576
237786
  /** Toggle the dispense chime. */
237577
237787
  setFeedSound: require_sleep.method(zod.z.object({
@@ -237579,7 +237789,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237579
237789
  on: zod.z.boolean()
237580
237790
  }), zod.z.void(), {
237581
237791
  kind: "mutation",
237582
- auth: "admin"
237792
+ auth: "protected"
237583
237793
  }),
237584
237794
  /** Set the speaker / prompt volume level. */
237585
237795
  setVolume: require_sleep.method(zod.z.object({
@@ -237587,7 +237797,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
237587
237797
  level: zod.z.number().int().nonnegative()
237588
237798
  }), zod.z.void(), {
237589
237799
  kind: "mutation",
237590
- auth: "admin"
237800
+ auth: "protected"
237591
237801
  })
237592
237802
  },
237593
237803
  status: {
@@ -239971,7 +240181,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
239971
240181
  on: zod.z.boolean()
239972
240182
  }), zod.z.void(), {
239973
240183
  kind: "mutation",
239974
- auth: "admin"
240184
+ auth: "protected"
239975
240185
  }) },
239976
240186
  events: { onStateChanged: { data: zod.z.object({
239977
240187
  deviceId: zod.z.number(),
@@ -240838,30 +241048,30 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
240838
241048
  methods: {
240839
241049
  start: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240840
241050
  kind: "mutation",
240841
- auth: "admin"
241051
+ auth: "protected"
240842
241052
  }),
240843
241053
  pause: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240844
241054
  kind: "mutation",
240845
- auth: "admin"
241055
+ auth: "protected"
240846
241056
  }),
240847
241057
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240848
241058
  kind: "mutation",
240849
- auth: "admin"
241059
+ auth: "protected"
240850
241060
  }),
240851
241061
  returnToBase: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240852
241062
  kind: "mutation",
240853
- auth: "admin"
241063
+ auth: "protected"
240854
241064
  }),
240855
241065
  locate: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240856
241066
  kind: "mutation",
240857
- auth: "admin"
241067
+ auth: "protected"
240858
241068
  }),
240859
241069
  setFanSpeed: require_sleep.method(zod.z.object({
240860
241070
  deviceId: zod.z.number().int().nonnegative(),
240861
241071
  speed: zod.z.string().min(1)
240862
241072
  }), zod.z.void(), {
240863
241073
  kind: "mutation",
240864
- auth: "admin"
241074
+ auth: "protected"
240865
241075
  })
240866
241076
  },
240867
241077
  status: {
@@ -240906,22 +241116,22 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
240906
241116
  methods: {
240907
241117
  open: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240908
241118
  kind: "mutation",
240909
- auth: "admin"
241119
+ auth: "protected"
240910
241120
  }),
240911
241121
  close: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240912
241122
  kind: "mutation",
240913
- auth: "admin"
241123
+ auth: "protected"
240914
241124
  }),
240915
241125
  stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), zod.z.void(), {
240916
241126
  kind: "mutation",
240917
- auth: "admin"
241127
+ auth: "protected"
240918
241128
  }),
240919
241129
  setPosition: require_sleep.method(zod.z.object({
240920
241130
  deviceId: zod.z.number().int().nonnegative(),
240921
241131
  position: zod.z.number().min(0).max(100)
240922
241132
  }), zod.z.void(), {
240923
241133
  kind: "mutation",
240924
- auth: "admin"
241134
+ auth: "protected"
240925
241135
  })
240926
241136
  },
240927
241137
  status: {
@@ -241002,21 +241212,21 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
241002
241212
  temp: zod.z.number().finite()
241003
241213
  }), zod.z.void(), {
241004
241214
  kind: "mutation",
241005
- auth: "admin"
241215
+ auth: "protected"
241006
241216
  }),
241007
241217
  setOperationMode: require_sleep.method(zod.z.object({
241008
241218
  deviceId: zod.z.number().int().nonnegative(),
241009
241219
  mode: zod.z.string().min(1)
241010
241220
  }), zod.z.void(), {
241011
241221
  kind: "mutation",
241012
- auth: "admin"
241222
+ auth: "protected"
241013
241223
  }),
241014
241224
  setAway: require_sleep.method(zod.z.object({
241015
241225
  deviceId: zod.z.number().int().nonnegative(),
241016
241226
  on: zod.z.boolean()
241017
241227
  }), zod.z.void(), {
241018
241228
  kind: "mutation",
241019
- auth: "admin"
241229
+ auth: "protected"
241020
241230
  })
241021
241231
  },
241022
241232
  status: {
@@ -248717,6 +248927,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
248717
248927
  addonId: null,
248718
248928
  access: "view"
248719
248929
  },
248930
+ "pipelineAnalytics.listArchivedDebugNotes": {
248931
+ capName: "pipeline-analytics",
248932
+ capScope: "device",
248933
+ addonId: null,
248934
+ access: "view"
248935
+ },
248720
248936
  "pipelineAnalytics.listEventKinds": {
248721
248937
  capName: "pipeline-analytics",
248722
248938
  capScope: "device",
@@ -252768,6 +252984,11 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
252768
252984
  form: "array",
252769
252985
  optional: true
252770
252986
  }],
252987
+ "pipelineAnalytics.listArchivedDebugNotes": [{
252988
+ name: "deviceId",
252989
+ form: "single",
252990
+ optional: true
252991
+ }],
252771
252992
  "pipelineAnalytics.listEventKinds": [{
252772
252993
  name: "deviceId",
252773
252994
  form: "single",
@@ -257427,6 +257648,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
257427
257648
  exports.ALEXA_EGRESS_PROFILE = ALEXA_EGRESS_PROFILE;
257428
257649
  exports.ALL_CAPABILITY_DEFINITIONS = ALL_CAPABILITY_DEFINITIONS;
257429
257650
  exports.APPLE_SA_TO_MACRO = APPLE_SA_TO_MACRO;
257651
+ exports.ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT = ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT;
257430
257652
  exports.AUDIO_ANALYSIS_CAP_NAME = AUDIO_ANALYSIS_CAP_NAME;
257431
257653
  exports.AUDIO_BACKEND_CHOICES = AUDIO_BACKEND_CHOICES;
257432
257654
  exports.AUDIO_MACRO_LABELS = AUDIO_MACRO_LABELS;
@@ -257464,6 +257686,8 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
257464
257686
  exports.ApiKeySummarySchema = ApiKeySummarySchema;
257465
257687
  exports.ArchiveEntrySchema = ArchiveEntrySchema;
257466
257688
  exports.ArchiveManifestSchema = ArchiveManifestSchema;
257689
+ exports.ArchivedDebugNoteQueryInputSchema = ArchivedDebugNoteQueryInputSchema;
257690
+ exports.ArchivedDebugNoteSchema = ArchivedDebugNoteSchema;
257467
257691
  exports.AttachmentMediaTypeSchema = AttachmentMediaTypeSchema;
257468
257692
  exports.AttachmentSchema = AttachmentSchema;
257469
257693
  exports.AudioAnalysisResultSchema = AudioAnalysisResultSchema;
@@ -257884,6 +258108,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
257884
258108
  exports.LoginMethodContributionSchema = LoginMethodContributionSchema;
257885
258109
  exports.LoginStageEnum = LoginStageEnum;
257886
258110
  exports.MACRO_LABELS = MACRO_LABELS;
258111
+ exports.MAX_ARCHIVED_DEBUG_NOTES = MAX_ARCHIVED_DEBUG_NOTES;
257887
258112
  exports.MAX_CLIP_EVENT_IDS = MAX_CLIP_EVENT_IDS;
257888
258113
  exports.MAX_CLIP_LABELS = MAX_CLIP_LABELS;
257889
258114
  exports.MAX_CONDITION_DEPTH = MAX_CONDITION_DEPTH;