@camstack/addon-ai 0.4.88 → 0.4.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/addon.js +110 -70
  2. package/dist/addon.mjs +110 -70
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -7830,6 +7830,35 @@ var CameraSwitchGroupSchema = object({
7830
7830
  /** Unix ms when the group was composed server-side. */
7831
7831
  fetchedAt: number$1()
7832
7832
  });
7833
+ /** One archived note — the operator's words plus enough context to find what
7834
+ * they were looking at, after the track itself is gone. */
7835
+ var ArchivedDebugNoteSchema = object({
7836
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7837
+ * same sentence about the same track lands on the row already there. */
7838
+ id: string(),
7839
+ /** The operator's own words, verbatim. */
7840
+ note: string(),
7841
+ /** The camera. Required — every question here is asked per-camera. */
7842
+ deviceId: number$1().int(),
7843
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7844
+ * is expected to be gone, and this row is not a reference to it. */
7845
+ sourceTrackId: string(),
7846
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7847
+ archivedAt: number$1().int(),
7848
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7849
+ trackStartedAt: number$1().int().nullable(),
7850
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7851
+ trackClass: string().nullable(),
7852
+ /** The track's display label at review time; `null` when it had none. */
7853
+ trackLabel: string().nullable()
7854
+ });
7855
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7856
+ var ArchivedDebugNoteQueryInputSchema = object({
7857
+ /** Restrict to a single camera; omit for every row. */
7858
+ deviceId: number$1().int().optional(),
7859
+ /** Max rows returned, newest-first. */
7860
+ limit: number$1().int().min(1).max(1e3).optional()
7861
+ });
7833
7862
  /**
7834
7863
  * Ops-log — the durable, append-only operations audit shared by the
7835
7864
  * recordings and events management surfaces.
@@ -16108,16 +16137,16 @@ DeviceType.AlarmPanel, method(object({
16108
16137
  code: string().min(1).optional()
16109
16138
  }), _void(), {
16110
16139
  kind: "mutation",
16111
- auth: "admin"
16140
+ auth: "protected"
16112
16141
  }), method(object({
16113
16142
  deviceId: number$1().int().nonnegative(),
16114
16143
  code: string().min(1).optional()
16115
16144
  }), _void(), {
16116
16145
  kind: "mutation",
16117
- auth: "admin"
16146
+ auth: "protected"
16118
16147
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
16119
16148
  kind: "mutation",
16120
- auth: "admin"
16149
+ auth: "protected"
16121
16150
  });
16122
16151
  /**
16123
16152
  * Shared geometry vocabulary for on-frame shape caps — privacy-mask,
@@ -20019,7 +20048,7 @@ DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).r
20019
20048
  deviceId: number$1(),
20020
20049
  trackId: string(),
20021
20050
  flags: TrackFlagsPatchSchema
20022
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
20051
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
20023
20052
  kind: "query",
20024
20053
  auth: "admin"
20025
20054
  }), method(object({ deviceId: number$1().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -23772,7 +23801,7 @@ DeviceType.Light, method(object({
23772
23801
  percentage: number$1().min(0).max(100)
23773
23802
  }), _void(), {
23774
23803
  kind: "mutation",
23775
- auth: "admin"
23804
+ auth: "protected"
23776
23805
  }), object({
23777
23806
  deviceId: number$1(),
23778
23807
  percentage: number$1().min(0).max(100),
@@ -23780,7 +23809,7 @@ DeviceType.Light, method(object({
23780
23809
  });
23781
23810
  DeviceType.Button, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
23782
23811
  kind: "mutation",
23783
- auth: "admin"
23812
+ auth: "protected"
23784
23813
  });
23785
23814
  /**
23786
23815
  * camera-credentials — device-scoped cap exposing the camera's network
@@ -23939,50 +23968,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
23939
23968
  mode: HvacModeSchema
23940
23969
  }), _void(), {
23941
23970
  kind: "mutation",
23942
- auth: "admin"
23971
+ auth: "protected"
23943
23972
  }), method(object({
23944
23973
  deviceId: number$1().int().nonnegative(),
23945
23974
  fanMode: string().min(1)
23946
23975
  }), _void(), {
23947
23976
  kind: "mutation",
23948
- auth: "admin"
23977
+ auth: "protected"
23949
23978
  }), method(object({
23950
23979
  deviceId: number$1().int().nonnegative(),
23951
23980
  preset: string().min(1)
23952
23981
  }), _void(), {
23953
23982
  kind: "mutation",
23954
- auth: "admin"
23983
+ auth: "protected"
23955
23984
  }), method(object({
23956
23985
  deviceId: number$1().int().nonnegative(),
23957
23986
  target: number$1()
23958
23987
  }), _void(), {
23959
23988
  kind: "mutation",
23960
- auth: "admin"
23989
+ auth: "protected"
23961
23990
  }), method(object({
23962
23991
  deviceId: number$1().int().nonnegative(),
23963
23992
  targetLow: number$1(),
23964
23993
  targetHigh: number$1()
23965
23994
  }), _void(), {
23966
23995
  kind: "mutation",
23967
- auth: "admin"
23996
+ auth: "protected"
23968
23997
  }), method(object({
23969
23998
  deviceId: number$1().int().nonnegative(),
23970
23999
  targetHumidity: number$1().min(0).max(100)
23971
24000
  }), _void(), {
23972
24001
  kind: "mutation",
23973
- auth: "admin"
24002
+ auth: "protected"
23974
24003
  }), method(object({
23975
24004
  deviceId: number$1().int().nonnegative(),
23976
24005
  on: boolean()
23977
24006
  }), _void(), {
23978
24007
  kind: "mutation",
23979
- auth: "admin"
24008
+ auth: "protected"
23980
24009
  }), method(object({
23981
24010
  deviceId: number$1().int().nonnegative(),
23982
24011
  on: boolean()
23983
24012
  }), _void(), {
23984
24013
  kind: "mutation",
23985
- auth: "admin"
24014
+ auth: "protected"
23986
24015
  });
23987
24016
  /**
23988
24017
  * Color-light cap. Coexists with `switch` (on/off) and `brightness`
@@ -24057,7 +24086,7 @@ DeviceType.Light, method(object({
24057
24086
  color: ColorInputSchema
24058
24087
  }), _void(), {
24059
24088
  kind: "mutation",
24060
- auth: "admin"
24089
+ auth: "protected"
24061
24090
  }), object({
24062
24091
  deviceId: number$1(),
24063
24092
  mode: _enum([
@@ -24206,7 +24235,7 @@ DeviceType.Control, method(object({
24206
24235
  control: ControlSetValueInputSchema
24207
24236
  }), _void(), {
24208
24237
  kind: "mutation",
24209
- auth: "admin"
24238
+ auth: "protected"
24210
24239
  });
24211
24240
  object({
24212
24241
  /** Lifecycle state of the cover. */
