@camstack/types 1.2.245 → 1.2.247

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.
@@ -45,7 +45,6 @@ import type { deviceOpsCapability } from '../capabilities/device-ops.cap.js';
45
45
  import type { deviceProviderCapability } from '../capabilities/device-provider.cap.js';
46
46
  import type { deviceStateCapability } from '../capabilities/device-state.cap.js';
47
47
  import type { embeddingEncoderCapability } from '../capabilities/embedding-encoder.cap.js';
48
- import type { eventsCapability } from '../capabilities/events.cap.js';
49
48
  import type { faceGalleryCapability } from '../capabilities/face-gallery.cap.js';
50
49
  import type { failureContributionCapability } from '../capabilities/failure-contribution.cap.js';
51
50
  import type { fanControlCapability } from '../capabilities/fan-control.cap.js';
@@ -94,6 +93,7 @@ import type { privacyMaskCapability } from '../capabilities/privacy-mask.cap.js'
94
93
  import type { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
95
94
  import type { ptzCapability } from '../capabilities/ptz.cap.js';
96
95
  import type { rebootCapability } from '../capabilities/reboot.cap.js';
96
+ import type { recordingArchiveCapability } from '../capabilities/recording-archive.cap.js';
97
97
  import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
98
98
  import type { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
99
99
  import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
@@ -3054,34 +3054,6 @@ export type AppRouter = TrpcCoreRouter<{
3054
3054
  meta: object;
3055
3055
  }>;
3056
3056
  }>>;
3057
- events: TRPCBuiltRouter<{
3058
- ctx: TrpcContext;
3059
- meta: object;
3060
- errorShape: AugmentedErrorShape;
3061
- transformer: true;
3062
- }, TRPCDecorateCreateRouterOptions<{
3063
- getEvents: TRPCQueryProcedure<{
3064
- input: {
3065
- [x: string]: unknown;
3066
- } & z.input<typeof eventsCapability.methods.getEvents.input>;
3067
- output: z.infer<typeof eventsCapability.methods.getEvents.output>;
3068
- meta: object;
3069
- }>;
3070
- getEventThumbnail: TRPCQueryProcedure<{
3071
- input: {
3072
- [x: string]: unknown;
3073
- } & z.input<typeof eventsCapability.methods.getEventThumbnail.input>;
3074
- output: z.infer<typeof eventsCapability.methods.getEventThumbnail.output>;
3075
- meta: object;
3076
- }>;
3077
- getEventClipUrl: TRPCQueryProcedure<{
3078
- input: {
3079
- [x: string]: unknown;
3080
- } & z.input<typeof eventsCapability.methods.getEventClipUrl.input>;
3081
- output: z.infer<typeof eventsCapability.methods.getEventClipUrl.output>;
3082
- meta: object;
3083
- }>;
3084
- }>>;
3085
3057
  faceGallery: TRPCBuiltRouter<{
3086
3058
  ctx: TrpcContext;
3087
3059
  meta: object;
@@ -6836,6 +6808,48 @@ export type AppRouter = TrpcCoreRouter<{
6836
6808
  meta: object;
6837
6809
  errorShape: AugmentedErrorShape;
6838
6810
  transformer: true;
6811
+ }, TRPCDecorateCreateRouterOptions<{
6812
+ listSources: TRPCQueryProcedure<{
6813
+ input: {
6814
+ [x: string]: unknown;
6815
+ } & z.input<typeof recordingCapability.methods.listSources.input>;
6816
+ output: z.infer<typeof recordingCapability.methods.listSources.output>;
6817
+ meta: object;
6818
+ }>;
6819
+ getAvailability: TRPCQueryProcedure<{
6820
+ input: {
6821
+ [x: string]: unknown;
6822
+ } & z.input<typeof recordingCapability.methods.getAvailability.input>;
6823
+ output: z.infer<typeof recordingCapability.methods.getAvailability.output>;
6824
+ meta: object;
6825
+ }>;
6826
+ getDaysWithRecordings: TRPCQueryProcedure<{
6827
+ input: {
6828
+ [x: string]: unknown;
6829
+ } & z.input<typeof recordingCapability.methods.getDaysWithRecordings.input>;
6830
+ output: z.infer<typeof recordingCapability.methods.getDaysWithRecordings.output>;
6831
+ meta: object;
6832
+ }>;
6833
+ getPlayback: TRPCQueryProcedure<{
6834
+ input: {
6835
+ [x: string]: unknown;
6836
+ } & z.input<typeof recordingCapability.methods.getPlayback.input>;
6837
+ output: z.infer<typeof recordingCapability.methods.getPlayback.output>;
6838
+ meta: object;
6839
+ }>;
6840
+ getPlaybackOptions: TRPCQueryProcedure<{
6841
+ input: {
6842
+ [x: string]: unknown;
6843
+ } & z.input<typeof recordingCapability.methods.getPlaybackOptions.input>;
6844
+ output: z.infer<typeof recordingCapability.methods.getPlaybackOptions.output>;
6845
+ meta: object;
6846
+ }>;
6847
+ }>>;
6848
+ recordingArchive: TRPCBuiltRouter<{
6849
+ ctx: TrpcContext;
6850
+ meta: object;
6851
+ errorShape: AugmentedErrorShape;
6852
+ transformer: true;
6839
6853
  }, TRPCDecorateCreateRouterOptions<{
6840
6854
  getStatus: TRPCQueryProcedure<{
6841
6855
  input: {
@@ -6865,235 +6879,214 @@ export type AppRouter = TrpcCoreRouter<{
6865
6879
  output: z.infer<typeof DEVICE_SETTINGS_CONTRIBUTION_METHODS.applyDeviceSettingsPatch.output>;
6866
6880
  meta: object;
6867
6881
  }>;
6868
- getAvailability: TRPCQueryProcedure<{
6869
- input: {
6870
- [x: string]: unknown;
6871
- } & z.input<typeof recordingCapability.methods.getAvailability.input>;
6872
- output: z.infer<typeof recordingCapability.methods.getAvailability.output>;
6873
- meta: object;
6874
- }>;
6875
6882
  getAvailabilityBatch: TRPCQueryProcedure<{
6876
6883
  input: {
6877
6884
  [x: string]: unknown;
6878
- } & z.input<typeof recordingCapability.methods.getAvailabilityBatch.input>;
6879
- output: z.infer<typeof recordingCapability.methods.getAvailabilityBatch.output>;
6880
- meta: object;
6881
- }>;
6882
- getDaysWithRecordings: TRPCQueryProcedure<{
6883
- input: {
6884
- [x: string]: unknown;
6885
- } & z.input<typeof recordingCapability.methods.getDaysWithRecordings.input>;
6886
- output: z.infer<typeof recordingCapability.methods.getDaysWithRecordings.output>;
6885
+ } & z.input<typeof recordingArchiveCapability.methods.getAvailabilityBatch.input>;
6886
+ output: z.infer<typeof recordingArchiveCapability.methods.getAvailabilityBatch.output>;
6887
6887
  meta: object;
6888
6888
  }>;
6889
6889
  getDaysWithRecordingsBatch: TRPCQueryProcedure<{
6890
6890
  input: {
6891
6891
  [x: string]: unknown;
6892
- } & z.input<typeof recordingCapability.methods.getDaysWithRecordingsBatch.input>;
6893
- output: z.infer<typeof recordingCapability.methods.getDaysWithRecordingsBatch.output>;
6894
- meta: object;
6895
- }>;
6896
- getPlaybackManifest: TRPCQueryProcedure<{
6897
- input: {
6898
- [x: string]: unknown;
6899
- } & z.input<typeof recordingCapability.methods.getPlaybackManifest.input>;
6900
- output: z.infer<typeof recordingCapability.methods.getPlaybackManifest.output>;
6892
+ } & z.input<typeof recordingArchiveCapability.methods.getDaysWithRecordingsBatch.input>;
6893
+ output: z.infer<typeof recordingArchiveCapability.methods.getDaysWithRecordingsBatch.output>;
6901
6894
  meta: object;
6902
6895
  }>;
6903
6896
  getStorageUsage: TRPCQueryProcedure<{
6904
6897
  input: {
6905
6898
  [x: string]: unknown;
6906
- } & z.input<typeof recordingCapability.methods.getStorageUsage.input>;
6907
- output: z.infer<typeof recordingCapability.methods.getStorageUsage.output>;
6899
+ } & z.input<typeof recordingArchiveCapability.methods.getStorageUsage.input>;
6900
+ output: z.infer<typeof recordingArchiveCapability.methods.getStorageUsage.output>;
6908
6901
  meta: object;
6909
6902
  }>;
6910
6903
  getDeviceConfig: TRPCQueryProcedure<{
6911
6904
  input: {
6912
6905
  [x: string]: unknown;
6913
- } & z.input<typeof recordingCapability.methods.getDeviceConfig.input>;
6914
- output: z.infer<typeof recordingCapability.methods.getDeviceConfig.output>;
6906
+ } & z.input<typeof recordingArchiveCapability.methods.getDeviceConfig.input>;
6907
+ output: z.infer<typeof recordingArchiveCapability.methods.getDeviceConfig.output>;
6915
6908
  meta: object;
6916
6909
  }>;
6917
6910
  locateSegment: TRPCQueryProcedure<{
6918
6911
  input: {
6919
6912
  [x: string]: unknown;
6920
- } & z.input<typeof recordingCapability.methods.locateSegment.input>;
6921
- output: z.infer<typeof recordingCapability.methods.locateSegment.output>;
6913
+ } & z.input<typeof recordingArchiveCapability.methods.locateSegment.input>;
6914
+ output: z.infer<typeof recordingArchiveCapability.methods.locateSegment.output>;
6922
6915
  meta: object;
6923
6916
  }>;
