@camstack/types 1.1.21 → 1.1.22

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.
@@ -590,7 +590,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
590
590
  prefer?: "none" | "videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm" | null | undefined;
591
591
  } | undefined;
592
592
  output: {
593
- preferred: readonly ("videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm")[];
593
+ preferred: readonly string[];
594
594
  rationale: string;
595
595
  };
596
596
  meta: object;
@@ -601,7 +601,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
601
601
  prefer?: "none" | "videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm" | null | undefined;
602
602
  };
603
603
  output: {
604
- preferred: readonly ("videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm")[];
604
+ preferred: readonly string[];
605
605
  rationale: string;
606
606
  };
607
607
  meta: object;
@@ -611,7 +611,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
611
611
  output: {
612
612
  nodeId: string;
613
613
  resolution: {
614
- preferred: readonly ("videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm")[];
614
+ preferred: readonly string[];
615
615
  rationale: string;
616
616
  };
617
617
  }[];
@@ -3510,6 +3510,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
3510
3510
  [x: string]: unknown;
3511
3511
  sessionId: string;
3512
3512
  maxCount?: number | undefined;
3513
+ waitMs?: number | undefined;
3513
3514
  };
3514
3515
  output: {
3515
3516
  data: Uint8Array<ArrayBuffer>;
@@ -3525,6 +3526,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
3525
3526
  [x: string]: unknown;
3526
3527
  sessionId: string;
3527
3528
  maxCount?: number | undefined;
3529
+ waitMs?: number | undefined;
3528
3530
  };
3529
3531
  output: {
3530
3532
  shmId: string;
@@ -7489,13 +7491,25 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
7489
7491
  input: {
7490
7492
  [x: string]: unknown;
7491
7493
  deviceId: number;
7492
- frame: {
7494
+ frame?: {
7493
7495
  data: Uint8Array<ArrayBufferLike>;
7494
7496
  format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
7495
7497
  width: number;
7496
7498
  height: number;
7497
7499
  timestamp: number;
7498
- };
7500
+ } | undefined;
7501
+ frameHandle?: {
7502
+ shmId: string;
7503
+ slot: number;
7504
+ seq: number;
7505
+ width: number;
7506
+ height: number;
7507
+ format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
7508
+ pts: number;
7509
+ byteLength: number;
7510
+ nodeId: string;
7511
+ slotCount: number;
7512
+ } | undefined;
7499
7513
  };
7500
7514
  output: {
7501
7515
  detected: boolean;
@@ -8419,6 +8433,109 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
8419
8433
  meta: object;
8420
8434
  }>;
8421
8435
  }>>;
