@camstack/types 0.1.40 → 0.1.42

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 (302) hide show
  1. package/dist/addon/base-addon.d.ts +12 -0
  2. package/dist/addon/base-addon.d.ts.map +1 -1
  3. package/dist/addon/durable-state.d.ts +33 -0
  4. package/dist/addon/durable-state.d.ts.map +1 -0
  5. package/dist/capabilities/accessories.cap.d.ts +56 -8
  6. package/dist/capabilities/accessories.cap.d.ts.map +1 -1
  7. package/dist/capabilities/advanced-notifier.cap.d.ts +4 -0
  8. package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
  9. package/dist/capabilities/air-quality-sensor.cap.d.ts +56 -0
  10. package/dist/capabilities/air-quality-sensor.cap.d.ts.map +1 -0
  11. package/dist/capabilities/alarm-panel.cap.d.ts +154 -0
  12. package/dist/capabilities/alarm-panel.cap.d.ts.map +1 -0
  13. package/dist/capabilities/ambient-light-sensor.cap.d.ts +39 -0
  14. package/dist/capabilities/ambient-light-sensor.cap.d.ts.map +1 -0
  15. package/dist/capabilities/automation-control.cap.d.ts +65 -0
  16. package/dist/capabilities/automation-control.cap.d.ts.map +1 -0
  17. package/dist/capabilities/battery.cap.d.ts +30 -1
  18. package/dist/capabilities/battery.cap.d.ts.map +1 -1
  19. package/dist/capabilities/binary.cap.d.ts +40 -0
  20. package/dist/capabilities/binary.cap.d.ts.map +1 -0
  21. package/dist/capabilities/brightness.cap.d.ts +3 -2
  22. package/dist/capabilities/brightness.cap.d.ts.map +1 -1
  23. package/dist/capabilities/broker.cap.d.ts +291 -0
  24. package/dist/capabilities/broker.cap.d.ts.map +1 -0
  25. package/dist/capabilities/button.cap.d.ts +27 -0
  26. package/dist/capabilities/button.cap.d.ts.map +1 -0
  27. package/dist/capabilities/camera-credentials.cap.d.ts +1 -0
  28. package/dist/capabilities/camera-credentials.cap.d.ts.map +1 -1
  29. package/dist/capabilities/camera-streams.cap.d.ts +147 -10
  30. package/dist/capabilities/camera-streams.cap.d.ts.map +1 -1
  31. package/dist/capabilities/capability-definition.d.ts +15 -0
  32. package/dist/capabilities/capability-definition.d.ts.map +1 -1
  33. package/dist/capabilities/carbon-monoxide.cap.d.ts +33 -0
  34. package/dist/capabilities/carbon-monoxide.cap.d.ts.map +1 -0
  35. package/dist/capabilities/climate-control.cap.d.ts +183 -0
  36. package/dist/capabilities/climate-control.cap.d.ts.map +1 -0
  37. package/dist/capabilities/color.cap.d.ts +186 -0
  38. package/dist/capabilities/color.cap.d.ts.map +1 -0
  39. package/dist/capabilities/connectivity.cap.d.ts +37 -0
  40. package/dist/capabilities/connectivity.cap.d.ts.map +1 -0
  41. package/dist/capabilities/consumables.cap.d.ts +105 -0
  42. package/dist/capabilities/consumables.cap.d.ts.map +1 -0
  43. package/dist/capabilities/contact.cap.d.ts +41 -0
  44. package/dist/capabilities/contact.cap.d.ts.map +1 -0
  45. package/dist/capabilities/control.cap.d.ts +167 -0
  46. package/dist/capabilities/control.cap.d.ts.map +1 -0
  47. package/dist/capabilities/cover.cap.d.ts +104 -0
  48. package/dist/capabilities/cover.cap.d.ts.map +1 -0
  49. package/dist/capabilities/custom-actions.d.ts +6 -0
  50. package/dist/capabilities/custom-actions.d.ts.map +1 -1
  51. package/dist/capabilities/decoder.cap.d.ts +1 -1
  52. package/dist/capabilities/device-adoption.cap.d.ts +203 -0
  53. package/dist/capabilities/device-adoption.cap.d.ts.map +1 -0
  54. package/dist/capabilities/device-discovery.cap.d.ts +44 -143
  55. package/dist/capabilities/device-discovery.cap.d.ts.map +1 -1
  56. package/dist/capabilities/device-manager.cap.d.ts +469 -0
  57. package/dist/capabilities/device-manager.cap.d.ts.map +1 -1
  58. package/dist/capabilities/device-ops.cap.d.ts +30 -0
  59. package/dist/capabilities/device-ops.cap.d.ts.map +1 -1
  60. package/dist/capabilities/device-provider.cap.d.ts +36 -0
  61. package/dist/capabilities/device-provider.cap.d.ts.map +1 -1
  62. package/dist/capabilities/device-status.cap.d.ts +1 -0
  63. package/dist/capabilities/device-status.cap.d.ts.map +1 -1
  64. package/dist/capabilities/doorbell.cap.d.ts +1 -0
  65. package/dist/capabilities/doorbell.cap.d.ts.map +1 -1
  66. package/dist/capabilities/enum-sensor.cap.d.ts +60 -0
  67. package/dist/capabilities/enum-sensor.cap.d.ts.map +1 -0
  68. package/dist/capabilities/event-emitter.cap.d.ts +79 -0
  69. package/dist/capabilities/event-emitter.cap.d.ts.map +1 -0
  70. package/dist/capabilities/fan-control.cap.d.ts +100 -0
  71. package/dist/capabilities/fan-control.cap.d.ts.map +1 -0
  72. package/dist/capabilities/feature-probe.cap.d.ts +1 -0
  73. package/dist/capabilities/feature-probe.cap.d.ts.map +1 -1
  74. package/dist/capabilities/filesystem-browse.cap.d.ts +39 -0
  75. package/dist/capabilities/filesystem-browse.cap.d.ts.map +1 -0
  76. package/dist/capabilities/flood.cap.d.ts +37 -0
  77. package/dist/capabilities/flood.cap.d.ts.map +1 -0
  78. package/dist/capabilities/gas.cap.d.ts +34 -0
  79. package/dist/capabilities/gas.cap.d.ts.map +1 -0
  80. package/dist/capabilities/humidifier.cap.d.ts +82 -0
  81. package/dist/capabilities/humidifier.cap.d.ts.map +1 -0
  82. package/dist/capabilities/humidity-sensor.cap.d.ts +43 -0
  83. package/dist/capabilities/humidity-sensor.cap.d.ts.map +1 -0
  84. package/dist/capabilities/image.cap.d.ts +44 -0
  85. package/dist/capabilities/image.cap.d.ts.map +1 -0
  86. package/dist/capabilities/index.d.ts +97 -12
  87. package/dist/capabilities/index.d.ts.map +1 -1
  88. package/dist/capabilities/integrations.cap.d.ts +12 -0
  89. package/dist/capabilities/integrations.cap.d.ts.map +1 -1
  90. package/dist/capabilities/intercom.cap.d.ts +49 -9
  91. package/dist/capabilities/intercom.cap.d.ts.map +1 -1
  92. package/dist/capabilities/lawn-mower-control.cap.d.ts +83 -0
  93. package/dist/capabilities/lawn-mower-control.cap.d.ts.map +1 -0
  94. package/dist/capabilities/lock-control.cap.d.ts +92 -0
  95. package/dist/capabilities/lock-control.cap.d.ts.map +1 -0
  96. package/dist/capabilities/media-player.cap.d.ts +201 -0
  97. package/dist/capabilities/media-player.cap.d.ts.map +1 -0
  98. package/dist/capabilities/motion-trigger.cap.d.ts +1 -0
  99. package/dist/capabilities/motion-trigger.cap.d.ts.map +1 -1
  100. package/dist/capabilities/motion-zones.cap.d.ts +1 -0
  101. package/dist/capabilities/motion-zones.cap.d.ts.map +1 -1
  102. package/dist/capabilities/native-object-detection.cap.d.ts +1 -0
  103. package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -1
  104. package/dist/capabilities/network-quality.cap.d.ts +5 -0
  105. package/dist/capabilities/network-quality.cap.d.ts.map +1 -1
  106. package/dist/capabilities/notifier.cap.d.ts +173 -0
  107. package/dist/capabilities/notifier.cap.d.ts.map +1 -0
  108. package/dist/capabilities/numeric-sensor.cap.d.ts +52 -0
  109. package/dist/capabilities/numeric-sensor.cap.d.ts.map +1 -0
  110. package/dist/capabilities/osd.cap.d.ts +1 -0
  111. package/dist/capabilities/osd.cap.d.ts.map +1 -1
  112. package/dist/capabilities/pipeline-analytics.cap.d.ts +69 -22
  113. package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -1
  114. package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
  115. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +1 -1
  116. package/dist/capabilities/pipeline-runner.cap.d.ts +2 -2
  117. package/dist/capabilities/platform-probe.cap.d.ts +25 -0
  118. package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
  119. package/dist/capabilities/power-meter.cap.d.ts +65 -0
  120. package/dist/capabilities/power-meter.cap.d.ts.map +1 -0
  121. package/dist/capabilities/presence.cap.d.ts +79 -0
  122. package/dist/capabilities/presence.cap.d.ts.map +1 -0
  123. package/dist/capabilities/pressure-sensor.cap.d.ts +43 -0
  124. package/dist/capabilities/pressure-sensor.cap.d.ts.map +1 -0
  125. package/dist/capabilities/privacy-mask.cap.d.ts +1 -0
  126. package/dist/capabilities/privacy-mask.cap.d.ts.map +1 -1
  127. package/dist/capabilities/ptz-autotrack.cap.d.ts +1 -0
  128. package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -1
  129. package/dist/capabilities/ptz.cap.d.ts +1 -0
  130. package/dist/capabilities/ptz.cap.d.ts.map +1 -1
  131. package/dist/capabilities/reboot.cap.d.ts +1 -0
  132. package/dist/capabilities/reboot.cap.d.ts.map +1 -1
  133. package/dist/capabilities/recording.cap.d.ts +367 -32
  134. package/dist/capabilities/recording.cap.d.ts.map +1 -1
  135. package/dist/capabilities/restreamer.cap.d.ts +2 -2
  136. package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
  137. package/dist/capabilities/schemas/streaming-shared.d.ts +64 -1
  138. package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -1
  139. package/dist/capabilities/script-runner.cap.d.ts +62 -0
  140. package/dist/capabilities/script-runner.cap.d.ts.map +1 -0
  141. package/dist/capabilities/settings-store.cap.d.ts +25 -0
  142. package/dist/capabilities/settings-store.cap.d.ts.map +1 -1
  143. package/dist/capabilities/smoke.cap.d.ts +38 -0
  144. package/dist/capabilities/smoke.cap.d.ts.map +1 -0
  145. package/dist/capabilities/snapshot-provider.cap.d.ts +1 -1
  146. package/dist/capabilities/snapshot.cap.d.ts +1 -0
  147. package/dist/capabilities/snapshot.cap.d.ts.map +1 -1
  148. package/dist/capabilities/storage-evictable.cap.d.ts +54 -0
  149. package/dist/capabilities/storage-evictable.cap.d.ts.map +1 -0
  150. package/dist/capabilities/storage-provider.cap.d.ts +46 -186
  151. package/dist/capabilities/storage-provider.cap.d.ts.map +1 -1
  152. package/dist/capabilities/storage.cap.d.ts +41 -226
  153. package/dist/capabilities/storage.cap.d.ts.map +1 -1
  154. package/dist/capabilities/stream-broker.cap.d.ts +323 -25
  155. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
  156. package/dist/capabilities/stream-catalog.cap.d.ts +3 -0
  157. package/dist/capabilities/stream-catalog.cap.d.ts.map +1 -1
  158. package/dist/capabilities/stream-params.cap.d.ts +27 -26
  159. package/dist/capabilities/stream-params.cap.d.ts.map +1 -1
  160. package/dist/capabilities/switch.cap.d.ts +1 -0
  161. package/dist/capabilities/switch.cap.d.ts.map +1 -1
  162. package/dist/capabilities/tamper.cap.d.ts +33 -0
  163. package/dist/capabilities/tamper.cap.d.ts.map +1 -0
  164. package/dist/capabilities/temperature-sensor.cap.d.ts +51 -0
  165. package/dist/capabilities/temperature-sensor.cap.d.ts.map +1 -0
  166. package/dist/capabilities/update.cap.d.ts +49 -0
  167. package/dist/capabilities/update.cap.d.ts.map +1 -0
  168. package/dist/capabilities/vacuum-control.cap.d.ts +229 -0
  169. package/dist/capabilities/vacuum-control.cap.d.ts.map +1 -0
  170. package/dist/capabilities/valve.cap.d.ts +93 -0
  171. package/dist/capabilities/valve.cap.d.ts.map +1 -0
  172. package/dist/capabilities/vibration.cap.d.ts +33 -0
  173. package/dist/capabilities/vibration.cap.d.ts.map +1 -0
  174. package/dist/capabilities/videoclips.cap.d.ts +77 -0
  175. package/dist/capabilities/videoclips.cap.d.ts.map +1 -0
  176. package/dist/capabilities/water-heater.cap.d.ts +78 -0
  177. package/dist/capabilities/water-heater.cap.d.ts.map +1 -0
  178. package/dist/capabilities/weather.cap.d.ts +76 -0
  179. package/dist/capabilities/weather.cap.d.ts.map +1 -0
  180. package/dist/capabilities/webrtc-session.cap.d.ts +95 -1
  181. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  182. package/dist/constants.d.ts +0 -2
  183. package/dist/constants.d.ts.map +1 -1
  184. package/dist/device/base-device-provider.d.ts +11 -0
  185. package/dist/device/base-device-provider.d.ts.map +1 -1
  186. package/dist/device/base-device.d.ts +52 -0
  187. package/dist/device/base-device.d.ts.map +1 -1
  188. package/dist/device/device-context.d.ts +29 -0
  189. package/dist/device/device-context.d.ts.map +1 -1
  190. package/dist/device/device-link-transform.d.ts +6 -0
  191. package/dist/device/device-link-transform.d.ts.map +1 -0
  192. package/dist/device/device-management.d.ts +116 -4
  193. package/dist/device/device-management.d.ts.map +1 -1
  194. package/dist/device/device-type.d.ts +214 -3
  195. package/dist/device/device-type.d.ts.map +1 -1
  196. package/dist/device/device.d.ts +25 -0
  197. package/dist/device/device.d.ts.map +1 -1
  198. package/dist/device/index.d.ts +5 -1
  199. package/dist/device/index.d.ts.map +1 -1
  200. package/dist/device/path-util.d.ts +13 -0
  201. package/dist/device/path-util.d.ts.map +1 -0
  202. package/dist/device/schema-fields.d.ts +12 -0
  203. package/dist/device/schema-fields.d.ts.map +1 -0
  204. package/dist/device/source-info.d.ts +87 -0
  205. package/dist/device/source-info.d.ts.map +1 -0
  206. package/dist/device/system-mirror.d.ts +6 -2
  207. package/dist/device/system-mirror.d.ts.map +1 -1
  208. package/dist/encode-profile.d.ts +126 -0
  209. package/dist/encode-profile.d.ts.map +1 -0
  210. package/dist/enums/event-category.d.ts +64 -6
  211. package/dist/enums/event-category.d.ts.map +1 -1
  212. package/dist/generated/addon-api.d.ts +12722 -8080
  213. package/dist/generated/addon-api.d.ts.map +1 -1
  214. package/dist/generated/cap-status-types.d.ts +85 -1
  215. package/dist/generated/cap-status-types.d.ts.map +1 -1
  216. package/dist/generated/capability-router-map.d.ts +139 -7
  217. package/dist/generated/capability-router-map.d.ts.map +1 -1
  218. package/dist/generated/device-local-state.d.ts +117 -0
  219. package/dist/generated/device-local-state.d.ts.map +1 -1
  220. package/dist/generated/device-proxy.d.ts +126 -5
  221. package/dist/generated/device-proxy.d.ts.map +1 -1
  222. package/dist/generated/method-access-map.d.ts +1 -1
  223. package/dist/generated/method-access-map.d.ts.map +1 -1
  224. package/dist/generated/provider-kind-map.d.ts +1 -1
  225. package/dist/generated/provider-kind-map.d.ts.map +1 -1
  226. package/dist/generated/system-proxy.d.ts +10 -8
  227. package/dist/generated/system-proxy.d.ts.map +1 -1
  228. package/dist/{index-C2zzIDdX.mjs → index-BxWo3b49.mjs} +4714 -1113
  229. package/dist/index-BxWo3b49.mjs.map +1 -0
  230. package/dist/{index-DnpdVFKv.js → index-CGMPfVaT.js} +4321 -720
  231. package/dist/index-CGMPfVaT.js.map +1 -0
  232. package/dist/index.d.ts +22 -3
  233. package/dist/index.d.ts.map +1 -1
  234. package/dist/index.js +1384 -116
  235. package/dist/index.js.map +1 -1
  236. package/dist/index.mjs +1698 -430
  237. package/dist/index.mjs.map +1 -1
  238. package/dist/interfaces/addon-data-plane.d.ts +76 -0
  239. package/dist/interfaces/addon-data-plane.d.ts.map +1 -0
  240. package/dist/interfaces/addon.d.ts +60 -0
  241. package/dist/interfaces/addon.d.ts.map +1 -1
  242. package/dist/interfaces/advanced-notifier.d.ts +4 -0
  243. package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
  244. package/dist/interfaces/capability.d.ts +42 -1
  245. package/dist/interfaces/capability.d.ts.map +1 -1
  246. package/dist/interfaces/config-ui.d.ts +70 -6
  247. package/dist/interfaces/config-ui.d.ts.map +1 -1
  248. package/dist/interfaces/device-capabilities/camera.d.ts +2 -1
  249. package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -1
  250. package/dist/interfaces/event-bus.d.ts +49 -3
  251. package/dist/interfaces/event-bus.d.ts.map +1 -1
  252. package/dist/interfaces/kernel-abstractions.d.ts +10 -1
  253. package/dist/interfaces/kernel-abstractions.d.ts.map +1 -1
  254. package/dist/interfaces/network-quality.d.ts +8 -0
  255. package/dist/interfaces/network-quality.d.ts.map +1 -1
  256. package/dist/interfaces/pipeline-executor-capability.d.ts +2 -2
  257. package/dist/interfaces/pipeline-orchestrator-capability.d.ts +2 -1
  258. package/dist/interfaces/pipeline-orchestrator-capability.d.ts.map +1 -1
  259. package/dist/interfaces/pipeline-runner-capability.d.ts +7 -0
  260. package/dist/interfaces/pipeline-runner-capability.d.ts.map +1 -1
  261. package/dist/interfaces/recording-config-migrate.d.ts +13 -0
  262. package/dist/interfaces/recording-config-migrate.d.ts.map +1 -0
  263. package/dist/interfaces/recording-config.d.ts +209 -0
  264. package/dist/interfaces/recording-config.d.ts.map +1 -0
  265. package/dist/interfaces/rtp-egress.d.ts +2 -3
  266. package/dist/interfaces/rtp-egress.d.ts.map +1 -1
  267. package/dist/interfaces/storage-location-declaration.d.ts +34 -0
  268. package/dist/interfaces/storage-location-declaration.d.ts.map +1 -0
  269. package/dist/interfaces/storage-location.d.ts +19 -74
  270. package/dist/interfaces/storage-location.d.ts.map +1 -1
  271. package/dist/interfaces/storage.d.ts +15 -4
  272. package/dist/interfaces/storage.d.ts.map +1 -1
  273. package/dist/interfaces/stream-broker.d.ts +18 -3
  274. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  275. package/dist/interfaces/timezones.d.ts +59 -0
  276. package/dist/interfaces/timezones.d.ts.map +1 -0
  277. package/dist/node.d.ts +3 -0
  278. package/dist/node.d.ts.map +1 -1
  279. package/dist/node.js +50 -8
  280. package/dist/node.js.map +1 -1
  281. package/dist/node.mjs +51 -9
  282. package/dist/node.mjs.map +1 -1
  283. package/dist/storage/filesystem-storage-provider.d.ts +2 -1
  284. package/dist/storage/filesystem-storage-provider.d.ts.map +1 -1
  285. package/dist/stream-selection.d.ts +85 -0
  286. package/dist/stream-selection.d.ts.map +1 -0
  287. package/dist/types/detection.d.ts +3 -3
  288. package/dist/types/io.d.ts +1 -1
  289. package/dist/types/io.d.ts.map +1 -1
  290. package/dist/util/location-match.d.ts +15 -0
  291. package/dist/util/location-match.d.ts.map +1 -0
  292. package/dist/utils/canonical-hash.d.ts +20 -0
  293. package/dist/utils/canonical-hash.d.ts.map +1 -0
  294. package/dist/utils/export-reconciler.d.ts +101 -0
  295. package/dist/utils/export-reconciler.d.ts.map +1 -0
  296. package/dist/utils/sleep.d.ts +36 -0
  297. package/dist/utils/sleep.d.ts.map +1 -0
  298. package/package.json +1 -1
  299. package/dist/capabilities/recording-engine.cap.d.ts +0 -477
  300. package/dist/capabilities/recording-engine.cap.d.ts.map +0 -1
  301. package/dist/index-C2zzIDdX.mjs.map +0 -1
  302. package/dist/index-DnpdVFKv.js.map +0 -1
@@ -1,43 +1,378 @@
1
1
  import { z } from 'zod';
2
2
  import { type InferProvider } from './capability-definition.js';
3
- import { DeviceType } from '../device/device-type.js';
4
- declare const SegmentSchema: z.ZodObject<{
5
- id: z.ZodString;
6
- startTs: z.ZodNumber;
7
- endTs: z.ZodNumber;
8
- durationSec: z.ZodNumber;
9
- sizeBytes: z.ZodOptional<z.ZodNumber>;
3
+ export declare const RecordingStatusSchema: z.ZodObject<{
4
+ deviceId: z.ZodNumber;
5
+ enabled: z.ZodBoolean;
6
+ activeMode: z.ZodEnum<{
7
+ events: "events";
8
+ off: "off";
9
+ continuous: "continuous";
10
+ }>;
11
+ nodeId: z.ZodString;
12
+ storageBytes: z.ZodNumber;
10
13
  }, z.core.$strip>;
14
+ export type RecordingStatus = z.infer<typeof RecordingStatusSchema>;
15
+ export declare const RecordingRangeSchema: z.ZodObject<{
16
+ profile: z.ZodString;
17
+ startMs: z.ZodNumber;
18
+ endMs: z.ZodNumber;
19
+ }, z.core.$strip>;
20
+ export declare const RecordingAvailabilitySchema: z.ZodObject<{
21
+ deviceId: z.ZodNumber;
22
+ ranges: z.ZodArray<z.ZodObject<{
23
+ profile: z.ZodString;
24
+ startMs: z.ZodNumber;
25
+ endMs: z.ZodNumber;
26
+ }, z.core.$strip>>;
27
+ }, z.core.$strip>;
28
+ export type RecordingAvailability = z.infer<typeof RecordingAvailabilitySchema>;
29
+ export declare const RecordingManifestSchema: z.ZodObject<{
30
+ deviceId: z.ZodNumber;
31
+ localMasterPath: z.ZodNullable<z.ZodString>;
32
+ playbackUrl: z.ZodNullable<z.ZodString>;
33
+ playbackEndpoints: z.ZodArray<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ export type RecordingManifest = z.infer<typeof RecordingManifestSchema>;
36
+ /** Recording storage usage for one camera (bytes on disk across all its
37
+ * profiles/subtrees/locations on this node). */
38
+ export declare const RecordingDeviceUsageSchema: z.ZodObject<{
39
+ deviceId: z.ZodNumber;
40
+ usedBytes: z.ZodNumber;
41
+ }, z.core.$strip>;
42
+ export type RecordingDeviceUsage = z.infer<typeof RecordingDeviceUsageSchema>;
43
+ /** Recording storage usage + capacity for one storage location. */
44
+ export declare const RecordingLocationUsageSchema: z.ZodObject<{
45
+ locationId: z.ZodNullable<z.ZodString>;
46
+ usedBytes: z.ZodNumber;
47
+ availableBytes: z.ZodNullable<z.ZodNumber>;
48
+ totalBytes: z.ZodNullable<z.ZodNumber>;
49
+ }, z.core.$strip>;
50
+ export type RecordingLocationUsage = z.infer<typeof RecordingLocationUsageSchema>;
51
+ /** Aggregate recordings storage usage for a node: global total + per-camera +
52
+ * per-location used/available. Stat-based (accurate even for detached cameras),
53
+ * computed on demand — not from the name-only playback index. */
54
+ export declare const RecordingStorageUsageSchema: z.ZodObject<{
55
+ nodeId: z.ZodString;
56
+ totalUsedBytes: z.ZodNumber;
57
+ devices: z.ZodArray<z.ZodObject<{
58
+ deviceId: z.ZodNumber;
59
+ usedBytes: z.ZodNumber;
60
+ }, z.core.$strip>>;
61
+ locations: z.ZodArray<z.ZodObject<{
62
+ locationId: z.ZodNullable<z.ZodString>;
63
+ usedBytes: z.ZodNumber;
64
+ availableBytes: z.ZodNullable<z.ZodNumber>;
65
+ totalBytes: z.ZodNullable<z.ZodNumber>;
66
+ }, z.core.$strip>>;
67
+ }, z.core.$strip>;
68
+ export type RecordingStorageUsage = z.infer<typeof RecordingStorageUsageSchema>;
11
69
  export declare const recordingCapability: {
12
70
  readonly name: "recording";
13
- readonly scope: "device";
71
+ readonly scope: "system";
14
72
  readonly mode: "singleton";
15
- readonly deviceTypes: readonly [DeviceType.Camera];
73
+ readonly exposesDeviceSettings: true;
74
+ readonly status: {
75
+ readonly schema: z.ZodObject<{
76
+ deviceId: z.ZodNumber;
77
+ enabled: z.ZodBoolean;
78
+ activeMode: z.ZodEnum<{
79
+ events: "events";
80
+ off: "off";
81
+ continuous: "continuous";
82
+ }>;
83
+ nodeId: z.ZodString;
84
+ storageBytes: z.ZodNumber;
85
+ }, z.core.$strip>;
86
+ readonly kind: "command-driven";
87
+ };
16
88
  readonly methods: {
17
- readonly getSegments: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
18
- deviceId: z.ZodNumber;
19
- from: z.ZodOptional<z.ZodNumber>;
20
- to: z.ZodOptional<z.ZodNumber>;
21
- }, z.core.$strip>, z.ZodArray<z.ZodObject<{
22
- id: z.ZodString;
23
- startTs: z.ZodNumber;
24
- endTs: z.ZodNumber;
25
- durationSec: z.ZodNumber;
26
- sizeBytes: z.ZodOptional<z.ZodNumber>;
27
- }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
28
- readonly getPlaybackUrl: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
29
- deviceId: z.ZodNumber;
30
- segmentId: z.ZodString;
31
- }, z.core.$strip>, z.ZodNullable<z.ZodString>, import("./capability-definition.js").CapabilityMethodKind>;
32
- readonly getThumbnailAt: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
33
- deviceId: z.ZodNumber;
34
- timestamp: z.ZodNumber;
35
- }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
36
- base64: z.ZodString;
37
- contentType: z.ZodString;
38
- }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
89
+ readonly getAvailability: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
90
+ deviceId: z.ZodNumber;
91
+ fromMs: z.ZodNumber;
92
+ toMs: z.ZodNumber;
93
+ }, z.core.$strip>, z.ZodObject<{
94
+ deviceId: z.ZodNumber;
95
+ ranges: z.ZodArray<z.ZodObject<{
96
+ profile: z.ZodString;
97
+ startMs: z.ZodNumber;
98
+ endMs: z.ZodNumber;
99
+ }, z.core.$strip>>;
100
+ }, z.core.$strip>, "query">;
101
+ readonly getPlaybackManifest: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
102
+ deviceId: z.ZodNumber;
103
+ fromMs: z.ZodNumber;
104
+ toMs: z.ZodNumber;
105
+ }, z.core.$strip>, z.ZodObject<{
106
+ deviceId: z.ZodNumber;
107
+ localMasterPath: z.ZodNullable<z.ZodString>;
108
+ playbackUrl: z.ZodNullable<z.ZodString>;
109
+ playbackEndpoints: z.ZodArray<z.ZodString>;
110
+ }, z.core.$strip>, "query">;
111
+ readonly getStorageUsage: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
112
+ nodeId: z.ZodString;
113
+ totalUsedBytes: z.ZodNumber;
114
+ devices: z.ZodArray<z.ZodObject<{
115
+ deviceId: z.ZodNumber;
116
+ usedBytes: z.ZodNumber;
117
+ }, z.core.$strip>>;
118
+ locations: z.ZodArray<z.ZodObject<{
119
+ locationId: z.ZodNullable<z.ZodString>;
120
+ usedBytes: z.ZodNumber;
121
+ availableBytes: z.ZodNullable<z.ZodNumber>;
122
+ totalBytes: z.ZodNullable<z.ZodNumber>;
123
+ }, z.core.$strip>>;
124
+ }, z.core.$strip>, "query">;
125
+ readonly getDeviceConfig: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
126
+ deviceId: z.ZodNumber;
127
+ }, z.core.$strip>, z.ZodObject<{
128
+ enabled: z.ZodBoolean;
129
+ mode: z.ZodOptional<z.ZodEnum<{
130
+ events: "events";
131
+ off: "off";
132
+ continuous: "continuous";
133
+ }>>;
134
+ profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
135
+ high: "high";
136
+ mid: "mid";
137
+ low: "low";
138
+ }>>>;
139
+ segmentSeconds: z.ZodOptional<z.ZodNumber>;
140
+ schedules: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
141
+ kind: z.ZodLiteral<"always">;
142
+ }, z.core.$strip>, z.ZodObject<{
143
+ kind: z.ZodLiteral<"timeOfDay">;
144
+ start: z.ZodString;
145
+ end: z.ZodString;
146
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
147
+ }, z.core.$strip>], "kind">>>;
148
+ schedule: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
149
+ kind: z.ZodLiteral<"always">;
150
+ }, z.core.$strip>, z.ZodObject<{
151
+ kind: z.ZodLiteral<"timeOfDay">;
152
+ start: z.ZodString;
153
+ end: z.ZodString;
154
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
155
+ }, z.core.$strip>], "kind">>;
156
+ triggers: z.ZodOptional<z.ZodObject<{
157
+ motion: z.ZodOptional<z.ZodBoolean>;
158
+ audioThresholdDbfs: z.ZodOptional<z.ZodNumber>;
159
+ }, z.core.$strip>>;
160
+ preBufferSec: z.ZodOptional<z.ZodNumber>;
161
+ postBufferSec: z.ZodOptional<z.ZodNumber>;
162
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
163
+ schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{
164
+ kind: z.ZodLiteral<"always">;
165
+ }, z.core.$strip>, z.ZodObject<{
166
+ kind: z.ZodLiteral<"timeOfDay">;
167
+ start: z.ZodString;
168
+ end: z.ZodString;
169
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
170
+ }, z.core.$strip>], "kind">;
171
+ mode: z.ZodEnum<{
172
+ onMotion: "onMotion";
173
+ continuous: "continuous";
174
+ onAudioThreshold: "onAudioThreshold";
175
+ }>;
176
+ preBufferSec: z.ZodDefault<z.ZodNumber>;
177
+ postBufferSec: z.ZodDefault<z.ZodNumber>;
178
+ resetTimeoutOnNewEvent: z.ZodDefault<z.ZodBoolean>;
179
+ thresholdDbfs: z.ZodOptional<z.ZodNumber>;
180
+ }, z.core.$strip>>>;
181
+ bands: z.ZodOptional<z.ZodArray<z.ZodObject<{
182
+ days: z.ZodArray<z.ZodNumber>;
183
+ start: z.ZodString;
184
+ end: z.ZodString;
185
+ mode: z.ZodEnum<{
186
+ events: "events";
187
+ continuous: "continuous";
188
+ }>;
189
+ triggers: z.ZodOptional<z.ZodObject<{
190
+ motion: z.ZodOptional<z.ZodBoolean>;
191
+ audioThresholdDbfs: z.ZodOptional<z.ZodNumber>;
192
+ }, z.core.$strip>>;
193
+ preBufferSec: z.ZodOptional<z.ZodNumber>;
194
+ postBufferSec: z.ZodOptional<z.ZodNumber>;
195
+ }, z.core.$strip>>>;
196
+ retention: z.ZodOptional<z.ZodObject<{
197
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
198
+ maxSizeGb: z.ZodOptional<z.ZodNumber>;
199
+ }, z.core.$strip>>;
200
+ }, z.core.$strip>, "query">;
201
+ readonly setDeviceConfig: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
202
+ deviceId: z.ZodNumber;
203
+ config: z.ZodObject<{
204
+ enabled: z.ZodBoolean;
205
+ mode: z.ZodOptional<z.ZodEnum<{
206
+ events: "events";
207
+ off: "off";
208
+ continuous: "continuous";
209
+ }>>;
210
+ profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
211
+ high: "high";
212
+ mid: "mid";
213
+ low: "low";
214
+ }>>>;
215
+ segmentSeconds: z.ZodOptional<z.ZodNumber>;
216
+ schedules: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
217
+ kind: z.ZodLiteral<"always">;
218
+ }, z.core.$strip>, z.ZodObject<{
219
+ kind: z.ZodLiteral<"timeOfDay">;
220
+ start: z.ZodString;
221
+ end: z.ZodString;
222
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
223
+ }, z.core.$strip>], "kind">>>;
224
+ schedule: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
225
+ kind: z.ZodLiteral<"always">;
226
+ }, z.core.$strip>, z.ZodObject<{
227
+ kind: z.ZodLiteral<"timeOfDay">;
228
+ start: z.ZodString;
229
+ end: z.ZodString;
230
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
231
+ }, z.core.$strip>], "kind">>;
232
+ triggers: z.ZodOptional<z.ZodObject<{
233
+ motion: z.ZodOptional<z.ZodBoolean>;
234
+ audioThresholdDbfs: z.ZodOptional<z.ZodNumber>;
235
+ }, z.core.$strip>>;
236
+ preBufferSec: z.ZodOptional<z.ZodNumber>;
237
+ postBufferSec: z.ZodOptional<z.ZodNumber>;
238
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
239
+ schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{
240
+ kind: z.ZodLiteral<"always">;
241
+ }, z.core.$strip>, z.ZodObject<{
242
+ kind: z.ZodLiteral<"timeOfDay">;
243
+ start: z.ZodString;
244
+ end: z.ZodString;
245
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
246
+ }, z.core.$strip>], "kind">;
247
+ mode: z.ZodEnum<{
248
+ onMotion: "onMotion";
249
+ continuous: "continuous";
250
+ onAudioThreshold: "onAudioThreshold";
251
+ }>;
252
+ preBufferSec: z.ZodDefault<z.ZodNumber>;
253
+ postBufferSec: z.ZodDefault<z.ZodNumber>;
254
+ resetTimeoutOnNewEvent: z.ZodDefault<z.ZodBoolean>;
255
+ thresholdDbfs: z.ZodOptional<z.ZodNumber>;
256
+ }, z.core.$strip>>>;
257
+ bands: z.ZodOptional<z.ZodArray<z.ZodObject<{
258
+ days: z.ZodArray<z.ZodNumber>;
259
+ start: z.ZodString;
260
+ end: z.ZodString;
261
+ mode: z.ZodEnum<{
262
+ events: "events";
263
+ continuous: "continuous";
264
+ }>;
265
+ triggers: z.ZodOptional<z.ZodObject<{
266
+ motion: z.ZodOptional<z.ZodBoolean>;
267
+ audioThresholdDbfs: z.ZodOptional<z.ZodNumber>;
268
+ }, z.core.$strip>>;
269
+ preBufferSec: z.ZodOptional<z.ZodNumber>;
270
+ postBufferSec: z.ZodOptional<z.ZodNumber>;
271
+ }, z.core.$strip>>>;
272
+ retention: z.ZodOptional<z.ZodObject<{
273
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
274
+ maxSizeGb: z.ZodOptional<z.ZodNumber>;
275
+ }, z.core.$strip>>;
276
+ }, z.core.$strip>;
277
+ }, z.core.$strip>, z.ZodObject<{
278
+ enabled: z.ZodBoolean;
279
+ mode: z.ZodOptional<z.ZodEnum<{
280
+ events: "events";
281
+ off: "off";
282
+ continuous: "continuous";
283
+ }>>;
284
+ profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
285
+ high: "high";
286
+ mid: "mid";
287
+ low: "low";
288
+ }>>>;
289
+ segmentSeconds: z.ZodOptional<z.ZodNumber>;
290
+ schedules: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
291
+ kind: z.ZodLiteral<"always">;
292
+ }, z.core.$strip>, z.ZodObject<{
293
+ kind: z.ZodLiteral<"timeOfDay">;
294
+ start: z.ZodString;
295
+ end: z.ZodString;
296
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
297
+ }, z.core.$strip>], "kind">>>;
298
+ schedule: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
299
+ kind: z.ZodLiteral<"always">;
300
+ }, z.core.$strip>, z.ZodObject<{
301
+ kind: z.ZodLiteral<"timeOfDay">;
302
+ start: z.ZodString;
303
+ end: z.ZodString;
304
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
305
+ }, z.core.$strip>], "kind">>;
306
+ triggers: z.ZodOptional<z.ZodObject<{
307
+ motion: z.ZodOptional<z.ZodBoolean>;
308
+ audioThresholdDbfs: z.ZodOptional<z.ZodNumber>;
309
+ }, z.core.$strip>>;
310
+ preBufferSec: z.ZodOptional<z.ZodNumber>;
311
+ postBufferSec: z.ZodOptional<z.ZodNumber>;
312
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
313
+ schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{
314
+ kind: z.ZodLiteral<"always">;
315
+ }, z.core.$strip>, z.ZodObject<{
316
+ kind: z.ZodLiteral<"timeOfDay">;
317
+ start: z.ZodString;
318
+ end: z.ZodString;
319
+ days: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
320
+ }, z.core.$strip>], "kind">;
321
+ mode: z.ZodEnum<{
322
+ onMotion: "onMotion";
323
+ continuous: "continuous";
324
+ onAudioThreshold: "onAudioThreshold";
325
+ }>;
326
+ preBufferSec: z.ZodDefault<z.ZodNumber>;
327
+ postBufferSec: z.ZodDefault<z.ZodNumber>;
328
+ resetTimeoutOnNewEvent: z.ZodDefault<z.ZodBoolean>;
329
+ thresholdDbfs: z.ZodOptional<z.ZodNumber>;
330
+ }, z.core.$strip>>>;
331
+ bands: z.ZodOptional<z.ZodArray<z.ZodObject<{
332
+ days: z.ZodArray<z.ZodNumber>;
333
+ start: z.ZodString;
334
+ end: z.ZodString;
335
+ mode: z.ZodEnum<{
336
+ events: "events";
337
+ continuous: "continuous";
338
+ }>;
339
+ triggers: z.ZodOptional<z.ZodObject<{
340
+ motion: z.ZodOptional<z.ZodBoolean>;
341
+ audioThresholdDbfs: z.ZodOptional<z.ZodNumber>;
342
+ }, z.core.$strip>>;
343
+ preBufferSec: z.ZodOptional<z.ZodNumber>;
344
+ postBufferSec: z.ZodOptional<z.ZodNumber>;
345
+ }, z.core.$strip>>>;
346
+ retention: z.ZodOptional<z.ZodObject<{
347
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
348
+ maxSizeGb: z.ZodOptional<z.ZodNumber>;
349
+ }, z.core.$strip>>;
350
+ }, z.core.$strip>, "mutation">;
351
+ /** Re-scan this device's footage from disk (stat sizes) and reseed the
352
+ * index, then return the fresh status. */
353
+ readonly rescanStorage: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
354
+ deviceId: z.ZodNumber;
355
+ }, z.core.$strip>, z.ZodObject<{
356
+ deviceId: z.ZodNumber;
357
+ enabled: z.ZodBoolean;
358
+ activeMode: z.ZodEnum<{
359
+ events: "events";
360
+ off: "off";
361
+ continuous: "continuous";
362
+ }>;
363
+ nodeId: z.ZodString;
364
+ storageBytes: z.ZodNumber;
365
+ }, z.core.$strip>, "mutation">;
366
+ /** Apply this device's retention policy to footage now; returns the oldest
367
+ * surviving footage start (the retention floor) or null if no footage. */
368
+ readonly pruneFootage: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
369
+ deviceId: z.ZodNumber;
370
+ }, z.core.$strip>, z.ZodObject<{
371
+ floorMs: z.ZodNullable<z.ZodNumber>;
372
+ deletedBuckets: z.ZodNumber;
373
+ reclaimedBytes: z.ZodNumber;
374
+ }, z.core.$strip>, "mutation">;
39
375
  };
40
376
  };
41
377
  export type IRecordingProvider = InferProvider<typeof recordingCapability>;
42
- export { SegmentSchema };
43
378
  //# sourceMappingURL=recording.cap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recording.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/recording.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,QAAA,MAAM,aAAa;;;;;;iBAMjB,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBS,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"recording.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/recording.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAGlG,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAMhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;;iBAGtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE/E,eAAO,MAAM,uBAAuB;;;;;iBAelC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;iDACiD;AACjD,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E,mEAAmE;AACnE,eAAO,MAAM,4BAA4B;;;;;iBASvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF;;kEAEkE;AAClE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;iBAKtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE/E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmC5B;mDAC2C;;;;;;;;;;;;;;QAM3C;mFAC2E;;;;;;;;;CAWtC,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -5,8 +5,8 @@ declare const RegisteredStreamSchema: z.ZodObject<{
5
5
  label: z.ZodOptional<z.ZodString>;
6
6
  codec: z.ZodString;
7
7
  type: z.ZodEnum<{
8
- audio: "audio";
9
8
  video: "video";
9
+ audio: "audio";
10
10
  }>;
11
11
  sourceUrl: z.ZodString;
12
12
  }, z.core.$strip>;
@@ -28,8 +28,8 @@ export declare const restreamerCapability: {
28
28
  label: z.ZodOptional<z.ZodString>;
29
29
  codec: z.ZodString;
30
30
  type: z.ZodEnum<{
31
- audio: "audio";
32
31
  video: "video";
32
+ audio: "audio";
33
33
  }>;
34
34
  sourceUrl: z.ZodString;
35
35
  }, z.core.$strip>>>;