6924
6917
  readSegmentBytes: TRPCQueryProcedure<{
6925
6918
  input: {
6926
6919
  [x: string]: unknown;
6927
- } & z.input<typeof recordingCapability.methods.readSegmentBytes.input>;
6928
- output: z.infer<typeof recordingCapability.methods.readSegmentBytes.output>;
6920
+ } & z.input<typeof recordingArchiveCapability.methods.readSegmentBytes.input>;
6921
+ output: z.infer<typeof recordingArchiveCapability.methods.readSegmentBytes.output>;
6929
6922
  meta: object;
6930
6923
  }>;
6931
6924
  readGopBytes: TRPCQueryProcedure<{
6932
6925
  input: {
6933
6926
  [x: string]: unknown;
6934
- } & z.input<typeof recordingCapability.methods.readGopBytes.input>;
6935
- output: z.infer<typeof recordingCapability.methods.readGopBytes.output>;
6927
+ } & z.input<typeof recordingArchiveCapability.methods.readGopBytes.input>;
6928
+ output: z.infer<typeof recordingArchiveCapability.methods.readGopBytes.output>;
6936
6929
  meta: object;
6937
6930
  }>;
6938
6931
  readWindowBytes: TRPCQueryProcedure<{
6939
6932
  input: {
6940
6933
  [x: string]: unknown;
6941
- } & z.input<typeof recordingCapability.methods.readWindowBytes.input>;
6942
- output: z.infer<typeof recordingCapability.methods.readWindowBytes.output>;
6934
+ } & z.input<typeof recordingArchiveCapability.methods.readWindowBytes.input>;
6935
+ output: z.infer<typeof recordingArchiveCapability.methods.readWindowBytes.output>;
6943
6936
  meta: object;