@@ -24227,25 +24256,25 @@ object({
24227
24256
  });
24228
24257
  DeviceType.Cover, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
24229
24258
  kind: "mutation",
24230
- auth: "admin"
24259
+ auth: "protected"
24231
24260
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
24232
24261
  kind: "mutation",
24233
- auth: "admin"
24262
+ auth: "protected"
24234
24263
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
24235
24264
  kind: "mutation",
24236
- auth: "admin"
24265
+ auth: "protected"
24237
24266
  }), method(object({
24238
24267
  deviceId: number$1().int().nonnegative(),
24239
24268
  position: number$1().min(0).max(100)
24240
24269
  }), _void(), {
24241
24270
  kind: "mutation",
24242
- auth: "admin"
24271
+ auth: "protected"
24243
24272
  }), method(object({
24244
24273
  deviceId: number$1().int().nonnegative(),
24245
24274
  tiltPosition: number$1().min(0).max(100)
24246
24275
  }), _void(), {
24247
24276
  kind: "mutation",
24248
- auth: "admin"
24277
+ auth: "protected"
24249
24278
  });
24250
24279
  /**
24251
24280
  * Vendor-neutral day/night (IR-cut) control — the per-camera config cap
@@ -24840,25 +24869,25 @@ DeviceType.Fan, method(object({
24840
24869
  percentage: number$1().min(0).max(100)
24841
24870
  }), _void(), {
24842
24871
  kind: "mutation",
24843
- auth: "admin"
24872
+ auth: "protected"
24844
24873
  }), method(object({
24845
24874
  deviceId: number$1().int().nonnegative(),
24846
24875
  preset: string().min(1)
24847
24876
  }), _void(), {
24848
24877
  kind: "mutation",
24849
- auth: "admin"
24878
+ auth: "protected"
24850
24879
  }), method(object({
24851
24880
  deviceId: number$1().int().nonnegative(),
24852
24881
  direction: FanDirectionSchema
24853
24882
  }), _void(), {
24854
24883
  kind: "mutation",
24855
- auth: "admin"
24884
+ auth: "protected"
24856
24885
  }), method(object({
24857
24886
  deviceId: number$1().int().nonnegative(),
24858
24887
  oscillating: boolean()
24859
24888
  }), _void(), {
24860
24889
  kind: "mutation",
24861
- auth: "admin"
24890
+ auth: "protected"
24862
24891
  });
24863
24892
  /**
24864
24893
  * Per-device feature/identity probe slice. Holds the runtime-resolved
@@ -24961,19 +24990,19 @@ DeviceType.Humidifier, method(object({
24961
24990
  on: boolean()
24962
24991
  }), _void(), {
24963
24992
  kind: "mutation",
24964
- auth: "admin"
24993
+ auth: "protected"
24965
24994
  }), method(object({
24966
24995
  deviceId: number$1().int().nonnegative(),
24967
24996
  humidity: number$1().min(0).max(100)
24968
24997
  }), _void(), {
24969
24998
  kind: "mutation",
24970
- auth: "admin"
24999
+ auth: "protected"
24971
25000
  }), method(object({
24972
25001
  deviceId: number$1().int().nonnegative(),
24973
25002
  mode: string().min(1)
24974
25003
  }), _void(), {
24975
25004
  kind: "mutation",
24976
- auth: "admin"
25005
+ auth: "protected"
24977
25006
  });
24978
25007
  object({
24979
25008
  /** Current relative humidity, 0..100. */
@@ -25435,13 +25464,13 @@ object({
25435
25464
  });
25436
25465
  DeviceType.LawnMower, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25437
25466
  kind: "mutation",
25438
- auth: "admin"
25467
+ auth: "protected"
25439
25468
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25440
25469
  kind: "mutation",
25441
- auth: "admin"
25470
+ auth: "protected"
25442
25471
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25443
25472
  kind: "mutation",
