@camstack/addon-tailscale 1.2.85 → 1.2.87

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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-BdBOnfeo.js");
27
+ const require_dist = require("../dist-DcVWmpNd.js");
28
28
  let node_child_process = require("node:child_process");
29
29
  let node_util = require("node:util");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-CRyT30U1.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-DwQzwZEk.mjs";
2
2
  import { execFile, spawn } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as fs from "node:fs";
@@ -7644,6 +7644,35 @@ var CameraSwitchGroupSchema = object({
7644
7644
  /** Unix ms when the group was composed server-side. */
7645
7645
  fetchedAt: number()
7646
7646
  });
7647
+ /** One archived note — the operator's words plus enough context to find what
7648
+ * they were looking at, after the track itself is gone. */
7649
+ var ArchivedDebugNoteSchema = object({
7650
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7651
+ * same sentence about the same track lands on the row already there. */
7652
+ id: string(),
7653
+ /** The operator's own words, verbatim. */
7654
+ note: string(),
7655
+ /** The camera. Required — every question here is asked per-camera. */
7656
+ deviceId: number().int(),
7657
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7658
+ * is expected to be gone, and this row is not a reference to it. */
7659
+ sourceTrackId: string(),
7660
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7661
+ archivedAt: number().int(),
7662
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7663
+ trackStartedAt: number().int().nullable(),
7664
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7665
+ trackClass: string().nullable(),
7666
+ /** The track's display label at review time; `null` when it had none. */
7667
+ trackLabel: string().nullable()
7668
+ });
7669
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7670
+ var ArchivedDebugNoteQueryInputSchema = object({
7671
+ /** Restrict to a single camera; omit for every row. */
7672
+ deviceId: number().int().optional(),
7673
+ /** Max rows returned, newest-first. */
7674
+ limit: number().int().min(1).max(1e3).optional()
7675
+ });
7647
7676
  /**
7648
7677
  * Ops-log — the durable, append-only operations audit shared by the
7649
7678
  * recordings and events management surfaces.
@@ -15845,16 +15874,16 @@ DeviceType.AlarmPanel, method(object({
15845
15874
  code: string().min(1).optional()
15846
15875
  }), _void(), {
15847
15876
  kind: "mutation",
15848
- auth: "admin"
15877
+ auth: "protected"
15849
15878
  }), method(object({
15850
15879
  deviceId: number().int().nonnegative(),
15851
15880
  code: string().min(1).optional()
15852
15881
  }), _void(), {
15853
15882
  kind: "mutation",
15854
- auth: "admin"
15883
+ auth: "protected"
15855
15884
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
15856
15885
  kind: "mutation",
15857
- auth: "admin"
15886
+ auth: "protected"
15858
15887
  });
15859
15888
  /**
15860
15889
  * Shared geometry vocabulary for on-frame shape caps — privacy-mask,
@@ -19756,7 +19785,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19756
19785
  deviceId: number(),
19757
19786
  trackId: string(),
19758
19787
  flags: TrackFlagsPatchSchema
19759
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
19788
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
19760
19789
  kind: "query",
19761
19790
  auth: "admin"
19762
19791
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -23509,7 +23538,7 @@ DeviceType.Light, method(object({
23509
23538
  percentage: number().min(0).max(100)
23510
23539
  }), _void(), {
23511
23540
  kind: "mutation",
23512
- auth: "admin"
23541
+ auth: "protected"
23513
23542
  }), object({
23514
23543
  deviceId: number(),
23515
23544
  percentage: number().min(0).max(100),
@@ -23517,7 +23546,7 @@ DeviceType.Light, method(object({
23517
23546
  });
23518
23547
  DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
23519
23548
  kind: "mutation",
23520
- auth: "admin"
23549
+ auth: "protected"
23521
23550
  });
23522
23551
  /**
23523
23552
  * camera-credentials — device-scoped cap exposing the camera's network
@@ -23676,50 +23705,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
23676
23705
  mode: HvacModeSchema
23677
23706
  }), _void(), {
23678
23707
  kind: "mutation",
23679
- auth: "admin"
23708
+ auth: "protected"
23680
23709
  }), method(object({
23681
23710
  deviceId: number().int().nonnegative(),
23682
23711
  fanMode: string().min(1)
23683
23712
  }), _void(), {
23684
23713
  kind: "mutation",
23685
- auth: "admin"
23714
+ auth: "protected"
23686
23715
  }), method(object({
23687
23716
  deviceId: number().int().nonnegative(),
23688
23717
  preset: string().min(1)
23689
23718
  }), _void(), {
23690
23719
  kind: "mutation",
23691
- auth: "admin"
23720
+ auth: "protected"
23692
23721
  }), method(object({
23693
23722
  deviceId: number().int().nonnegative(),
23694
23723
  target: number()
23695
23724
  }), _void(), {
23696
23725
  kind: "mutation",
23697
- auth: "admin"
23726
+ auth: "protected"
23698
23727
  }), method(object({
23699
23728
  deviceId: number().int().nonnegative(),
23700
23729
  targetLow: number(),
23701
23730
  targetHigh: number()
23702
23731
  }), _void(), {
23703
23732
  kind: "mutation",
23704
- auth: "admin"
23733
+ auth: "protected"
23705
23734
  }), method(object({
23706
23735
  deviceId: number().int().nonnegative(),
23707
23736
  targetHumidity: number().min(0).max(100)
23708
23737
  }), _void(), {
23709
23738
  kind: "mutation",
23710
- auth: "admin"
23739
+ auth: "protected"
23711
23740
  }), method(object({
23712
23741
  deviceId: number().int().nonnegative(),
23713
23742
  on: boolean()
23714
23743
  }), _void(), {
23715
23744
  kind: "mutation",
23716
- auth: "admin"
23745
+ auth: "protected"
23717
23746
  }), method(object({
23718
23747
  deviceId: number().int().nonnegative(),
23719
23748
  on: boolean()
23720
23749
  }), _void(), {
23721
23750
  kind: "mutation",
23722
- auth: "admin"
23751
+ auth: "protected"
23723
23752
  });
23724
23753
  /**
23725
23754
  * Color-light cap. Coexists with `switch` (on/off) and `brightness`
@@ -23794,7 +23823,7 @@ DeviceType.Light, method(object({
23794
23823
  color: ColorInputSchema
23795
23824
  }), _void(), {
23796
23825
  kind: "mutation",
23797
- auth: "admin"
23826
+ auth: "protected"
23798
23827
  }), object({
23799
23828
  deviceId: number(),
23800
23829
  mode: _enum([
@@ -23943,7 +23972,7 @@ DeviceType.Control, method(object({
23943
23972
  control: ControlSetValueInputSchema
23944
23973
  }), _void(), {
23945
23974
  kind: "mutation",
23946
- auth: "admin"
23975
+ auth: "protected"
23947
23976
  });
23948
23977
  object({
23949
23978
  /** Lifecycle state of the cover. */