8436
+ petFeeder: import("@trpc/server").TRPCBuiltRouter<{
8437
+ ctx: TrpcContext;
8438
+ meta: object;
8439
+ errorShape: import("@camstack/types").AugmentedErrorShape;
8440
+ transformer: true;
8441
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
8442
+ getStatus: import("@trpc/server").TRPCQueryProcedure<{
8443
+ input: {
8444
+ [x: string]: unknown;
8445
+ deviceId: number;
8446
+ };
8447
+ output: unknown;
8448
+ meta: object;
8449
+ }>;
8450
+ feed: import("@trpc/server").TRPCMutationProcedure<{
8451
+ input: {
8452
+ [x: string]: unknown;
8453
+ deviceId: number;
8454
+ grams?: number | undefined;
8455
+ hopper1?: number | undefined;
8456
+ hopper2?: number | undefined;
8457
+ };
8458
+ output: void;
8459
+ meta: object;
8460
+ }>;
8461
+ cancelFeed: import("@trpc/server").TRPCMutationProcedure<{
8462
+ input: {
8463
+ [x: string]: unknown;
8464
+ deviceId: number;
8465
+ };
8466
+ output: void;
8467
+ meta: object;
8468
+ }>;
8469
+ resetDesiccant: import("@trpc/server").TRPCMutationProcedure<{
8470
+ input: {
8471
+ [x: string]: unknown;
8472
+ deviceId: number;
8473
+ };
8474
+ output: void;
8475
+ meta: object;
8476
+ }>;
8477
+ markFoodReplenished: import("@trpc/server").TRPCMutationProcedure<{
8478
+ input: {
8479
+ [x: string]: unknown;
8480
+ deviceId: number;
8481
+ };
8482
+ output: void;
8483
+ meta: object;
8484
+ }>;
8485
+ callPet: import("@trpc/server").TRPCMutationProcedure<{
8486
+ input: {
8487
+ [x: string]: unknown;
8488
+ deviceId: number;
8489
+ };
8490
+ output: void;
8491
+ meta: object;
8492
+ }>;
8493
+ playSound: import("@trpc/server").TRPCMutationProcedure<{
8494
+ input: {
8495
+ [x: string]: unknown;
8496
+ deviceId: number;
8497
+ soundId: number;
8498
+ };
8499
+ output: void;
8500
+ meta: object;
8501
+ }>;
8502
+ setChildLock: import("@trpc/server").TRPCMutationProcedure<{
8503
+ input: {
8504
+ [x: string]: unknown;
8505
+ deviceId: number;
8506
+ on: boolean;
8507
+ };
8508
+ output: void;
8509
+ meta: object;
8510
+ }>;
8511
+ setIndicatorLight: import("@trpc/server").TRPCMutationProcedure<{
8512
+ input: {
8513
+ [x: string]: unknown;
8514
+ deviceId: number;
8515
+ on: boolean;
8516
+ };
8517
+ output: void;
8518
+ meta: object;
8519
+ }>;
8520
+ setFeedSound: import("@trpc/server").TRPCMutationProcedure<{
8521
+ input: {
8522
+ [x: string]: unknown;
8523
+ deviceId: number;
8524
+ on: boolean;
8525
+ };
8526
+ output: void;
8527
+ meta: object;
8528
+ }>;
8529
+ setVolume: import("@trpc/server").TRPCMutationProcedure<{
8530
+ input: {
8531
+ [x: string]: unknown;
8532
+ deviceId: number;
8533
+ level: number;
8534
+ };
8535
+ output: void;
8536
+ meta: object;
8537
+ }>;
8538
+ }>>;
8422
8539
  pipelineAnalytics: import("@trpc/server").TRPCBuiltRouter<{
8423
8540
  ctx: TrpcContext;
8424
8541
  meta: object;
@@ -9158,6 +9275,18 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9158
9275
  height: number;
9159
9276
  timestamp: number;
9160
9277
  } | undefined;
9278
+ frameHandle?: {
9279
+ shmId: string;
9280
+ slot: number;
9281
+ seq: number;
9282
+ width: number;
9283
+ height: number;
9284
+ format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
9285
+ pts: number;
9286
+ byteLength: number;
9287
+ nodeId: string;
9288
+ slotCount: number;
9289
+ } | undefined;
9161
9290
  imageBase64?: string | undefined;
9162
9291
  image?: Uint8Array<ArrayBuffer> | undefined;
9163
9292
  referenceImage?: string | undefined;
@@ -10552,10 +10681,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10552
10681
  input: {
10553
10682
  [x: string]: unknown;
10554
10683
  prefer?: "none" | "coreml" | "openvino" | "tensorrt" | "videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm" | "directml" | "webgpu" | null | undefined;
10555
- nodeId?: string | undefined;
10556
10684
  };
10557
10685
  output: {
10558
10686
  preferred: readonly string[];
10687
+ rationale: string;
10559
10688
  };
10560
10689
  meta: object;
10561
10690
  }>;
@@ -14838,7 +14967,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
14838
14967
  prefer?: "none" | "videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm" | null | undefined;
14839
14968
  } | undefined;
14840
14969
  output: {
14841
- preferred: readonly ("videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm")[];
14970
+ preferred: readonly string[];
14842
14971
  rationale: string;
14843
14972
  };
14844
14973
  meta: object;
@@ -14849,7 +14978,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
14849
14978
  prefer?: "none" | "videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm" | null | undefined;
14850
14979
  };
14851
14980
  output: {
14852
- preferred: readonly ("videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm")[];
14981
+ preferred: readonly string[];
14853
14982
  rationale: string;
14854
14983
  };
