@camstack/types 0.1.4 → 0.1.6

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 (195) hide show
  1. package/package.json +3 -2
  2. package/dist/__tests__/addon-capability-provider.test.d.ts +0 -2
  3. package/dist/__tests__/addon-capability-provider.test.d.ts.map +0 -1
  4. package/dist/__tests__/addon-declaration.test.d.ts +0 -2
  5. package/dist/__tests__/addon-declaration.test.d.ts.map +0 -1
  6. package/dist/__tests__/capability.test.d.ts +0 -2
  7. package/dist/__tests__/capability.test.d.ts.map +0 -1
  8. package/dist/catalogs/coco-classmap.d.ts +0 -5
  9. package/dist/catalogs/coco-classmap.d.ts.map +0 -1
  10. package/dist/catalogs/index.d.ts +0 -2
  11. package/dist/catalogs/index.d.ts.map +0 -1
  12. package/dist/constants.d.ts +0 -3
  13. package/dist/constants.d.ts.map +0 -1
  14. package/dist/generated/addon-api.d.ts +0 -4870
  15. package/dist/generated/addon-api.d.ts.map +0 -1
  16. package/dist/index.d.ts +0 -82
  17. package/dist/index.d.ts.map +0 -1
  18. package/dist/interfaces/addon-i18n.d.ts +0 -41
  19. package/dist/interfaces/addon-i18n.d.ts.map +0 -1
  20. package/dist/interfaces/addon-routes.d.ts +0 -50
  21. package/dist/interfaces/addon-routes.d.ts.map +0 -1
  22. package/dist/interfaces/addon.d.ts +0 -294
  23. package/dist/interfaces/addon.d.ts.map +0 -1
  24. package/dist/interfaces/advanced-notifier.d.ts +0 -59
  25. package/dist/interfaces/advanced-notifier.d.ts.map +0 -1
  26. package/dist/interfaces/agent-protocol.d.ts +0 -189
  27. package/dist/interfaces/agent-protocol.d.ts.map +0 -1
  28. package/dist/interfaces/agent.d.ts +0 -87
  29. package/dist/interfaces/agent.d.ts.map +0 -1
  30. package/dist/interfaces/analysis-persistence.d.ts +0 -278
  31. package/dist/interfaces/analysis-persistence.d.ts.map +0 -1
  32. package/dist/interfaces/analysis.d.ts +0 -27
  33. package/dist/interfaces/analysis.d.ts.map +0 -1
  34. package/dist/interfaces/api-shared.d.ts +0 -169
  35. package/dist/interfaces/api-shared.d.ts.map +0 -1
  36. package/dist/interfaces/auth-provider.d.ts +0 -39
  37. package/dist/interfaces/auth-provider.d.ts.map +0 -1
  38. package/dist/interfaces/auth.d.ts +0 -47
  39. package/dist/interfaces/auth.d.ts.map +0 -1
  40. package/dist/interfaces/camera-pipeline.d.ts +0 -121
  41. package/dist/interfaces/camera-pipeline.d.ts.map +0 -1
  42. package/dist/interfaces/capability.d.ts +0 -84
  43. package/dist/interfaces/capability.d.ts.map +0 -1
  44. package/dist/interfaces/classifier.d.ts +0 -8
  45. package/dist/interfaces/classifier.d.ts.map +0 -1
  46. package/dist/interfaces/config-ui.d.ts +0 -152
  47. package/dist/interfaces/config-ui.d.ts.map +0 -1
  48. package/dist/interfaces/context.d.ts +0 -44
  49. package/dist/interfaces/context.d.ts.map +0 -1
  50. package/dist/interfaces/cropper.d.ts +0 -8
  51. package/dist/interfaces/cropper.d.ts.map +0 -1
  52. package/dist/interfaces/decoder.d.ts +0 -27
  53. package/dist/interfaces/decoder.d.ts.map +0 -1
  54. package/dist/interfaces/detection-addon.d.ts +0 -15
  55. package/dist/interfaces/detection-addon.d.ts.map +0 -1
  56. package/dist/interfaces/detector.d.ts +0 -8
  57. package/dist/interfaces/detector.d.ts.map +0 -1
  58. package/dist/interfaces/device-capabilities/accessory.d.ts +0 -14
  59. package/dist/interfaces/device-capabilities/accessory.d.ts.map +0 -1
  60. package/dist/interfaces/device-capabilities/audio-detector.d.ts +0 -12
  61. package/dist/interfaces/device-capabilities/audio-detector.d.ts.map +0 -1
  62. package/dist/interfaces/device-capabilities/camera.d.ts +0 -22
  63. package/dist/interfaces/device-capabilities/camera.d.ts.map +0 -1
  64. package/dist/interfaces/device-capabilities/doorbell.d.ts +0 -10
  65. package/dist/interfaces/device-capabilities/doorbell.d.ts.map +0 -1
  66. package/dist/interfaces/device-capabilities/events.d.ts +0 -47
  67. package/dist/interfaces/device-capabilities/events.d.ts.map +0 -1
  68. package/dist/interfaces/device-capabilities/index.d.ts +0 -15
  69. package/dist/interfaces/device-capabilities/index.d.ts.map +0 -1
  70. package/dist/interfaces/device-capabilities/motion-sensor.d.ts +0 -7
  71. package/dist/interfaces/device-capabilities/motion-sensor.d.ts.map +0 -1
  72. package/dist/interfaces/device-capabilities/native-detection.d.ts +0 -14
  73. package/dist/interfaces/device-capabilities/native-detection.d.ts.map +0 -1
  74. package/dist/interfaces/device-capabilities/object-detector.d.ts +0 -59
  75. package/dist/interfaces/device-capabilities/object-detector.d.ts.map +0 -1
  76. package/dist/interfaces/device-capabilities/pan-tilt-zoom.d.ts +0 -29
  77. package/dist/interfaces/device-capabilities/pan-tilt-zoom.d.ts.map +0 -1
  78. package/dist/interfaces/device-capabilities/recording.d.ts +0 -18
  79. package/dist/interfaces/device-capabilities/recording.d.ts.map +0 -1
  80. package/dist/interfaces/device-capabilities/siren.d.ts +0 -8
  81. package/dist/interfaces/device-capabilities/siren.d.ts.map +0 -1
  82. package/dist/interfaces/device-capabilities/status-light.d.ts +0 -7
  83. package/dist/interfaces/device-capabilities/status-light.d.ts.map +0 -1
  84. package/dist/interfaces/device-capabilities/switch.d.ts +0 -8
  85. package/dist/interfaces/device-capabilities/switch.d.ts.map +0 -1
  86. package/dist/interfaces/device-capabilities/two-way-audio.d.ts +0 -8
  87. package/dist/interfaces/device-capabilities/two-way-audio.d.ts.map +0 -1
  88. package/dist/interfaces/device-capability.d.ts +0 -14
  89. package/dist/interfaces/device-capability.d.ts.map +0 -1
  90. package/dist/interfaces/device-provider.d.ts +0 -43
  91. package/dist/interfaces/device-provider.d.ts.map +0 -1
  92. package/dist/interfaces/device.d.ts +0 -40
  93. package/dist/interfaces/device.d.ts.map +0 -1
  94. package/dist/interfaces/event-bus.d.ts +0 -22
  95. package/dist/interfaces/event-bus.d.ts.map +0 -1
  96. package/dist/interfaces/feature-flags.d.ts +0 -14
  97. package/dist/interfaces/feature-flags.d.ts.map +0 -1
  98. package/dist/interfaces/ffmpeg.d.ts +0 -10
  99. package/dist/interfaces/ffmpeg.d.ts.map +0 -1
  100. package/dist/interfaces/inference-capabilities.d.ts +0 -101
  101. package/dist/interfaces/inference-capabilities.d.ts.map +0 -1
  102. package/dist/interfaces/inference-engine.d.ts +0 -17
  103. package/dist/interfaces/inference-engine.d.ts.map +0 -1
  104. package/dist/interfaces/lifecycle.d.ts +0 -19
  105. package/dist/interfaces/lifecycle.d.ts.map +0 -1
  106. package/dist/interfaces/logging.d.ts +0 -33
  107. package/dist/interfaces/logging.d.ts.map +0 -1
  108. package/dist/interfaces/model-catalog.d.ts +0 -25
  109. package/dist/interfaces/model-catalog.d.ts.map +0 -1
  110. package/dist/interfaces/network-quality.d.ts +0 -25
  111. package/dist/interfaces/network-quality.d.ts.map +0 -1
  112. package/dist/interfaces/network.d.ts +0 -43
  113. package/dist/interfaces/network.d.ts.map +0 -1
  114. package/dist/interfaces/notification.d.ts +0 -53
  115. package/dist/interfaces/notification.d.ts.map +0 -1
  116. package/dist/interfaces/pipeline-runner.d.ts +0 -23
  117. package/dist/interfaces/pipeline-runner.d.ts.map +0 -1
  118. package/dist/interfaces/pipeline-slot.d.ts +0 -10
  119. package/dist/interfaces/pipeline-slot.d.ts.map +0 -1
  120. package/dist/interfaces/platform.d.ts +0 -55
  121. package/dist/interfaces/platform.d.ts.map +0 -1
  122. package/dist/interfaces/process.d.ts +0 -41
  123. package/dist/interfaces/process.d.ts.map +0 -1
  124. package/dist/interfaces/python-env.d.ts +0 -20
  125. package/dist/interfaces/python-env.d.ts.map +0 -1
  126. package/dist/interfaces/refiner.d.ts +0 -8
  127. package/dist/interfaces/refiner.d.ts.map +0 -1
  128. package/dist/interfaces/repl.d.ts +0 -26
  129. package/dist/interfaces/repl.d.ts.map +0 -1
  130. package/dist/interfaces/repositories.d.ts +0 -20
  131. package/dist/interfaces/repositories.d.ts.map +0 -1
  132. package/dist/interfaces/restreamer.d.ts +0 -24
  133. package/dist/interfaces/restreamer.d.ts.map +0 -1
  134. package/dist/interfaces/router.d.ts +0 -30
  135. package/dist/interfaces/router.d.ts.map +0 -1
  136. package/dist/interfaces/scene-intelligence.d.ts +0 -21
  137. package/dist/interfaces/scene-intelligence.d.ts.map +0 -1
  138. package/dist/interfaces/scoped-token.d.ts +0 -22
  139. package/dist/interfaces/scoped-token.d.ts.map +0 -1
  140. package/dist/interfaces/server-analysis.d.ts +0 -146
  141. package/dist/interfaces/server-analysis.d.ts.map +0 -1
  142. package/dist/interfaces/server-network.d.ts +0 -78
  143. package/dist/interfaces/server-network.d.ts.map +0 -1
  144. package/dist/interfaces/storage-backend.d.ts +0 -27
  145. package/dist/interfaces/storage-backend.d.ts.map +0 -1
  146. package/dist/interfaces/storage.d.ts +0 -174
  147. package/dist/interfaces/storage.d.ts.map +0 -1
  148. package/dist/interfaces/stream-broker.d.ts +0 -92
  149. package/dist/interfaces/stream-broker.d.ts.map +0 -1
  150. package/dist/interfaces/streaming.d.ts +0 -29
  151. package/dist/interfaces/streaming.d.ts.map +0 -1
  152. package/dist/interfaces/task-handler.d.ts +0 -46
  153. package/dist/interfaces/task-handler.d.ts.map +0 -1
  154. package/dist/interfaces/webrtc-provider.d.ts +0 -11
  155. package/dist/interfaces/webrtc-provider.d.ts.map +0 -1
  156. package/dist/interfaces/worker-protocol.d.ts +0 -110
  157. package/dist/interfaces/worker-protocol.d.ts.map +0 -1
  158. package/dist/schemas/system-settings-schemas.d.ts +0 -27
  159. package/dist/schemas/system-settings-schemas.d.ts.map +0 -1
  160. package/dist/types/analytics.d.ts +0 -75
  161. package/dist/types/analytics.d.ts.map +0 -1
  162. package/dist/types/benchmark.d.ts +0 -112
  163. package/dist/types/benchmark.d.ts.map +0 -1
  164. package/dist/types/camera-detection.d.ts +0 -34
  165. package/dist/types/camera-detection.d.ts.map +0 -1
  166. package/dist/types/config.d.ts +0 -37
  167. package/dist/types/config.d.ts.map +0 -1
  168. package/dist/types/detection.d.ts +0 -93
  169. package/dist/types/detection.d.ts.map +0 -1
  170. package/dist/types/device-type.d.ts +0 -10
  171. package/dist/types/device-type.d.ts.map +0 -1
  172. package/dist/types/entities.d.ts +0 -35
  173. package/dist/types/entities.d.ts.map +0 -1
  174. package/dist/types/events.d.ts +0 -35
  175. package/dist/types/events.d.ts.map +0 -1
  176. package/dist/types/io.d.ts +0 -25
  177. package/dist/types/io.d.ts.map +0 -1
  178. package/dist/types/labels.d.ts +0 -12
  179. package/dist/types/labels.d.ts.map +0 -1
  180. package/dist/types/live-state.d.ts +0 -47
  181. package/dist/types/live-state.d.ts.map +0 -1
  182. package/dist/types/models.d.ts +0 -79
  183. package/dist/types/models.d.ts.map +0 -1
  184. package/dist/types/pipeline-schema.d.ts +0 -78
  185. package/dist/types/pipeline-schema.d.ts.map +0 -1
  186. package/dist/types/pipeline.d.ts +0 -42
  187. package/dist/types/pipeline.d.ts.map +0 -1
  188. package/dist/types/tracked.d.ts +0 -21
  189. package/dist/types/tracked.d.ts.map +0 -1
  190. package/dist/types/zones.d.ts +0 -48
  191. package/dist/types/zones.d.ts.map +0 -1
  192. package/dist/utils/cosine-similarity.d.ts +0 -3
  193. package/dist/utils/cosine-similarity.d.ts.map +0 -1
  194. package/dist/utils/hf-url.d.ts +0 -2
  195. package/dist/utils/hf-url.d.ts.map +0 -1
@@ -1,146 +0,0 @@
1
- /**
2
- * Detection Analysis Pipeline -- processes raw detections through
3
- * configurable stages to produce tracked, enriched, actionable events.
4
- */
5
- import type { Detection } from './device-capabilities/object-detector.js';
6
- import type { VideoFrame } from './camera-pipeline.js';
7
- export declare const DETECTION_TYPES: readonly ["person", "vehicle", "animal", "package"];
8
- export type DetectionType = typeof DETECTION_TYPES[number];
9
- export declare const SUB_DETECTION_TYPES: readonly ["face", "plate"];
10
- export type SubDetectionType = typeof SUB_DETECTION_TYPES[number];
11
- export declare const RECOGNITION_TYPES: readonly ["face", "plate", "clip", "custom"];
12
- export type RecognitionType = typeof RECOGNITION_TYPES[number];
13
- export interface AnalysisContext {
14
- readonly deviceId: string;
15
- readonly frame: VideoFrame;
16
- readonly timestamp: number;
17
- readonly rawDetections: readonly Detection[];
18
- readonly trackedDetections: readonly ServerTrackedDetection[];
19
- readonly events: readonly AnalysisEvent[];
20
- readonly metadata: Readonly<Record<string, unknown>>;
21
- }
22
- export interface ServerTrackedDetection {
23
- readonly trackId: string;
24
- readonly detection: Detection;
25
- readonly crop?: Buffer;
26
- readonly tracking: TrackingInfo;
27
- readonly subDetections: readonly SubDetection[];
28
- readonly recognitions: readonly RecognitionResult[];
29
- readonly zones: readonly string[];
30
- readonly previousZones: readonly string[];
31
- }
32
- export interface TrackingInfo {
33
- readonly age: number;
34
- readonly state: 'moving' | 'stationary' | 'new' | 'lost';
35
- readonly stationaryDuration: number;
36
- readonly velocity: {
37
- readonly dx: number;
38
- readonly dy: number;
39
- };
40
- readonly positionHistory: ReadonlyArray<{
41
- readonly x: number;
42
- readonly y: number;
43
- readonly t: number;
44
- }>;
45
- }
46
- export interface SubDetection {
47
- readonly detectionType: SubDetectionType;
48
- readonly boundingBox: readonly [number, number, number, number];
49
- readonly score: number;
50
- readonly crop?: Buffer;
51
- }
52
- export interface RecognitionResult {
53
- readonly recognitionType: RecognitionType;
54
- readonly label: string;
55
- readonly score: number;
56
- readonly embedding?: readonly number[];
57
- readonly metadata?: Readonly<Record<string, unknown>>;
58
- }
59
- export interface AnalysisEvent {
60
- readonly category: string;
61
- readonly severity: 'info' | 'warning' | 'alert';
62
- readonly detection: ServerTrackedDetection;
63
- readonly description: string;
64
- readonly data: Readonly<Record<string, unknown>>;
65
- }
66
- export interface IAnalysisStage {
67
- readonly id: string;
68
- readonly name: string;
69
- readonly priority: number;
70
- enabled: boolean;
71
- process(ctx: AnalysisContext): Promise<AnalysisContext>;
72
- }
73
- export interface ISubDetector {
74
- readonly detectionType: SubDetectionType;
75
- readonly targetClasses: readonly string[];
76
- detect(crop: Buffer, cropWidth: number, cropHeight: number): Promise<SubDetection[]>;
77
- }
78
- export interface IFaceDetector extends ISubDetector {
79
- readonly detectionType: 'face';
80
- }
81
- export interface IPlateDetector extends ISubDetector {
82
- readonly detectionType: 'plate';
83
- }
84
- export interface IRecognizer {
85
- readonly recognitionType: RecognitionType;
86
- recognize(crop: Buffer, width: number, height: number): Promise<RecognitionResult | null>;
87
- }
88
- export interface IFaceRecognizer extends IRecognizer {
89
- getEmbedding(crop: Buffer): Promise<Float32Array>;
90
- registerKnown(label: string, embedding: Float32Array): void;
91
- }
92
- export interface IPlateRecognizer extends IRecognizer {
93
- readonly recognitionType: 'plate';
94
- }
95
- export interface IAudioClassifier {
96
- readonly ready: boolean;
97
- initialize(): Promise<void>;
98
- classify(audioSamples: Float32Array, sampleRate: number, topN?: number): Promise<readonly AudioClassification[]>;
99
- release(): Promise<void>;
100
- }
101
- export interface AudioClassification {
102
- readonly classIndex: number;
103
- readonly className: string;
104
- readonly score: number;
105
- readonly isSurveillanceRelevant: boolean;
106
- }
107
- export interface IClassFilterStage extends IAnalysisStage {
108
- readonly id: 'class-filter';
109
- setConfig(deviceId: string, config: Record<string, unknown>): void;
110
- getConfig(deviceId: string): Record<string, unknown>;
111
- }
112
- export interface ITrackerStage extends IAnalysisStage {
113
- readonly id: 'tracker';
114
- setConfig(deviceId: string, config: Record<string, unknown>): void;
115
- getConfig(deviceId: string): Record<string, unknown>;
116
- resetDevice(deviceId: string): void;
117
- }
118
- export interface ISubDetectionStage extends IAnalysisStage {
119
- readonly id: 'sub-detection';
120
- registerDetector(detector: ISubDetector): void;
121
- }
122
- export interface IRecognitionStage extends IAnalysisStage {
123
- readonly id: 'recognition';
124
- registerRecognizer(recognizer: IRecognizer): void;
125
- }
126
- export interface IZoneAnalysisStage extends IAnalysisStage {
127
- readonly id: 'zone-analysis';
128
- setConfig(deviceId: string, config: Record<string, unknown>): void;
129
- }
130
- export interface IEventGenerationStage extends IAnalysisStage {
131
- readonly id: 'event-generation';
132
- setConfig(deviceId: string, config: Record<string, unknown>): void;
133
- }
134
- export interface IObjectSnapshotStage extends IAnalysisStage {
135
- readonly id: 'object-snapshot';
136
- setConfig(deviceId: string, config: Record<string, unknown>): void;
137
- }
138
- export interface IAnalysisPipeline {
139
- addStage(stage: IAnalysisStage): void;
140
- removeStage(stageId: string): void;
141
- getStages(): readonly IAnalysisStage[];
142
- analyze(deviceId: string, frame: VideoFrame, rawDetections: Detection[]): Promise<AnalysisContext>;
143
- }
144
- export declare function createAnalysisContext(deviceId: string, frame: VideoFrame, rawDetections: Detection[]): AnalysisContext;
145
- export declare function enrichContext(ctx: AnalysisContext, updates: Partial<Pick<AnalysisContext, 'trackedDetections' | 'events' | 'metadata'>>): AnalysisContext;
146
- //# sourceMappingURL=server-analysis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-analysis.d.ts","sourceRoot":"","sources":["../../src/interfaces/server-analysis.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Server-side network access interfaces.
3
- * These cover tunnel/VPN/endpoint management, NOT the addon-facing INetworkProvider.
4
- */
5
- export interface INetworkEndpoint {
6
- id: string;
7
- type: 'lan' | 'mdns' | 'domain' | 'tunnel' | 'vpn' | 'custom';
8
- provider: string;
9
- url: string;
10
- internal: boolean;
11
- capabilities: EndpointCapabilities;
12
- priority: number;
13
- status: 'online' | 'offline' | 'unknown';
14
- metadata?: Record<string, unknown>;
15
- }
16
- export interface EndpointCapabilities {
17
- supportsWebRTC: boolean;
18
- supportsWebSocket: boolean;
19
- supportsSSE: boolean;
20
- maxBandwidthMbps?: number;
21
- }
22
- export interface INetworkAccessProvider {
23
- id: string;
24
- type: string;
25
- start(): Promise<INetworkEndpoint>;
26
- stop(): Promise<void>;
27
- getEndpoint(): INetworkEndpoint | null;
28
- getStatus(): NetworkAccessStatus;
29
- }
30
- export interface NetworkAccessStatus {
31
- connected: boolean;
32
- publicUrl?: string;
33
- error?: string;
34
- connectedSince?: number;
35
- }
36
- export interface IExposedResource {
37
- id: string;
38
- providerId: string;
39
- deviceId?: string;
40
- type: ExposedResourceType;
41
- path: string;
42
- auth: ResourceAuthMode;
43
- description: string;
44
- contentType?: string;
45
- enabled: boolean;
46
- }
47
- export type ExposedResourceType = 'snapshot' | 'stream' | 'webhook' | 'api' | 'media' | 'custom';
48
- export type ResourceAuthMode = {
49
- mode: 'public';
50
- } | {
51
- mode: 'token';
52
- token: string;
53
- } | {
54
- mode: 'api-key';
55
- } | {
56
- mode: 'jwt';
57
- } | {
58
- mode: 'ip-whitelist';
59
- ips: string[];
60
- };
61
- export interface IResourceExposer {
62
- getExposedResources(): IExposedResource[];
63
- handleResourceRequest(resourceId: string, request: ExposedResourceRequest): Promise<ExposedResourceResponse>;
64
- }
65
- export interface ExposedResourceRequest {
66
- method: 'GET' | 'POST' | 'PUT' | 'DELETE';
67
- path: string;
68
- headers: Record<string, string>;
69
- query: Record<string, string>;
70
- body?: Buffer | string;
71
- remoteIp: string;
72
- }
73
- export interface ExposedResourceResponse {
74
- status: number;
75
- headers?: Record<string, string>;
76
- body?: Buffer | string | NodeJS.ReadableStream;
77
- }
78
- //# sourceMappingURL=server-network.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-network.d.ts","sourceRoot":"","sources":["../../src/interfaces/server-network.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * @deprecated — This file contains legacy storage backend interfaces.
3
- * Use the new interfaces from './storage.ts' instead:
4
- * - IStorageProvider (capability: 'storage')
5
- * - ISettingsBackend (capability: 'settings-store')
6
- * - IEmbeddingsBackend (capability: 'embeddings')
7
- */
8
- import type { StorageLocationType } from './storage.js';
9
- /** @deprecated Use IStorageProvider from storage.ts */
10
- export interface IStorageBackend {
11
- readonly type: string;
12
- readonly basePath: string;
13
- resolve(subpath: string): string;
14
- resolve(location: StorageLocationType, ...segments: string[]): string;
15
- isAvailable(location?: StorageLocationType): boolean;
16
- initialize(): Promise<void>;
17
- getLocationPath?(location: StorageLocationType): string;
18
- }
19
- /** @deprecated */
20
- export interface StorageLocationConfig {
21
- readonly name: string;
22
- readonly basePath: string;
23
- readonly backendType?: string;
24
- }
25
- /** @deprecated Use DEFAULT_LOCATION_SUBDIRS from storage.ts */
26
- export declare const DEFAULT_LOCATION_SUBPATHS: Record<string, string>;
27
- //# sourceMappingURL=storage-backend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage-backend.d.ts","sourceRoot":"","sources":["../../src/interfaces/storage-backend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACrE,WAAW,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAA;IACpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,eAAe,CAAC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAAA;CACxD;AAED,kBAAkB;AAClB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,+DAA+D;AAC/D,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS5D,CAAA"}
@@ -1,174 +0,0 @@
1
- /**
2
- * All location types that storage providers can serve.
3
- * Each type maps to a logical category of files.
4
- * A storage provider declares which location types it supports.
5
- */
6
- export type StorageLocationType = 'recordings-high' | 'recordings-low' | 'recordings-clips' | 'event-images' | 'models' | 'addons-data' | 'cache' | 'logs';
7
- /** All location types as an array (for iteration) */
8
- export declare const STORAGE_LOCATION_TYPES: readonly StorageLocationType[];
9
- /** Default subdirectory names for filesystem storage */
10
- export declare const DEFAULT_LOCATION_SUBDIRS: Readonly<Record<StorageLocationType, string>>;
11
- /**
12
- * A storage provider serves file-based storage for one or more location types.
13
- * Multiple providers can coexist (local filesystem, NAS, S3, etc.).
14
- * Each addon/system setting selects which provider to use per location type.
15
- */
16
- export interface IStorageProvider {
17
- /** Unique provider ID (e.g., 'local', 'nas-synology', 's3-aws') */
18
- readonly id: string;
19
- /** Human-readable name (e.g., 'Local Filesystem', 'Synology NAS') */
20
- readonly name: string;
21
- /** Which location types this provider serves */
22
- readonly supportedLocations: readonly StorageLocationType[];
23
- /** Resolve an absolute path/URL for a file within a location */
24
- resolve(location: StorageLocationType, relativePath: string): string;
25
- /** Write file data */
26
- write(location: StorageLocationType, relativePath: string, data: Buffer | NodeJS.ReadableStream): Promise<void>;
27
- /** Read file data */
28
- read(location: StorageLocationType, relativePath: string): Promise<Buffer>;
29
- /** Check if a file exists */
30
- exists(location: StorageLocationType, relativePath: string): Promise<boolean>;
31
- /** List files/directories under a prefix within a location */
32
- list(location: StorageLocationType, prefix?: string): Promise<readonly string[]>;
33
- /** Delete a file */
34
- delete(location: StorageLocationType, relativePath: string): Promise<void>;
35
- /** Get available space in bytes, null if unknown (e.g., S3) */
36
- getAvailableSpace(location: StorageLocationType): Promise<number | null>;
37
- /** Lifecycle */
38
- initialize(): Promise<void>;
39
- shutdown(): Promise<void>;
40
- }
41
- /**
42
- * All named collections that the settings backend manages.
43
- * Each collection maps to a logical table/bucket in the backend.
44
- */
45
- export type SettingsCollection = 'system-settings' | 'addon-settings' | 'provider-settings' | 'device-settings' | 'detection-events' | 'audio-levels' | 'track-trails' | 'recording-segments' | 'recording-thumbnails' | 'recording-policies' | 'recording-storage-config' | 'recording-cleanup-queue' | 'known-faces';
46
- /**
47
- * Settings backend — persistent key-value and document storage.
48
- * Default implementation: SQLite. Can be replaced by Postgres, etc.
49
- */
50
- export interface ISettingsBackend {
51
- /** Get a single value by key from a collection */
52
- get(collection: SettingsCollection, key: string): Promise<unknown>;
53
- /** Set a value by key in a collection (upsert) */
54
- set(collection: SettingsCollection, key: string, value: unknown): Promise<void>;
55
- /** Get all entries matching an optional filter */
56
- query(collection: SettingsCollection, filter?: QueryFilter): Promise<readonly SettingsRecord[]>;
57
- /** Insert a new record */
58
- insert(collection: SettingsCollection, record: SettingsRecord): Promise<void>;
59
- /** Update an existing record by ID */
60
- update(collection: SettingsCollection, id: string, data: Record<string, unknown>): Promise<void>;
61
- /** Delete a record by key/ID */
62
- delete(collection: SettingsCollection, key: string): Promise<void>;
63
- /** Count entries in a collection */
64
- count(collection: SettingsCollection, filter?: QueryFilter): Promise<number>;
65
- /** Check if a collection is empty (used for first-boot detection) */
66
- isEmpty(collection: SettingsCollection): Promise<boolean>;
67
- /** Lifecycle */
68
- initialize(): Promise<void>;
69
- shutdown(): Promise<void>;
70
- }
71
- export interface SettingsRecord {
72
- readonly id: string;
73
- readonly data: Record<string, unknown>;
74
- }
75
- export interface QueryFilter {
76
- where?: Record<string, unknown>;
77
- whereIn?: Record<string, unknown[]>;
78
- whereBetween?: Record<string, [unknown, unknown]>;
79
- orderBy?: {
80
- field: string;
81
- direction: 'asc' | 'desc';
82
- };
83
- limit?: number;
84
- offset?: number;
85
- }
86
- /**
87
- * Embeddings backend — vector storage with approximate nearest neighbor search.
88
- * Used for CLIP frame search, face recognition, plate matching.
89
- * Default implementation: HNSW (usearch/hnswlib). Can be replaced by Qdrant, etc.
90
- */
91
- export interface IEmbeddingsBackend {
92
- /** Create or open a named vector index */
93
- openIndex(name: string, dimensions: number): Promise<IVectorIndex>;
94
- /** List all index names */
95
- listIndexes(): Promise<readonly string[]>;
96
- /** Delete an index and its data */
97
- deleteIndex(name: string): Promise<void>;
98
- /** Lifecycle */
99
- initialize(): Promise<void>;
100
- shutdown(): Promise<void>;
101
- }
102
- export interface IVectorIndex {
103
- /** Index name */
104
- readonly name: string;
105
- /** Vector dimensions */
106
- readonly dimensions: number;
107
- /** Insert a vector with ID and optional metadata */
108
- insert(id: string, vector: Float32Array, metadata?: Record<string, unknown>): Promise<void>;
109
- /** Batch insert for performance */
110
- insertBatch(items: readonly VectorEntry[]): Promise<void>;
111
- /** Search for nearest neighbors */
112
- search(query: Float32Array, topK: number, filter?: EmbeddingFilter): Promise<readonly VectorSearchResult[]>;
113
- /** Delete by ID */
114
- delete(id: string): Promise<void>;
115
- /** Count entries in the index */
116
- count(): Promise<number>;
117
- /** Flush pending writes to disk */
118
- flush(): Promise<void>;
119
- }
120
- export interface VectorEntry {
121
- readonly id: string;
122
- readonly vector: Float32Array;
123
- readonly metadata?: Record<string, unknown>;
124
- }
125
- export interface VectorSearchResult {
126
- readonly id: string;
127
- /** Similarity score (0-1, higher is more similar) */
128
- readonly score: number;
129
- readonly metadata?: Record<string, unknown>;
130
- }
131
- export interface EmbeddingFilter {
132
- /** Filter by metadata key-value before vector search */
133
- readonly where?: Record<string, unknown>;
134
- /** Filter by timestamp range */
135
- readonly timestampAfter?: number;
136
- readonly timestampBefore?: number;
137
- /** Filter by device */
138
- readonly deviceId?: string;
139
- }
140
- /** @deprecated Use StorageLocationType instead */
141
- export type StorageLocationName = StorageLocationType | 'data' | 'media' | 'recordings' | 'config' | 'events' | 'addon';
142
- /** @deprecated Use IStorageProvider instead */
143
- export interface StorageConfig {
144
- locations: Record<string, string>;
145
- }
146
- /** @deprecated Use SettingsRecord instead */
147
- export interface StorageRecord {
148
- collection: string;
149
- id: string;
150
- data: Record<string, unknown>;
151
- }
152
- /** @deprecated Use ISettingsBackend instead */
153
- export interface IStructuredStorage {
154
- query(collection: string, filter?: QueryFilter): Promise<readonly StorageRecord[]>;
155
- insert(record: StorageRecord): Promise<StorageRecord>;
156
- update(collection: string, id: string, data: Record<string, unknown>): Promise<StorageRecord>;
157
- delete(collection: string, id: string): Promise<void>;
158
- count(collection: string, filter?: QueryFilter): Promise<number>;
159
- }
160
- /** @deprecated Use IStorageProvider.read/write instead */
161
- export interface IFileStorage {
162
- readFile(path: string): Promise<Buffer>;
163
- writeFile(path: string, data: Buffer): Promise<void>;
164
- deleteFile(path: string): Promise<void>;
165
- listFiles(prefix?: string): Promise<readonly string[]>;
166
- getFileUrl(path: string): Promise<string>;
167
- exists(path: string): Promise<boolean>;
168
- }
169
- /** @deprecated Use IStorageProvider instead */
170
- export interface IStorageLocation {
171
- structured?: IStructuredStorage;
172
- files?: IFileStorage;
173
- }
174
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/interfaces/storage.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- export type Unsubscribe = () => void;
2
- export interface StreamSource {
3
- readonly type: string;
4
- readonly url: string;
5
- readonly videoCodec?: string;
6
- readonly audioCodec?: string;
7
- readonly metadata?: Readonly<Record<string, unknown>>;
8
- }
9
- export interface StreamSourceOption {
10
- readonly id: string;
11
- readonly label: string;
12
- readonly source: StreamSource;
13
- readonly resolution?: {
14
- readonly width: number;
15
- readonly height: number;
16
- };
17
- readonly primary?: boolean;
18
- }
19
- export interface EncodedPacket {
20
- readonly type: 'video' | 'audio';
21
- readonly data: Buffer;
22
- readonly pts: number;
23
- readonly dts: number;
24
- readonly keyframe: boolean;
25
- readonly codec: string;
26
- }
27
- export interface DecodedFrame {
28
- readonly data: Buffer;
29
- readonly width: number;
30
- readonly height: number;
31
- readonly format: 'jpeg' | 'rgb' | 'yuv420';
32
- readonly timestamp: number;
33
- }
34
- export interface DecodedAudioChunk {
35
- readonly data: Buffer;
36
- readonly sampleRate: number;
37
- readonly channels: number;
38
- readonly timestamp: number;
39
- }
40
- export interface DecodeOptions {
41
- readonly maxFps?: number;
42
- readonly format?: 'jpeg' | 'rgb' | 'yuv420';
43
- readonly scale?: number;
44
- }
45
- export type BrokerStatus = 'idle' | 'connecting' | 'streaming' | 'error' | 'stopped';
46
- export interface BrokerStats {
47
- readonly status: BrokerStatus;
48
- readonly inputFps: number;
49
- readonly decodeFps: number;
50
- readonly encodedSubscribers: number;
51
- readonly decodedSubscribers: number;
52
- readonly uptimeMs: number;
53
- }
54
- export interface IStreamBroker {
55
- readonly deviceId: string;
56
- readonly status: BrokerStatus;
57
- start(source: StreamSource): Promise<void>;
58
- stop(): Promise<void>;
59
- onEncodedData(callback: (packet: EncodedPacket) => void): Unsubscribe;
60
- onDecodedFrame(callback: (frame: DecodedFrame) => void, options?: DecodeOptions): Unsubscribe;
61
- onDecodedAudioChunk(callback: (chunk: DecodedAudioChunk) => void): Unsubscribe;
62
- getStats(): BrokerStats;
63
- getLocalStreamUrl(): string;
64
- }
65
- /**
66
- * Manager for stream brokers — the server interacts with this interface,
67
- * while the concrete implementation lives in the addon-pipeline package.
68
- */
69
- export interface IStreamBrokerManager {
70
- createBroker(brokerId: string, source: StreamSource): Promise<IStreamBroker>;
71
- getBroker(brokerId: string): IStreamBroker | undefined;
72
- destroyBroker(brokerId: string): Promise<void>;
73
- destroyBrokersForDevice(deviceId: string): Promise<void>;
74
- listBrokers(): readonly IStreamBroker[];
75
- destroyAll(): Promise<void>;
76
- setRestreamers(restreamers: readonly unknown[]): void;
77
- getRestreamers(): readonly unknown[];
78
- }
79
- export type CameraPriority = 'always-on' | 'default';
80
- export type CameraPhase = 'watching' | 'active';
81
- export interface CameraDetectionConfig {
82
- readonly enabled: boolean;
83
- readonly priority: CameraPriority;
84
- readonly pipeline: import('../types/pipeline.js').PipelineConfig;
85
- readonly motionStreamId: string;
86
- readonly detectionStreamId: string;
87
- readonly motionFps: number;
88
- readonly detectionFps: number;
89
- readonly motionCooldownMs: number;
90
- readonly audioStreamId?: string;
91
- }
92
- //# sourceMappingURL=stream-broker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-broker.d.ts","sourceRoot":"","sources":["../../src/interfaces/stream-broker.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- export type StreamFormat = 'webrtc' | 'hls' | 'mjpeg' | 'rtsp';
2
- export interface StreamingSource {
3
- readonly url: string;
4
- readonly protocol: 'rtsp' | 'http' | 'rtmp';
5
- readonly deviceId: string;
6
- readonly providerId: string;
7
- readonly label?: string;
8
- }
9
- export interface StreamInfo {
10
- readonly streamId: string;
11
- readonly source: StreamingSource;
12
- readonly formats: StreamFormat[];
13
- }
14
- export interface StreamStatus {
15
- readonly active: boolean;
16
- readonly viewers: number;
17
- readonly startedAt?: number;
18
- }
19
- export interface IStreamingEngine {
20
- initialize(config: Record<string, unknown>): Promise<void>;
21
- shutdown(): Promise<void>;
22
- registerStream(streamId: string, source: StreamingSource): Promise<void>;
23
- unregisterStream(streamId: string): Promise<void>;
24
- getStreamUrl(streamId: string, format: StreamFormat): string | null;
25
- proxyWhepOffer(streamId: string, sdpOffer: string): Promise<string>;
26
- listStreams(): StreamInfo[];
27
- getStreamStatus(streamId: string): StreamStatus | null;
28
- }
29
- //# sourceMappingURL=streaming.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/interfaces/streaming.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAAA;IACnE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnE,WAAW,IAAI,UAAU,EAAE,CAAA;IAC3B,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;CACvD"}
@@ -1,46 +0,0 @@
1
- import type { IScopedLogger } from './logging.js';
2
- /**
3
- * Progress update sent from a task handler back to the hub.
4
- */
5
- export interface TaskProgress {
6
- readonly percent?: number;
7
- readonly message?: string;
8
- readonly data?: unknown;
9
- }
10
- /**
11
- * Context provided to a task handler when executing a task.
12
- */
13
- export interface TaskContext {
14
- /** ID of the agent executing this task */
15
- readonly taskId: string;
16
- /** ID of the agent executing this task */
17
- readonly agentId: string;
18
- /** Pre-scoped logger for the task */
19
- readonly logger: IScopedLogger;
20
- /** Send progress updates back to hub */
21
- reportProgress(progress: TaskProgress): void;
22
- /** Check if the task has been cancelled */
23
- isCancelled(): boolean;
24
- }
25
- /**
26
- * Security level for a task handler. Dangerous tasks (e.g., terminal.exec)
27
- * require explicit admin approval per agent.
28
- */
29
- export type TaskHandlerSecurity = 'safe' | 'dangerous';
30
- /**
31
- * Pluggable task handler interface. Any addon can register task handlers
32
- * that the hub can dispatch to agents.
33
- */
34
- export interface ITaskHandler {
35
- /** Unique task type identifier (e.g., 'pipeline.decode', 'system.info') */
36
- readonly taskType: string;
37
- /** Human-readable description */
38
- readonly description: string;
39
- /** Security level — dangerous tasks need explicit admin approval */
40
- readonly security?: TaskHandlerSecurity;
41
- /** Execute the task and return a result */
42
- handle(payload: unknown, context: TaskContext): Promise<unknown>;
43
- /** Optional cleanup when a running task is cancelled */
44
- cancel?(): Promise<void>;
45
- }
46
- //# sourceMappingURL=task-handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-handler.d.ts","sourceRoot":"","sources":["../../src/interfaces/task-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,wCAAwC;IACxC,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5C,2CAA2C;IAC3C,WAAW,IAAI,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IACvC,2CAA2C;IAC3C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE,wDAAwD;IACxD,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}