25444
- auth: "admin"
25473
+ auth: "protected"
25445
25474
  });
25446
25475
  /**
25447
25476
  * local-network — hub-only singleton.
@@ -25701,16 +25730,16 @@ DeviceType.Lock, method(object({
25701
25730
  code: string().min(1).optional()
25702
25731
  }), _void(), {
25703
25732
  kind: "mutation",
25704
- auth: "admin"
25733
+ auth: "protected"
25705
25734
  }), method(object({
25706
25735
  deviceId: number$1().int().nonnegative(),
25707
25736
  code: string().min(1).optional()
25708
25737
  }), _void(), {
25709
25738
  kind: "mutation",
25710
- auth: "admin"
25739
+ auth: "protected"
25711
25740
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25712
25741
  kind: "mutation",
25713
- auth: "admin"
25742
+ auth: "protected"
25714
25743
  });
25715
25744
  /**
25716
25745
  * Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
@@ -25784,55 +25813,55 @@ object({
25784
25813
  });
25785
25814
  DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25786
25815
  kind: "mutation",
25787
- auth: "admin"
25816
+ auth: "protected"
25788
25817
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25789
25818
  kind: "mutation",
25790
- auth: "admin"
25819
+ auth: "protected"
25791
25820
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25792
25821
  kind: "mutation",
25793
- auth: "admin"
25822
+ auth: "protected"
25794
25823
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25795
25824
  kind: "mutation",
25796
- auth: "admin"
25825
+ auth: "protected"
25797
25826
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25798
25827
  kind: "mutation",
25799
- auth: "admin"
25828
+ auth: "protected"
25800
25829
  }), method(object({
25801
25830
  deviceId: number$1().int().nonnegative(),
25802
25831
  positionMs: number$1().int().nonnegative()
25803
25832
  }), _void(), {
25804
25833
  kind: "mutation",
25805
- auth: "admin"
25834
+ auth: "protected"
25806
25835
  }), method(object({
25807
25836
  deviceId: number$1().int().nonnegative(),
25808
25837
  volumeLevel: number$1().min(0).max(100)
25809
25838
  }), _void(), {
25810
25839
  kind: "mutation",
25811
- auth: "admin"
25840
+ auth: "protected"
25812
25841
  }), method(object({
25813
25842
  deviceId: number$1().int().nonnegative(),
25814
25843
  muted: boolean()
25815
25844
  }), _void(), {
25816
25845
  kind: "mutation",
25817
- auth: "admin"
25846
+ auth: "protected"
25818
25847
  }), method(object({
25819
25848
  deviceId: number$1().int().nonnegative(),
25820
25849
  shuffle: boolean()
25821
25850
  }), _void(), {
25822
25851
  kind: "mutation",
25823
- auth: "admin"
25852
+ auth: "protected"
25824
25853
  }), method(object({
25825
25854
  deviceId: number$1().int().nonnegative(),
25826
25855
  repeat: MediaPlayerRepeatSchema
25827
25856
  }), _void(), {
25828
25857
  kind: "mutation",
25829
- auth: "admin"
25858
+ auth: "protected"
25830
25859
  }), method(object({
25831
25860
  deviceId: number$1().int().nonnegative(),
25832
25861
  source: string().min(1)
25833
25862
  }), _void(), {
25834
25863
  kind: "mutation",
25835
- auth: "admin"
25864
+ auth: "protected"
25836
25865
  }), method(object({
25837
25866
  deviceId: number$1().int().nonnegative(),
25838
25867
  /** Media identifier / URL. */
@@ -25842,7 +25871,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative()
25842
25871
  mediaType: string().min(1)
25843
25872
  }), _void(), {
25844
25873
  kind: "mutation",
25845
- auth: "admin"
25874
+ auth: "protected"
25846
25875
  });