6944
6937
  }>;
6945
6938
  setDeviceConfig: TRPCMutationProcedure<{
6946
6939
  input: {
6947
6940
  [x: string]: unknown;
6948
- } & z.input<typeof recordingCapability.methods.setDeviceConfig.input>;
6949
- output: z.infer<typeof recordingCapability.methods.setDeviceConfig.output>;
6941
+ } & z.input<typeof recordingArchiveCapability.methods.setDeviceConfig.input>;
6942
+ output: z.infer<typeof recordingArchiveCapability.methods.setDeviceConfig.output>;
6950
6943
  meta: object;
6951
6944
  }>;
6952
6945
  rescanStorage: TRPCMutationProcedure<{
6953
6946
  input: {
6954
6947
  [x: string]: unknown;
6955
- } & z.input<typeof recordingCapability.methods.rescanStorage.input>;
6956
- output: z.infer<typeof recordingCapability.methods.rescanStorage.output>;
6948
+ } & z.input<typeof recordingArchiveCapability.methods.rescanStorage.input>;
6949
+ output: z.infer<typeof recordingArchiveCapability.methods.rescanStorage.output>;
6957
6950
  meta: object;
6958
6951
  }>;
6959
6952
  pruneFootage: TRPCMutationProcedure<{
6960
6953
  input: {
6961
6954
  [x: string]: unknown;
6962
- } & z.input<typeof recordingCapability.methods.pruneFootage.input>;
6963
- output: z.infer<typeof recordingCapability.methods.pruneFootage.output>;
6955
+ } & z.input<typeof recordingArchiveCapability.methods.pruneFootage.input>;
6956
+ output: z.infer<typeof recordingArchiveCapability.methods.pruneFootage.output>;
6964
6957
  meta: object;
6965
6958
  }>;
6966
6959
  deleteFootprint: TRPCMutationProcedure<{
6967
6960
  input: {
6968
6961
  [x: string]: unknown;
6969
- } & z.input<typeof recordingCapability.methods.deleteFootprint.input>;
6970
- output: z.infer<typeof recordingCapability.methods.deleteFootprint.output>;
6962
+ } & z.input<typeof recordingArchiveCapability.methods.deleteFootprint.input>;
6963
+ output: z.infer<typeof recordingArchiveCapability.methods.deleteFootprint.output>;
6971
6964
  meta: object;
6972
6965
  }>;
6973
6966
  listOpsLog: TRPCQueryProcedure<{
6974
6967
  input: {
6975
6968
  [x: string]: unknown;
6976
- } & z.input<typeof recordingCapability.methods.listOpsLog.input>;
6977
- output: z.infer<typeof recordingCapability.methods.listOpsLog.output>;
6969
+ } & z.input<typeof recordingArchiveCapability.methods.listOpsLog.input>;
6970
+ output: z.infer<typeof recordingArchiveCapability.methods.listOpsLog.output>;
6978
6971
  meta: object;
6979
6972
  }>;
6980
6973
  renderGif: TRPCMutationProcedure<{
6981
6974
  input: {
6982
6975
  [x: string]: unknown;
6983
- } & z.input<typeof recordingCapability.methods.renderGif.input>;
6984
- output: z.infer<typeof recordingCapability.methods.renderGif.output>;
6976
+ } & z.input<typeof recordingArchiveCapability.methods.renderGif.input>;
6977
+ output: z.infer<typeof recordingArchiveCapability.methods.renderGif.output>;
6985
6978
  meta: object;