14855
14984
  meta: object;
@@ -14859,7 +14988,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
14859
14988
  output: {
14860
14989
  nodeId: string;
14861
14990
  resolution: {
14862
- preferred: readonly ("videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm")[];
14991
+ preferred: readonly string[];
14863
14992
  rationale: string;
14864
14993
  };
14865
14994
  }[];
@@ -17758,6 +17887,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
17758
17887
  [x: string]: unknown;
17759
17888
  sessionId: string;
17760
17889
  maxCount?: number | undefined;
17890
+ waitMs?: number | undefined;
17761
17891
  };
17762
17892
  output: {
17763
17893
  data: Uint8Array<ArrayBuffer>;
@@ -17773,6 +17903,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
17773
17903
  [x: string]: unknown;
17774
17904
  sessionId: string;
17775
17905
  maxCount?: number | undefined;
17906
+ waitMs?: number | undefined;
17776
17907
  };
17777
17908
  output: {
17778
17909
  shmId: string;
@@ -21737,13 +21868,25 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
21737
21868
  input: {
21738
21869
  [x: string]: unknown;
21739
21870
  deviceId: number;
21740
- frame: {
21871
+ frame?: {
21741
21872
  data: Uint8Array<ArrayBufferLike>;
21742
21873
  format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
21743
21874
  width: number;
21744
21875
  height: number;
21745
21876
  timestamp: number;
21746
- };
21877
+ } | undefined;
21878
+ frameHandle?: {
21879
+ shmId: string;
21880
+ slot: number;
21881
+ seq: number;
21882
+ width: number;
21883
+ height: number;
21884
+ format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
21885
+ pts: number;
21886
+ byteLength: number;
21887
+ nodeId: string;
21888
+ slotCount: number;
21889
+ } | undefined;
21747
21890
  };
21748
21891
  output: {
21749
21892
  detected: boolean;
@@ -22667,6 +22810,109 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
22667
22810
  meta: object;
22668
22811
  }>;
22669
22812
  }>>;
22813
+ petFeeder: import("@trpc/server").TRPCBuiltRouter<{
22814
+ ctx: TrpcContext;
22815
+ meta: object;
22816
+ errorShape: import("@camstack/types").AugmentedErrorShape;
22817
+ transformer: true;
22818
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
22819
+ getStatus: import("@trpc/server").TRPCQueryProcedure<{
22820
+ input: {
22821
+ [x: string]: unknown;
22822
+ deviceId: number;
22823
+ };
22824
+ output: unknown;
22825
+ meta: object;
22826
+ }>;
22827
+ feed: import("@trpc/server").TRPCMutationProcedure<{
22828
+ input: {
22829
+ [x: string]: unknown;
22830
+ deviceId: number;
22831
+ grams?: number | undefined;
22832
+ hopper1?: number | undefined;
22833
+ hopper2?: number | undefined;
22834
+ };
22835
+ output: void;
22836
+ meta: object;
22837
+ }>;
22838
+ cancelFeed: import("@trpc/server").TRPCMutationProcedure<{
22839
+ input: {
22840
+ [x: string]: unknown;
22841
+ deviceId: number;
22842
+ };
22843
+ output: void;
22844
+ meta: object;
22845
+ }>;
22846
+ resetDesiccant: import("@trpc/server").TRPCMutationProcedure<{
22847
+ input: {
22848
+ [x: string]: unknown;
22849
+ deviceId: number;
22850
+ };
22851
+ output: void;
22852
+ meta: object;
22853
+ }>;
22854
+ markFoodReplenished: import("@trpc/server").TRPCMutationProcedure<{
22855
+ input: {
22856
+ [x: string]: unknown;
22857
+ deviceId: number;
22858
+ };
22859
+ output: void;
22860
+ meta: object;
22861
+ }>;
22862
+ callPet: import("@trpc/server").TRPCMutationProcedure<{
22863
+ input: {
22864
+ [x: string]: unknown;
22865
+ deviceId: number;
22866
+ };
22867
+ output: void;
22868
+ meta: object;
22869
+ }>;
22870
+ playSound: import("@trpc/server").TRPCMutationProcedure<{
22871
+ input: {
22872
+ [x: string]: unknown;
22873
+ deviceId: number;
22874
+ soundId: number;
22875
+ };
22876
+ output: void;
22877
+ meta: object;
22878
+ }>;
22879
+ setChildLock: import("@trpc/server").TRPCMutationProcedure<{
22880
+ input: {
22881
+ [x: string]: unknown;
22882
+ deviceId: number;
22883
+ on: boolean;
22884
+ };
22885
+ output: void;
22886
+ meta: object;
22887
+ }>;
22888
+ setIndicatorLight: import("@trpc/server").TRPCMutationProcedure<{
22889
+ input: {
22890
+ [x: string]: unknown;
22891
+ deviceId: number;
22892
+ on: boolean;
22893
+ };
22894
+ output: void;
22895
+ meta: object;
22896
+ }>;
22897
+ setFeedSound: import("@trpc/server").TRPCMutationProcedure<{
22898
+ input: {
22899
+ [x: string]: unknown;
22900
+ deviceId: number;
22901
+ on: boolean;
22902
+ };
22903
+ output: void;
22904
+ meta: object;
22905
+ }>;
22906
+ setVolume: import("@trpc/server").TRPCMutationProcedure<{
22907
+ input: {
22908
+ [x: string]: unknown;
22909
+ deviceId: number;
22910
+ level: number;
22911
+ };
22912
+ output: void;
22913
+ meta: object;
22914
+ }>;
22915
+ }>>;
22670
22916
  pipelineAnalytics: import("@trpc/server").TRPCBuiltRouter<{
22671
22917
  ctx: TrpcContext;
22672
22918
  meta: object;
@@ -23406,6 +23652,18 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
23406
23652
  height: number;
23407
23653
  timestamp: number;
23408
23654
  } | undefined;
