@camstack/types 0.1.8 → 0.1.10

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 (199) 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 +4974 -0
  14. package/dist/generated/addon-api.d.ts.map +1 -0
  15. package/dist/index.d.ts +82 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +550 -744
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +529 -777
  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 +176 -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 +244 -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 +5 -5
@@ -0,0 +1,92 @@
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-stream-broker 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-broker.d.ts","sourceRoot":"","sources":["../../src/interfaces/stream-broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,46 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,11 @@
1
+ import type { EncodedPacket } from './stream-broker.js';
2
+ export interface IWebRtcProvider {
3
+ readonly id: string;
4
+ readonly name: string;
5
+ handleOffer(streamId: string, sdpOffer: string): Promise<string>;
6
+ supportsStream(streamId: string): boolean;
7
+ registerStream(streamId: string, codec: string): Promise<void>;
8
+ pushPacket(streamId: string, packet: EncodedPacket): void;
9
+ unregisterStream(streamId: string): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=webrtc-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc-provider.d.ts","sourceRoot":"","sources":["../../src/interfaces/webrtc-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IACzC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IACzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClD"}
@@ -0,0 +1,110 @@
1
+ /** Messages sent from main process to worker */
2
+ export type MainToWorkerMessage = {
3
+ type: 'INIT';
4
+ addonId: string;
5
+ addonDir: string;
6
+ config: Record<string, unknown>;
7
+ storagePaths: Record<string, string>;
8
+ /** Private data directory for this addon */
9
+ dataDir: string;
10
+ /** Legacy location paths (deprecated — use storageProvider proxy instead) */
11
+ locationPaths: Record<string, string>;
12
+ } | {
13
+ type: 'CONFIG_CHANGE';
14
+ config: Record<string, unknown>;
15
+ } | {
16
+ type: 'CAPABILITY_RESPONSE';
17
+ requestId: string;
18
+ result: unknown;
19
+ error?: string;
20
+ } | {
21
+ type: 'SHUTDOWN';
22
+ } | {
23
+ type: 'PING';
24
+ };
25
+ /** Messages sent from worker to main process */
26
+ export type WorkerToMainMessage = {
27
+ type: 'READY';
28
+ capabilities: ReadonlyArray<{
29
+ name: string;
30
+ mode: 'singleton' | 'collection';
31
+ }>;
32
+ } | {
33
+ type: 'CAPABILITY_REGISTER';
34
+ name: string;
35
+ mode: 'singleton' | 'collection';
36
+ } | {
37
+ type: 'CAPABILITY_CALL';
38
+ requestId: string;
39
+ capability: string;
40
+ method: string;
41
+ args: readonly unknown[];
42
+ } | {
43
+ type: 'LOG';
44
+ level: string;
45
+ message: string;
46
+ context?: Record<string, unknown>;
47
+ } | {
48
+ type: 'EVENT';
49
+ category: string;
50
+ data: Record<string, unknown>;
51
+ } | {
52
+ type: 'STATS';
53
+ cpu: number;
54
+ memory: number;
55
+ uptime: number;
56
+ } | {
57
+ type: 'PONG';
58
+ } | {
59
+ type: 'ERROR';
60
+ message: string;
61
+ stack?: string;
62
+ } | {
63
+ type: 'SUB_PROCESS_SPAWNED';
64
+ pid: number;
65
+ name: string;
66
+ command: string;
67
+ } | {
68
+ type: 'SUB_PROCESS_EXITED';
69
+ pid: number;
70
+ code: number | null;
71
+ } | {
72
+ type: 'TASK_HANDLER_REGISTER';
73
+ taskType: string;
74
+ description: string;
75
+ security?: 'safe' | 'dangerous';
76
+ };
77
+ /** Worker process state */
78
+ export type WorkerState = 'starting' | 'running' | 'stopping' | 'stopped' | 'crashed';
79
+ /** Worker process info exposed to main process */
80
+ export interface WorkerInfo {
81
+ readonly addonId: string;
82
+ readonly pid: number;
83
+ readonly state: WorkerState;
84
+ readonly cpuPercent: number;
85
+ readonly memoryRss: number;
86
+ readonly uptimeSeconds: number;
87
+ readonly restartCount: number;
88
+ readonly subProcesses: readonly SubProcessInfo[];
89
+ }
90
+ /** Sub-process info */
91
+ export interface SubProcessInfo {
92
+ readonly pid: number;
93
+ readonly name: string;
94
+ readonly command: string;
95
+ readonly state: 'running' | 'stopped' | 'crashed';
96
+ readonly cpuPercent: number;
97
+ readonly memoryRss: number;
98
+ readonly uptimeSeconds: number;
99
+ }
100
+ /** Worker process stats (distinct from the existing ProcessStats in process.ts) */
101
+ export interface WorkerProcessStats {
102
+ readonly pid: number;
103
+ readonly cpuPercent: number;
104
+ readonly memoryRss: number;
105
+ readonly heapUsed?: number;
106
+ readonly uptimeSeconds: number;
107
+ readonly restartCount: number;
108
+ readonly state: WorkerState;
109
+ }
110
+ //# sourceMappingURL=worker-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-protocol.d.ts","sourceRoot":"","sources":["../../src/interfaces/worker-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * System settings UI schemas — the single source of truth for all settings sections.
3
+ *
4
+ * These are defined in @camstack/types so that:
5
+ * - The backend can serve them via API
6
+ * - Addons can reference/extend them
7
+ * - The frontend fetches them at runtime (no hardcoded duplication)
8
+ *
9
+ * Values are stored in the SQL system_settings table, not config.yaml.
10
+ * Only `server` is read-only (loaded from config.yaml at bootstrap).
11
+ */
12
+ import type { ConfigUISchema } from '../interfaces/config-ui.js';
13
+ export type SystemSettingsSection = 'server' | 'auth' | 'features' | 'storage' | 'logging' | 'addons' | 'recording' | 'streaming' | 'ffmpeg' | 'detection' | 'backup' | 'retention';
14
+ /** Sections where fields are read-only (bootstrap from config.yaml). */
15
+ export declare const READ_ONLY_SECTIONS: ReadonlySet<SystemSettingsSection>;
16
+ export interface SettingsTabDef {
17
+ readonly id: SystemSettingsSection;
18
+ readonly label: string;
19
+ }
20
+ export declare const SETTINGS_TABS: readonly SettingsTabDef[];
21
+ export declare const SYSTEM_SETTINGS_SCHEMAS: Readonly<Record<SystemSettingsSection, ConfigUISchema>>;
22
+ /**
23
+ * Get the UI schema for a settings section.
24
+ * Returns undefined for unknown sections.
25
+ */
26
+ export declare function getSystemSettingsSchema(section: string): ConfigUISchema | undefined;
27
+ //# sourceMappingURL=system-settings-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-settings-schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/system-settings-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAMhE,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GACjE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE/E,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,qBAAqB,CAEhE,CAAA;AAMF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,cAAc,EAQzC,CAAA;AA2TV,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAc3F,CAAA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEnF"}
@@ -0,0 +1,75 @@
1
+ import type { BoundingBox } from './io.js';
2
+ import type { ObjectState } from './tracked.js';
3
+ import type { DetectionEvent, EventSnapshot } from './events.js';
4
+ export interface TrackFilter {
5
+ readonly class?: readonly string[];
6
+ readonly state?: readonly ObjectState[];
7
+ readonly inZone?: string;
8
+ readonly minDwellMs?: number;
9
+ }
10
+ export interface TimeRangeOptions {
11
+ readonly from: number;
12
+ readonly to: number;
13
+ readonly resolution: 'minute' | '5min' | 'hour';
14
+ }
15
+ export interface ZoneHistoryPoint {
16
+ readonly timestamp: number;
17
+ readonly objectCount: number;
18
+ readonly objectsByClass: Readonly<Record<string, number>>;
19
+ readonly entrances: number;
20
+ readonly exits: number;
21
+ }
22
+ export interface HeatmapOptions {
23
+ readonly from: number;
24
+ readonly to: number;
25
+ readonly class?: string;
26
+ readonly resolution: number;
27
+ }
28
+ export interface HeatmapData {
29
+ readonly width: number;
30
+ readonly height: number;
31
+ readonly gridSize: number;
32
+ readonly cells: Float32Array;
33
+ readonly maxCount: number;
34
+ }
35
+ export interface TrackDetail {
36
+ readonly trackId: string;
37
+ readonly class: string;
38
+ readonly originalClass: string;
39
+ readonly state: ObjectState;
40
+ readonly firstSeen: number;
41
+ readonly lastSeen: number;
42
+ readonly totalDwellMs: number;
43
+ readonly path: ReadonlyArray<{
44
+ readonly timestamp: number;
45
+ readonly bbox: BoundingBox;
46
+ readonly velocity: {
47
+ readonly dx: number;
48
+ readonly dy: number;
49
+ };
50
+ }>;
51
+ readonly identity?: {
52
+ readonly name: string;
53
+ readonly confidence: number;
54
+ readonly matchedAt: number;
55
+ };
56
+ readonly plateText?: {
57
+ readonly text: string;
58
+ readonly confidence: number;
59
+ readonly readAt: number;
60
+ };
61
+ readonly subClass?: {
62
+ readonly class: string;
63
+ readonly confidence: number;
64
+ };
65
+ readonly zoneTransitions: ReadonlyArray<{
66
+ readonly zoneId: string;
67
+ readonly zoneName: string;
68
+ readonly entered: number;
69
+ readonly exited?: number;
70
+ readonly dwellMs: number;
71
+ }>;
72
+ readonly bestSnapshot?: EventSnapshot;
73
+ readonly events: readonly DetectionEvent[];
74
+ }
75
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/types/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import type { BoundingBox } from './io.js';
2
+ export type BenchmarkMode = 'single-addon' | 'full-pipeline' | 'compare-runtimes' | 'compare-models';
3
+ export type BenchmarkSource = {
4
+ readonly type: 'reference';
5
+ readonly images: 'all' | readonly string[];
6
+ } | {
7
+ readonly type: 'camera';
8
+ readonly deviceId: string;
9
+ readonly durationSec: number;
10
+ };
11
+ export type BenchmarkExecution = {
12
+ readonly type: 'local';
13
+ } | {
14
+ readonly type: 'agent';
15
+ readonly agentId: string;
16
+ } | {
17
+ readonly type: 'multi-agent';
18
+ readonly agentIds: readonly string[];
19
+ } | {
20
+ readonly type: 'all-agents';
21
+ };
22
+ export interface BenchmarkTarget {
23
+ readonly label: string;
24
+ readonly addonId: string;
25
+ readonly config: Readonly<Record<string, unknown>>;
26
+ }
27
+ export interface BenchmarkConfig {
28
+ readonly mode: BenchmarkMode;
29
+ readonly source: BenchmarkSource;
30
+ readonly execution: BenchmarkExecution;
31
+ readonly iterations?: number;
32
+ readonly warmup?: number;
33
+ readonly targets: readonly BenchmarkTarget[];
34
+ }
35
+ export interface LatencyStats {
36
+ readonly mean: number;
37
+ readonly median: number;
38
+ readonly p95: number;
39
+ readonly p99: number;
40
+ readonly min: number;
41
+ readonly max: number;
42
+ }
43
+ export interface ResourceStats {
44
+ readonly peakMemoryMB: number;
45
+ readonly avgCpuPercent: number;
46
+ readonly avgGpuPercent?: number;
47
+ }
48
+ export interface AccuracyStats {
49
+ readonly mAP50?: number;
50
+ readonly precision?: number;
51
+ readonly recall?: number;
52
+ }
53
+ export interface SystemInfo {
54
+ readonly os: string;
55
+ readonly arch: string;
56
+ readonly cpuModel: string;
57
+ readonly cpuCores: number;
58
+ readonly totalMemoryMB: number;
59
+ readonly gpuModel?: string;
60
+ readonly pythonVersion?: string;
61
+ readonly nodeVersion: string;
62
+ }
63
+ export interface BenchmarkTargetResult {
64
+ readonly label: string;
65
+ readonly addonId: string;
66
+ readonly config: Readonly<Record<string, unknown>>;
67
+ readonly latency: LatencyStats;
68
+ readonly fps: number;
69
+ readonly accuracy?: AccuracyStats;
70
+ readonly resources: ResourceStats;
71
+ readonly stepBreakdown?: Readonly<Record<string, {
72
+ readonly meanMs: number;
73
+ readonly percentOfTotal: number;
74
+ }>>;
75
+ }
76
+ export type AgentBenchmarkStatus = 'completed' | 'partial' | 'failed' | 'disconnected';
77
+ export interface MultiBenchmarkReport {
78
+ readonly timestamp: string;
79
+ readonly source: BenchmarkSource;
80
+ readonly agents: ReadonlyArray<{
81
+ readonly agentId: string;
82
+ readonly status: AgentBenchmarkStatus;
83
+ readonly systemInfo: SystemInfo;
84
+ readonly results: readonly BenchmarkTargetResult[];
85
+ readonly error?: string;
86
+ readonly completedIterations?: number;
87
+ }>;
88
+ readonly leaderboard: ReadonlyArray<{
89
+ readonly rank: number;
90
+ readonly agentId: string;
91
+ readonly label: string;
92
+ readonly meanMs: number;
93
+ readonly fps: number;
94
+ readonly peakMemoryMB: number;
95
+ readonly accuracy?: AccuracyStats;
96
+ }>;
97
+ }
98
+ export interface GroundTruthAnnotation {
99
+ readonly class: string;
100
+ readonly originalClass?: string;
101
+ readonly bbox: BoundingBox;
102
+ readonly children?: readonly GroundTruthAnnotation[];
103
+ readonly identity?: string;
104
+ readonly plateText?: string;
105
+ readonly species?: string;
106
+ readonly vehicleType?: string;
107
+ }
108
+ export interface GroundTruth {
109
+ readonly image: string;
110
+ readonly annotations: readonly GroundTruthAnnotation[];
111
+ }
112
+ //# sourceMappingURL=benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/types/benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Motion detection configuration per camera.
3
+ * Motion is a pipeline TRIGGER, not a pipeline step.
4
+ */
5
+ export interface CameraMotionConfig {
6
+ /** 'stream' = frame-diff analysis on decoded frames (default)
7
+ * 'onboarded' = use camera's native motion signal via IMotionSensor capability
8
+ * 'smart' = AI-based motion detection */
9
+ readonly source: 'stream' | 'onboarded' | 'smart';
10
+ /** Frame-diff settings (only used when source='stream') */
11
+ readonly threshold?: number;
12
+ readonly minArea?: number;
13
+ }
14
+ /**
15
+ * Camera native AI detection configuration.
16
+ * These events are emitted for recording/notifications, NOT for inference pipeline.
17
+ * Uses the IObjectDetector device capability to receive detection events.
18
+ */
19
+ export interface CameraNativeDetectionConfig {
20
+ /** Whether to listen for the camera's native AI events */
21
+ readonly enabled: boolean;
22
+ /** Source identifier for attribution */
23
+ readonly source: string;
24
+ /** Classes the camera reports natively */
25
+ readonly classes: readonly string[];
26
+ }
27
+ /**
28
+ * Combined camera detection capabilities config.
29
+ */
30
+ export interface CameraDetectionCapabilities {
31
+ readonly motion: CameraMotionConfig;
32
+ readonly nativeDetection?: CameraNativeDetectionConfig;
33
+ }
34
+ //# sourceMappingURL=camera-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-detection.d.ts","sourceRoot":"","sources":["../../src/types/camera-detection.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;8CAE0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAA;IACjD,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,2BAA2B,CAAA;CACvD"}
@@ -0,0 +1,37 @@
1
+ import type { DetectionEventType } from './events.js';
2
+ export type DetectionRuntime = 'onnx' | 'coreml' | 'pytorch' | 'openvino' | 'tflite';
3
+ export type DetectionDevice = 'cpu' | 'gpu-cuda' | 'gpu-mps' | 'npu' | 'coral-edgetpu' | 'tensorrt';
4
+ export type ProbeCapability = 'fp32' | 'fp16' | 'int8' | 'batch-inference';
5
+ export interface ProbeResult {
6
+ readonly available: boolean;
7
+ readonly runtime: DetectionRuntime;
8
+ readonly device: DetectionDevice;
9
+ readonly capabilities: readonly ProbeCapability[];
10
+ readonly estimatedMemoryMB?: number;
11
+ }
12
+ export interface CameraAnalysisConfig {
13
+ readonly tracker: {
14
+ readonly maxAge: number;
15
+ readonly minHits: number;
16
+ readonly iouThreshold: number;
17
+ };
18
+ readonly stateAnalyzer: {
19
+ readonly stationaryThresholdSec: number;
20
+ readonly loiteringThresholdSec: number;
21
+ readonly velocityThreshold: number;
22
+ };
23
+ readonly snapshots: {
24
+ readonly enabled: boolean;
25
+ readonly saveThumbnail: boolean;
26
+ readonly saveAnnotatedFrame: boolean;
27
+ readonly saveDebugThumbnails: boolean;
28
+ readonly clipPreSec: number;
29
+ readonly clipPostSec: number;
30
+ };
31
+ readonly events: {
32
+ readonly minTrackAge: number;
33
+ readonly cooldownSec: number;
34
+ readonly enabledTypes: readonly DetectionEventType[];
35
+ };
36
+ }
37
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;AACpF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,eAAe,GAAG,UAAU,CAAA;AACnG,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAA;AAE1E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,SAAS,eAAe,EAAE,CAAA;IACjD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAC9B,CAAA;IACD,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;QACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;QACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;KACnC,CAAA;IACD,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;QAC/B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;QACpC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;QACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAC7B,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAA;KACrD,CAAA;CACF"}