@@ -23964,25 +23993,25 @@ object({
23964
23993
  });
23965
23994
  DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
23966
23995
  kind: "mutation",
23967
- auth: "admin"
23996
+ auth: "protected"
23968
23997
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
23969
23998
  kind: "mutation",
23970
- auth: "admin"
23999
+ auth: "protected"
23971
24000
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
23972
24001
  kind: "mutation",
23973
- auth: "admin"
24002
+ auth: "protected"
23974
24003
  }), method(object({
23975
24004
  deviceId: number().int().nonnegative(),
23976
24005
  position: number().min(0).max(100)
23977
24006
  }), _void(), {
23978
24007
  kind: "mutation",
23979
- auth: "admin"
24008
+ auth: "protected"
23980
24009
  }), method(object({
23981
24010
  deviceId: number().int().nonnegative(),
23982
24011
  tiltPosition: number().min(0).max(100)
23983
24012
  }), _void(), {
23984
24013
  kind: "mutation",
23985
- auth: "admin"
24014
+ auth: "protected"
23986
24015
  });
23987
24016
  /**
23988
24017
  * Vendor-neutral day/night (IR-cut) control — the per-camera config cap
@@ -24577,25 +24606,25 @@ DeviceType.Fan, method(object({
24577
24606
  percentage: number().min(0).max(100)
24578
24607
  }), _void(), {
24579
24608
  kind: "mutation",
24580
- auth: "admin"
24609
+ auth: "protected"
24581
24610
  }), method(object({
24582
24611
  deviceId: number().int().nonnegative(),
24583
24612
  preset: string().min(1)
24584
24613
  }), _void(), {
24585
24614
  kind: "mutation",
24586
- auth: "admin"
24615
+ auth: "protected"
24587
24616
  }), method(object({
24588
24617
  deviceId: number().int().nonnegative(),
24589
24618
  direction: FanDirectionSchema
24590
24619
  }), _void(), {
24591
24620
  kind: "mutation",
24592
- auth: "admin"
24621
+ auth: "protected"
24593
24622
  }), method(object({
24594
24623
  deviceId: number().int().nonnegative(),
24595
24624
  oscillating: boolean()
24596
24625
  }), _void(), {
24597
24626
  kind: "mutation",
24598
- auth: "admin"
24627
+ auth: "protected"
24599
24628
  });
24600
24629
  /**
24601
24630
  * Per-device feature/identity probe slice. Holds the runtime-resolved
@@ -24698,19 +24727,19 @@ DeviceType.Humidifier, method(object({
24698
24727
  on: boolean()
24699
24728
  }), _void(), {
24700
24729
  kind: "mutation",
24701
- auth: "admin"
24730
+ auth: "protected"
24702
24731
  }), method(object({
24703
24732
  deviceId: number().int().nonnegative(),
24704
24733
  humidity: number().min(0).max(100)
24705
24734
  }), _void(), {
24706
24735
  kind: "mutation",
24707
- auth: "admin"
24736
+ auth: "protected"
24708
24737
  }), method(object({
24709
24738
  deviceId: number().int().nonnegative(),
24710
24739
  mode: string().min(1)
24711
24740
  }), _void(), {
24712
24741
  kind: "mutation",
24713
- auth: "admin"
24742
+ auth: "protected"
24714
24743
  });
24715
24744
  object({
24716
24745
  /** Current relative humidity, 0..100. */
@@ -25172,13 +25201,13 @@ object({
25172
25201
  });
25173
25202
  DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
