@camstack/types 0.1.1 → 0.1.3

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 (200) hide show
  1. package/dist/__tests__/addon-capability-provider.test.d.ts +2 -0
  2. package/dist/__tests__/addon-capability-provider.test.d.ts.map +1 -0
  3. package/dist/__tests__/addon-declaration.test.d.ts +2 -0
  4. package/dist/__tests__/addon-declaration.test.d.ts.map +1 -0
  5. package/dist/__tests__/capability.test.d.ts +2 -0
  6. package/dist/__tests__/capability.test.d.ts.map +1 -0
  7. package/dist/catalogs/coco-classmap.d.ts +5 -0
  8. package/dist/catalogs/coco-classmap.d.ts.map +1 -0
  9. package/dist/catalogs/index.d.ts +2 -0
  10. package/dist/catalogs/index.d.ts.map +1 -0
  11. package/dist/constants.d.ts +3 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/generated/addon-api.d.ts +4870 -0
  14. package/dist/generated/addon-api.d.ts.map +1 -0
  15. package/dist/index.d.ts +82 -3053
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +377 -8
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +369 -7
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/interfaces/addon-i18n.d.ts +41 -0
  22. package/dist/interfaces/addon-i18n.d.ts.map +1 -0
  23. package/dist/interfaces/addon-routes.d.ts +50 -0
  24. package/dist/interfaces/addon-routes.d.ts.map +1 -0
  25. package/dist/interfaces/addon.d.ts +294 -0
  26. package/dist/interfaces/addon.d.ts.map +1 -0
  27. package/dist/interfaces/advanced-notifier.d.ts +59 -0
  28. package/dist/interfaces/advanced-notifier.d.ts.map +1 -0
  29. package/dist/interfaces/agent-protocol.d.ts +189 -0
  30. package/dist/interfaces/agent-protocol.d.ts.map +1 -0
  31. package/dist/interfaces/agent.d.ts +87 -0
  32. package/dist/interfaces/agent.d.ts.map +1 -0
  33. package/dist/interfaces/analysis-persistence.d.ts +278 -0
  34. package/dist/interfaces/analysis-persistence.d.ts.map +1 -0
  35. package/dist/interfaces/analysis.d.ts +27 -0
  36. package/dist/interfaces/analysis.d.ts.map +1 -0
  37. package/dist/interfaces/api-shared.d.ts +168 -0
  38. package/dist/interfaces/api-shared.d.ts.map +1 -0
  39. package/dist/interfaces/auth-provider.d.ts +39 -0
  40. package/dist/interfaces/auth-provider.d.ts.map +1 -0
  41. package/dist/interfaces/auth.d.ts +47 -0
  42. package/dist/interfaces/auth.d.ts.map +1 -0
  43. package/dist/interfaces/camera-pipeline.d.ts +121 -0
  44. package/dist/interfaces/camera-pipeline.d.ts.map +1 -0
  45. package/dist/interfaces/capability.d.ts +84 -0
  46. package/dist/interfaces/capability.d.ts.map +1 -0
  47. package/dist/interfaces/classifier.d.ts +8 -0
  48. package/dist/interfaces/classifier.d.ts.map +1 -0
  49. package/dist/interfaces/config-ui.d.ts +152 -0
  50. package/dist/interfaces/config-ui.d.ts.map +1 -0
  51. package/dist/interfaces/context.d.ts +44 -0
  52. package/dist/interfaces/context.d.ts.map +1 -0
  53. package/dist/interfaces/cropper.d.ts +8 -0
  54. package/dist/interfaces/cropper.d.ts.map +1 -0
  55. package/dist/interfaces/decoder.d.ts +27 -0
  56. package/dist/interfaces/decoder.d.ts.map +1 -0
  57. package/dist/interfaces/detection-addon.d.ts +15 -0
  58. package/dist/interfaces/detection-addon.d.ts.map +1 -0
  59. package/dist/interfaces/detector.d.ts +8 -0
  60. package/dist/interfaces/detector.d.ts.map +1 -0
  61. package/dist/interfaces/device-capabilities/accessory.d.ts +14 -0
  62. package/dist/interfaces/device-capabilities/accessory.d.ts.map +1 -0
  63. package/dist/interfaces/device-capabilities/audio-detector.d.ts +12 -0
  64. package/dist/interfaces/device-capabilities/audio-detector.d.ts.map +1 -0
  65. package/dist/interfaces/device-capabilities/camera.d.ts +22 -0
  66. package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -0
  67. package/dist/interfaces/device-capabilities/doorbell.d.ts +10 -0
  68. package/dist/interfaces/device-capabilities/doorbell.d.ts.map +1 -0
  69. package/dist/interfaces/device-capabilities/events.d.ts +47 -0
  70. package/dist/interfaces/device-capabilities/events.d.ts.map +1 -0
  71. package/dist/interfaces/device-capabilities/index.d.ts +15 -0
  72. package/dist/interfaces/device-capabilities/index.d.ts.map +1 -0
  73. package/dist/interfaces/device-capabilities/motion-sensor.d.ts +7 -0
  74. package/dist/interfaces/device-capabilities/motion-sensor.d.ts.map +1 -0
  75. package/dist/interfaces/device-capabilities/native-detection.d.ts +14 -0
  76. package/dist/interfaces/device-capabilities/native-detection.d.ts.map +1 -0
  77. package/dist/interfaces/device-capabilities/object-detector.d.ts +59 -0
  78. package/dist/interfaces/device-capabilities/object-detector.d.ts.map +1 -0
  79. package/dist/interfaces/device-capabilities/pan-tilt-zoom.d.ts +29 -0
  80. package/dist/interfaces/device-capabilities/pan-tilt-zoom.d.ts.map +1 -0
  81. package/dist/interfaces/device-capabilities/recording.d.ts +18 -0
  82. package/dist/interfaces/device-capabilities/recording.d.ts.map +1 -0
  83. package/dist/interfaces/device-capabilities/siren.d.ts +8 -0
  84. package/dist/interfaces/device-capabilities/siren.d.ts.map +1 -0
  85. package/dist/interfaces/device-capabilities/status-light.d.ts +7 -0
  86. package/dist/interfaces/device-capabilities/status-light.d.ts.map +1 -0
  87. package/dist/interfaces/device-capabilities/switch.d.ts +8 -0
  88. package/dist/interfaces/device-capabilities/switch.d.ts.map +1 -0
  89. package/dist/interfaces/device-capabilities/two-way-audio.d.ts +8 -0
  90. package/dist/interfaces/device-capabilities/two-way-audio.d.ts.map +1 -0
  91. package/dist/interfaces/device-capability.d.ts +14 -0
  92. package/dist/interfaces/device-capability.d.ts.map +1 -0
  93. package/dist/interfaces/device-provider.d.ts +43 -0
  94. package/dist/interfaces/device-provider.d.ts.map +1 -0
  95. package/dist/interfaces/device.d.ts +40 -0
  96. package/dist/interfaces/device.d.ts.map +1 -0
  97. package/dist/interfaces/event-bus.d.ts +22 -0
  98. package/dist/interfaces/event-bus.d.ts.map +1 -0
  99. package/dist/interfaces/feature-flags.d.ts +14 -0
  100. package/dist/interfaces/feature-flags.d.ts.map +1 -0
  101. package/dist/interfaces/ffmpeg.d.ts +10 -0
  102. package/dist/interfaces/ffmpeg.d.ts.map +1 -0
  103. package/dist/interfaces/inference-capabilities.d.ts +101 -0
  104. package/dist/interfaces/inference-capabilities.d.ts.map +1 -0
  105. package/dist/interfaces/inference-engine.d.ts +17 -0
  106. package/dist/interfaces/inference-engine.d.ts.map +1 -0
  107. package/dist/interfaces/lifecycle.d.ts +19 -0
  108. package/dist/interfaces/lifecycle.d.ts.map +1 -0
  109. package/dist/interfaces/logging.d.ts +33 -0
  110. package/dist/interfaces/logging.d.ts.map +1 -0
  111. package/dist/interfaces/model-catalog.d.ts +25 -0
  112. package/dist/interfaces/model-catalog.d.ts.map +1 -0
  113. package/dist/interfaces/network-quality.d.ts +25 -0
  114. package/dist/interfaces/network-quality.d.ts.map +1 -0
  115. package/dist/interfaces/network.d.ts +43 -0
  116. package/dist/interfaces/network.d.ts.map +1 -0
  117. package/dist/interfaces/notification.d.ts +53 -0
  118. package/dist/interfaces/notification.d.ts.map +1 -0
  119. package/dist/interfaces/pipeline-runner.d.ts +23 -0
  120. package/dist/interfaces/pipeline-runner.d.ts.map +1 -0
  121. package/dist/interfaces/pipeline-slot.d.ts +10 -0
  122. package/dist/interfaces/pipeline-slot.d.ts.map +1 -0
  123. package/dist/interfaces/platform.d.ts +55 -0
  124. package/dist/interfaces/platform.d.ts.map +1 -0
  125. package/dist/interfaces/process.d.ts +41 -0
  126. package/dist/interfaces/process.d.ts.map +1 -0
  127. package/dist/interfaces/python-env.d.ts +20 -0
  128. package/dist/interfaces/python-env.d.ts.map +1 -0
  129. package/dist/interfaces/refiner.d.ts +8 -0
  130. package/dist/interfaces/refiner.d.ts.map +1 -0
  131. package/dist/interfaces/repl.d.ts +26 -0
  132. package/dist/interfaces/repl.d.ts.map +1 -0
  133. package/dist/interfaces/repositories.d.ts +20 -0
  134. package/dist/interfaces/repositories.d.ts.map +1 -0
  135. package/dist/interfaces/restreamer.d.ts +24 -0
  136. package/dist/interfaces/restreamer.d.ts.map +1 -0
  137. package/dist/interfaces/router.d.ts +30 -0
  138. package/dist/interfaces/router.d.ts.map +1 -0
  139. package/dist/interfaces/scene-intelligence.d.ts +21 -0
  140. package/dist/interfaces/scene-intelligence.d.ts.map +1 -0
  141. package/dist/interfaces/scoped-token.d.ts +22 -0
  142. package/dist/interfaces/scoped-token.d.ts.map +1 -0
  143. package/dist/interfaces/server-analysis.d.ts +146 -0
  144. package/dist/interfaces/server-analysis.d.ts.map +1 -0
  145. package/dist/interfaces/server-network.d.ts +78 -0
  146. package/dist/interfaces/server-network.d.ts.map +1 -0
  147. package/dist/interfaces/storage-backend.d.ts +27 -0
  148. package/dist/interfaces/storage-backend.d.ts.map +1 -0
  149. package/dist/interfaces/storage.d.ts +174 -0
  150. package/dist/interfaces/storage.d.ts.map +1 -0
  151. package/dist/interfaces/stream-broker.d.ts +92 -0
  152. package/dist/interfaces/stream-broker.d.ts.map +1 -0
  153. package/dist/interfaces/streaming.d.ts +29 -0
  154. package/dist/interfaces/streaming.d.ts.map +1 -0
  155. package/dist/interfaces/task-handler.d.ts +46 -0
  156. package/dist/interfaces/task-handler.d.ts.map +1 -0
  157. package/dist/interfaces/webrtc-provider.d.ts +11 -0
  158. package/dist/interfaces/webrtc-provider.d.ts.map +1 -0
  159. package/dist/interfaces/worker-protocol.d.ts +110 -0
  160. package/dist/interfaces/worker-protocol.d.ts.map +1 -0
  161. package/dist/schemas/system-settings-schemas.d.ts +27 -0
  162. package/dist/schemas/system-settings-schemas.d.ts.map +1 -0
  163. package/dist/types/analytics.d.ts +75 -0
  164. package/dist/types/analytics.d.ts.map +1 -0
  165. package/dist/types/benchmark.d.ts +112 -0
  166. package/dist/types/benchmark.d.ts.map +1 -0
  167. package/dist/types/camera-detection.d.ts +34 -0
  168. package/dist/types/camera-detection.d.ts.map +1 -0
  169. package/dist/types/config.d.ts +37 -0
  170. package/dist/types/config.d.ts.map +1 -0
  171. package/dist/types/detection.d.ts +93 -0
  172. package/dist/types/detection.d.ts.map +1 -0
  173. package/dist/types/device-type.d.ts +10 -0
  174. package/dist/types/device-type.d.ts.map +1 -0
  175. package/dist/types/entities.d.ts +35 -0
  176. package/dist/types/entities.d.ts.map +1 -0
  177. package/dist/types/events.d.ts +35 -0
  178. package/dist/types/events.d.ts.map +1 -0
  179. package/dist/types/io.d.ts +25 -0
  180. package/dist/types/io.d.ts.map +1 -0
  181. package/dist/types/labels.d.ts +12 -0
  182. package/dist/types/labels.d.ts.map +1 -0
  183. package/dist/types/live-state.d.ts +47 -0
  184. package/dist/types/live-state.d.ts.map +1 -0
  185. package/dist/types/models.d.ts +79 -0
  186. package/dist/types/models.d.ts.map +1 -0
  187. package/dist/types/pipeline-schema.d.ts +78 -0
  188. package/dist/types/pipeline-schema.d.ts.map +1 -0
  189. package/dist/types/pipeline.d.ts +42 -0
  190. package/dist/types/pipeline.d.ts.map +1 -0
  191. package/dist/types/tracked.d.ts +21 -0
  192. package/dist/types/tracked.d.ts.map +1 -0
  193. package/dist/types/zones.d.ts +48 -0
  194. package/dist/types/zones.d.ts.map +1 -0
  195. package/dist/utils/cosine-similarity.d.ts +3 -0
  196. package/dist/utils/cosine-similarity.d.ts.map +1 -0
  197. package/dist/utils/hf-url.d.ts +2 -0
  198. package/dist/utils/hf-url.d.ts.map +1 -0
  199. package/package.json +16 -5
  200. package/dist/index.d.mts +0 -3053