23655
+ frameHandle?: {
23656
+ shmId: string;
23657
+ slot: number;
23658
+ seq: number;
23659
+ width: number;
23660
+ height: number;
23661
+ format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
23662
+ pts: number;
23663
+ byteLength: number;
23664
+ nodeId: string;
23665
+ slotCount: number;
23666
+ } | undefined;
23409
23667
  imageBase64?: string | undefined;
23410
23668
  image?: Uint8Array<ArrayBuffer> | undefined;
23411
23669
  referenceImage?: string | undefined;
@@ -24800,10 +25058,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
24800
25058
  input: {
24801
25059
  [x: string]: unknown;
24802
25060
  prefer?: "none" | "coreml" | "openvino" | "tensorrt" | "videotoolbox" | "cuda" | "nvdec" | "vaapi" | "qsv" | "d3d11va" | "dxva2" | "amf" | "vdpau" | "drm" | "directml" | "webgpu" | null | undefined;
24803
- nodeId?: string | undefined;
24804
25061
  };
24805
25062
  output: {
24806
25063
  preferred: readonly string[];
25064
+ rationale: string;
24807
25065
  };
24808
25066
  meta: object;
24809
25067
  }>;
@@ -43,6 +43,7 @@ import type { NativeObjectDetectionStatusSchema } from '../capabilities/native-o
43
43
  import type { NotifierStatusSchema } from '../capabilities/notifier.cap.js';
44
44
  import type { NumericSensorStatusSchema } from '../capabilities/numeric-sensor.cap.js';
45
45
  import type { OsdStatusSchema } from '../capabilities/osd.cap.js';
46
+ import type { PetFeederStatusSchema } from '../capabilities/pet-feeder.cap.js';
46
47
  import type { PowerMeterStatusSchema } from '../capabilities/power-meter.cap.js';
47
48
  import type { PresenceStatusSchema } from '../capabilities/presence.cap.js';
48
49
  import type { PressureSensorStatusSchema } from '../capabilities/pressure-sensor.cap.js';