25847
25876
  /**
25848
25877
  * mesh-network — collection cap for mesh-VPN providers.
@@ -27008,49 +27037,49 @@ DeviceType.PetFeeder, method(object({
27008
27037
  hopper2: gramsPortion.optional()
27009
27038
  }), _void(), {
27010
27039
  kind: "mutation",
27011
- auth: "admin"
27040
+ auth: "protected"
27012
27041
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27013
27042
  kind: "mutation",
27014
- auth: "admin"
27043
+ auth: "protected"
27015
27044
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27016
27045
  kind: "mutation",
27017
- auth: "admin"
27046
+ auth: "protected"
27018
27047
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27019
27048
  kind: "mutation",
27020
- auth: "admin"
27049
+ auth: "protected"
27021
27050
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27022
27051
  kind: "mutation",
27023
- auth: "admin"
27052
+ auth: "protected"
27024
27053
  }), method(object({
27025
27054
  deviceId: number$1().int().nonnegative(),
27026
27055
  soundId: number$1().int().nonnegative()
27027
27056
  }), _void(), {
27028
27057
  kind: "mutation",
27029
- auth: "admin"
27058
+ auth: "protected"
27030
27059
  }), method(object({
27031
27060
  deviceId: number$1().int().nonnegative(),
27032
27061
  on: boolean()
27033
27062
  }), _void(), {
27034
27063
  kind: "mutation",
27035
- auth: "admin"
27064
+ auth: "protected"
27036
27065
  }), method(object({
27037
27066
  deviceId: number$1().int().nonnegative(),
27038
27067
  on: boolean()
27039
27068
  }), _void(), {
27040
27069
  kind: "mutation",
27041
- auth: "admin"
27070
+ auth: "protected"
27042
27071
  }), method(object({
27043
27072
  deviceId: number$1().int().nonnegative(),
27044
27073
  on: boolean()
27045
27074
  }), _void(), {
27046
27075
  kind: "mutation",
27047
- auth: "admin"
27076
+ auth: "protected"
27048
27077
  }), method(object({
27049
27078
  deviceId: number$1().int().nonnegative(),
27050
27079
  level: number$1().int().nonnegative()
27051
27080
  }), _void(), {
27052
27081
  kind: "mutation",
27053
- auth: "admin"
27082
+ auth: "protected"
27054
27083
  });
27055
27084
  var VehicleSchema = object({
27056
27085
  id: string(),
@@ -28837,7 +28866,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
28837
28866
  on: boolean()
28838
28867
  }), _void(), {
28839
28868
  kind: "mutation",
28840
- auth: "admin"
28869
+ auth: "protected"
28841
28870
  }), object({
28842
28871
  deviceId: number$1(),
28843
28872
  on: boolean(),
@@ -29694,25 +29723,25 @@ object({
29694
29723
  });
29695
29724
  DeviceType.Vacuum, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29696
29725
  kind: "mutation",
29697
- auth: "admin"
29726
+ auth: "protected"
29698
29727
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29699
29728
  kind: "mutation",
29700
- auth: "admin"
29729
+ auth: "protected"
29701
29730
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29702
29731
  kind: "mutation",
29703
- auth: "admin"
29732
+ auth: "protected"
29704
29733
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29705
29734
  kind: "mutation",
29706
- auth: "admin"
29735
+ auth: "protected"
29707
29736
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29708
29737
  kind: "mutation",
29709
- auth: "admin"
29738
+ auth: "protected"
29710
29739
  }), method(object({
29711
29740
  deviceId: number$1().int().nonnegative(),
29712
29741
  speed: string().min(1)
29713
29742
  }), _void(), {
29714
29743
  kind: "mutation",
29715
- auth: "admin"
29744
+ auth: "protected"
29716
29745
  });
29717
29746
  object({
29718
29747
  /** Lifecycle state of the valve. */
@@ -29731,19 +29760,19 @@ object({
29731
29760
  });
29732
29761
  DeviceType.Valve, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29733
29762
  kind: "mutation",
29734
- auth: "admin"
29763
+ auth: "protected"
29735
29764
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29736
29765
  kind: "mutation",
29737
- auth: "admin"
29766
+ auth: "protected"
29738
29767
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29739
29768
  kind: "mutation",
29740
- auth: "admin"
29769
+ auth: "protected"
29741
29770
  }), method(object({
29742
29771
  deviceId: number$1().int().nonnegative(),
29743
29772
  position: number$1().min(0).max(100)
29744
29773
  }), _void(), {
29745
29774
  kind: "mutation",
29746
- auth: "admin"
29775
+ auth: "protected"
29747
29776
  });