25174
25203
  kind: "mutation",
25175
- auth: "admin"
25204
+ auth: "protected"
25176
25205
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25177
25206
  kind: "mutation",
25178
- auth: "admin"
25207
+ auth: "protected"
25179
25208
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25180
25209
  kind: "mutation",
25181
- auth: "admin"
25210
+ auth: "protected"
25182
25211
  });
25183
25212
  /**
25184
25213
  * local-network — hub-only singleton.
@@ -25438,16 +25467,16 @@ DeviceType.Lock, method(object({
25438
25467
  code: string().min(1).optional()
25439
25468
  }), _void(), {
25440
25469
  kind: "mutation",
25441
- auth: "admin"
25470
+ auth: "protected"
25442
25471
  }), method(object({
25443
25472
  deviceId: number().int().nonnegative(),
25444
25473
  code: string().min(1).optional()
25445
25474
  }), _void(), {
25446
25475
  kind: "mutation",
25447
- auth: "admin"
25476
+ auth: "protected"
25448
25477
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25449
25478
  kind: "mutation",
25450
- auth: "admin"
25479
+ auth: "protected"
25451
25480
  });
25452
25481
  /**
25453
25482
  * Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
@@ -25521,55 +25550,55 @@ object({
25521
25550
  });
25522
25551
  DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
25523
25552
  kind: "mutation",
25524
- auth: "admin"
25553
+ auth: "protected"
25525
25554
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25526
25555
  kind: "mutation",
25527
- auth: "admin"
25556
+ auth: "protected"
25528
25557
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25529
25558
  kind: "mutation",
25530
- auth: "admin"
25559
+ auth: "protected"
25531
25560
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25532
25561
  kind: "mutation",
25533
- auth: "admin"
25562
+ auth: "protected"
25534
25563
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25535
25564
  kind: "mutation",
25536
- auth: "admin"
25565
+ auth: "protected"
25537
25566
  }), method(object({
25538
25567
  deviceId: number().int().nonnegative(),
25539
25568
  positionMs: number().int().nonnegative()
25540
25569
  }), _void(), {
25541
25570
  kind: "mutation",
25542
- auth: "admin"
25571
+ auth: "protected"
25543
25572
  }), method(object({
25544
25573
  deviceId: number().int().nonnegative(),
25545
25574
  volumeLevel: number().min(0).max(100)
25546
25575
  }), _void(), {
25547
25576
  kind: "mutation",
25548
- auth: "admin"
25577
+ auth: "protected"
25549
25578
  }), method(object({
25550
25579
  deviceId: number().int().nonnegative(),
25551
25580
  muted: boolean()
25552
25581
  }), _void(), {
25553
25582
  kind: "mutation",
25554
- auth: "admin"
25583
+ auth: "protected"
25555
25584
  }), method(object({
25556
25585
  deviceId: number().int().nonnegative(),
25557
25586
  shuffle: boolean()
25558
25587
  }), _void(), {
25559
25588
  kind: "mutation",
25560
- auth: "admin"
25589
+ auth: "protected"
25561
25590
  }), method(object({
25562
25591
  deviceId: number().int().nonnegative(),
25563
25592
  repeat: MediaPlayerRepeatSchema
25564
25593
  }), _void(), {
25565
25594
  kind: "mutation",
25566
- auth: "admin"
25595
+ auth: "protected"
25567
25596
  }), method(object({
25568
25597
  deviceId: number().int().nonnegative(),
25569
25598
  source: string().min(1)
25570
25599
  }), _void(), {
25571
25600
  kind: "mutation",
25572
- auth: "admin"
25601
+ auth: "protected"
25573
25602
  }), method(object({
25574
25603
  deviceId: number().int().nonnegative(),
25575
25604
  /** Media identifier / URL. */
@@ -25579,7 +25608,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
25579
25608
  mediaType: string().min(1)
25580
25609
  }), _void(), {
25581
25610
  kind: "mutation",
25582
- auth: "admin"
25611
+ auth: "protected"
25583
25612
  });