@@ -113,6 +114,7 @@ export type CapStatusTypeMap = {
113
114
  readonly 'notifier': z.infer<typeof NotifierStatusSchema>;
114
115
  readonly 'numeric-sensor': z.infer<typeof NumericSensorStatusSchema>;
115
116
  readonly 'osd': z.infer<typeof OsdStatusSchema>;
117
+ readonly 'pet-feeder': z.infer<typeof PetFeederStatusSchema>;
116
118
  readonly 'power-meter': z.infer<typeof PowerMeterStatusSchema>;
117
119
  readonly 'presence': z.infer<typeof PresenceStatusSchema>;
118
120
  readonly 'pressure-sensor': z.infer<typeof PressureSensorStatusSchema>;
@@ -141,4 +143,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
141
143
  * aggregator to enumerate caps whose `status` should be polled +
142
144
  * streamed via `subscribeDeviceStatusAggregate`.
143
145
  */
144
- export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "notifier", "numeric-sensor", "osd", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
146
+ export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
@@ -85,6 +85,7 @@ export { notifierCapability } from '../capabilities/notifier.cap.js';
85
85
  export { numericSensorCapability } from '../capabilities/numeric-sensor.cap.js';
86
86
  export { oauthIntegrationCapability } from '../capabilities/oauth-integration.cap.js';
87
87
  export { osdCapability } from '../capabilities/osd.cap.js';
88
+ export { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
88
89
  export { pipelineAnalyticsCapability } from '../capabilities/pipeline-analytics.cap.js';
89
90
  export { pipelineExecutorCapability } from '../capabilities/pipeline-executor.cap.js';
90
91
  export { pipelineOrchestratorCapability } from '../capabilities/pipeline-orchestrator.cap.js';
@@ -222,6 +223,7 @@ export declare const CAPABILITY_NAMES: {
222
223
  readonly numericSensor: "numeric-sensor";
223
224
  readonly oauthIntegration: "oauth-integration";
224
225
  readonly osd: "osd";
226
+ readonly petFeeder: "pet-feeder";
225
227
  readonly pipelineAnalytics: "pipeline-analytics";
226
228
  readonly pipelineExecutor: "pipeline-executor";
227
229
  readonly pipelineOrchestrator: "pipeline-orchestrator";
@@ -372,6 +374,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
372
374
  readonly numericSensor: TRouter;
373
375
  readonly oauthIntegration: TRouter;
374
376
  readonly osd: TRouter;
377
+ readonly petFeeder: TRouter;
375
378
  readonly pipelineAnalytics: TRouter;
376
379
  readonly pipelineExecutor: TRouter;
377
380
  readonly pipelineOrchestrator: TRouter;
@@ -422,8 +425,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
422
425
  readonly zoneRules: TRouter;
423
426
  readonly zones: TRouter;
424
427
  }
425
- /** Capability names whose mode is `singleton` (113 caps). */
426
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "advanced-notifier", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "integrations", "intercom", "lawn-mower-control", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notifier", "numeric-sensor", "osd", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "script-runner", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "stream-broker", "stream-catalog", "stream-params", "streaming-engine", "switch", "system", "tamper", "temperature-sensor", "toast", "update", "user-management", "vacuum-control", "valve", "vibration", "videoclips", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
428
+ /** Capability names whose mode is `singleton` (114 caps). */
429
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "advanced-notifier", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "integrations", "intercom", "lawn-mower-control", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notifier", "numeric-sensor", "osd", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "script-runner", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "stream-broker", "stream-catalog", "stream-params", "streaming-engine", "switch", "system", "tamper", "temperature-sensor", "toast", "update", "user-management", "vacuum-control", "valve", "vibration", "videoclips", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
427
430
  /** Union of singleton capability names (literal string union). */
428
431
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
429
432
  /** Capability names whose mode is `collection` (23 caps). */
@@ -37,6 +37,7 @@ import { motionZonesCapability } from '../capabilities/motion-zones.cap.js';
37
37
  import { nativeObjectDetectionCapability } from '../capabilities/native-object-detection.cap.js';
38
38
  import { notifierCapability } from '../capabilities/notifier.cap.js';
39
39
  import { numericSensorCapability } from '../capabilities/numeric-sensor.cap.js';
40
+ import { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
40
41
  import { powerMeterCapability } from '../capabilities/power-meter.cap.js';
41
42
  import { presenceCapability } from '../capabilities/presence.cap.js';
42
43
  import { pressureSensorCapability } from '../capabilities/pressure-sensor.cap.js';
@@ -107,6 +108,7 @@ export interface DeviceLocalState {
107
108
  nativeObjectDetection: InferRuntimeState<typeof nativeObjectDetectionCapability>;
108
109
  notifier: InferRuntimeState<typeof notifierCapability>;
109
110
  numericSensor: InferRuntimeState<typeof numericSensorCapability>;
111
+ petFeeder: InferRuntimeState<typeof petFeederCapability>;
110
112
  powerMeter: InferRuntimeState<typeof powerMeterCapability>;
111
113
  presence: InferRuntimeState<typeof presenceCapability>;
112
114
  pressureSensor: InferRuntimeState<typeof pressureSensorCapability>;
@@ -187,6 +189,7 @@ export interface CapNameToRuntimeStateMap {
187
189
  'native-object-detection': InferRuntimeState<typeof nativeObjectDetectionCapability>;
188
190
  'notifier': InferRuntimeState<typeof notifierCapability>;
189
191
  'numeric-sensor': InferRuntimeState<typeof numericSensorCapability>;
192
+ 'pet-feeder': InferRuntimeState<typeof petFeederCapability>;
190
193
  'power-meter': InferRuntimeState<typeof powerMeterCapability>;
191
194
  'presence': InferRuntimeState<typeof presenceCapability>;
192
195
  'pressure-sensor': InferRuntimeState<typeof pressureSensorCapability>;
@@ -50,6 +50,7 @@ import type { nativeObjectDetectionCapability } from '../capabilities/native-obj
50
50
  import type { notifierCapability } from '../capabilities/notifier.cap.js';
51
51
  import type { numericSensorCapability } from '../capabilities/numeric-sensor.cap.js';
52
52
  import type { osdCapability } from '../capabilities/osd.cap.js';
53
+ import type { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
53
54
  import type { pipelineAnalyticsCapability } from '../capabilities/pipeline-analytics.cap.js';
54
55
  import type { powerMeterCapability } from '../capabilities/power-meter.cap.js';
55
56
  import type { presenceCapability } from '../capabilities/presence.cap.js';
@@ -136,6 +137,7 @@ export interface DeviceProxyState {
136
137
  readonly nativeObjectDetection: SliceHandle<InferRuntimeState<typeof nativeObjectDetectionCapability>>;
137
138
  readonly notifier: SliceHandle<InferRuntimeState<typeof notifierCapability>>;
138
139
  readonly numericSensor: SliceHandle<InferRuntimeState<typeof numericSensorCapability>>;
140
+ readonly petFeeder: SliceHandle<InferRuntimeState<typeof petFeederCapability>>;
139
141
  readonly powerMeter: SliceHandle<InferRuntimeState<typeof powerMeterCapability>>;
140
142
  readonly presence: SliceHandle<InferRuntimeState<typeof presenceCapability>>;
141
143
  readonly pressureSensor: SliceHandle<InferRuntimeState<typeof pressureSensorCapability>>;
@@ -223,6 +225,7 @@ export interface DeviceProxy {
223
225
  readonly notifier?: InferDeviceProxyCap<typeof notifierCapability>;
224
226
  readonly numericSensor?: InferDeviceProxyCap<typeof numericSensorCapability>;
225
227
  readonly osd?: InferDeviceProxyCap<typeof osdCapability>;
228
+ readonly petFeeder?: InferDeviceProxyCap<typeof petFeederCapability>;
226
229
  readonly pipelineAnalytics?: InferDeviceProxyCap<typeof pipelineAnalyticsCapability>;
227
230
  readonly powerMeter?: InferDeviceProxyCap<typeof powerMeterCapability>;
228
231
  readonly presence?: InferDeviceProxyCap<typeof presenceCapability>;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 727 method paths across 110 capabilities.
9
+ * Coverage: 737 method paths across 111 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {