@camstack/types 0.1.5 → 0.1.7

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 +1 -1
  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 -4948
  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 -176
  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,47 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- /** A stored event from a device */
3
- export interface DeviceStoredEvent {
4
- id: string;
5
- type: string;
6
- timestamp: number;
7
- endTimestamp?: number;
8
- label?: string;
9
- score?: number;
10
- hasClip?: boolean;
11
- hasSnapshot?: boolean;
12
- thumbnailUrl?: string;
13
- data?: Record<string, unknown>;
14
- }
15
- /** Query filter for events */
16
- export interface EventQuery {
17
- since?: number;
18
- until?: number;
19
- types?: string[];
20
- detectionClasses?: string[];
21
- clusterSpan?: number;
22
- onlyKeyEvents?: boolean;
23
- includeClip?: boolean;
24
- limit?: number;
25
- offset?: number;
26
- }
27
- /** Query result */
28
- export interface EventQueryResult {
29
- events: DeviceStoredEvent[];
30
- total: number;
31
- }
32
- /** A cluster of nearby events */
33
- export interface EventCluster {
34
- representative: DeviceStoredEvent;
35
- events: DeviceStoredEvent[];
36
- startMs: number;
37
- endMs: number;
38
- classes: string[];
39
- }
40
- export interface IEvents extends IDeviceCapability {
41
- kind: 'events';
42
- getEvents(query: EventQuery): Promise<EventQueryResult>;
43
- getEventThumbnail(eventId: string): Promise<Buffer | null>;
44
- getEventSnapshot(eventId: string): Promise<Buffer | null>;
45
- getEventClipUrl(eventId: string): Promise<string | null>;
46
- }
47
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,mBAAmB;AACnB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;CACd;AAED,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,iBAAiB,CAAA;IACjC,MAAM,EAAE,iBAAiB,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,OAAQ,SAAQ,iBAAiB;IAChD,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvD,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC1D,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACzD"}
@@ -1,15 +0,0 @@
1
- export * from './camera.js';
2
- export * from './pan-tilt-zoom.js';
3
- export * from './motion-sensor.js';
4
- export * from './object-detector.js';
5
- export * from './audio-detector.js';
6
- export * from './two-way-audio.js';
7
- export * from './doorbell.js';
8
- export * from './events.js';
9
- export * from './recording.js';
10
- export * from './accessory.js';
11
- export * from './status-light.js';
12
- export * from './siren.js';
13
- export * from './switch.js';
14
- export * from './native-detection.js';
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA"}
@@ -1,7 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface IMotionSensor extends IDeviceCapability {
3
- kind: 'motionSensor';
4
- isMotionDetected(): boolean;
5
- subscribe(callback: (active: boolean) => void): () => void;
6
- }
7
- //# sourceMappingURL=motion-sensor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"motion-sensor.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/motion-sensor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,EAAE,cAAc,CAAA;IACpB,gBAAgB,IAAI,OAAO,CAAA;IAC3B,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAC3D"}
@@ -1,14 +0,0 @@
1
- /** Native detection events from camera hardware (ONVIF, Frigate, etc.) */
2
- export interface NativeDetectionEvent {
3
- readonly cameraId: string;
4
- readonly type: 'motion' | 'person' | 'vehicle' | 'animal' | string;
5
- readonly confidence?: number;
6
- readonly timestamp: number;
7
- readonly source: 'onvif' | 'frigate' | 'rtsp-metadata' | string;
8
- }
9
- /** Interface for cameras that support native detection */
10
- export interface ICameraNativeDetection {
11
- readonly supportsNativeDetection: true;
12
- onNativeDetection(handler: (event: NativeDetectionEvent) => void): () => void;
13
- }
14
- //# sourceMappingURL=native-detection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"native-detection.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/native-detection.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,eAAe,GAAG,MAAM,CAAA;CAChE;AAED,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAA;IACtC,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAC9E"}
@@ -1,59 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- /** A single detection result from a frame */
3
- export interface Detection {
4
- className: string;
5
- score: number;
6
- boundingBox?: [number, number, number, number];
7
- id?: string;
8
- label?: string;
9
- labelScore?: number;
10
- zones?: string[];
11
- previousZones?: string[];
12
- }
13
- /** Payload emitted by onDetections -- a full frame of detections */
14
- export interface DetectionFrame {
15
- detections: Detection[];
16
- frameWidth: number;
17
- frameHeight: number;
18
- timestamp: number;
19
- }
20
- /** An actively tracked object in the scene */
21
- export interface ActiveDetection extends Detection {
22
- state: 'moving' | 'stationary';
23
- durationMs: number;
24
- velocity?: {
25
- dx: number;
26
- dy: number;
27
- };
28
- }
29
- /** A closed polygon zone on the camera scene */
30
- export interface DetectionZone {
31
- id: string;
32
- name: string;
33
- polygon: Array<[number, number]>;
34
- mode: 'observe' | 'restrict';
35
- }
36
- /** A line on the scene for crossing rules */
37
- export interface DetectionLine {
38
- id: string;
39
- name: string;
40
- points: [[number, number], [number, number]];
41
- direction: 'left-to-right' | 'right-to-left' | 'both';
42
- }
43
- export interface IObjectDetector extends IDeviceCapability {
44
- kind: 'objectDetector';
45
- getLabels(): string[];
46
- onDetections(callback: (frame: DetectionFrame) => void): () => void;
47
- getZones(): Promise<DetectionZone[]>;
48
- addZone(zone: DetectionZone): Promise<void>;
49
- removeZone(zoneId: string): Promise<void>;
50
- updateZone(zoneId: string, zone: Partial<Omit<DetectionZone, 'id'>>): Promise<void>;
51
- getLines(): Promise<DetectionLine[]>;
52
- addLine(line: DetectionLine): Promise<void>;
53
- removeLine(lineId: string): Promise<void>;
54
- getActiveDetections(): ActiveDetection[];
55
- getZoneDetections(zoneId: string): ActiveDetection[];
56
- getStationaryDetections(): ActiveDetection[];
57
- getMovingDetections(): ActiveDetection[];
58
- }
59
- //# sourceMappingURL=object-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-detector.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/object-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,KAAK,EAAE,QAAQ,GAAG,YAAY,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAA;CAC7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,SAAS,EAAE,eAAe,GAAG,eAAe,GAAG,MAAM,CAAA;CACtD;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,EAAE,gBAAgB,CAAA;IAEtB,SAAS,IAAI,MAAM,EAAE,CAAA;IACrB,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAEnE,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnF,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzC,mBAAmB,IAAI,eAAe,EAAE,CAAA;IACxC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAAA;IACpD,uBAAuB,IAAI,eAAe,EAAE,CAAA;IAC5C,mBAAmB,IAAI,eAAe,EAAE,CAAA;CACzC"}
@@ -1,29 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface PtzPreset {
3
- id: string;
4
- name: string;
5
- }
6
- export interface IPanTiltZoom extends IDeviceCapability {
7
- kind: 'panTiltZoom';
8
- move(command: {
9
- pan?: number;
10
- tilt?: number;
11
- zoom?: number;
12
- speed?: number;
13
- }): Promise<void>;
14
- continuousMove(command: {
15
- pan?: number;
16
- tilt?: number;
17
- zoom?: number;
18
- }): Promise<void>;
19
- stop(): Promise<void>;
20
- getPresets(): Promise<PtzPreset[]>;
21
- goToPreset(presetId: string): Promise<void>;
22
- goHome(): Promise<void>;
23
- getPosition(): Promise<{
24
- pan: number;
25
- tilt: number;
26
- zoom: number;
27
- }>;
28
- }
29
- //# sourceMappingURL=pan-tilt-zoom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pan-tilt-zoom.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/pan-tilt-zoom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5F,cAAc,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAClC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACvB,WAAW,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpE"}
@@ -1,18 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface TimeRange {
3
- since: number;
4
- until: number;
5
- }
6
- export interface RecordingSegment {
7
- id: string;
8
- startTime: number;
9
- endTime: number;
10
- duration: number;
11
- }
12
- export interface IRecording extends IDeviceCapability {
13
- kind: 'recording';
14
- getSegments(range: TimeRange): Promise<RecordingSegment[]>;
15
- getPlaybackUrl(startTime: number, endTime: number): Promise<string>;
16
- getThumbnailAt(timestampMs: number): Promise<Buffer | null>;
17
- }
18
- //# sourceMappingURL=recording.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/recording.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC1D,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAC5D"}
@@ -1,8 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface ISiren extends IDeviceCapability {
3
- kind: 'siren';
4
- isActive(): boolean;
5
- activate(durationMs?: number): Promise<void>;
6
- deactivate(): Promise<void>;
7
- }
8
- //# sourceMappingURL=siren.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"siren.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/siren.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,MAAO,SAAQ,iBAAiB;IAC/C,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,IAAI,OAAO,CAAA;IACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B"}
@@ -1,7 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface IStatusLight extends IDeviceCapability {
3
- kind: 'statusLight';
4
- isOn(): boolean;
5
- setOn(on: boolean): Promise<void>;
6
- }
7
- //# sourceMappingURL=status-light.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-light.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/status-light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,IAAI,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC"}
@@ -1,8 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface ISwitch extends IDeviceCapability {
3
- kind: 'switch';
4
- isOn(): boolean;
5
- setOn(on: boolean): Promise<void>;
6
- toggle(): Promise<void>;
7
- }
8
- //# sourceMappingURL=switch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,OAAQ,SAAQ,iBAAiB;IAChD,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,IAAI,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB"}
@@ -1,8 +0,0 @@
1
- import type { IDeviceCapability } from '../device-capability.js';
2
- export interface ITwoWayAudio extends IDeviceCapability {
3
- kind: 'twoWayAudio';
4
- startMicrophone(stream: unknown): Promise<void>;
5
- stopMicrophone(): Promise<void>;
6
- isMicrophoneActive(): boolean;
7
- }
8
- //# sourceMappingURL=two-way-audio.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"two-way-audio.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device-capabilities/two-way-audio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,IAAI,EAAE,aAAa,CAAA;IACnB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,kBAAkB,IAAI,OAAO,CAAA;CAC9B"}
@@ -1,14 +0,0 @@
1
- export interface IDeviceCapability {
2
- kind: DeviceCapabilityName;
3
- }
4
- export type DeviceCapabilityName = 'camera' | 'panTiltZoom' | 'motionSensor' | 'objectDetector' | 'audioDetector' | 'twoWayAudio' | 'doorbell' | 'events' | 'recording' | 'accessory' | 'statusLight' | 'siren' | 'switch';
5
- export interface CapabilityBinding {
6
- source: 'native' | 'addon' | 'disabled';
7
- addonId?: string;
8
- config?: Record<string, unknown>;
9
- }
10
- export interface DeviceCapabilityBinding {
11
- deviceId: string;
12
- bindings: Partial<Record<DeviceCapabilityName, CapabilityBinding>>;
13
- }
14
- //# sourceMappingURL=device-capability.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device-capability.d.ts","sourceRoot":"","sources":["../../src/interfaces/device-capability.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,oBAAoB,CAAA;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,UAAU,GACV,QAAQ,GACR,WAAW,GACX,WAAW,GACX,aAAa,GACb,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,CAAA;CACnE"}
@@ -1,43 +0,0 @@
1
- import type { IDevice, DeviceType, DeviceMetadata } from './device.js';
2
- import type { DeviceCapabilityName } from './device-capability.js';
3
- import type { CamstackContext } from './context.js';
4
- import type { ConfigUISchema } from './config-ui.js';
5
- export interface ProviderStatus {
6
- connected: boolean;
7
- error?: string;
8
- deviceCount: number;
9
- }
10
- export interface DiscoveredDevice {
11
- externalId: string;
12
- name: string;
13
- type: DeviceType;
14
- capabilities: DeviceCapabilityName[];
15
- metadata: DeviceMetadata;
16
- }
17
- export interface LiveEvent {
18
- type: string;
19
- camera: string;
20
- timestamp: number;
21
- data: Record<string, unknown>;
22
- }
23
- export interface IDeviceProvider {
24
- /** Immutable progressive ID */
25
- readonly id: string;
26
- readonly type: string;
27
- readonly name: string;
28
- readonly discoveryMode: 'auto' | 'manual' | 'both';
29
- /** The provider's context -- logger, storage, eventBus scoped to this provider */
30
- readonly ctx: CamstackContext;
31
- start(): Promise<void>;
32
- stop(): Promise<void>;
33
- getStatus(): ProviderStatus;
34
- discoverDevices(): Promise<DiscoveredDevice[]>;
35
- getDeviceConfigSchema?(): unknown;
36
- createDevice?(config: Record<string, unknown>): Promise<IDevice>;
37
- adoptDevice?(externalId: string, config?: Record<string, unknown>): Promise<IDevice>;
38
- getDevices(): IDevice[];
39
- subscribeLiveEvents(callback: (event: LiveEvent) => void): () => void;
40
- /** Optional: declare configurable settings UI for this provider */
41
- getConfigSchema?(): ConfigUISchema;
42
- }
43
- //# sourceMappingURL=device-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device-provider.d.ts","sourceRoot":"","sources":["../../src/interfaces/device-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACpC,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAElD,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAA;IAE7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,SAAS,IAAI,cAAc,CAAA;IAC3B,eAAe,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC9C,qBAAqB,CAAC,IAAI,OAAO,CAAA;IACjC,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACpF,UAAU,IAAI,OAAO,EAAE,CAAA;IACvB,mBAAmB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAErE,mEAAmE;IACnE,eAAe,CAAC,IAAI,cAAc,CAAA;CACnC"}
@@ -1,40 +0,0 @@
1
- import type { IDeviceCapability, DeviceCapabilityName } from './device-capability.js';
2
- import type { CamstackContext } from './context.js';
3
- import type { ConfigUISchema } from './config-ui.js';
4
- export type DeviceType = 'camera' | 'doorbell' | 'sensor' | 'switch' | 'thermostat' | 'light' | 'generic';
5
- export interface DeviceState {
6
- online: boolean;
7
- lastSeen?: number;
8
- error?: string;
9
- }
10
- export interface DeviceMetadata {
11
- manufacturer?: string;
12
- model?: string;
13
- firmware?: string;
14
- hardwareId?: string;
15
- ip?: string;
16
- }
17
- export interface DeviceEvent {
18
- deviceId: string;
19
- type: string;
20
- timestamp: number;
21
- data: Record<string, unknown>;
22
- }
23
- export interface IDevice {
24
- /** Immutable progressive ID */
25
- readonly id: string;
26
- readonly name: string;
27
- readonly providerId: string;
28
- readonly type: DeviceType;
29
- readonly capabilities: DeviceCapabilityName[];
30
- /** The device's context -- logger, storage, eventBus scoped to this device */
31
- readonly ctx: CamstackContext;
32
- getCapability<T extends IDeviceCapability>(cap: DeviceCapabilityName): T | null;
33
- hasCapability(cap: DeviceCapabilityName): boolean;
34
- getState(): DeviceState;
35
- getMetadata(): DeviceMetadata;
36
- subscribeEvents?(callback: (event: DeviceEvent) => void): () => void;
37
- /** Optional: declare configurable settings UI for this device */
38
- getConfigSchema?(): ConfigUISchema;
39
- }
40
- //# sourceMappingURL=device.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/interfaces/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,OAAO,GACP,SAAS,CAAA;AAEb,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,EAAE,CAAA;IAE7C,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAA;IAE7B,aAAa,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAA;IAC/E,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAA;IACjD,QAAQ,IAAI,WAAW,CAAA;IACvB,WAAW,IAAI,cAAc,CAAA;IAC7B,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAEpE,iEAAiE;IACjE,eAAe,CAAC,IAAI,cAAc,CAAA;CACnC"}
@@ -1,22 +0,0 @@
1
- export interface EventSource {
2
- type: string;
3
- id: string;
4
- }
5
- export interface SystemEvent {
6
- id: string;
7
- timestamp: Date;
8
- source: EventSource;
9
- category: string;
10
- data: Record<string, unknown>;
11
- }
12
- export interface EventFilter {
13
- source?: EventSource;
14
- category?: string;
15
- since?: Date;
16
- }
17
- export interface IEventBus {
18
- emit(event: SystemEvent): void;
19
- subscribe(filter: EventFilter, handler: (event: SystemEvent) => void): () => void;
20
- getRecent(filter?: EventFilter, limit?: number): readonly SystemEvent[];
21
- }
22
- //# sourceMappingURL=event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/interfaces/event-bus.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,IAAI,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,IAAI,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IACjF,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAAA;CACxE"}
@@ -1,14 +0,0 @@
1
- export interface FeatureManifest {
2
- streaming: boolean;
3
- notifications: boolean;
4
- objectDetection: boolean;
5
- remoteAccess: boolean;
6
- agentCluster: boolean;
7
- smartHome: boolean;
8
- recordings: boolean;
9
- backup: boolean;
10
- repl: boolean;
11
- }
12
- export type FeatureFlag = keyof FeatureManifest;
13
- export declare const DEFAULT_FEATURES: FeatureManifest;
14
- //# sourceMappingURL=feature-flags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/interfaces/feature-flags.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,OAAO,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,eAAe,CAAA;AAE/C,eAAO,MAAM,gBAAgB,EAAE,eAU9B,CAAA"}
@@ -1,10 +0,0 @@
1
- export interface FfmpegConfig {
2
- readonly path: string;
3
- readonly hwaccel?: 'vaapi' | 'qsv' | 'videotoolbox' | 'cuda' | 'v4l2m2m' | 'none';
4
- readonly inputArgs?: readonly string[];
5
- readonly outputArgs?: readonly string[];
6
- readonly videoCodec?: string;
7
- readonly audioCodec?: string;
8
- readonly threads?: number;
9
- }
10
- //# sourceMappingURL=ffmpeg.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../../src/interfaces/ffmpeg.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B"}
@@ -1,101 +0,0 @@
1
- import type { ModelFormat } from '../types/models.js';
2
- /** A hardware backend available for inference (e.g. CPU, CoreML, CUDA) */
3
- export interface BackendInfo {
4
- /** Backend identifier — matches engine-resolver backend param */
5
- readonly id: string;
6
- /** Human-readable label */
7
- readonly label: string;
8
- /** Whether this backend is available on the current agent/hub */
9
- readonly available: boolean;
10
- /** Device type for display */
11
- readonly device: string;
12
- }
13
- /** A Python-specific backend with its associated model format */
14
- export interface PythonBackendInfo extends BackendInfo {
15
- /** The model format this backend needs (coreml → .mlpackage, openvino → .xml, etc.) */
16
- readonly modelFormat: ModelFormat;
17
- /** Python module required (e.g. 'coremltools', 'openvino', 'torch') */
18
- readonly pythonModule: string;
19
- }
20
- /** Node.js runtime — uses onnxruntime-node, always loads .onnx files */
21
- export interface NodeRuntimeInfo {
22
- readonly available: true;
23
- /** ONNX execution provider backends (cpu, coreml, cuda, tensorrt) */
24
- readonly backends: readonly BackendInfo[];
25
- /** Node.js always uses ONNX format */
26
- readonly modelFormat: 'onnx';
27
- }
28
- /** Python runtime — uses subprocess with native model formats */
29
- export interface PythonRuntimeInfo {
30
- readonly available: boolean;
31
- readonly pythonPath?: string;
32
- /** Each Python backend uses a different model format */
33
- readonly backends: readonly PythonBackendInfo[];
34
- }
35
- /** All runtimes available on an agent/hub */
36
- export interface RuntimeCapabilities {
37
- readonly node: NodeRuntimeInfo;
38
- readonly python: PythonRuntimeInfo;
39
- }
40
- /** Download status of a specific model format */
41
- export interface ModelFormatStatus {
42
- readonly url: string;
43
- readonly sizeMB: number;
44
- readonly downloaded: boolean;
45
- readonly filePath?: string;
46
- }
47
- /** A model from the catalog with download status per format */
48
- export interface ModelAvailability {
49
- readonly id: string;
50
- readonly name: string;
51
- readonly description: string;
52
- readonly inputSize: {
53
- readonly width: number;
54
- readonly height: number;
55
- };
56
- readonly formats: Partial<Readonly<Record<ModelFormat, ModelFormatStatus>>>;
57
- }
58
- /** Detection addon with its available models */
59
- export interface AddonCapabilityInfo {
60
- readonly id: string;
61
- readonly name: string;
62
- readonly models: readonly ModelAvailability[];
63
- }
64
- /** Complete inference capabilities for an agent/hub */
65
- export interface InferenceCapabilities {
66
- readonly agentId: string;
67
- readonly agentName: string;
68
- readonly platform: string;
69
- readonly arch: string;
70
- readonly addons: readonly AddonCapabilityInfo[];
71
- readonly runtimes: RuntimeCapabilities;
72
- readonly modelsDir: string;
73
- /** Platform scores from PlatformScorer — available after boot probe */
74
- readonly platformScores?: readonly import('./platform.js').PlatformScore[];
75
- }
76
- /** Configuration to create/retrieve a managed inference engine */
77
- export interface EngineConfig {
78
- readonly addonId: string;
79
- readonly modelId: string;
80
- /** 'node' = onnxruntime-node, 'python' = Python subprocess */
81
- readonly runtime: 'node' | 'python';
82
- /** Backend within that runtime (e.g. 'cpu', 'coreml', 'cuda') */
83
- readonly backend: string;
84
- }
85
- /** Progress event emitted during model download */
86
- export interface ModelDownloadProgress {
87
- readonly modelId: string;
88
- readonly format: ModelFormat;
89
- readonly downloadedBytes: number;
90
- readonly totalBytes: number;
91
- readonly percent: number;
92
- }
93
- /** Result of a benchmark model download */
94
- export interface BenchmarkDownloadResult {
95
- readonly modelId: string;
96
- readonly format: ModelFormat;
97
- readonly filePath: string;
98
- readonly sizeMB: number;
99
- readonly durationMs: number;
100
- }
101
- //# sourceMappingURL=inference-capabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inference-capabilities.d.ts","sourceRoot":"","sources":["../../src/interfaces/inference-capabilities.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { DetectionRuntime, DetectionDevice } from '../types/config.js';
2
- import type { ModelCatalogEntry } from '../types/models.js';
3
- export interface IInferenceEngine {
4
- readonly runtime: DetectionRuntime;
5
- readonly device: DetectionDevice;
6
- run(input: Float32Array, inputShape: readonly number[]): Promise<Float32Array>;
7
- /** Run inference and return all named output tensors. Used by multi-output models (e.g. YOLO-seg). */
8
- runMultiOutput(input: Float32Array, inputShape: readonly number[]): Promise<Record<string, Float32Array>>;
9
- dispose(): Promise<void>;
10
- }
11
- export interface ResolveEngineOptions {
12
- readonly runtime: DetectionRuntime | 'auto';
13
- readonly backend: string;
14
- readonly modelEntry: ModelCatalogEntry;
15
- readonly modelsDir: string;
16
- }
17
- //# sourceMappingURL=inference-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inference-engine.d.ts","sourceRoot":"","sources":["../../src/interfaces/inference-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9E,sGAAsG;IACtG,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IACzG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B"}
@@ -1,19 +0,0 @@
1
- export type ElementState = 'stopped' | 'starting' | 'running' | 'stopping' | 'error' | 'disabled';
2
- export interface ElementStatus {
3
- state: ElementState;
4
- error?: string;
5
- startedAt?: number;
6
- stoppedAt?: number;
7
- restartCount: number;
8
- uptime: number;
9
- }
10
- export interface ILifecycleManaged {
11
- readonly id: string;
12
- getStatus(): ElementStatus;
13
- start(): Promise<void>;
14
- stop(): Promise<void>;
15
- restart(): Promise<void>;
16
- enable(): Promise<void>;
17
- disable(): Promise<void>;
18
- }
19
- //# sourceMappingURL=lifecycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/interfaces/lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAA;AAEjG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,SAAS,IAAI,aAAa,CAAA;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}