25584
25613
  /**
25585
25614
  * mesh-network — collection cap for mesh-VPN providers.
@@ -26806,49 +26835,49 @@ DeviceType.PetFeeder, method(object({
26806
26835
  hopper2: gramsPortion.optional()
26807
26836
  }), _void(), {
26808
26837
  kind: "mutation",
26809
- auth: "admin"
26838
+ auth: "protected"
26810
26839
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26811
26840
  kind: "mutation",
26812
- auth: "admin"
26841
+ auth: "protected"
26813
26842
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26814
26843
  kind: "mutation",
26815
- auth: "admin"
26844
+ auth: "protected"
26816
26845
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26817
26846
  kind: "mutation",
26818
- auth: "admin"
26847
+ auth: "protected"
26819
26848
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26820
26849
  kind: "mutation",
26821
- auth: "admin"
26850
+ auth: "protected"
26822
26851
  }), method(object({
26823
26852
  deviceId: number().int().nonnegative(),
26824
26853
  soundId: number().int().nonnegative()
26825
26854
  }), _void(), {
26826
26855
  kind: "mutation",
26827
- auth: "admin"
26856
+ auth: "protected"
26828
26857
  }), method(object({
26829
26858
  deviceId: number().int().nonnegative(),
26830
26859
  on: boolean()
26831
26860
  }), _void(), {
26832
26861
  kind: "mutation",
26833
- auth: "admin"
26862
+ auth: "protected"
26834
26863
  }), method(object({
26835
26864
  deviceId: number().int().nonnegative(),
26836
26865
  on: boolean()
26837
26866
  }), _void(), {
26838
26867
  kind: "mutation",
26839
- auth: "admin"
26868
+ auth: "protected"
26840
26869
  }), method(object({
26841
26870
  deviceId: number().int().nonnegative(),
26842
26871
  on: boolean()
26843
26872
  }), _void(), {
26844
26873
  kind: "mutation",
26845
- auth: "admin"
26874
+ auth: "protected"
26846
26875
  }), method(object({
26847
26876
  deviceId: number().int().nonnegative(),
26848
26877
  level: number().int().nonnegative()
26849
26878
  }), _void(), {
26850
26879
  kind: "mutation",
26851
- auth: "admin"
26880
+ auth: "protected"
26852
26881
  });
26853
26882
  var VehicleSchema = object({
26854
26883
  id: string(),
@@ -28635,7 +28664,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
28635
28664
  on: boolean()
28636
28665
  }), _void(), {
28637
28666
  kind: "mutation",
28638
- auth: "admin"
28667
+ auth: "protected"
28639
28668
  }), object({
28640
28669
  deviceId: number(),
28641
28670
  on: boolean(),
@@ -29492,25 +29521,25 @@ object({
29492
29521
  });
29493
29522
  DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
29494
29523
  kind: "mutation",
29495
- auth: "admin"
29524
+ auth: "protected"
29496
29525
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29497
29526
  kind: "mutation",
29498
- auth: "admin"
29527
+ auth: "protected"
29499
29528
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29500
29529
  kind: "mutation",
29501
- auth: "admin"
29530
+ auth: "protected"
29502
29531
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29503
29532
  kind: "mutation",
29504
- auth: "admin"
29533
+ auth: "protected"
29505
29534
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29506
29535
  kind: "mutation",
29507
- auth: "admin"
29536
+ auth: "protected"
29508
29537
  }), method(object({
29509
29538
  deviceId: number().int().nonnegative(),
29510
29539
  speed: string().min(1)
29511
29540
  }), _void(), {
29512
29541
  kind: "mutation",
29513
- auth: "admin"
29542
+ auth: "protected"
29514
29543
  });
29515
29544
  object({
29516
29545
  /** Lifecycle state of the valve. */
@@ -29529,19 +29558,19 @@ object({
29529
29558
  });
29530
29559
  DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
29531
29560
  kind: "mutation",
29532
- auth: "admin"
29561
+ auth: "protected"
29533
29562
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29534
29563
  kind: "mutation",
29535
- auth: "admin"
29564
+ auth: "protected"
29536
29565
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29537
29566
  kind: "mutation",
29538
- auth: "admin"
29567
+ auth: "protected"
29539
29568
  }), method(object({
29540
29569
  deviceId: number().int().nonnegative(),
29541
29570
  position: number().min(0).max(100)
29542
29571
  }), _void(), {
29543
29572
  kind: "mutation",
29544
- auth: "admin"
29573
+ auth: "protected"
29545
29574
  });