6986
6979
  }>;
6987
6980
  renderClip: TRPCMutationProcedure<{
6988
6981
  input: {
6989
6982
  [x: string]: unknown;
6990
- } & z.input<typeof recordingCapability.methods.renderClip.input>;
6991
- output: z.infer<typeof recordingCapability.methods.renderClip.output>;
6983
+ } & z.input<typeof recordingArchiveCapability.methods.renderClip.input>;
6984
+ output: z.infer<typeof recordingArchiveCapability.methods.renderClip.output>;
6992
6985
  meta: object;
6993
6986
  }>;
6994
6987
  pauseForStorageMigration: TRPCMutationProcedure<{
6995
6988
  input: {
6996
6989
  [x: string]: unknown;
6997
- } & z.input<typeof recordingCapability.methods.pauseForStorageMigration.input>;
6998
- output: z.infer<typeof recordingCapability.methods.pauseForStorageMigration.output>;
6990
+ } & z.input<typeof recordingArchiveCapability.methods.pauseForStorageMigration.input>;
6991
+ output: z.infer<typeof recordingArchiveCapability.methods.pauseForStorageMigration.output>;
6999
6992
  meta: object;
7000
6993
  }>;
7001
6994
  resumeForStorageMigration: TRPCMutationProcedure<{
7002
6995
  input: {
7003
6996
  [x: string]: unknown;
7004
- } & z.input<typeof recordingCapability.methods.resumeForStorageMigration.input>;
7005
- output: z.infer<typeof recordingCapability.methods.resumeForStorageMigration.output>;
6997
+ } & z.input<typeof recordingArchiveCapability.methods.resumeForStorageMigration.input>;
6998
+ output: z.infer<typeof recordingArchiveCapability.methods.resumeForStorageMigration.output>;
7006
6999
  meta: object;
7007
7000
  }>;
7008
7001
  refreshStorageLocationsForMigration: TRPCMutationProcedure<{
7009
7002
  input: {
7010
7003
  [x: string]: unknown;
7011
- } & z.input<typeof recordingCapability.methods.refreshStorageLocationsForMigration.input>;
7012
- output: z.infer<typeof recordingCapability.methods.refreshStorageLocationsForMigration.output>;
7004
+ } & z.input<typeof recordingArchiveCapability.methods.refreshStorageLocationsForMigration.input>;
7005
+ output: z.infer<typeof recordingArchiveCapability.methods.refreshStorageLocationsForMigration.output>;
7013
7006
  meta: object;
7014
7007
  }>;
7015
7008
  startStorageMigrationMove: TRPCMutationProcedure<{
7016
7009
  input: {
7017
7010
  [x: string]: unknown;
7018
- } & z.input<typeof recordingCapability.methods.startStorageMigrationMove.input>;
7019
- output: z.infer<typeof recordingCapability.methods.startStorageMigrationMove.output>;
7011
+ } & z.input<typeof recordingArchiveCapability.methods.startStorageMigrationMove.input>;
7012
+ output: z.infer<typeof recordingArchiveCapability.methods.startStorageMigrationMove.output>;
7020
7013
  meta: object;
7021
7014
  }>;
7022
7015
  getStorageMigrationMoveStatus: TRPCQueryProcedure<{
7023
7016
  input: {
7024
7017
  [x: string]: unknown;
7025
- } & z.input<typeof recordingCapability.methods.getStorageMigrationMoveStatus.input>;
7026
- output: z.infer<typeof recordingCapability.methods.getStorageMigrationMoveStatus.output>;
7018
+ } & z.input<typeof recordingArchiveCapability.methods.getStorageMigrationMoveStatus.input>;
7019
+ output: z.infer<typeof recordingArchiveCapability.methods.getStorageMigrationMoveStatus.output>;
7027
7020
  meta: object;
7028
7021
  }>;
7029
7022
  cancelStorageMigrationMove: TRPCMutationProcedure<{
7030
7023
  input: {
7031
7024
  [x: string]: unknown;
7032
- } & z.input<typeof recordingCapability.methods.cancelStorageMigrationMove.input>;
7033
- output: z.infer<typeof recordingCapability.methods.cancelStorageMigrationMove.output>;
7025
+ } & z.input<typeof recordingArchiveCapability.methods.cancelStorageMigrationMove.input>;
7026
+ output: z.infer<typeof recordingArchiveCapability.methods.cancelStorageMigrationMove.output>;
7034
7027
  meta: object;
7035
7028
  }>;
7036
7029
  relocateFootage: TRPCMutationProcedure<{
7037
7030
  input: {
7038
7031
  [x: string]: unknown;
7039
- } & z.input<typeof recordingCapability.methods.relocateFootage.input>;
7040
- output: z.infer<typeof recordingCapability.methods.relocateFootage.output>;
7032
+ } & z.input<typeof recordingArchiveCapability.methods.relocateFootage.input>;
7033
+ output: z.infer<typeof recordingArchiveCapability.methods.relocateFootage.output>;
7041
7034
  meta: object;
7042
7035
  }>;
7043
7036
  listRelocateJobs: TRPCQueryProcedure<{
7044
7037
  input: {
7045
7038
  [x: string]: unknown;
7046
- } & z.input<typeof recordingCapability.methods.listRelocateJobs.input>;
7047
- output: z.infer<typeof recordingCapability.methods.listRelocateJobs.output>;
7039
+ } & z.input<typeof recordingArchiveCapability.methods.listRelocateJobs.input>;
7040
+ output: z.infer<typeof recordingArchiveCapability.methods.listRelocateJobs.output>;
7048
7041
  meta: object;
7049
7042
  }>;
7050
7043
  getRelocateResidue: TRPCQueryProcedure<{
7051
7044
  input: {
7052
7045
  [x: string]: unknown;
7053
- } & z.input<typeof recordingCapability.methods.getRelocateResidue.input>;
7054
- output: z.infer<typeof recordingCapability.methods.getRelocateResidue.output>;
7046
+ } & z.input<typeof recordingArchiveCapability.methods.getRelocateResidue.input>;
7047
+ output: z.infer<typeof recordingArchiveCapability.methods.getRelocateResidue.output>;
7055
7048
  meta: object;
7056
7049
  }>;
7057
7050
  reconcileLedgerAgainstDisk: TRPCMutationProcedure<{
7058
7051
  input: {
7059
7052
  [x: string]: unknown;
7060
- } & z.input<typeof recordingCapability.methods.reconcileLedgerAgainstDisk.input>;
7061
- output: z.infer<typeof recordingCapability.methods.reconcileLedgerAgainstDisk.output>;
7053
+ } & z.input<typeof recordingArchiveCapability.methods.reconcileLedgerAgainstDisk.input>;
7054
+ output: z.infer<typeof recordingArchiveCapability.methods.reconcileLedgerAgainstDisk.output>;
7062
7055
  meta: object;
7063
7056
  }>;
7064
7057
  cancelRelocateJob: TRPCMutationProcedure<{
7065
7058
  input: {
7066
7059
  [x: string]: unknown;
7067
- } & z.input<typeof recordingCapability.methods.cancelRelocateJob.input>;
7068
- output: z.infer<typeof recordingCapability.methods.cancelRelocateJob.output>;
7060
+ } & z.input<typeof recordingArchiveCapability.methods.cancelRelocateJob.input>;
7061
+ output: z.infer<typeof recordingArchiveCapability.methods.cancelRelocateJob.output>;
7069
7062
  meta: object;
7070
7063
  }>;
7071
7064
  planStorageRebalance: TRPCQueryProcedure<{
7072
7065
  input: {
7073
7066
  [x: string]: unknown;
7074
- } & z.input<typeof recordingCapability.methods.planStorageRebalance.input>;
7075
- output: z.infer<typeof recordingCapability.methods.planStorageRebalance.output>;
7067
+ } & z.input<typeof recordingArchiveCapability.methods.planStorageRebalance.input>;
7068
+ output: z.infer<typeof recordingArchiveCapability.methods.planStorageRebalance.output>;
7076
7069
  meta: object;
7077
7070
  }>;
7078
7071
  startStorageRebalance: TRPCMutationProcedure<{
7079
7072
  input: {
7080
7073
  [x: string]: unknown;
7081
- } & z.input<typeof recordingCapability.methods.startStorageRebalance.input>;
7082
- output: z.infer<typeof recordingCapability.methods.startStorageRebalance.output>;
7074
+ } & z.input<typeof recordingArchiveCapability.methods.startStorageRebalance.input>;
7075
+ output: z.infer<typeof recordingArchiveCapability.methods.startStorageRebalance.output>;
7083
7076
  meta: object;
7084
7077
  }>;
7085
7078
  getPlacement: TRPCQueryProcedure<{
7086
7079
  input: {
7087
7080
  [x: string]: unknown;
7088
- } & z.input<typeof recordingCapability.methods.getPlacement.input>;
7089
- output: z.infer<typeof recordingCapability.methods.getPlacement.output>;
7081
+ } & z.input<typeof recordingArchiveCapability.methods.getPlacement.input>;
7082
+ output: z.infer<typeof recordingArchiveCapability.methods.getPlacement.output>;
7090
7083
  meta: object;
7091
7084
  }>;
7092
7085
  setDevicePlacement: TRPCMutationProcedure<{
7093
7086
  input: {
7094
7087
  [x: string]: unknown;
7095
- } & z.input<typeof recordingCapability.methods.setDevicePlacement.input>;
7096
- output: z.infer<typeof recordingCapability.methods.setDevicePlacement.output>;
7088
+ } & z.input<typeof recordingArchiveCapability.methods.setDevicePlacement.input>;
7089
+ output: z.infer<typeof recordingArchiveCapability.methods.setDevicePlacement.output>;
7097
7090
  meta: object;
7098
7091
  }>;
7099
7092
  }>>;