29748
29777
  object({
29749
29778
  detected: boolean(),
@@ -29777,19 +29806,19 @@ DeviceType.WaterHeater, method(object({
29777
29806
  temp: number$1().finite()
29778
29807
  }), _void(), {
29779
29808
  kind: "mutation",
29780
- auth: "admin"
29809
+ auth: "protected"
29781
29810
  }), method(object({
29782
29811
  deviceId: number$1().int().nonnegative(),
29783
29812
  mode: string().min(1)
29784
29813
  }), _void(), {
29785
29814
  kind: "mutation",
29786
- auth: "admin"
29815
+ auth: "protected"
29787
29816
  }), method(object({
29788
29817
  deviceId: number$1().int().nonnegative(),
29789
29818
  on: boolean()
29790
29819
  }), _void(), {
29791
29820
  kind: "mutation",
29792
- auth: "admin"
29821
+ auth: "protected"
29793
29822
  });
29794
29823
  object({
29795
29824
  /** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
@@ -33417,6 +33446,12 @@ Object.freeze({
33417
33446
  addonId: null,
33418
33447
  access: "view"
33419
33448
  },
33449
+ "pipelineAnalytics.listArchivedDebugNotes": {
33450
+ capName: "pipeline-analytics",
33451
+ capScope: "device",
33452
+ addonId: null,
33453
+ access: "view"
33454
+ },
33420
33455
  "pipelineAnalytics.listEventKinds": {
33421
33456
  capName: "pipeline-analytics",
33422
33457
  capScope: "device",
@@ -37204,6 +37239,11 @@ Object.freeze({
37204
37239
  form: "array",
37205
37240
  optional: true
37206
37241
  }],
37242
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37243
+ name: "deviceId",
37244
+ form: "single",
37245
+ optional: true
37246
+ }],
37207
37247
  "pipelineAnalytics.listEventKinds": [{
37208
37248
  name: "deviceId",
37209
37249
  form: "single",
package/dist/addon.mjs CHANGED
@@ -7857,6 +7857,35 @@ var CameraSwitchGroupSchema = object({
7857
7857
  /** Unix ms when the group was composed server-side. */
7858
7858
  fetchedAt: number$1()
7859
7859
  });
7860
+ /** One archived note — the operator's words plus enough context to find what
7861
+ * they were looking at, after the track itself is gone. */
7862
+ var ArchivedDebugNoteSchema = object({
7863
+ /** Archive row id. Derived from `(sourceTrackId, note)`, so re-archiving the
7864
+ * same sentence about the same track lands on the row already there. */
7865
+ id: string(),
7866
+ /** The operator's own words, verbatim. */
7867
+ note: string(),
7868
+ /** The camera. Required — every question here is asked per-camera. */
7869
+ deviceId: number$1().int(),
7870
+ /** The track the note was written on. PROVENANCE, not ownership: the track
7871
+ * is expected to be gone, and this row is not a reference to it. */
7872
+ sourceTrackId: string(),
7873
+ /** Epoch ms the note was moved here, i.e. when the operator reviewed it. */
7874
+ archivedAt: number$1().int(),
7875
+ /** The track's `firstSeen`, when the row still knew it; `null` otherwise. */
7876
+ trackStartedAt: number$1().int().nullable(),
7877
+ /** The track's detector class (`person`, `car`, …); `null` when unknown. */
7878
+ trackClass: string().nullable(),
7879
+ /** The track's display label at review time; `null` when it had none. */
7880
+ trackLabel: string().nullable()
7881
+ });
7882
+ /** Query input for `listArchivedDebugNotes` — newest first, one camera or all. */
7883
+ var ArchivedDebugNoteQueryInputSchema = object({
7884
+ /** Restrict to a single camera; omit for every row. */
7885
+ deviceId: number$1().int().optional(),
7886
+ /** Max rows returned, newest-first. */
7887
+ limit: number$1().int().min(1).max(1e3).optional()
7888
+ });
7860
7889
  /**
7861
7890
  * Ops-log — the durable, append-only operations audit shared by the
7862
7891
  * recordings and events management surfaces.
@@ -16135,16 +16164,16 @@ DeviceType.AlarmPanel, method(object({
16135
16164
  code: string().min(1).optional()
16136
16165
  }), _void(), {
16137
16166
  kind: "mutation",
16138
- auth: "admin"
16167
+ auth: "protected"
16139
16168
  }), method(object({
16140
16169
  deviceId: number$1().int().nonnegative(),
16141
16170
  code: string().min(1).optional()
16142
16171
  }), _void(), {
16143
16172
  kind: "mutation",
16144
- auth: "admin"
16173
+ auth: "protected"
16145
16174
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
16146
16175
  kind: "mutation",
16147
- auth: "admin"
16176
+ auth: "protected"
16148
16177
  });
16149
16178
  /**
16150
16179
  * Shared geometry vocabulary for on-frame shape caps — privacy-mask,
@@ -20046,7 +20075,7 @@ DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).r
20046
20075
  deviceId: number$1(),
20047
20076
  trackId: string(),
20048
20077
  flags: TrackFlagsPatchSchema
20049
- }), TrackFlagsSchema, { kind: "mutation" }), method(object({}), EventStoreFootprintSchema, {
20078
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
20050
20079
  kind: "query",
20051
20080
  auth: "admin"
20052
20081
  }), method(object({ deviceId: number$1().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -23799,7 +23828,7 @@ DeviceType.Light, method(object({
23799
23828
  percentage: number$1().min(0).max(100)
23800
23829
  }), _void(), {
23801
23830
  kind: "mutation",
23802
- auth: "admin"
23831
+ auth: "protected"
23803
23832
  }), object({
23804
23833
  deviceId: number$1(),
23805
23834
  percentage: number$1().min(0).max(100),
@@ -23807,7 +23836,7 @@ DeviceType.Light, method(object({
23807
23836
  });
23808
23837
  DeviceType.Button, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
23809
23838
  kind: "mutation",
23810
- auth: "admin"
23839
+ auth: "protected"
23811
23840
  });
23812
23841
  /**
23813
23842
  * camera-credentials — device-scoped cap exposing the camera's network
@@ -23966,50 +23995,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
23966
23995
  mode: HvacModeSchema
23967
23996
  }), _void(), {
23968
23997
  kind: "mutation",
23969
- auth: "admin"
23998
+ auth: "protected"
23970
23999
  }), method(object({
23971
24000
  deviceId: number$1().int().nonnegative(),
23972
24001
  fanMode: string().min(1)
23973
24002
  }), _void(), {
23974
24003
  kind: "mutation",
23975
- auth: "admin"
24004
+ auth: "protected"
23976
24005
  }), method(object({
23977
24006
  deviceId: number$1().int().nonnegative(),
23978
24007
  preset: string().min(1)
23979
24008
  }), _void(), {
23980
24009
  kind: "mutation",
23981
- auth: "admin"
24010
+ auth: "protected"
23982
24011
  }), method(object({
23983
24012
  deviceId: number$1().int().nonnegative(),
23984
24013
  target: number$1()
23985
24014
  }), _void(), {
23986
24015
  kind: "mutation",
23987
- auth: "admin"
24016
+ auth: "protected"
23988
24017
  }), method(object({
23989
24018
  deviceId: number$1().int().nonnegative(),
23990
24019
  targetLow: number$1(),
23991
24020
  targetHigh: number$1()
23992
24021
  }), _void(), {
23993
24022
  kind: "mutation",
23994
- auth: "admin"
24023
+ auth: "protected"
23995
24024
  }), method(object({
23996
24025
  deviceId: number$1().int().nonnegative(),
23997
24026
  targetHumidity: number$1().min(0).max(100)
23998
24027
  }), _void(), {
23999
24028
  kind: "mutation",
24000
- auth: "admin"
24029
+ auth: "protected"
24001
24030
  }), method(object({
24002
24031
  deviceId: number$1().int().nonnegative(),
24003
24032
  on: boolean()
24004
24033
  }), _void(), {
24005
24034
  kind: "mutation",
24006
- auth: "admin"
24035
+ auth: "protected"
24007
24036
  }), method(object({
24008
24037
  deviceId: number$1().int().nonnegative(),
24009
24038
  on: boolean()
24010
24039
  }), _void(), {
24011
24040
  kind: "mutation",
24012
- auth: "admin"
24041
+ auth: "protected"
24013
24042
  });
24014
24043
  /**
24015
24044
  * Color-light cap. Coexists with `switch` (on/off) and `brightness`
@@ -24084,7 +24113,7 @@ DeviceType.Light, method(object({
24084
24113
  color: ColorInputSchema
24085
24114
  }), _void(), {
24086
24115
  kind: "mutation",
24087
- auth: "admin"
24116
+ auth: "protected"
24088
24117
  }), object({
24089
24118
  deviceId: number$1(),
24090
24119
  mode: _enum([
@@ -24233,7 +24262,7 @@ DeviceType.Control, method(object({
24233
24262
  control: ControlSetValueInputSchema
24234
24263
  }), _void(), {
24235
24264
  kind: "mutation",
24236
- auth: "admin"
24265
+ auth: "protected"
24237
24266
  });
24238
24267
  object({
24239
24268
  /** Lifecycle state of the cover. */
@@ -24254,25 +24283,25 @@ object({
24254
24283
  });
24255
24284
  DeviceType.Cover, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
24256
24285
  kind: "mutation",
24257
- auth: "admin"
24286
+ auth: "protected"
24258
24287
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
24259
24288
  kind: "mutation",
24260
- auth: "admin"
24289
+ auth: "protected"
24261
24290
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
24262
24291
  kind: "mutation",
24263
- auth: "admin"
24292
+ auth: "protected"
24264
24293
  }), method(object({
24265
24294
  deviceId: number$1().int().nonnegative(),
24266
24295
  position: number$1().min(0).max(100)
24267
24296
  }), _void(), {
24268
24297
  kind: "mutation",
24269
- auth: "admin"
24298
+ auth: "protected"
24270
24299
  }), method(object({
24271
24300
  deviceId: number$1().int().nonnegative(),
24272
24301
  tiltPosition: number$1().min(0).max(100)
24273
24302
  }), _void(), {
24274
24303
  kind: "mutation",
24275
- auth: "admin"
24304
+ auth: "protected"
24276
24305
  });