29546
29575
  object({
29547
29576
  detected: boolean(),
@@ -29575,19 +29604,19 @@ DeviceType.WaterHeater, method(object({
29575
29604
  temp: number().finite()
29576
29605
  }), _void(), {
29577
29606
  kind: "mutation",
29578
- auth: "admin"
29607
+ auth: "protected"
29579
29608
  }), method(object({
29580
29609
  deviceId: number().int().nonnegative(),
29581
29610
  mode: string().min(1)
29582
29611
  }), _void(), {
29583
29612
  kind: "mutation",
29584
- auth: "admin"
29613
+ auth: "protected"
29585
29614
  }), method(object({
29586
29615
  deviceId: number().int().nonnegative(),
29587
29616
  on: boolean()
29588
29617
  }), _void(), {
29589
29618
  kind: "mutation",
29590
- auth: "admin"
29619
+ auth: "protected"
29591
29620
  });
29592
29621
  object({
29593
29622
  /** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
@@ -33215,6 +33244,12 @@ Object.freeze({
33215
33244
  addonId: null,
33216
33245
  access: "view"
33217
33246
  },
33247
+ "pipelineAnalytics.listArchivedDebugNotes": {
33248
+ capName: "pipeline-analytics",
33249
+ capScope: "device",
33250
+ addonId: null,
33251
+ access: "view"
33252
+ },
33218
33253
  "pipelineAnalytics.listEventKinds": {
33219
33254
  capName: "pipeline-analytics",
33220
33255
  capScope: "device",
@@ -37002,6 +37037,11 @@ Object.freeze({
37002
37037
  form: "array",
37003
37038
  optional: true
37004
37039
  }],
37040
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37041
+ name: "deviceId",
37042
+ form: "single",
37043
+ optional: true
37044
+ }],
37005
37045
  "pipelineAnalytics.listEventKinds": [{
37006
37046
  name: "deviceId",
37007
37047
  form: "single",
@@ -7644,6 +7644,35 @@ var CameraSwitchGroupSchema = object({
7644
7644
  /** Unix ms when the group was composed server-side. */
7645
7645
  fetchedAt: number()
7646
7646
  });
7647
+ /** One archived note — the operator's words plus enough context to find what
7648
+ * they were looking at, after the track itself is gone. */
7649
+ var ArchivedDebugNoteSchema = object({
7650
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7651
+ * same sentence about the same track lands on the row already there. */
7652
+ id: string(),
7653
+ /** The operator's own words, verbatim. */
7654
+ note: string(),
7655
+ /** The camera. Required — every question here is asked per-camera. */
7656
+ deviceId: number().int(),
7657
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7658
+ * is expected to be gone, and this row is not a reference to it. */
7659
+ sourceTrackId: string(),
7660
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7661
+ archivedAt: number().int(),
7662
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7663
+ trackStartedAt: number().int().nullable(),
7664
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7665
+ trackClass: string().nullable(),
7666
+ /** The track's display label at review time; `null` when it had none. */
7667
+ trackLabel: string().nullable()
7668
+ });
7669
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7670
+ var ArchivedDebugNoteQueryInputSchema = object({
7671
+ /** Restrict to a single camera; omit for every row. */
7672
+ deviceId: number().int().optional(),
7673
+ /** Max rows returned, newest-first. */
7674
+ limit: number().int().min(1).max(1e3).optional()
7675
+ });
7647
7676
  /**
7648
7677
  * Ops-log — the durable, append-only operations audit shared by the
7649
7678
  * recordings and events management surfaces.
@@ -15845,16 +15874,16 @@ DeviceType.AlarmPanel, method(object({
15845
15874
  code: string().min(1).optional()
15846
15875
  }), _void(), {
15847
15876
  kind: "mutation",
15848
- auth: "admin"
15877
+ auth: "protected"
15849
15878
  }), method(object({
15850
15879
  deviceId: number().int().nonnegative(),
15851
15880
  code: string().min(1).optional()
15852
15881
  }), _void(), {
15853
15882
  kind: "mutation",
15854
- auth: "admin"
15883
+ auth: "protected"
15855
15884
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
15856
15885
  kind: "mutation",
15857
- auth: "admin"
15886
+ auth: "protected"
15858
15887
  });
15859
15888
  /**
15860
15889
  * Shared geometry vocabulary for on-frame shape caps — privacy-mask,
@@ -19756,7 +19785,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19756
19785
  deviceId: number(),
19757
19786
  trackId: string(),
19758
19787
  flags: TrackFlagsPatchSchema
19759
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
19788
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
19760
19789
  kind: "query",
19761
19790
  auth: "admin"
19762
19791
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -23509,7 +23538,7 @@ DeviceType.Light, method(object({
23509
23538
  percentage: number().min(0).max(100)
23510
23539
  }), _void(), {
23511
23540
  kind: "mutation",
23512
- auth: "admin"
23541
+ auth: "protected"
23513
23542
  }), object({
23514
23543
  deviceId: number(),
23515
23544
  percentage: number().min(0).max(100),
@@ -23517,7 +23546,7 @@ DeviceType.Light, method(object({
23517
23546
  });
23518
23547
  DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
23519
23548
  kind: "mutation",
23520
- auth: "admin"
23549
+ auth: "protected"
23521
23550
  });
23522
23551
  /**
23523
23552
  * camera-credentials — device-scoped cap exposing the camera's network
@@ -23676,50 +23705,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
23676
23705
  mode: HvacModeSchema
23677
23706
  }), _void(), {
23678
23707
  kind: "mutation",
23679
- auth: "admin"
23708
+ auth: "protected"
23680
23709
  }), method(object({
23681
23710
  deviceId: number().int().nonnegative(),
23682
23711
  fanMode: string().min(1)
23683
23712
  }), _void(), {
23684
23713
  kind: "mutation",
23685
- auth: "admin"
23714
+ auth: "protected"
23686
23715
  }), method(object({
23687
23716
  deviceId: number().int().nonnegative(),
23688
23717
  preset: string().min(1)
23689
23718
  }), _void(), {
23690
23719
  kind: "mutation",
23691
- auth: "admin"
23720
+ auth: "protected"
23692
23721
  }), method(object({
23693
23722
  deviceId: number().int().nonnegative(),
23694
23723
  target: number()
23695
23724
  }), _void(), {
23696
23725
  kind: "mutation",
23697
- auth: "admin"
23726
+ auth: "protected"
23698
23727
  }), method(object({
23699
23728
  deviceId: number().int().nonnegative(),
23700
23729
  targetLow: number(),
23701
23730
  targetHigh: number()
23702
23731
  }), _void(), {
23703
23732
  kind: "mutation",
23704
- auth: "admin"
23733
+ auth: "protected"
23705
23734
  }), method(object({
23706
23735
  deviceId: number().int().nonnegative(),
23707
23736
  targetHumidity: number().min(0).max(100)
23708
23737
  }), _void(), {
23709
23738
  kind: "mutation",
23710
- auth: "admin"
23739
+ auth: "protected"
23711
23740
  }), method(object({
23712
23741
  deviceId: number().int().nonnegative(),
23713
23742
  on: boolean()
23714
23743
  }), _void(), {
23715
23744
  kind: "mutation",
23716
- auth: "admin"
23745
+ auth: "protected"
23717
23746
  }), method(object({
23718
23747
  deviceId: number().int().nonnegative(),
23719
23748
  on: boolean()
23720
23749
  }), _void(), {
23721
23750
  kind: "mutation",
23722
- auth: "admin"
23751
+ auth: "protected"
23723
23752
  });
23724
23753
  /**
23725
23754
  * Color-light cap. Coexists with `switch` (on/off) and `brightness`
@@ -23794,7 +23823,7 @@ DeviceType.Light, method(object({
23794
23823
  color: ColorInputSchema
23795
23824
  }), _void(), {
23796
23825
  kind: "mutation",
23797
- auth: "admin"
23826
+ auth: "protected"
23798
23827
  }), object({
23799
23828
  deviceId: number(),
23800
23829
  mode: _enum([
@@ -23943,7 +23972,7 @@ DeviceType.Control, method(object({
23943
23972
  control: ControlSetValueInputSchema
23944
23973
  }), _void(), {
23945
23974
  kind: "mutation",
23946
- auth: "admin"
23975
+ auth: "protected"
23947
23976
  });
23948
23977
  object({
23949
23978
  /** Lifecycle state of the cover. */
@@ -23964,25 +23993,25 @@ object({
23964
23993
  });
23965
23994
  DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
23966
23995
  kind: "mutation",
23967
- auth: "admin"
23996
+ auth: "protected"
23968
23997
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
23969
23998
  kind: "mutation",
23970
- auth: "admin"
23999
+ auth: "protected"
23971
24000
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
23972
24001
  kind: "mutation",
23973
- auth: "admin"
24002
+ auth: "protected"
23974
24003
  }), method(object({
23975
24004
  deviceId: number().int().nonnegative(),
23976
24005
  position: number().min(0).max(100)
23977
24006
  }), _void(), {
23978
24007
  kind: "mutation",
23979
- auth: "admin"
24008
+ auth: "protected"
23980
24009
  }), method(object({
23981
24010
  deviceId: number().int().nonnegative(),
23982
24011
  tiltPosition: number().min(0).max(100)
23983
24012
  }), _void(), {
23984
24013
  kind: "mutation",
23985
- auth: "admin"
24014
+ auth: "protected"
23986
24015
  });