@@ -9131,6 +9124,13 @@ export type AppRouter = TrpcCoreRouter<{
9131
9124
  output: z.infer<typeof videoclipsCapability.methods.readClipBytes.output>;
9132
9125
  meta: object;
9133
9126
  }>;
9127
+ offerClipBytes: TRPCQueryProcedure<{
9128
+ input: {
9129
+ [x: string]: unknown;
9130
+ } & z.input<typeof videoclipsCapability.methods.offerClipBytes.input>;
9131
+ output: z.infer<typeof videoclipsCapability.methods.offerClipBytes.output>;
9132
+ meta: object;
9133
+ }>;
9134
9134
  dialClipStream: TRPCQueryProcedure<{
9135
9135
  input: {
9136
9136
  [x: string]: unknown;
@@ -9138,6 +9138,13 @@ export type AppRouter = TrpcCoreRouter<{
9138
9138
  output: z.infer<typeof videoclipsCapability.methods.dialClipStream.output>;
9139
9139
  meta: object;
9140
9140
  }>;
9141
+ getPlaybackOptions: TRPCQueryProcedure<{
9142
+ input: {
9143
+ [x: string]: unknown;
9144
+ } & z.input<typeof videoclipsCapability.methods.getPlaybackOptions.input>;
9145
+ output: z.infer<typeof videoclipsCapability.methods.getPlaybackOptions.output>;
9146
+ meta: object;
9147
+ }>;
9141
9148
  }>>;
9142
9149
  viewerUi: TRPCBuiltRouter<{
9143
9150
  ctx: TrpcContext;
@@ -54,7 +54,7 @@ import type { PressureSensorStatusSchema } from '../capabilities/pressure-sensor
54
54
  import type { PrivacyMaskStatusSchema } from '../capabilities/privacy-mask.cap.js';
55
55
  import type { PtzStatusSchema } from '../capabilities/ptz.cap.js';
56
56
  import type { PtzAutotrackStatusSchema } from '../capabilities/ptz-autotrack.cap.js';
57
- import type { RecordingStatusSchema } from '../capabilities/recording.cap.js';
57
+ import type { recordingArchiveCapability } from '../capabilities/recording-archive.cap.js';
58
58
  import type { RecordingOnboardStatusSchema } from '../capabilities/recording-onboard.cap.js';
59
59
  import type { RecordingSignalStatusSchema } from '../capabilities/recording-signal.cap.js';
60
60
  import type { SceneMonitorStatusSchema } from '../capabilities/scene-monitor.cap.js';
@@ -132,7 +132,7 @@ export type CapStatusTypeMap = {
132
132
  readonly 'privacy-mask': z.infer<typeof PrivacyMaskStatusSchema>;
133
133
  readonly 'ptz': z.infer<typeof PtzStatusSchema>;
134
134
  readonly 'ptz-autotrack': z.infer<typeof PtzAutotrackStatusSchema>;
135
- readonly 'recording': z.infer<typeof RecordingStatusSchema>;
135
+ readonly 'recording-archive': z.infer<(typeof recordingArchiveCapability)['status']['schema']>;
136
136
  readonly 'recording-onboard': z.infer<typeof RecordingOnboardStatusSchema>;
137
137
  readonly 'recording-signal': z.infer<typeof RecordingSignalStatusSchema>;
138
138
  readonly 'scene-monitor': z.infer<typeof SceneMonitorStatusSchema>;
@@ -157,4 +157,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
157
157
  * aggregator to enumerate caps whose `status` should be polled +
158
158
  * streamed via `subscribeDeviceStatusAggregate`.
159
159
  */
160
- 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", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
160
+ 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", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
@@ -55,7 +55,6 @@ export { doorbellCapability } from '../capabilities/doorbell.cap.js';
55
55
  export { embeddingEncoderCapability } from '../capabilities/embedding-encoder.cap.js';
56
56
  export { enumSensorCapability } from '../capabilities/enum-sensor.cap.js';
57
57
  export { eventEmitterCapability } from '../capabilities/event-emitter.cap.js';
58
- export { eventsCapability } from '../capabilities/events.cap.js';
59
58
  export { faceGalleryCapability } from '../capabilities/face-gallery.cap.js';
60
59
  export { failureContributionCapability } from '../capabilities/failure-contribution.cap.js';
61
60
  export { fanControlCapability } from '../capabilities/fan-control.cap.js';
@@ -116,6 +115,7 @@ export { ptzCapability } from '../capabilities/ptz.cap.js';
116
115
  export { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
117
116
  export { rebootCapability } from '../capabilities/reboot.cap.js';
118
117
  export { recordingCapability } from '../capabilities/recording.cap.js';
118
+ export { recordingArchiveCapability } from '../capabilities/recording-archive.cap.js';
119
119
  export { recordingExportCapability } from '../capabilities/recording-export.cap.js';
120
120
  export { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
121
121
  export { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
@@ -216,7 +216,6 @@ export declare const CAPABILITY_NAMES: {
216
216
  readonly embeddingEncoder: "embedding-encoder";
217
217
  readonly enumSensor: "enum-sensor";
218
218
  readonly eventEmitter: "event-emitter";
219
- readonly events: "events";
220
219
  readonly faceGallery: "face-gallery";
221
220
  readonly failureContribution: "failure-contribution";
222
221
  readonly fanControl: "fan-control";
@@ -277,6 +276,7 @@ export declare const CAPABILITY_NAMES: {
277
276
  readonly ptzAutotrack: "ptz-autotrack";
278
277
  readonly reboot: "reboot";
279
278
  readonly recording: "recording";
279
+ readonly recordingArchive: "recording-archive";
280
280
  readonly recordingExport: "recording-export";
281
281
  readonly recordingOnboard: "recording-onboard";
282
282
  readonly recordingSignal: "recording-signal";
@@ -390,7 +390,6 @@ export interface CapabilityRouterMap<TRouter = unknown> {
390
390
  readonly embeddingEncoder: TRouter;
391
391
  readonly enumSensor: TRouter;
392
392
  readonly eventEmitter: TRouter;
393
- readonly events: TRouter;
394
393
  readonly faceGallery: TRouter;
395
394
  readonly failureContribution: TRouter;
396
395
  readonly fanControl: TRouter;
@@ -451,6 +450,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
451
450
  readonly ptzAutotrack: TRouter;
452
451
  readonly reboot: TRouter;
453
452
  readonly recording: TRouter;
453
+ readonly recordingArchive: TRouter;
454
454
  readonly recordingExport: TRouter;
455
455
  readonly recordingOnboard: TRouter;
456
456
  readonly recordingSignal: TRouter;
@@ -494,12 +494,12 @@ export interface CapabilityRouterMap<TRouter = unknown> {
494
494
  readonly zoneRules: TRouter;
495
495
  readonly zones: TRouter;
496
496
  }
497
- /** Capability names whose mode is `singleton` (131 caps). */
498
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "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-grid-layout", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-admin-link", "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", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "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", "recording-export", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "stream-signals", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
497
+ /** Capability names whose mode is `singleton` (130 caps). */
498
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "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-grid-layout", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-admin-link", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "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-archive", "recording-export", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "stream-signals", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
499
499
  /** Union of singleton capability names (literal string union). */
500
500
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
501
- /** Capability names whose mode is `collection` (29 caps). */
502
- export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "failure-contribution", "llm", "load-contribution", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-occupancy", "storage-provider", "turn-provider", "user-passkeys", "videoclips"];
501
+ /** Capability names whose mode is `collection` (30 caps). */
502
+ export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "failure-contribution", "llm", "load-contribution", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "recording", "smtp-provider", "storage-evictable", "storage-occupancy", "storage-provider", "turn-provider", "user-passkeys", "videoclips"];
503
503
  /** Union of collection capability names (literal string union). */
504
504
  export type CollectionCapabilityName = typeof COLLECTION_CAPABILITY_NAMES[number];
505
505
  /** Capability mode lookup at runtime — mirrors the `.cap.ts` definitions. */
@@ -8,7 +8,7 @@
8
8
  * barrel (`ALL_CAPABILITY_DEFINITIONS`), which would cost ~144MB RSS per
9
9
  * forked runner. See docs/decisions/adr-0028.md.
10
10
  *
11
- * Coverage: 22 collection caps, 36 array methods.
11
+ * Coverage: 23 collection caps, 37 array methods.
12
12
  */
13
13
  export declare const COLLECTION_ARRAY_METHODS: Readonly<Record<string, readonly string[]>>;
14
14
  /**
@@ -33,7 +33,6 @@ import type { deviceStatusCapability } from '../capabilities/device-status.cap.j
33
33
  import type { doorbellCapability } from '../capabilities/doorbell.cap.js';
34
34
  import type { enumSensorCapability } from '../capabilities/enum-sensor.cap.js';
35
35
  import type { eventEmitterCapability } from '../capabilities/event-emitter.cap.js';
36
- import type { eventsCapability } from '../capabilities/events.cap.js';
37
36
  import type { fanControlCapability } from '../capabilities/fan-control.cap.js';
38
37
  import type { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
39
38
  import type { floodCapability } from '../capabilities/flood.cap.js';
@@ -66,6 +65,7 @@ import type { privacyMaskCapability } from '../capabilities/privacy-mask.cap.js'
66
65
  import type { ptzCapability } from '../capabilities/ptz.cap.js';
67
66
  import type { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
68
67
  import type { rebootCapability } from '../capabilities/reboot.cap.js';
68
+ import type { recordingCapability } from '../capabilities/recording.cap.js';
69
69
  import type { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
70
70
  import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
71
71
  import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
@@ -104,7 +104,7 @@ import type { pipelineExecutorCapability } from '../capabilities/pipeline-execut
104
104
  import type { pipelineOrchestratorCapability } from '../capabilities/pipeline-orchestrator.cap.js';
105
105
  import type { pipelineRunnerCapability } from '../capabilities/pipeline-runner.cap.js';
106
106
  import type { plateGalleryCapability } from '../capabilities/plate-gallery.cap.js';
107
- import type { recordingCapability } from '../capabilities/recording.cap.js';
107
+ import type { recordingArchiveCapability } from '../capabilities/recording-archive.cap.js';
108
108
  import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
109
109
  import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
110
110
  /**
@@ -232,7 +232,6 @@ export interface DeviceProxy {
232
232
  readonly doorbell?: InferDeviceProxyCap<typeof doorbellCapability>;
233
233
  readonly enumSensor?: InferDeviceProxyCap<typeof enumSensorCapability>;
234
234
  readonly eventEmitter?: InferDeviceProxyCap<typeof eventEmitterCapability>;
235
- readonly events?: InferDeviceProxyCap<typeof eventsCapability>;
236
235
  readonly fanControl?: InferDeviceProxyCap<typeof fanControlCapability>;
237
236
  readonly featureProbe?: InferDeviceProxyCap<typeof featureProbeCapability>;
238
237
  readonly flood?: InferDeviceProxyCap<typeof floodCapability>;
@@ -265,6 +264,7 @@ export interface DeviceProxy {
265
264
  readonly ptz?: InferDeviceProxyCap<typeof ptzCapability>;
266
265
  readonly ptzAutotrack?: InferDeviceProxyCap<typeof ptzAutotrackCapability>;
267
266
  readonly reboot?: InferDeviceProxyCap<typeof rebootCapability>;
267
+ readonly recording?: InferDeviceProxyCap<typeof recordingCapability>;
268
268
  readonly recordingOnboard?: InferDeviceProxyCap<typeof recordingOnboardCapability>;
269
269
  readonly recordingSignal?: InferDeviceProxyCap<typeof recordingSignalCapability>;
270
270
  readonly sceneMonitor?: InferDeviceProxyCap<typeof sceneMonitorCapability>;
@@ -303,7 +303,7 @@ export interface DeviceProxy {
303
303
  readonly pipelineOrchestrator: Pick<InferDeviceProxyCap<typeof pipelineOrchestratorCapability>, 'assignPipeline' | 'unassignPipeline' | 'setPipelineDevicePin' | 'getPipelineDevicePin' | 'getPipelineAssignment' | 'getCameraMetrics' | 'assignAudio' | 'unassignAudio' | 'getAudioAssignment' | 'getAudioAssignments' | 'getCameraSettings' | 'setCameraStepToggle' | 'getCameraStepOverrides' | 'setCameraStepOverride' | 'setCameraPipelineForAgent' | 'resolvePipeline' | 'getCameraSwitches' | 'setCameraSwitch' | 'getCameraStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
304
304
  readonly pipelineRunner: Pick<InferDeviceProxyCap<typeof pipelineRunnerCapability>, 'detachCamera' | 'getCameraMetrics' | 'requestOccupancyBurst' | 'runDetailSubtree' | 'parkTrackFrame' | 'getParkedTrackFrame' | 'releaseParkedTrackFrames'>;
305
305
  readonly plateGallery: Pick<InferDeviceProxyCap<typeof plateGalleryCapability>, 'listPlates' | 'getPlateByTrack'>;
306
- readonly recording: Pick<InferDeviceProxyCap<typeof recordingCapability>, 'getAvailability' | 'getDaysWithRecordings' | 'getPlaybackManifest' | 'getDeviceConfig' | 'locateSegment' | 'readSegmentBytes' | 'readGopBytes' | 'readWindowBytes' | 'setDeviceConfig' | 'rescanStorage' | 'pruneFootage' | 'deleteFootprint' | 'renderGif' | 'renderClip' | 'getStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
306
+ readonly recordingArchive: Pick<InferDeviceProxyCap<typeof recordingArchiveCapability>, 'getDeviceConfig' | 'locateSegment' | 'readSegmentBytes' | 'readGopBytes' | 'readWindowBytes' | 'setDeviceConfig' | 'rescanStorage' | 'pruneFootage' | 'deleteFootprint' | 'renderGif' | 'renderClip' | 'getStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
307
307
  readonly recordingExport: Pick<InferDeviceProxyCap<typeof recordingExportCapability>, 'listExports'>;
308
308
  readonly streamBroker: Pick<InferDeviceProxyCap<typeof streamBrokerCapability>, 'reportStreamSignal' | 'publishCameraStream' | 'retractCameraStream' | 'assignProfile' | 'unassignProfile' | 'forgetDeviceHardware' | 'renderPreBufferClip' | 'produceEventMedia' | 'restartProfile' | 'getDeviceAudioMute' | 'setDeviceAudioMute' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
309
309
  }
@@ -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: 1169 method paths across 160 capabilities.
9
+ * Coverage: 1170 method paths across 160 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,8 +6,8 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 395 methods carry a device reference, of which
10
- * 141 are on SYSTEM-scope caps.
9
+ * Coverage: 396 methods carry a device reference, of which
10
+ * 138 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
13
13
  * a numeric device field (targets[].deviceId) are all mapped; the matcher