24277
24306
  /**
24278
24307
  * Vendor-neutral day/night (IR-cut) control — the per-camera config cap
@@ -24867,25 +24896,25 @@ DeviceType.Fan, method(object({
24867
24896
  percentage: number$1().min(0).max(100)
24868
24897
  }), _void(), {
24869
24898
  kind: "mutation",
24870
- auth: "admin"
24899
+ auth: "protected"
24871
24900
  }), method(object({
24872
24901
  deviceId: number$1().int().nonnegative(),
24873
24902
  preset: string().min(1)
24874
24903
  }), _void(), {
24875
24904
  kind: "mutation",
24876
- auth: "admin"
24905
+ auth: "protected"
24877
24906
  }), method(object({
24878
24907
  deviceId: number$1().int().nonnegative(),
24879
24908
  direction: FanDirectionSchema
24880
24909
  }), _void(), {
24881
24910
  kind: "mutation",
24882
- auth: "admin"
24911
+ auth: "protected"
24883
24912
  }), method(object({
24884
24913
  deviceId: number$1().int().nonnegative(),
24885
24914
  oscillating: boolean()
24886
24915
  }), _void(), {
24887
24916
  kind: "mutation",
24888
- auth: "admin"
24917
+ auth: "protected"
24889
24918
  });
24890
24919
  /**
24891
24920
  * Per-device feature/identity probe slice. Holds the runtime-resolved
@@ -24988,19 +25017,19 @@ DeviceType.Humidifier, method(object({
24988
25017
  on: boolean()
24989
25018
  }), _void(), {
24990
25019
  kind: "mutation",
24991
- auth: "admin"
25020
+ auth: "protected"
24992
25021
  }), method(object({
24993
25022
  deviceId: number$1().int().nonnegative(),
24994
25023
  humidity: number$1().min(0).max(100)
24995
25024
  }), _void(), {
24996
25025
  kind: "mutation",
24997
- auth: "admin"
25026
+ auth: "protected"
24998
25027
  }), method(object({
24999
25028
  deviceId: number$1().int().nonnegative(),
25000
25029
  mode: string().min(1)
25001
25030
  }), _void(), {
25002
25031
  kind: "mutation",
25003
- auth: "admin"
25032
+ auth: "protected"
25004
25033
  });
25005
25034
  object({
25006
25035
  /** Current relative humidity, 0..100. */
@@ -25462,13 +25491,13 @@ object({
25462
25491
  });
25463
25492
  DeviceType.LawnMower, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25464
25493
  kind: "mutation",
25465
- auth: "admin"
25494
+ auth: "protected"
25466
25495
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25467
25496
  kind: "mutation",
25468
- auth: "admin"
25497
+ auth: "protected"
25469
25498
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25470
25499
  kind: "mutation",