23987
24016
  /**
23988
24017
  * Vendor-neutral day/night (IR-cut) control — the per-camera config cap
@@ -24577,25 +24606,25 @@ DeviceType.Fan, method(object({
24577
24606
  percentage: number().min(0).max(100)
24578
24607
  }), _void(), {
24579
24608
  kind: "mutation",
24580
- auth: "admin"
24609
+ auth: "protected"
24581
24610
  }), method(object({
24582
24611
  deviceId: number().int().nonnegative(),
24583
24612
  preset: string().min(1)
24584
24613
  }), _void(), {
24585
24614
  kind: "mutation",
24586
- auth: "admin"
24615
+ auth: "protected"
24587
24616
  }), method(object({
24588
24617
  deviceId: number().int().nonnegative(),
24589
24618
  direction: FanDirectionSchema
24590
24619
  }), _void(), {
24591
24620
  kind: "mutation",
24592
- auth: "admin"
24621
+ auth: "protected"
24593
24622
  }), method(object({
24594
24623
  deviceId: number().int().nonnegative(),
24595
24624
  oscillating: boolean()
24596
24625
  }), _void(), {
24597
24626
  kind: "mutation",
24598
- auth: "admin"
24627
+ auth: "protected"
24599
24628
  });
24600
24629
  /**
24601
24630
  * Per-device feature/identity probe slice. Holds the runtime-resolved
@@ -24698,19 +24727,19 @@ DeviceType.Humidifier, method(object({
24698
24727
  on: boolean()
24699
24728
  }), _void(), {
24700
24729
  kind: "mutation",
24701
- auth: "admin"
24730
+ auth: "protected"
24702
24731
  }), method(object({
24703
24732
  deviceId: number().int().nonnegative(),
24704
24733
  humidity: number().min(0).max(100)
24705
24734
  }), _void(), {
24706
24735
  kind: "mutation",
24707
- auth: "admin"
24736
+ auth: "protected"
24708
24737
  }), method(object({
24709
24738
  deviceId: number().int().nonnegative(),
24710
24739
  mode: string().min(1)
24711
24740
  }), _void(), {
24712
24741
  kind: "mutation",
24713
- auth: "admin"
24742
+ auth: "protected"
24714
24743
  });
24715
24744
  object({
24716
24745
  /** Current relative humidity, 0..100. */
@@ -25172,13 +25201,13 @@ object({
25172
25201
  });
25173
25202
  DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
25174
25203
  kind: "mutation",
25175
- auth: "admin"
25204
+ auth: "protected"
25176
25205
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25177
25206
  kind: "mutation",
25178
- auth: "admin"
25207
+ auth: "protected"
25179
25208
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25180
25209
  kind: "mutation",
25181
- auth: "admin"
25210
+ auth: "protected"
25182
25211
  });