@@ -19,8 +19,8 @@ export declare const CameraMetricsSchema: z.ZodObject<{
19
19
  droppedFrames: z.ZodNumber;
20
20
  phase: z.ZodEnum<{
21
21
  idle: "idle";
22
- watching: "watching";
23
22
  active: "active";
23
+ watching: "watching";
24
24
  }>;
25
25
  }, z.core.$strip>;
26
26
  export declare const CameraMetricsWithDeviceIdSchema: z.ZodObject<{
@@ -36,8 +36,8 @@ export declare const CameraMetricsWithDeviceIdSchema: z.ZodObject<{
36
36
  droppedFrames: z.ZodNumber;
37
37
  phase: z.ZodEnum<{
38
38
  idle: "idle";
39
- watching: "watching";
40
39
  active: "active";
40
+ watching: "watching";
41
41
  }>;
42
42
  deviceId: z.ZodNumber;
43
43
  }, z.core.$strip>;
@@ -14,6 +14,7 @@ export declare const CamStreamKindSchema: z.ZodEnum<{
14
14
  "pull-http": "pull-http";
15
15
  "pull-rfc4571": "pull-rfc4571";
16
16
  "push-annexb": "push-annexb";
17
+ derived: "derived";
17
18
  }>;
18
19
  export type CamStreamKind = z.infer<typeof CamStreamKindSchema>;
19
20
  export declare const CamStreamResolutionSchema: z.ZodObject<{
@@ -29,6 +30,7 @@ export declare const CameraStreamSchema: z.ZodObject<{
29
30
  "pull-http": "pull-http";
30
31
  "pull-rfc4571": "pull-rfc4571";
31
32
  "push-annexb": "push-annexb";
33
+ derived: "derived";
32
34
  }>;
33
35
  url: z.ZodOptional<z.ZodString>;
34
36
  codec: z.ZodOptional<z.ZodString>;
@@ -76,6 +78,39 @@ export declare const ProfileSlotSchema: z.ZodObject<{
76
78
  errorMessage: z.ZodOptional<z.ZodString>;
77
79
  }, z.core.$strip>;
78
80
  export type ProfileSlot = z.infer<typeof ProfileSlotSchema>;
81
+ /** The canonical consumer-facing broker id for a device profile. */
82
+ export declare function makeProfileBrokerId(deviceId: number, profile: CamProfile): string;
83
+ /**
84
+ * The broker id keying a physical SOURCE stream: `${deviceId}/${camStreamId}`.
85
+ * This is the broker's internal source key (`brokerIdFor` in the manager) — a
86
+ * `camStreamId` like `native:main` — as opposed to the public profile alias
87
+ * {@link makeProfileBrokerId}. Used to resolve a source's restream endpoint
88
+ * (e.g. routing a transcode's ffmpeg input through the broker so it rides the
89
+ * single source dial instead of opening a second camera connection).
90
+ */
91
+ export declare function makeSourceBrokerId(deviceId: number, camStreamId: string): string;
92
+ /**
93
+ * Inverse of {@link makeProfileBrokerId}. Returns `null` when the string is
94
+ * not a canonical `${deviceId}/${profile}` id — e.g. a broker-internal
95
+ * cam-stream id (`5/native:main`), a derived/adaptive ref, or a malformed
96
+ * value. So a caller can safely distinguish "addresses a public profile"
97
+ * from "addresses something broker-internal".
98
+ */
99
+ export declare function parseProfileBrokerId(brokerId: string): {
100
+ deviceId: number;
101
+ profile: CamProfile;
102
+ } | null;
103
+ /**
104
+ * The profile slots worth consuming/recording: ASSIGNED only
105
+ * (`sourceCamStreamId != null`), DEDUPED by physical source so the same
106
+ * camera encoder is never subscribed/recorded twice, ordered high→mid→low.
107
+ * Optionally scoped to one `deviceId`. Pure; never mutates the input.
108
+ *
109
+ * Recording `main` and `mid` when both point at the same `sourceCamStreamId`
110
+ * would dial the camera's internal stream twice for no benefit — this is the
111
+ * dedup that prevents that.
112
+ */
113
+ export declare function selectAssignedProfileSlots(slots: readonly ProfileSlot[], deviceId?: number): ProfileSlot[];
79
114
  /**
80
115
  * Zod schema for StreamSourceEntry — the canonical stream descriptor
81
116
  * exposed by ICameraDevice.getStreamSources() and consumed by the broker.
@@ -114,8 +149,8 @@ export declare const StreamSourceSchema: z.ZodObject<{
114
149
  }, z.core.$strip>;
115
150
  export declare const EncodedPacketSchema: z.ZodObject<{
116
151
  type: z.ZodEnum<{
117
- audio: "audio";
118
152
  video: "video";
153
+ audio: "audio";
119
154
  }>;
120
155
  data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
121
156
  pts: z.ZodNumber;
@@ -281,4 +316,32 @@ export declare const BrokerStatsSchema: z.ZodObject<{
281
316
  supported: z.ZodBoolean;
282
317
  }, z.core.$strip>>>;
283
318
  }, z.core.$strip>;
319
+ /**
320
+ * Exporter-facing "profile restream" entry. Returned by
321
+ * `cameraStreams.getProfileRtspEntries` — one per ASSIGNED profile slot
322
+ * (high/mid/low). `brokerId` is the PROFILE-keyed broker id
323
+ * (`${deviceId}/${profile}`, e.g. `15/high`); its `url` is a broker
324
+ * RTSP restream that aliases the profile's assigned source broker, so
325
+ * every consumer dialling a profile converges on the same single pull.
326
+ * `codec`/`resolution` describe the assigned SOURCE camStream (for the
327
+ * `auto` resolution-closest pick). Distinct from `RtspRestreamEntry`
328
+ * (raw per-camStream, live-view only).
329
+ */
330
+ export declare const ProfileRtspEntrySchema: z.ZodObject<{
331
+ profile: z.ZodEnum<{
332
+ high: "high";
333
+ mid: "mid";
334
+ low: "low";
335
+ }>;
336
+ brokerId: z.ZodString;
337
+ url: z.ZodString;
338
+ mutedUrl: z.ZodString;
339
+ enabled: z.ZodBoolean;
340
+ codec: z.ZodOptional<z.ZodString>;
341
+ resolution: z.ZodOptional<z.ZodObject<{
342
+ width: z.ZodNumber;
343
+ height: z.ZodNumber;
344
+ }, z.core.$strip>>;
345
+ }, z.core.$strip>;
346
+ export type ProfileRtspEntry = z.infer<typeof ProfileRtspEntrySchema>;
284
347
  //# sourceMappingURL=streaming-shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-shared.d.ts","sourceRoot":"","sources":["../../../src/capabilities/schemas/streaming-shared.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,eAAO,MAAM,gBAAgB;;;;EAAiC,CAAA;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,iCAAkC,CAAA;AAiBhE,eAAO,MAAM,mBAAmB;;;;;;EAM9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;iBA2C7B,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAS7D,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;iBAUlC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAO9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAM7B,CAAA;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;iBAW5B,CAAA;AAaF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;EAA2C,CAAA;AAC/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;iBAYrC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;iBAKtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE/E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;;iBAI1C,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAEvF,sDAAsD;AACtD,eAAO,MAAM,gCAAgC;;iBAG3C,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAEzF,eAAO,MAAM,kBAAkB;;;;;;EAAkE,CAAA;AAEjG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuC5B,CAAA"}
1
+ {"version":3,"file":"streaming-shared.d.ts","sourceRoot":"","sources":["../../../src/capabilities/schemas/streaming-shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * Script-runner cap. Models HA `script.*` entities on
6
+ * `DeviceType.Script`. A Script is a pre-recorded action sequence
7
+ * that can be invoked imperatively — optionally with a variables
8
+ * map when the script declares input fields.
9
+ *
10
+ * Variable-support is signalled by `DeviceFeature.ScriptVariables`
11
+ * so the UI gates a "with parameters" form without a slice fetch.
12
+ */
13
+ export declare const ScriptRunnerStatusSchema: z.ZodObject<{
14
+ isRunning: z.ZodBoolean;
15
+ lastRunAt: z.ZodNumber;
16
+ lastRunSuccess: z.ZodNullable<z.ZodBoolean>;
17
+ lastError: z.ZodNullable<z.ZodString>;
18
+ lastChangedAt: z.ZodNumber;
19
+ }, z.core.$strip>;
20
+ export type ScriptRunnerStatus = z.infer<typeof ScriptRunnerStatusSchema>;
21
+ export declare const scriptRunnerCapability: {
22
+ readonly name: "script-runner";
23
+ readonly scope: "device";
24
+ readonly deviceNative: true;
25
+ readonly mode: "singleton";
26
+ readonly deviceTypes: readonly [DeviceType.Script];
27
+ readonly methods: {
28
+ readonly run: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
29
+ deviceId: z.ZodNumber;
30
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
32
+ /** Cancel a running script. Provider rejects when the script
33
+ * isn't currently running. */
34
+ readonly stop: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
35
+ deviceId: z.ZodNumber;
36
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
37
+ };
38
+ readonly status: {
39
+ readonly schema: z.ZodObject<{
40
+ isRunning: z.ZodBoolean;
41
+ lastRunAt: z.ZodNumber;
42
+ lastRunSuccess: z.ZodNullable<z.ZodBoolean>;
43
+ lastError: z.ZodNullable<z.ZodString>;
44
+ lastChangedAt: z.ZodNumber;
45
+ }, z.core.$strip>;
46
+ readonly kind: "push";
47
+ };
48
+ /**
49
+ * Runtime-state slice — mirrored by the kernel. UI script tile reads
50
+ * `isRunning` to render a spinner during execution and surfaces
51
+ * `lastError` / `lastRunSuccess` in the recent-runs panel.
52
+ */
53
+ readonly runtimeState: z.ZodObject<{
54
+ isRunning: z.ZodBoolean;
55
+ lastRunAt: z.ZodNumber;
56
+ lastRunSuccess: z.ZodNullable<z.ZodBoolean>;
57
+ lastError: z.ZodNullable<z.ZodString>;
58
+ lastChangedAt: z.ZodNumber;
59
+ }, z.core.$strip>;
60
+ };
61
+ export type IScriptRunnerProvider = InferProvider<typeof scriptRunnerCapability>;
62
+ //# sourceMappingURL=script-runner.cap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-runner.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/script-runner.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;GAQG;AAEH,eAAO,MAAM,wBAAwB;;;;;;iBAanC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,sBAAsB;;;;;;;;;;;QAkB/B;uCAC+B;;;;;;;;;;;;;;;IAWjC;;;;OAIG;;;;;;;;CAEoC,CAAA;AAEzC,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,OAAO,sBAAsB,CAAC,CAAA"}