25471
- auth: "admin"
25500
+ auth: "protected"
25472
25501
  });
25473
25502
  /**
25474
25503
  * local-network — hub-only singleton.
@@ -25728,16 +25757,16 @@ DeviceType.Lock, method(object({
25728
25757
  code: string().min(1).optional()
25729
25758
  }), _void(), {
25730
25759
  kind: "mutation",
25731
- auth: "admin"
25760
+ auth: "protected"
25732
25761
  }), method(object({
25733
25762
  deviceId: number$1().int().nonnegative(),
25734
25763
  code: string().min(1).optional()
25735
25764
  }), _void(), {
25736
25765
  kind: "mutation",
25737
- auth: "admin"
25766
+ auth: "protected"
25738
25767
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25739
25768
  kind: "mutation",
25740
- auth: "admin"
25769
+ auth: "protected"
25741
25770
  });
25742
25771
  /**
25743
25772
  * Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
@@ -25811,55 +25840,55 @@ object({
25811
25840
  });
25812
25841
  DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25813
25842
  kind: "mutation",
25814
- auth: "admin"
25843
+ auth: "protected"
25815
25844
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25816
25845
  kind: "mutation",
25817
- auth: "admin"
25846
+ auth: "protected"
25818
25847
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25819
25848
  kind: "mutation",
25820
- auth: "admin"
25849
+ auth: "protected"
25821
25850
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25822
25851
  kind: "mutation",
25823
- auth: "admin"
25852
+ auth: "protected"
25824
25853
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
25825
25854
  kind: "mutation",
25826
- auth: "admin"
25855
+ auth: "protected"
25827
25856
  }), method(object({
25828
25857
  deviceId: number$1().int().nonnegative(),
25829
25858
  positionMs: number$1().int().nonnegative()
25830
25859
  }), _void(), {
25831
25860
  kind: "mutation",
25832
- auth: "admin"
25861
+ auth: "protected"
25833
25862
  }), method(object({
25834
25863
  deviceId: number$1().int().nonnegative(),
25835
25864
  volumeLevel: number$1().min(0).max(100)
25836
25865
  }), _void(), {
25837
25866
  kind: "mutation",
25838
- auth: "admin"
25867
+ auth: "protected"
25839
25868
  }), method(object({
25840
25869
  deviceId: number$1().int().nonnegative(),
25841
25870
  muted: boolean()
25842
25871
  }), _void(), {
25843
25872
  kind: "mutation",
25844
- auth: "admin"
25873
+ auth: "protected"
25845
25874
  }), method(object({
25846
25875
  deviceId: number$1().int().nonnegative(),
25847
25876
  shuffle: boolean()
25848
25877
  }), _void(), {
25849
25878
  kind: "mutation",
25850
- auth: "admin"
25879
+ auth: "protected"
25851
25880
  }), method(object({
25852
25881
  deviceId: number$1().int().nonnegative(),
25853
25882
  repeat: MediaPlayerRepeatSchema
25854
25883
  }), _void(), {
25855
25884
  kind: "mutation",
25856
- auth: "admin"
25885
+ auth: "protected"
25857
25886
  }), method(object({
25858
25887
  deviceId: number$1().int().nonnegative(),
25859
25888
  source: string().min(1)
25860
25889
  }), _void(), {
25861
25890
  kind: "mutation",
25862
- auth: "admin"
25891
+ auth: "protected"
25863
25892
  }), method(object({
25864
25893
  deviceId: number$1().int().nonnegative(),
25865
25894
  /** Media identifier / URL. */
@@ -25869,7 +25898,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number$1().int().nonnegative()
25869
25898
  mediaType: string().min(1)
25870
25899
  }), _void(), {
25871
25900
  kind: "mutation",
25872
- auth: "admin"
25901
+ auth: "protected"
25873
25902
  });