25183
25212
  /**
25184
25213
  * local-network — hub-only singleton.
@@ -25438,16 +25467,16 @@ DeviceType.Lock, method(object({
25438
25467
  code: string().min(1).optional()
25439
25468
  }), _void(), {
25440
25469
  kind: "mutation",
25441
- auth: "admin"
25470
+ auth: "protected"
25442
25471
  }), method(object({
25443
25472
  deviceId: number().int().nonnegative(),
25444
25473
  code: string().min(1).optional()
25445
25474
  }), _void(), {
25446
25475
  kind: "mutation",
25447
- auth: "admin"
25476
+ auth: "protected"
25448
25477
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25449
25478
  kind: "mutation",
25450
- auth: "admin"
25479
+ auth: "protected"
25451
25480
  });
25452
25481
  /**
25453
25482
  * Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
@@ -25521,55 +25550,55 @@ object({
25521
25550
  });
25522
25551
  DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
25523
25552
  kind: "mutation",
25524
- auth: "admin"
25553
+ auth: "protected"
25525
25554
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25526
25555
  kind: "mutation",
25527
- auth: "admin"
25556
+ auth: "protected"
25528
25557
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25529
25558
  kind: "mutation",
25530
- auth: "admin"
25559
+ auth: "protected"
25531
25560
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25532
25561
  kind: "mutation",
25533
- auth: "admin"
25562
+ auth: "protected"
25534
25563
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
25535
25564
  kind: "mutation",
25536
- auth: "admin"
25565
+ auth: "protected"
25537
25566
  }), method(object({
25538
25567
  deviceId: number().int().nonnegative(),
25539
25568
  positionMs: number().int().nonnegative()
25540
25569
  }), _void(), {
25541
25570
  kind: "mutation",
25542
- auth: "admin"
25571
+ auth: "protected"
25543
25572
  }), method(object({
25544
25573
  deviceId: number().int().nonnegative(),
25545
25574
  volumeLevel: number().min(0).max(100)
25546
25575
  }), _void(), {
25547
25576
  kind: "mutation",
25548
- auth: "admin"
25577
+ auth: "protected"
25549
25578
  }), method(object({
25550
25579
  deviceId: number().int().nonnegative(),
25551
25580
  muted: boolean()
25552
25581
  }), _void(), {
25553
25582
  kind: "mutation",
25554
- auth: "admin"
25583
+ auth: "protected"
25555
25584
  }), method(object({
25556
25585
  deviceId: number().int().nonnegative(),
25557
25586
  shuffle: boolean()
25558
25587
  }), _void(), {
25559
25588
  kind: "mutation",
25560
- auth: "admin"
25589
+ auth: "protected"
25561
25590
  }), method(object({
25562
25591
  deviceId: number().int().nonnegative(),
25563
25592
  repeat: MediaPlayerRepeatSchema
25564
25593
  }), _void(), {
25565
25594
  kind: "mutation",
25566
- auth: "admin"
25595
+ auth: "protected"
25567
25596
  }), method(object({
25568
25597
  deviceId: number().int().nonnegative(),
25569
25598
  source: string().min(1)
25570
25599
  }), _void(), {
25571
25600
  kind: "mutation",
25572
- auth: "admin"
25601
+ auth: "protected"
25573
25602
  }), method(object({
25574
25603
  deviceId: number().int().nonnegative(),
25575
25604
  /** Media identifier / URL. */
@@ -25579,7 +25608,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
25579
25608
  mediaType: string().min(1)
25580
25609
  }), _void(), {
25581
25610
  kind: "mutation",
25582
- auth: "admin"
25611
+ auth: "protected"
25583
25612
  });
25584
25613
  /**
25585
25614
  * mesh-network — collection cap for mesh-VPN providers.
@@ -26806,49 +26835,49 @@ DeviceType.PetFeeder, method(object({
26806
26835
  hopper2: gramsPortion.optional()
26807
26836
  }), _void(), {
26808
26837
  kind: "mutation",
26809
- auth: "admin"
26838
+ auth: "protected"
26810
26839
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26811
26840
  kind: "mutation",
26812
- auth: "admin"
26841
+ auth: "protected"
26813
26842
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26814
26843
  kind: "mutation",
26815
- auth: "admin"
26844
+ auth: "protected"
26816
26845
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26817
26846
  kind: "mutation",
26818
- auth: "admin"
26847
+ auth: "protected"
26819
26848
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
26820
26849
  kind: "mutation",
26821
- auth: "admin"
26850
+ auth: "protected"
26822
26851
  }), method(object({
26823
26852
  deviceId: number().int().nonnegative(),
26824
26853
  soundId: number().int().nonnegative()
26825
26854
  }), _void(), {
26826
26855
  kind: "mutation",
26827
- auth: "admin"
26856
+ auth: "protected"
26828
26857
  }), method(object({
26829
26858
  deviceId: number().int().nonnegative(),
26830
26859
  on: boolean()
26831
26860
  }), _void(), {
26832
26861
  kind: "mutation",
26833
- auth: "admin"
26862
+ auth: "protected"
26834
26863
  }), method(object({
26835
26864
  deviceId: number().int().nonnegative(),
26836
26865
  on: boolean()
26837
26866
  }), _void(), {
26838
26867
  kind: "mutation",
26839
- auth: "admin"
26868
+ auth: "protected"
26840
26869
  }), method(object({
26841
26870
  deviceId: number().int().nonnegative(),
26842
26871
  on: boolean()
26843
26872
  }), _void(), {
26844
26873
  kind: "mutation",
26845
- auth: "admin"
26874
+ auth: "protected"
26846
26875
  }), method(object({
26847
26876
  deviceId: number().int().nonnegative(),
26848
26877
  level: number().int().nonnegative()
26849
26878
  }), _void(), {
26850
26879
  kind: "mutation",
26851
- auth: "admin"
26880
+ auth: "protected"
26852
26881
  });
26853
26882
  var VehicleSchema = object({
26854
26883
  id: string(),
@@ -28635,7 +28664,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
28635
28664
  on: boolean()
28636
28665
  }), _void(), {
28637
28666
  kind: "mutation",
28638
- auth: "admin"
28667
+ auth: "protected"
28639
28668
  }), object({
28640
28669
  deviceId: number(),
28641
28670
  on: boolean(),
@@ -29492,25 +29521,25 @@ object({
29492
29521
  });
29493
29522
  DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
29494
29523
  kind: "mutation",
29495
- auth: "admin"
29524
+ auth: "protected"
29496
29525
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29497
29526
  kind: "mutation",
29498
- auth: "admin"
29527
+ auth: "protected"
29499
29528
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29500
29529
  kind: "mutation",
29501
- auth: "admin"
29530
+ auth: "protected"
29502
29531
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29503
29532
  kind: "mutation",
29504
- auth: "admin"
29533
+ auth: "protected"
29505
29534
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29506
29535
  kind: "mutation",
29507
- auth: "admin"
29536
+ auth: "protected"
29508
29537
  }), method(object({
29509
29538
  deviceId: number().int().nonnegative(),
29510
29539
  speed: string().min(1)
29511
29540
  }), _void(), {
29512
29541
  kind: "mutation",
29513
- auth: "admin"
29542
+ auth: "protected"
29514
29543
  });
29515
29544
  object({
29516
29545
  /** Lifecycle state of the valve. */
@@ -29529,19 +29558,19 @@ object({
29529
29558
  });
29530
29559
  DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
29531
29560
  kind: "mutation",
29532
- auth: "admin"
29561
+ auth: "protected"
29533
29562
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29534
29563
  kind: "mutation",
29535
- auth: "admin"
29564
+ auth: "protected"
29536
29565
  }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
29537
29566
  kind: "mutation",
29538
- auth: "admin"
29567
+ auth: "protected"
29539
29568
  }), method(object({
29540
29569
  deviceId: number().int().nonnegative(),
29541
29570
  position: number().min(0).max(100)
29542
29571
  }), _void(), {
29543
29572
  kind: "mutation",
29544
- auth: "admin"
29573
+ auth: "protected"
29545
29574
  });
29546
29575
  object({
29547
29576
  detected: boolean(),
@@ -29575,19 +29604,19 @@ DeviceType.WaterHeater, method(object({
29575
29604
  temp: number().finite()
29576
29605
  }), _void(), {
29577
29606
  kind: "mutation",
29578
- auth: "admin"
29607
+ auth: "protected"
29579
29608
  }), method(object({
29580
29609
  deviceId: number().int().nonnegative(),
29581
29610
  mode: string().min(1)
29582
29611
  }), _void(), {
29583
29612
  kind: "mutation",
29584
- auth: "admin"
29613
+ auth: "protected"
29585
29614
  }), method(object({
29586
29615
  deviceId: number().int().nonnegative(),
29587
29616
  on: boolean()
29588
29617
  }), _void(), {
29589
29618
  kind: "mutation",
29590
- auth: "admin"
29619
+ auth: "protected"
29591
29620
  });
29592
29621
  object({
29593
29622
  /** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
@@ -33215,6 +33244,12 @@ Object.freeze({
33215
33244
  addonId: null,
33216
33245
  access: "view"
33217
33246
  },
33247
+ "pipelineAnalytics.listArchivedDebugNotes": {
33248
+ capName: "pipeline-analytics",
33249
+ capScope: "device",
33250
+ addonId: null,
33251
+ access: "view"
33252
+ },
33218
33253
  "pipelineAnalytics.listEventKinds": {
33219
33254
  capName: "pipeline-analytics",
33220
33255
  capScope: "device",
@@ -37002,6 +37037,11 @@ Object.freeze({
37002
37037
  form: "array",
37003
37038
  optional: true
37004
37039
  }],
37040
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37041
+ name: "deviceId",
37042
+ form: "single",
37043
+ optional: true
37044
+ }],
37005
37045
  "pipelineAnalytics.listEventKinds": [{
37006
37046
  name: "deviceId",
37007
37047
  form: "single",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-BdBOnfeo.js");
5
+ const require_dist = require("../dist-DcVWmpNd.js");
6
6
  let node_crypto = require("node:crypto");
7
7
  let node_child_process = require("node:child_process");
8
8
  //#region src/ingress/tailscale-cli.ts
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-CRyT30U1.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-DwQzwZEk.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.2.85",
3
+ "version": "1.2.87",
4
4
  "description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",