@@ -0,0 +1,55 @@
1
+ /** Hardware information detected at boot */
2
+ export interface HardwareInfo {
3
+ readonly platform: 'darwin' | 'linux' | 'win32';
4
+ readonly arch: 'arm64' | 'x64';
5
+ readonly cpuModel: string;
6
+ readonly cpuCores: number;
7
+ readonly totalRAM_MB: number;
8
+ readonly availableRAM_MB: number;
9
+ readonly gpu: GpuInfo | null;
10
+ readonly npu: NpuInfo | null;
11
+ }
12
+ export interface GpuInfo {
13
+ readonly type: 'nvidia' | 'amd' | 'intel' | 'apple';
14
+ readonly name: string;
15
+ readonly memoryMB?: number;
16
+ }
17
+ export interface NpuInfo {
18
+ readonly type: 'apple-ane' | 'intel-npu';
19
+ }
20
+ /** A probed backend with availability and score */
21
+ export interface PlatformScore {
22
+ readonly runtime: 'node' | 'python';
23
+ readonly backend: string;
24
+ readonly format: 'onnx' | 'coreml' | 'openvino';
25
+ readonly score: number;
26
+ readonly reason: string;
27
+ readonly available: boolean;
28
+ }
29
+ /** Full platform capabilities — cached once per boot */
30
+ export interface PlatformCapabilities {
31
+ readonly hardware: HardwareInfo;
32
+ readonly scores: readonly PlatformScore[];
33
+ readonly bestScore: PlatformScore;
34
+ readonly pythonPath: string | null;
35
+ }
36
+ /** Model requirement declared by an addon */
37
+ export interface ModelRequirement {
38
+ readonly modelId: string;
39
+ readonly name: string;
40
+ /** Minimum RAM needed for inference (model + runtime overhead, in MB) */
41
+ readonly minRAM_MB: number;
42
+ /** Relative accuracy score 0-100 */
43
+ readonly accuracyScore: number;
44
+ /** Available formats in the model catalog */
45
+ readonly formats: readonly string[];
46
+ }
47
+ /** Resolved config — the tripletta chosen by the scorer for an addon */
48
+ export interface ResolvedInferenceConfig {
49
+ readonly modelId: string;
50
+ readonly runtime: 'node' | 'python';
51
+ readonly backend: string;
52
+ readonly format: string;
53
+ readonly reason: string;
54
+ }
55
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/interfaces/platform.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAA;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAA;CACzC;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,wEAAwE;AACxE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB"}
@@ -0,0 +1,41 @@
1
+ import type { ElementState } from './lifecycle.js';
2
+ export interface ProcessStats {
3
+ pid: number;
4
+ cpu: number;
5
+ memory: number;
6
+ uptime: number;
7
+ restartCount: number;
8
+ }
9
+ export interface ProcessConfig {
10
+ id: string;
11
+ label: string;
12
+ command?: string;
13
+ modulePath?: string;
14
+ args?: string[];
15
+ env?: Record<string, string>;
16
+ autoRestart: boolean;
17
+ maxRestarts?: number;
18
+ healthCheck?: {
19
+ intervalMs: number;
20
+ timeoutMs: number;
21
+ failureThreshold: number;
22
+ };
23
+ }
24
+ export interface ManagedProcessStatus {
25
+ id: string;
26
+ label: string;
27
+ state: ElementState;
28
+ pid?: number;
29
+ stats?: ProcessStats;
30
+ lastCrashAt?: number;
31
+ lastCrashError?: string;
32
+ restartCount: number;
33
+ nextRestartAt?: number;
34
+ }
35
+ /** Minimal interface for ProcessManagerService used by addons */
36
+ export interface IProcessManager {
37
+ register(config: ProcessConfig): unknown;
38
+ start(id: string): Promise<void>;
39
+ stop(id: string): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/interfaces/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAA;IACxC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC"}
@@ -0,0 +1,20 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ export interface PythonProbeResult {
3
+ readonly available: boolean;
4
+ readonly version?: string;
5
+ readonly path?: string;
6
+ readonly installedPackages?: readonly string[];
7
+ }
8
+ export interface PythonEnvReady {
9
+ readonly pythonPath: string;
10
+ readonly venvPath: string;
11
+ spawn(script: string, args: readonly string[]): ChildProcess;
12
+ }
13
+ export interface IPythonEnvironment {
14
+ probe(): Promise<PythonProbeResult>;
15
+ ensure(options: {
16
+ readonly packages: readonly string[];
17
+ }): Promise<PythonEnvReady>;
18
+ spawn(script: string, args: readonly string[]): ChildProcess;
19
+ }
20
+ //# sourceMappingURL=python-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-env.d.ts","sourceRoot":"","sources":["../../src/interfaces/python-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,CAAA;CAC7D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACnC,MAAM,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAClF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,CAAA;CAC7D"}
@@ -0,0 +1,8 @@
1
+ import type { IPipelineSlotProvider } from './pipeline-slot.js';
2
+ import type { CropInput } from '../types/detection.js';
3
+ import type { RefinerOutput } from '../types/detection.js';
4
+ export interface IRefinerProvider extends IPipelineSlotProvider {
5
+ readonly slot: 'refiner';
6
+ refine(input: CropInput): Promise<RefinerOutput>;
7
+ }
8
+ //# sourceMappingURL=refiner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refiner.d.ts","sourceRoot":"","sources":["../../src/interfaces/refiner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;CACjD"}
@@ -0,0 +1,26 @@
1
+ export interface ReplContext {
2
+ scope: ReplScope;
3
+ variables: Record<string, unknown>;
4
+ }
5
+ export type ReplScope = {
6
+ type: 'system';
7
+ } | {
8
+ type: 'provider';
9
+ providerId: string;
10
+ } | {
11
+ type: 'device';
12
+ deviceId: string;
13
+ } | {
14
+ type: 'addon';
15
+ addonId: string;
16
+ };
17
+ export interface ReplResult {
18
+ output: string;
19
+ type: 'value' | 'error' | 'void';
20
+ duration: number;
21
+ }
22
+ export interface IReplEngine {
23
+ execute(code: string, context: ReplContext): Promise<ReplResult>;
24
+ getCompletions(partial: string, context: ReplContext): Promise<string[]>;
25
+ }
26
+ //# sourceMappingURL=repl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/interfaces/repl.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAChE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACzE"}
@@ -0,0 +1,20 @@
1
+ import type { ZoneDefinition, KnownFace, KnownPlate } from '../types/entities.js';
2
+ export interface IZoneRepository {
3
+ getByCamera(cameraId: string): Promise<ZoneDefinition[]>;
4
+ save(zone: ZoneDefinition): Promise<void>;
5
+ delete(zoneId: string): Promise<void>;
6
+ }
7
+ export interface IKnownFaceRepository {
8
+ getAll(): Promise<KnownFace[]>;
9
+ findByEmbedding(embedding: Float32Array, threshold: number): Promise<KnownFace | null>;
10
+ save(face: KnownFace): Promise<void>;
11
+ addEmbedding(faceId: string, embedding: Float32Array): Promise<void>;
12
+ delete(faceId: string): Promise<void>;
13
+ }
14
+ export interface IKnownPlateRepository {
15
+ getAll(): Promise<KnownPlate[]>;
16
+ findByText(text: string): Promise<KnownPlate | null>;
17
+ save(plate: KnownPlate): Promise<void>;
18
+ delete(plateId: string): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=repositories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/interfaces/repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IACxD,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC9B,eAAe,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACtF,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC"}
@@ -0,0 +1,24 @@
1
+ import type { EncodedPacket } from './stream-broker.js';
2
+ export interface RegisteredStream {
3
+ readonly streamId: string;
4
+ readonly label: string;
5
+ readonly codec: string;
6
+ readonly type: 'video' | 'audio';
7
+ readonly sourceUrl?: string;
8
+ }
9
+ export interface RestreamerExposedResource {
10
+ readonly type: string;
11
+ readonly format: string;
12
+ readonly value: string;
13
+ readonly metadata?: Readonly<Record<string, unknown>>;
14
+ }
15
+ export interface IRestreamer {
16
+ readonly id: string;
17
+ readonly name: string;
18
+ registerDevice(deviceId: string, streams: readonly RegisteredStream[]): Promise<void>;
19
+ pushPacket(streamId: string, packet: EncodedPacket): void;
20
+ unregisterDevice(deviceId: string): Promise<void>;
21
+ getExposedResources(deviceId: string): readonly RestreamerExposedResource[];
22
+ proxyWhepOffer?(streamId: string, sdpOffer: string): Promise<string>;
23
+ }
24
+ //# sourceMappingURL=restreamer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restreamer.d.ts","sourceRoot":"","sources":["../../src/interfaces/restreamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IACzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,yBAAyB,EAAE,CAAA;IAC3E,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACrE"}
@@ -0,0 +1,30 @@
1
+ export interface RouteRequest {
2
+ readonly params: Readonly<Record<string, string>>;
3
+ readonly query: Readonly<Record<string, string | string[]>>;
4
+ readonly headers: Readonly<Record<string, string | undefined>>;
5
+ readonly body?: unknown;
6
+ }
7
+ export interface RouteResponse {
8
+ status(code: number): RouteResponse;
9
+ json(data: unknown): void;
10
+ send(data: string | Buffer): void;
11
+ sendFile(path: string): void;
12
+ header(name: string, value: string): RouteResponse;
13
+ }
14
+ export type RouteHandler = (req: RouteRequest, res: RouteResponse) => void | Promise<void>;
15
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
16
+ export interface IAddonRouter {
17
+ /** Public route — no auth required */
18
+ public(method: HttpMethod, path: string, handler: RouteHandler): void;
19
+ /** Protected route — requires valid JWT or API key */
20
+ protected(method: HttpMethod, path: string, handler: RouteHandler): void;
21
+ /** Admin route — requires admin role */
22
+ admin(method: HttpMethod, path: string, handler: RouteHandler): void;
23
+ /** Serve static directory */
24
+ static(urlPath: string, directory: string, options?: {
25
+ auth?: boolean;
26
+ }): void;
27
+ /** Get the base URL prefix for this addon's routes */
28
+ getBaseUrl(): string;
29
+ }
30
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/interfaces/router.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAA;IACnC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAA;CACnD;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1F,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACrE,sDAAsD;IACtD,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACxE,wCAAwC;IACxC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACpE,6BAA6B;IAC7B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAC9E,sDAAsD;IACtD,UAAU,IAAI,MAAM,CAAA;CACrB"}
@@ -0,0 +1,21 @@
1
+ import type { LabelData } from '../types/detection.js';
2
+ import type { EmbeddingFilter, VectorSearchResult } from './storage.js';
3
+ export interface EmbeddingMetadata {
4
+ readonly timestamp: number;
5
+ readonly className: string;
6
+ readonly deviceId: string;
7
+ readonly zoneId?: string;
8
+ readonly labelsData?: readonly LabelData[];
9
+ }
10
+ export interface SceneStateResult {
11
+ readonly previousState: string;
12
+ readonly currentState: string;
13
+ readonly confidence: number;
14
+ }
15
+ export interface ISceneIntelligence {
16
+ embed(deviceId: string, crop: Buffer, metadata: EmbeddingMetadata): Promise<string>;
17
+ search(query: string, topK: number, filter?: EmbeddingFilter): Promise<VectorSearchResult[]>;
18
+ searchByImage(image: Buffer, topK: number, filter?: EmbeddingFilter): Promise<VectorSearchResult[]>;
19
+ evaluateSceneState(deviceId: string, crop: Buffer): Promise<SceneStateResult | null>;
20
+ }
21
+ //# sourceMappingURL=scene-intelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-intelligence.d.ts","sourceRoot":"","sources":["../../src/interfaces/scene-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAC5F,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;IACnG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;CACrF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Scope restriction for a scoped token.
3
+ */
4
+ export interface TokenScope {
5
+ readonly type: 'addon' | 'route-prefix' | 'capability';
6
+ readonly target: string;
7
+ }
8
+ /**
9
+ * A per-user API token with restricted scopes.
10
+ */
11
+ export interface ScopedToken {
12
+ readonly id: string;
13
+ readonly userId: string;
14
+ readonly name: string;
15
+ readonly tokenHash: string;
16
+ readonly tokenPrefix: string;
17
+ readonly scopes: TokenScope[];
18
+ readonly expiresAt?: number;
19
+ readonly lastUsedAt?: number;
20
+ readonly createdAt: number;
21
+ }
22
+ //# sourceMappingURL=scoped-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-token.d.ts","sourceRoot":"","sources":["../../src/interfaces/scoped-token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,YAAY,CAAA;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B"}
@@ -0,0 +1,146 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-analysis.d.ts","sourceRoot":"","sources":["../../src/interfaces/server-analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-network.d.ts","sourceRoot":"","sources":["../../src/interfaces/server-network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
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
@@ -0,0 +1 @@
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"}