25874
25903
  /**
25875
25904
  * mesh-network — collection cap for mesh-VPN providers.
@@ -27035,49 +27064,49 @@ DeviceType.PetFeeder, method(object({
27035
27064
  hopper2: gramsPortion.optional()
27036
27065
  }), _void(), {
27037
27066
  kind: "mutation",
27038
- auth: "admin"
27067
+ auth: "protected"
27039
27068
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27040
27069
  kind: "mutation",
27041
- auth: "admin"
27070
+ auth: "protected"
27042
27071
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27043
27072
  kind: "mutation",
27044
- auth: "admin"
27073
+ auth: "protected"
27045
27074
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27046
27075
  kind: "mutation",
27047
- auth: "admin"
27076
+ auth: "protected"
27048
27077
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
27049
27078
  kind: "mutation",
27050
- auth: "admin"
27079
+ auth: "protected"
27051
27080
  }), method(object({
27052
27081
  deviceId: number$1().int().nonnegative(),
27053
27082
  soundId: number$1().int().nonnegative()
27054
27083
  }), _void(), {
27055
27084
  kind: "mutation",
27056
- auth: "admin"
27085
+ auth: "protected"
27057
27086
  }), method(object({
27058
27087
  deviceId: number$1().int().nonnegative(),
27059
27088
  on: boolean()
27060
27089
  }), _void(), {
27061
27090
  kind: "mutation",
27062
- auth: "admin"
27091
+ auth: "protected"
27063
27092
  }), method(object({
27064
27093
  deviceId: number$1().int().nonnegative(),
27065
27094
  on: boolean()
27066
27095
  }), _void(), {
27067
27096
  kind: "mutation",
27068
- auth: "admin"
27097
+ auth: "protected"
27069
27098
  }), method(object({
27070
27099
  deviceId: number$1().int().nonnegative(),
27071
27100
  on: boolean()
27072
27101
  }), _void(), {
27073
27102
  kind: "mutation",
27074
- auth: "admin"
27103
+ auth: "protected"
27075
27104
  }), method(object({
27076
27105
  deviceId: number$1().int().nonnegative(),
27077
27106
  level: number$1().int().nonnegative()
27078
27107
  }), _void(), {
27079
27108
  kind: "mutation",
27080
- auth: "admin"
27109
+ auth: "protected"
27081
27110
  });
27082
27111
  var VehicleSchema = object({
27083
27112
  id: string(),
@@ -28864,7 +28893,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
28864
28893
  on: boolean()
28865
28894
  }), _void(), {
28866
28895
  kind: "mutation",
28867
- auth: "admin"
28896
+ auth: "protected"
28868
28897
  }), object({
28869
28898
  deviceId: number$1(),
28870
28899
  on: boolean(),
@@ -29721,25 +29750,25 @@ object({
29721
29750
  });
29722
29751
  DeviceType.Vacuum, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29723
29752
  kind: "mutation",
29724
- auth: "admin"
29753
+ auth: "protected"
29725
29754
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29726
29755
  kind: "mutation",
29727
- auth: "admin"
29756
+ auth: "protected"
29728
29757
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29729
29758
  kind: "mutation",
29730
- auth: "admin"
29759
+ auth: "protected"
29731
29760
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29732
29761
  kind: "mutation",
29733
- auth: "admin"
29762
+ auth: "protected"
29734
29763
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29735
29764
  kind: "mutation",
29736
- auth: "admin"
29765
+ auth: "protected"
29737
29766
  }), method(object({
29738
29767
  deviceId: number$1().int().nonnegative(),
29739
29768
  speed: string().min(1)
29740
29769
  }), _void(), {
29741
29770
  kind: "mutation",
29742
- auth: "admin"
29771
+ auth: "protected"
29743
29772
  });
29744
29773
  object({
29745
29774
  /** Lifecycle state of the valve. */
@@ -29758,19 +29787,19 @@ object({
29758
29787
  });
29759
29788
  DeviceType.Valve, method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29760
29789
  kind: "mutation",
29761
- auth: "admin"
29790
+ auth: "protected"
29762
29791
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29763
29792
  kind: "mutation",
29764
- auth: "admin"
29793
+ auth: "protected"
29765
29794
  }), method(object({ deviceId: number$1().int().nonnegative() }), _void(), {
29766
29795
  kind: "mutation",
29767
- auth: "admin"
29796
+ auth: "protected"
29768
29797
  }), method(object({
29769
29798
  deviceId: number$1().int().nonnegative(),
29770
29799
  position: number$1().min(0).max(100)
29771
29800
  }), _void(), {
29772
29801
  kind: "mutation",
29773
- auth: "admin"
29802
+ auth: "protected"
29774
29803
  });
29775
29804
  object({
29776
29805
  detected: boolean(),
@@ -29804,19 +29833,19 @@ DeviceType.WaterHeater, method(object({
29804
29833
  temp: number$1().finite()
29805
29834
  }), _void(), {
29806
29835
  kind: "mutation",
29807
- auth: "admin"
29836
+ auth: "protected"
29808
29837
  }), method(object({
29809
29838
  deviceId: number$1().int().nonnegative(),
29810
29839
  mode: string().min(1)
29811
29840
  }), _void(), {
29812
29841
  kind: "mutation",
29813
- auth: "admin"
29842
+ auth: "protected"
29814
29843
  }), method(object({
29815
29844
  deviceId: number$1().int().nonnegative(),
29816
29845
  on: boolean()
29817
29846
  }), _void(), {
29818
29847
  kind: "mutation",
29819
- auth: "admin"
29848
+ auth: "protected"
29820
29849
  });
29821
29850
  object({
29822
29851
  /** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
@@ -33444,6 +33473,12 @@ Object.freeze({
33444
33473
  addonId: null,
33445
33474
  access: "view"
33446
33475
  },
33476
+ "pipelineAnalytics.listArchivedDebugNotes": {
33477
+ capName: "pipeline-analytics",
33478
+ capScope: "device",
33479
+ addonId: null,
33480
+ access: "view"
33481
+ },
33447
33482
  "pipelineAnalytics.listEventKinds": {
33448
33483
  capName: "pipeline-analytics",
33449
33484
  capScope: "device",
@@ -37231,6 +37266,11 @@ Object.freeze({
37231
37266
  form: "array",
37232
37267
  optional: true
37233
37268
  }],
37269
+ "pipelineAnalytics.listArchivedDebugNotes": [{
37270
+ name: "deviceId",
37271
+ form: "single",
37272
+ optional: true
37273
+ }],
37234
37274
  "pipelineAnalytics.listEventKinds": [{
37235
37275
  name: "deviceId",
37236
37276
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-ai",
3
- "version": "0.4.88",
3
+ "version": "0.4.90",
4
4
  "description": "AI addon for CamStack — the `llm` collection provider (cloud, LAN, and camstack-managed local llama.cpp profiles) plus the per-node `llm-runtime` managed executor.",
5
5
  "keywords": [
6
6
  "camstack",