@camstack/types 0.1.14 → 0.1.16

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 (467) hide show
  1. package/dist/addon/base-addon.d.ts +262 -0
  2. package/dist/addon/base-addon.d.ts.map +1 -0
  3. package/dist/auth-records-BDg37fy9.mjs +8297 -0
  4. package/dist/auth-records-BDg37fy9.mjs.map +1 -0
  5. package/dist/auth-records-D5ZNaUos.js +8296 -0
  6. package/dist/auth-records-D5ZNaUos.js.map +1 -0
  7. package/dist/capabilities/accessories.cap.d.ts +42 -0
  8. package/dist/capabilities/accessories.cap.d.ts.map +1 -0
  9. package/dist/capabilities/addon-pages-source.cap.d.ts +41 -0
  10. package/dist/capabilities/addon-pages-source.cap.d.ts.map +1 -0
  11. package/dist/capabilities/addon-pages.cap.d.ts +36 -0
  12. package/dist/capabilities/addon-pages.cap.d.ts.map +1 -0
  13. package/dist/capabilities/addon-routes.cap.d.ts +22 -0
  14. package/dist/capabilities/addon-routes.cap.d.ts.map +1 -0
  15. package/dist/capabilities/addon-settings.cap.d.ts +170 -0
  16. package/dist/capabilities/addon-settings.cap.d.ts.map +1 -0
  17. package/dist/capabilities/addon-widgets-source.cap.d.ts +103 -0
  18. package/dist/capabilities/addon-widgets-source.cap.d.ts.map +1 -0
  19. package/dist/capabilities/addon-widgets.cap.d.ts +98 -0
  20. package/dist/capabilities/addon-widgets.cap.d.ts.map +1 -0
  21. package/dist/capabilities/addons.cap.d.ts +356 -0
  22. package/dist/capabilities/addons.cap.d.ts.map +1 -0
  23. package/dist/capabilities/admin-ui.cap.d.ts +14 -0
  24. package/dist/capabilities/admin-ui.cap.d.ts.map +1 -0
  25. package/dist/capabilities/advanced-notifier.cap.d.ts +60 -0
  26. package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -0
  27. package/dist/capabilities/alerts.cap.d.ts +164 -0
  28. package/dist/capabilities/alerts.cap.d.ts.map +1 -0
  29. package/dist/capabilities/audio-analysis.cap.d.ts +46 -0
  30. package/dist/capabilities/audio-analysis.cap.d.ts.map +1 -0
  31. package/dist/capabilities/audio-analyzer.cap.d.ts +148 -0
  32. package/dist/capabilities/audio-analyzer.cap.d.ts.map +1 -0
  33. package/dist/capabilities/audio-codec.cap.d.ts +202 -0
  34. package/dist/capabilities/audio-codec.cap.d.ts.map +1 -0
  35. package/dist/capabilities/audio-metrics.cap.d.ts +174 -0
  36. package/dist/capabilities/audio-metrics.cap.d.ts.map +1 -0
  37. package/dist/capabilities/auth-provider.cap.d.ts +49 -0
  38. package/dist/capabilities/auth-provider.cap.d.ts.map +1 -0
  39. package/dist/capabilities/authentication.cap.d.ts +83 -0
  40. package/dist/capabilities/authentication.cap.d.ts.map +1 -0
  41. package/dist/capabilities/backup.cap.d.ts +269 -0
  42. package/dist/capabilities/backup.cap.d.ts.map +1 -0
  43. package/dist/capabilities/battery.cap.d.ts +85 -0
  44. package/dist/capabilities/battery.cap.d.ts.map +1 -0
  45. package/dist/capabilities/brightness.cap.d.ts +64 -0
  46. package/dist/capabilities/brightness.cap.d.ts.map +1 -0
  47. package/dist/capabilities/camera-credentials.cap.d.ts +102 -0
  48. package/dist/capabilities/camera-credentials.cap.d.ts.map +1 -0
  49. package/dist/capabilities/camera-streams.cap.d.ts +214 -0
  50. package/dist/capabilities/camera-streams.cap.d.ts.map +1 -0
  51. package/dist/capabilities/capability-definition.d.ts +474 -0
  52. package/dist/capabilities/capability-definition.d.ts.map +1 -0
  53. package/dist/capabilities/custom-actions.d.ts +47 -0
  54. package/dist/capabilities/custom-actions.d.ts.map +1 -0
  55. package/dist/capabilities/decoder.cap.d.ts +173 -0
  56. package/dist/capabilities/decoder.cap.d.ts.map +1 -0
  57. package/dist/capabilities/detection-pipeline.cap.d.ts +34 -0
  58. package/dist/capabilities/detection-pipeline.cap.d.ts.map +1 -0
  59. package/dist/capabilities/device-discovery.cap.d.ts +247 -0
  60. package/dist/capabilities/device-discovery.cap.d.ts.map +1 -0
  61. package/dist/capabilities/device-manager.cap.d.ts +709 -0
  62. package/dist/capabilities/device-manager.cap.d.ts.map +1 -0
  63. package/dist/capabilities/device-ops.cap.d.ts +87 -0
  64. package/dist/capabilities/device-ops.cap.d.ts.map +1 -0
  65. package/dist/capabilities/device-provider.cap.d.ts +151 -0
  66. package/dist/capabilities/device-provider.cap.d.ts.map +1 -0
  67. package/dist/capabilities/device-state.cap.d.ts +97 -0
  68. package/dist/capabilities/device-state.cap.d.ts.map +1 -0
  69. package/dist/capabilities/device-status.cap.d.ts +54 -0
  70. package/dist/capabilities/device-status.cap.d.ts.map +1 -0
  71. package/dist/capabilities/doorbell.cap.d.ts +62 -0
  72. package/dist/capabilities/doorbell.cap.d.ts.map +1 -0
  73. package/dist/capabilities/embedding-encoder.cap.d.ts +41 -0
  74. package/dist/capabilities/embedding-encoder.cap.d.ts.map +1 -0
  75. package/dist/capabilities/events.cap.d.ts +48 -0
  76. package/dist/capabilities/events.cap.d.ts.map +1 -0
  77. package/dist/capabilities/feature-probe.cap.d.ts +79 -0
  78. package/dist/capabilities/feature-probe.cap.d.ts.map +1 -0
  79. package/dist/capabilities/index.d.ts +191 -0
  80. package/dist/capabilities/index.d.ts.map +1 -0
  81. package/dist/capabilities/integrations.cap.d.ts +182 -0
  82. package/dist/capabilities/integrations.cap.d.ts.map +1 -0
  83. package/dist/capabilities/intercom.cap.d.ts +108 -0
  84. package/dist/capabilities/intercom.cap.d.ts.map +1 -0
  85. package/dist/capabilities/local-network.cap.d.ts +216 -0
  86. package/dist/capabilities/local-network.cap.d.ts.map +1 -0
  87. package/dist/capabilities/log-destination.cap.d.ts +70 -0
  88. package/dist/capabilities/log-destination.cap.d.ts.map +1 -0
  89. package/dist/capabilities/mesh-network.cap.d.ts +160 -0
  90. package/dist/capabilities/mesh-network.cap.d.ts.map +1 -0
  91. package/dist/capabilities/mesh-orchestrator.cap.d.ts +96 -0
  92. package/dist/capabilities/mesh-orchestrator.cap.d.ts.map +1 -0
  93. package/dist/capabilities/metrics-provider.cap.d.ts +522 -0
  94. package/dist/capabilities/metrics-provider.cap.d.ts.map +1 -0
  95. package/dist/capabilities/motion-detection.cap.d.ts +107 -0
  96. package/dist/capabilities/motion-detection.cap.d.ts.map +1 -0
  97. package/dist/capabilities/motion-trigger.cap.d.ts +78 -0
  98. package/dist/capabilities/motion-trigger.cap.d.ts.map +1 -0
  99. package/dist/capabilities/motion.cap.d.ts +122 -0
  100. package/dist/capabilities/motion.cap.d.ts.map +1 -0
  101. package/dist/capabilities/native-object-detection.cap.d.ts +127 -0
  102. package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -0
  103. package/dist/capabilities/network-access.cap.d.ts +67 -0
  104. package/dist/capabilities/network-access.cap.d.ts.map +1 -0
  105. package/dist/capabilities/network-quality.cap.d.ts +95 -0
  106. package/dist/capabilities/network-quality.cap.d.ts.map +1 -0
  107. package/dist/capabilities/nodes.cap.d.ts +200 -0
  108. package/dist/capabilities/nodes.cap.d.ts.map +1 -0
  109. package/dist/capabilities/notification-output.cap.d.ts +44 -0
  110. package/dist/capabilities/notification-output.cap.d.ts.map +1 -0
  111. package/dist/capabilities/osd.cap.d.ts +236 -0
  112. package/dist/capabilities/osd.cap.d.ts.map +1 -0
  113. package/dist/capabilities/pipeline-analytics.cap.d.ts +501 -0
  114. package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -0
  115. package/dist/capabilities/pipeline-executor.cap.d.ts +922 -0
  116. package/dist/capabilities/pipeline-executor.cap.d.ts.map +1 -0
  117. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +793 -0
  118. package/dist/capabilities/pipeline-orchestrator.cap.d.ts.map +1 -0
  119. package/dist/capabilities/pipeline-runner.cap.d.ts +393 -0
  120. package/dist/capabilities/pipeline-runner.cap.d.ts.map +1 -0
  121. package/dist/capabilities/platform-probe.cap.d.ts +168 -0
  122. package/dist/capabilities/platform-probe.cap.d.ts.map +1 -0
  123. package/dist/capabilities/ptz-autotrack.cap.d.ts +188 -0
  124. package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -0
  125. package/dist/capabilities/ptz.cap.d.ts +80 -0
  126. package/dist/capabilities/ptz.cap.d.ts.map +1 -0
  127. package/dist/capabilities/reboot.cap.d.ts +32 -0
  128. package/dist/capabilities/reboot.cap.d.ts.map +1 -0
  129. package/dist/capabilities/recording-engine.cap.d.ts +477 -0
  130. package/dist/capabilities/recording-engine.cap.d.ts.map +1 -0
  131. package/dist/capabilities/recording.cap.d.ts +43 -0
  132. package/dist/capabilities/recording.cap.d.ts.map +1 -0
  133. package/dist/capabilities/remote-access.cap.d.ts +103 -0
  134. package/dist/capabilities/remote-access.cap.d.ts.map +1 -0
  135. package/dist/capabilities/restreamer.cap.d.ts +51 -0
  136. package/dist/capabilities/restreamer.cap.d.ts.map +1 -0
  137. package/dist/capabilities/schemas/detection-shared.d.ts +63 -0
  138. package/dist/capabilities/schemas/detection-shared.d.ts.map +1 -0
  139. package/dist/capabilities/schemas/orchestrator-metrics.d.ts +44 -0
  140. package/dist/capabilities/schemas/orchestrator-metrics.d.ts.map +1 -0
  141. package/dist/capabilities/schemas/streaming-shared.d.ts +177 -0
  142. package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -0
  143. package/dist/capabilities/schemas/zone-rule.d.ts +74 -0
  144. package/dist/capabilities/schemas/zone-rule.d.ts.map +1 -0
  145. package/dist/capabilities/settings-store.cap.d.ts +198 -0
  146. package/dist/capabilities/settings-store.cap.d.ts.map +1 -0
  147. package/dist/capabilities/snapshot-provider.cap.d.ts +40 -0
  148. package/dist/capabilities/snapshot-provider.cap.d.ts.map +1 -0
  149. package/dist/capabilities/snapshot.cap.d.ts +78 -0
  150. package/dist/capabilities/snapshot.cap.d.ts.map +1 -0
  151. package/dist/capabilities/storage-provider.cap.d.ts +432 -0
  152. package/dist/capabilities/storage-provider.cap.d.ts.map +1 -0
  153. package/dist/capabilities/storage.cap.d.ts +367 -0
  154. package/dist/capabilities/storage.cap.d.ts.map +1 -0
  155. package/dist/capabilities/stream-broker.cap.d.ts +416 -0
  156. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -0
  157. package/dist/capabilities/streaming-engine.cap.d.ts +58 -0
  158. package/dist/capabilities/streaming-engine.cap.d.ts.map +1 -0
  159. package/dist/capabilities/switch.cap.d.ts +66 -0
  160. package/dist/capabilities/switch.cap.d.ts.map +1 -0
  161. package/dist/capabilities/system.cap.d.ts +86 -0
  162. package/dist/capabilities/system.cap.d.ts.map +1 -0
  163. package/dist/capabilities/toast.cap.d.ts +56 -0
  164. package/dist/capabilities/toast.cap.d.ts.map +1 -0
  165. package/dist/capabilities/turn-orchestrator.cap.d.ts +74 -0
  166. package/dist/capabilities/turn-orchestrator.cap.d.ts.map +1 -0
  167. package/dist/capabilities/turn-provider.cap.d.ts +43 -0
  168. package/dist/capabilities/turn-provider.cap.d.ts.map +1 -0
  169. package/dist/capabilities/user-management.cap.d.ts +378 -0
  170. package/dist/capabilities/user-management.cap.d.ts.map +1 -0
  171. package/dist/capabilities/webrtc-session.cap.d.ts +181 -0
  172. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -0
  173. package/dist/capabilities/webrtc.cap.d.ts +72 -0
  174. package/dist/capabilities/webrtc.cap.d.ts.map +1 -0
  175. package/dist/capabilities/zone-analytics.cap.d.ts +213 -0
  176. package/dist/capabilities/zone-analytics.cap.d.ts.map +1 -0
  177. package/dist/capabilities/zone-rules.cap.d.ts +129 -0
  178. package/dist/capabilities/zone-rules.cap.d.ts.map +1 -0
  179. package/dist/capabilities/zones.cap.d.ts +151 -0
  180. package/dist/capabilities/zones.cap.d.ts.map +1 -0
  181. package/dist/catalogs/audio-classmap.d.ts +16 -0
  182. package/dist/catalogs/audio-classmap.d.ts.map +1 -0
  183. package/dist/catalogs/coco-classmap.d.ts.map +1 -1
  184. package/dist/constants.d.ts +50 -0
  185. package/dist/constants.d.ts.map +1 -1
  186. package/dist/deps/binary-downloader.d.ts +41 -0
  187. package/dist/deps/binary-downloader.d.ts.map +1 -0
  188. package/dist/deps/ffmpeg-downloader.d.ts +13 -0
  189. package/dist/deps/ffmpeg-downloader.d.ts.map +1 -0
  190. package/dist/deps/index.d.ts +4 -0
  191. package/dist/deps/index.d.ts.map +1 -0
  192. package/dist/deps/python-downloader.d.ts +34 -0
  193. package/dist/deps/python-downloader.d.ts.map +1 -0
  194. package/dist/device/accessory.d.ts +62 -0
  195. package/dist/device/accessory.d.ts.map +1 -0
  196. package/dist/device/base-device-provider.d.ts +178 -0
  197. package/dist/device/base-device-provider.d.ts.map +1 -0
  198. package/dist/device/base-device.d.ts +287 -0
  199. package/dist/device/base-device.d.ts.map +1 -0
  200. package/dist/device/camera-device.d.ts +49 -0
  201. package/dist/device/camera-device.d.ts.map +1 -0
  202. package/dist/device/device-binding.d.ts +23 -0
  203. package/dist/device/device-binding.d.ts.map +1 -0
  204. package/dist/device/device-config.d.ts +65 -0
  205. package/dist/device/device-config.d.ts.map +1 -0
  206. package/dist/device/device-context.d.ts +256 -0
  207. package/dist/device/device-context.d.ts.map +1 -0
  208. package/dist/device/device-management.d.ts +118 -0
  209. package/dist/device/device-management.d.ts.map +1 -0
  210. package/dist/device/device-profile.d.ts +161 -0
  211. package/dist/device/device-profile.d.ts.map +1 -0
  212. package/dist/device/device-runtime-state.d.ts +124 -0
  213. package/dist/device/device-runtime-state.d.ts.map +1 -0
  214. package/dist/device/device-state-handle.d.ts +161 -0
  215. package/dist/device/device-state-handle.d.ts.map +1 -0
  216. package/dist/device/device-type.d.ts +68 -0
  217. package/dist/device/device-type.d.ts.map +1 -0
  218. package/dist/device/device.d.ts +87 -0
  219. package/dist/device/device.d.ts.map +1 -0
  220. package/dist/device/features.d.ts +29 -0
  221. package/dist/device/features.d.ts.map +1 -0
  222. package/dist/device/index.d.ts +20 -0
  223. package/dist/device/index.d.ts.map +1 -0
  224. package/dist/device/runtime-state-helpers.d.ts +69 -0
  225. package/dist/device/runtime-state-helpers.d.ts.map +1 -0
  226. package/dist/device/system-mirror.d.ts +318 -0
  227. package/dist/device/system-mirror.d.ts.map +1 -0
  228. package/dist/device/zod-to-config-ui.d.ts +23 -0
  229. package/dist/device/zod-to-config-ui.d.ts.map +1 -0
  230. package/dist/disposer-chain.d.ts +32 -0
  231. package/dist/disposer-chain.d.ts.map +1 -0
  232. package/dist/enums/event-category.d.ts +361 -0
  233. package/dist/enums/event-category.d.ts.map +1 -0
  234. package/dist/enums/event-source-type.d.ts +8 -0
  235. package/dist/enums/event-source-type.d.ts.map +1 -0
  236. package/dist/enums/index.d.ts +3 -0
  237. package/dist/enums/index.d.ts.map +1 -0
  238. package/dist/generated/addon-api.d.ts +14604 -3217
  239. package/dist/generated/addon-api.d.ts.map +1 -1
  240. package/dist/generated/cap-status-types.d.ts +51 -0
  241. package/dist/generated/cap-status-types.d.ts.map +1 -0
  242. package/dist/generated/capability-router-map.d.ts +278 -0
  243. package/dist/generated/capability-router-map.d.ts.map +1 -0
  244. package/dist/generated/device-local-state.d.ts +82 -0
  245. package/dist/generated/device-local-state.d.ts.map +1 -0
  246. package/dist/generated/device-proxy.d.ts +146 -0
  247. package/dist/generated/device-proxy.d.ts.map +1 -0
  248. package/dist/generated/system-proxy.d.ts +92 -0
  249. package/dist/generated/system-proxy.d.ts.map +1 -0
  250. package/dist/helpers/bind-addon-actions.d.ts +19 -0
  251. package/dist/helpers/bind-addon-actions.d.ts.map +1 -0
  252. package/dist/index.d.ts +91 -22
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +4843 -477
  255. package/dist/index.js.map +1 -1
  256. package/dist/index.mjs +4832 -415
  257. package/dist/index.mjs.map +1 -1
  258. package/dist/interfaces/addon.d.ts +760 -132
  259. package/dist/interfaces/addon.d.ts.map +1 -1
  260. package/dist/interfaces/advanced-notifier.d.ts +3 -2
  261. package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
  262. package/dist/interfaces/agent-protocol.d.ts +17 -173
  263. package/dist/interfaces/agent-protocol.d.ts.map +1 -1
  264. package/dist/interfaces/agent.d.ts +61 -0
  265. package/dist/interfaces/agent.d.ts.map +1 -1
  266. package/dist/interfaces/alerts.d.ts +14 -0
  267. package/dist/interfaces/alerts.d.ts.map +1 -0
  268. package/dist/interfaces/analysis-persistence.d.ts +37 -19
  269. package/dist/interfaces/analysis-persistence.d.ts.map +1 -1
  270. package/dist/interfaces/analysis.d.ts +33 -4
  271. package/dist/interfaces/analysis.d.ts.map +1 -1
  272. package/dist/interfaces/api-responses.d.ts +124 -0
  273. package/dist/interfaces/api-responses.d.ts.map +1 -0
  274. package/dist/interfaces/api-shared.d.ts +5 -79
  275. package/dist/interfaces/api-shared.d.ts.map +1 -1
  276. package/dist/interfaces/audio-analyzer.d.ts +49 -0
  277. package/dist/interfaces/audio-analyzer.d.ts.map +1 -0
  278. package/dist/interfaces/audio-codec.d.ts +123 -0
  279. package/dist/interfaces/audio-codec.d.ts.map +1 -0
  280. package/dist/interfaces/audio-inference-engine.d.ts +19 -0
  281. package/dist/interfaces/audio-inference-engine.d.ts.map +1 -0
  282. package/dist/interfaces/auth-provider.d.ts.map +1 -1
  283. package/dist/interfaces/auth.d.ts +4 -25
  284. package/dist/interfaces/auth.d.ts.map +1 -1
  285. package/dist/interfaces/camera-pipeline.d.ts +7 -20
  286. package/dist/interfaces/camera-pipeline.d.ts.map +1 -1
  287. package/dist/interfaces/capability.d.ts +171 -24
  288. package/dist/interfaces/capability.d.ts.map +1 -1
  289. package/dist/interfaces/config-ui.d.ts +746 -24
  290. package/dist/interfaces/config-ui.d.ts.map +1 -1
  291. package/dist/interfaces/context.d.ts +9 -4
  292. package/dist/interfaces/context.d.ts.map +1 -1
  293. package/dist/interfaces/decoder.d.ts +38 -3
  294. package/dist/interfaces/decoder.d.ts.map +1 -1
  295. package/dist/interfaces/detection-addon.d.ts +6 -6
  296. package/dist/interfaces/detection-addon.d.ts.map +1 -1
  297. package/dist/interfaces/device-capabilities/camera.d.ts +95 -18
  298. package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -1
  299. package/dist/interfaces/device-capabilities/index.d.ts +0 -13
  300. package/dist/interfaces/device-capabilities/index.d.ts.map +1 -1
  301. package/dist/interfaces/device-provider.d.ts +18 -16
  302. package/dist/interfaces/device-provider.d.ts.map +1 -1
  303. package/dist/interfaces/device.d.ts +4 -21
  304. package/dist/interfaces/device.d.ts.map +1 -1
  305. package/dist/interfaces/embedding-encoder.d.ts +19 -0
  306. package/dist/interfaces/embedding-encoder.d.ts.map +1 -0
  307. package/dist/interfaces/engine-slots.d.ts +10 -0
  308. package/dist/interfaces/engine-slots.d.ts.map +1 -0
  309. package/dist/interfaces/event-bus.d.ts +710 -26
  310. package/dist/interfaces/event-bus.d.ts.map +1 -1
  311. package/dist/interfaces/inference-capabilities.d.ts +0 -17
  312. package/dist/interfaces/inference-capabilities.d.ts.map +1 -1
  313. package/dist/interfaces/inference-engine.d.ts +30 -10
  314. package/dist/interfaces/inference-engine.d.ts.map +1 -1
  315. package/dist/interfaces/integration-registry.d.ts +20 -20
  316. package/dist/interfaces/integration-registry.d.ts.map +1 -1
  317. package/dist/interfaces/kernel-abstractions.d.ts +83 -0
  318. package/dist/interfaces/kernel-abstractions.d.ts.map +1 -0
  319. package/dist/interfaces/logging.d.ts +89 -8
  320. package/dist/interfaces/logging.d.ts.map +1 -1
  321. package/dist/interfaces/metrics-provider.d.ts +17 -0
  322. package/dist/interfaces/metrics-provider.d.ts.map +1 -0
  323. package/dist/interfaces/network-quality.d.ts +4 -4
  324. package/dist/interfaces/network.d.ts +0 -16
  325. package/dist/interfaces/network.d.ts.map +1 -1
  326. package/dist/interfaces/notification.d.ts +1 -1
  327. package/dist/interfaces/pipeline-executor-capability.d.ts +200 -0
  328. package/dist/interfaces/pipeline-executor-capability.d.ts.map +1 -0
  329. package/dist/interfaces/pipeline-orchestrator-capability.d.ts +165 -0
  330. package/dist/interfaces/pipeline-orchestrator-capability.d.ts.map +1 -0
  331. package/dist/interfaces/pipeline-runner-capability.d.ts +147 -0
  332. package/dist/interfaces/pipeline-runner-capability.d.ts.map +1 -0
  333. package/dist/interfaces/pipeline-runner.d.ts +18 -2
  334. package/dist/interfaces/pipeline-runner.d.ts.map +1 -1
  335. package/dist/interfaces/platform.d.ts +1 -1
  336. package/dist/interfaces/platform.d.ts.map +1 -1
  337. package/dist/interfaces/queryable.d.ts +26 -0
  338. package/dist/interfaces/queryable.d.ts.map +1 -0
  339. package/dist/interfaces/raw-tensor-engine.d.ts +16 -0
  340. package/dist/interfaces/raw-tensor-engine.d.ts.map +1 -0
  341. package/dist/interfaces/readiness.d.ts +101 -0
  342. package/dist/interfaces/readiness.d.ts.map +1 -0
  343. package/dist/interfaces/repl.d.ts +1 -1
  344. package/dist/interfaces/restreamer.d.ts +3 -3
  345. package/dist/interfaces/scoped-token.d.ts +1 -21
  346. package/dist/interfaces/scoped-token.d.ts.map +1 -1
  347. package/dist/interfaces/server-analysis.d.ts +30 -87
  348. package/dist/interfaces/server-analysis.d.ts.map +1 -1
  349. package/dist/interfaces/storage-location.d.ts +120 -0
  350. package/dist/interfaces/storage-location.d.ts.map +1 -0
  351. package/dist/interfaces/storage.d.ts +124 -50
  352. package/dist/interfaces/storage.d.ts.map +1 -1
  353. package/dist/interfaces/stream-broker.d.ts +285 -17
  354. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  355. package/dist/interfaces/webrtc-provider.d.ts +24 -0
  356. package/dist/interfaces/webrtc-provider.d.ts.map +1 -1
  357. package/dist/node.d.ts +6 -0
  358. package/dist/node.d.ts.map +1 -0
  359. package/dist/node.js +481 -0
  360. package/dist/node.js.map +1 -0
  361. package/dist/node.mjs +443 -0
  362. package/dist/node.mjs.map +1 -0
  363. package/dist/readiness/index.d.ts +3 -0
  364. package/dist/readiness/index.d.ts.map +1 -0
  365. package/dist/readiness/readiness-registry.d.ts +183 -0
  366. package/dist/readiness/readiness-registry.d.ts.map +1 -0
  367. package/dist/schemas/auth-records.d.ts +81 -0
  368. package/dist/schemas/auth-records.d.ts.map +1 -0
  369. package/dist/storage/filesystem-storage-provider.d.ts +37 -0
  370. package/dist/storage/filesystem-storage-provider.d.ts.map +1 -0
  371. package/dist/types/agent-pipeline-settings.d.ts +94 -0
  372. package/dist/types/agent-pipeline-settings.d.ts.map +1 -0
  373. package/dist/types/camera-pipeline.d.ts +58 -0
  374. package/dist/types/camera-pipeline.d.ts.map +1 -0
  375. package/dist/types/detection.d.ts +195 -38
  376. package/dist/types/detection.d.ts.map +1 -1
  377. package/dist/types/device-type.d.ts +4 -0
  378. package/dist/types/device-type.d.ts.map +1 -1
  379. package/dist/types/engine-output.d.ts +24 -0
  380. package/dist/types/engine-output.d.ts.map +1 -0
  381. package/dist/types/io.d.ts +57 -3
  382. package/dist/types/io.d.ts.map +1 -1
  383. package/dist/types/models.d.ts +3 -1
  384. package/dist/types/models.d.ts.map +1 -1
  385. package/dist/types/pipeline-schema.d.ts +15 -72
  386. package/dist/types/pipeline-schema.d.ts.map +1 -1
  387. package/dist/types/pipeline-step.d.ts +201 -0
  388. package/dist/types/pipeline-step.d.ts.map +1 -0
  389. package/dist/types/pipeline.d.ts +24 -1
  390. package/dist/types/pipeline.d.ts.map +1 -1
  391. package/dist/utils/element-config-store.d.ts +29 -0
  392. package/dist/utils/element-config-store.d.ts.map +1 -0
  393. package/dist/utils/err-msg.d.ts +7 -0
  394. package/dist/utils/err-msg.d.ts.map +1 -0
  395. package/dist/utils/json-safe.d.ts +33 -0
  396. package/dist/utils/json-safe.d.ts.map +1 -0
  397. package/dist/utils/mask-url.d.ts +10 -0
  398. package/dist/utils/mask-url.d.ts.map +1 -0
  399. package/dist/utils/ring-buffer.d.ts +16 -0
  400. package/dist/utils/ring-buffer.d.ts.map +1 -0
  401. package/dist/utils/run-inference-step.d.ts +26 -0
  402. package/dist/utils/run-inference-step.d.ts.map +1 -0
  403. package/dist/utils/runtime-mapping.d.ts +88 -0
  404. package/dist/utils/runtime-mapping.d.ts.map +1 -0
  405. package/dist/utils/zone-rule-eval.d.ts +47 -0
  406. package/dist/utils/zone-rule-eval.d.ts.map +1 -0
  407. package/package.json +11 -2
  408. package/dist/__tests__/addon-capability-provider.test.d.ts +0 -2
  409. package/dist/__tests__/addon-capability-provider.test.d.ts.map +0 -1
  410. package/dist/__tests__/addon-declaration.test.d.ts +0 -2
  411. package/dist/__tests__/addon-declaration.test.d.ts.map +0 -1
  412. package/dist/__tests__/capability.test.d.ts +0 -2
  413. package/dist/__tests__/capability.test.d.ts.map +0 -1
  414. package/dist/interfaces/addon-i18n.d.ts +0 -41
  415. package/dist/interfaces/addon-i18n.d.ts.map +0 -1
  416. package/dist/interfaces/classifier.d.ts +0 -8
  417. package/dist/interfaces/classifier.d.ts.map +0 -1
  418. package/dist/interfaces/cropper.d.ts +0 -8
  419. package/dist/interfaces/cropper.d.ts.map +0 -1
  420. package/dist/interfaces/detector.d.ts +0 -8
  421. package/dist/interfaces/detector.d.ts.map +0 -1
  422. package/dist/interfaces/device-capabilities/accessory.d.ts +0 -14
  423. package/dist/interfaces/device-capabilities/accessory.d.ts.map +0 -1
  424. package/dist/interfaces/device-capabilities/audio-detector.d.ts +0 -12
  425. package/dist/interfaces/device-capabilities/audio-detector.d.ts.map +0 -1
  426. package/dist/interfaces/device-capabilities/doorbell.d.ts +0 -10
  427. package/dist/interfaces/device-capabilities/doorbell.d.ts.map +0 -1
  428. package/dist/interfaces/device-capabilities/events.d.ts +0 -47
  429. package/dist/interfaces/device-capabilities/events.d.ts.map +0 -1
  430. package/dist/interfaces/device-capabilities/motion-sensor.d.ts +0 -7
  431. package/dist/interfaces/device-capabilities/motion-sensor.d.ts.map +0 -1
  432. package/dist/interfaces/device-capabilities/native-detection.d.ts +0 -14
  433. package/dist/interfaces/device-capabilities/native-detection.d.ts.map +0 -1
  434. package/dist/interfaces/device-capabilities/object-detector.d.ts +0 -59
  435. package/dist/interfaces/device-capabilities/object-detector.d.ts.map +0 -1
  436. package/dist/interfaces/device-capabilities/pan-tilt-zoom.d.ts +0 -29
  437. package/dist/interfaces/device-capabilities/pan-tilt-zoom.d.ts.map +0 -1
  438. package/dist/interfaces/device-capabilities/recording.d.ts +0 -18
  439. package/dist/interfaces/device-capabilities/recording.d.ts.map +0 -1
  440. package/dist/interfaces/device-capabilities/siren.d.ts +0 -8
  441. package/dist/interfaces/device-capabilities/siren.d.ts.map +0 -1
  442. package/dist/interfaces/device-capabilities/status-light.d.ts +0 -7
  443. package/dist/interfaces/device-capabilities/status-light.d.ts.map +0 -1
  444. package/dist/interfaces/device-capabilities/switch.d.ts +0 -8
  445. package/dist/interfaces/device-capabilities/switch.d.ts.map +0 -1
  446. package/dist/interfaces/device-capabilities/two-way-audio.d.ts +0 -8
  447. package/dist/interfaces/device-capabilities/two-way-audio.d.ts.map +0 -1
  448. package/dist/interfaces/device-capability.d.ts +0 -14
  449. package/dist/interfaces/device-capability.d.ts.map +0 -1
  450. package/dist/interfaces/model-catalog.d.ts +0 -25
  451. package/dist/interfaces/model-catalog.d.ts.map +0 -1
  452. package/dist/interfaces/refiner.d.ts +0 -8
  453. package/dist/interfaces/refiner.d.ts.map +0 -1
  454. package/dist/interfaces/repositories.d.ts +0 -20
  455. package/dist/interfaces/repositories.d.ts.map +0 -1
  456. package/dist/interfaces/scene-intelligence.d.ts +0 -21
  457. package/dist/interfaces/scene-intelligence.d.ts.map +0 -1
  458. package/dist/interfaces/storage-backend.d.ts +0 -27
  459. package/dist/interfaces/storage-backend.d.ts.map +0 -1
  460. package/dist/interfaces/worker-protocol.d.ts +0 -110
  461. package/dist/interfaces/worker-protocol.d.ts.map +0 -1
  462. package/dist/schemas/system-settings-schemas.d.ts +0 -27
  463. package/dist/schemas/system-settings-schemas.d.ts.map +0 -1
  464. package/dist/types/benchmark.d.ts +0 -112
  465. package/dist/types/benchmark.d.ts.map +0 -1
  466. package/dist/types/zones.d.ts +0 -48
  467. package/dist/types/zones.d.ts.map +0 -1
@@ -0,0 +1,287 @@
1
+ import { z } from 'zod';
2
+ import { DeviceConfig } from './device-config.js';
3
+ import type { IDeviceRuntimeState } from './device-runtime-state.js';
4
+ import type { DeviceType, DeviceFeature, DeviceRole } from './device-type.js';
5
+ import type { DeviceContext } from './device-context.js';
6
+ import type { IDevice } from './device.js';
7
+ import type { ConfigUISchemaWithValues } from '../interfaces/config-ui.js';
8
+ import type { CapabilityDefinition, InferRuntimeState } from '../capabilities/capability-definition.js';
9
+ import { type DeviceLocalState } from '../generated/device-local-state.js';
10
+ export declare abstract class BaseDevice<T extends z.ZodObject<z.core.$ZodLooseShape> = z.ZodObject<z.ZodRawShape>> implements IDevice {
11
+ readonly id: number;
12
+ readonly stableId: string;
13
+ readonly type: DeviceType;
14
+ readonly name: string;
15
+ readonly parentDeviceId: number | null;
16
+ readonly role?: DeviceRole;
17
+ /**
18
+ * Cap-keyed runtime-state slice is the single source of truth for
19
+ * `online`. Both getter and setter proxy to the slice — drivers can
20
+ * write `this.online = true` ergonomically, and the cap event fires
21
+ * automatically through the runtime-state writer. `markOnline()` is
22
+ * kept as the explicit method form mandated by `IDevice`.
23
+ */
24
+ get online(): boolean;
25
+ set online(value: boolean);
26
+ /**
27
+ * Generic per-cap runtime-state namespace. One entry per cap with
28
+ * `runtimeState:` declared, auto-generated by codegen — see
29
+ * `device-local-state.ts`. Drivers access via:
30
+ *
31
+ * `this.state.battery.sleeping = true` // patches the battery slice
32
+ * `const pct = this.state.battery.percentage` // reads the battery slice
33
+ * `this.state.deviceStatus.online = true` // mirrors `markOnline(true)`
34
+ *
35
+ * Adding a new cap with `runtimeState:` automatically extends this
36
+ * namespace — drivers don't have to declare proxies. Reads return
37
+ * `undefined` when the slice hasn't been seeded; writes patch via
38
+ * `runtimeState.patchCapState` and validate against the cap's schema
39
+ * (so partial writes need the slice to be seeded with the required
40
+ * fields first — drivers do this on cap registration).
41
+ *
42
+ * For caps not exposed in `DeviceLocalState`, drivers can build their
43
+ * own typed proxy via `this.sliceProxy(cap)`.
44
+ */
45
+ get state(): DeviceLocalState;
46
+ private _stateProxyCache?;
47
+ abstract readonly features: readonly DeviceFeature[];
48
+ readonly config: DeviceConfig<T>;
49
+ /**
50
+ * Per-device runtime state, cap-keyed. Always installed — slices
51
+ * for individual caps materialise as those caps register their
52
+ * native providers (`ctx.registerNativeCap`). The cap's own
53
+ * `runtimeState` schema is the source of truth for the slice
54
+ * shape; drivers don't redeclare it, they just write through.
55
+ *
56
+ * Read: `this.runtimeState.getCapState('battery')` →
57
+ * `{percentage, charging, sleeping, lastUpdated}` for any
58
+ * provider that registers `batteryCapability`.
59
+ * Write: `this.runtimeState.setCapState('battery', { … })`.
60
+ *
61
+ * Cross-process consumers reach this state through the
62
+ * `deviceState` cap router (or via cap-specific events the driver
63
+ * emits — e.g. `battery.onStatusChanged`). The local handle is
64
+ * accessed in-process by the driver to avoid roundtrips.
65
+ */
66
+ readonly runtimeState: IDeviceRuntimeState;
67
+ readonly ctx: DeviceContext;
68
+ /**
69
+ * Operator-organisational location label (room / area / zone).
70
+ * Read from `ctx.deviceMeta.location`; mutated via
71
+ * `kernel.devices.setLocation(id, value)`. Free-text — providers
72
+ * don't interpret it; the UI groups devices by this for filters
73
+ * like "show me all cameras in Kitchen". `null` when unset.
74
+ */
75
+ readonly location: string | null;
76
+ /**
77
+ * Soft-disabled flag. When `true`, the device class is still
78
+ * instantiated and visible in the UI (so the operator can flip
79
+ * back on without re-adding) but lifecycle hooks (publishToBroker,
80
+ * alarm-stream subscribe, …) MUST be gated by the driver to skip
81
+ * work. The `BaseDevice` enforces this by exposing the flag here;
82
+ * it does NOT mutate cap behaviour automatically — drivers consult
83
+ * `this.disabled` at the top of their lifecycle methods. Read from
84
+ * `ctx.deviceMeta.disabled`; mutated via
85
+ * `kernel.devices.setDisabled(id, value)`.
86
+ */
87
+ readonly disabled: boolean;
88
+ constructor(ctx: DeviceContext, schema: T, options: {
89
+ type: DeviceType;
90
+ /** Optional semantic role within parent — see `DeviceRole`. */
91
+ role?: DeviceRole;
92
+ });
93
+ removeDevice(): Promise<void>;
94
+ /**
95
+ * Set the device's online flag. Called by `BaseDeviceProvider` after
96
+ * aggregating per-profile stream-broker health, or directly by drivers
97
+ * that have provider-side liveness signals (e.g. ONVIF heartbeats,
98
+ * Reolink Baichuan firmware push events). Mirrors the new value into
99
+ * the `device-status` runtime-state slice so cross-process consumers
100
+ * pick it up via the standard cap-state channel. Subclasses can
101
+ * override to gate side effects on the transition.
102
+ */
103
+ markOnline(online: boolean): void;
104
+ /**
105
+ * Re-publish the device's current `features` array to the persisted
106
+ * meta blob. Drivers call this after a probe finishes when the live
107
+ * `features` getter has gained new flags (e.g. `hasIntercom` flips
108
+ * to true → `DeviceFeature.TwoWayAudio` joins the list).
109
+ *
110
+ * Without this, only the construction-time snapshot is written —
111
+ * `deviceManager.registerDevice` is invoked once per boot, so probe-
112
+ * driven additions don't reach the persisted index until the next
113
+ * server restart, and `getDevice` / `listAll` keep returning the
114
+ * stale list for forked-worker devices (whose live IDevice instance
115
+ * is invisible to the hub registry).
116
+ *
117
+ * Idempotent: re-calling with the same features just no-ops on the
118
+ * persisted meta. Best-effort: lookup or write failures are logged
119
+ * at debug and swallowed — the live `device.features` getter is
120
+ * still authoritative within this process, so callers never block
121
+ * device boot on a meta refresh.
122
+ */
123
+ protected refreshFeatures(): Promise<void>;
124
+ /**
125
+ * Typed read-through to a cap-keyed runtime-state slice. Drivers
126
+ * call `this.getCapSlice(batteryCapability)` and the return type
127
+ * is inferred from the cap's `runtimeState` Zod schema — no string
128
+ * key, no manual generic. Returns `null` when the slice hasn't
129
+ * been written yet (e.g. driver hasn't seeded battery yet).
130
+ */
131
+ protected getCapSlice<TCap extends CapabilityDefinition>(cap: TCap): InferRuntimeState<TCap> | null;
132
+ /**
133
+ * Typed writer to a cap-keyed runtime-state slice. Routes through
134
+ * the runtime-state writer (validate → persist → emit cap event).
135
+ * Equivalent to `this.runtimeState.setCapState(cap.name, value)`
136
+ * but with the cap's `runtimeState` schema enforcing the value
137
+ * shape at compile time. Mirrors the symmetry of
138
+ * `getCapSlice` / `setCapSlice` for cross-cap consistency.
139
+ */
140
+ protected setCapSlice<TCap extends CapabilityDefinition>(cap: TCap, value: InferRuntimeState<TCap> & Record<string, unknown>): void;
141
+ /**
142
+ * Field-level read/write proxy over a cap's runtime-state slice.
143
+ * Drivers that want ergonomic per-field access declare:
144
+ *
145
+ * ```ts
146
+ * protected battery = this.sliceProxy(batteryCapability)
147
+ * // …
148
+ * this.battery.sleeping = true // patches the slice
149
+ * const charging = this.battery.charging // reads the slice
150
+ * ```
151
+ *
152
+ * Reads return `undefined` when the slice hasn't been seeded yet
153
+ * (cap not registered, or seeded but the field is absent). Writes
154
+ * route through `runtimeState.patchCapState` so the cap's `runtimeState`
155
+ * schema validates the merged result and the cap event fires.
156
+ *
157
+ * Pattern is generic — same shape works for `battery`, `device-status`,
158
+ * `motion`, `doorbell`, anything with a `runtimeState:` schema. Drivers
159
+ * declare one proxy per cap they read/write directly.
160
+ */
161
+ protected sliceProxy<TCap extends CapabilityDefinition>(cap: TCap): InferRuntimeState<TCap>;
162
+ /**
163
+ * Default empty settings UI. Drivers override this to expose an
164
+ * editable form in the device-details page. Returning an empty sections
165
+ * array signals "nothing to contribute" — the aggregator drops the
166
+ * contribution entirely rather than rendering a blank panel.
167
+ */
168
+ getSettingsUISchema(): ConfigUISchemaWithValues;
169
+ /**
170
+ * Default write path: forward the flat patch directly to storage.
171
+ * Drivers that project a UI shape different from storage (e.g. `RtspCamera`
172
+ * exposing `mainStreamUrl`/`subStreamUrl` over `streams[]`) override this
173
+ * to reshape before `config.setAll`.
174
+ */
175
+ applySettingsPatch(patch: Record<string, unknown>): Promise<void>;
176
+ /**
177
+ * Phase 3 — populate device-scoped state needed by downstream phases
178
+ * (accessory reconciliation, public `features` array, optional cap
179
+ * registration). Called ONCE per construction, after register but
180
+ * before `getAccessoryChildren()`.
181
+ *
182
+ * Drivers write the `feature-probe` runtime-state slice via
183
+ * `this.runtimeState.setCapState('feature-probe', {...})` — flag bag
184
+ * is open (Reolink writes `hasPtz/hasIntercom`, Hikvision writes
185
+ * `hasSupplementalLight/hasAlarmIo`, etc).
186
+ *
187
+ * Default: no-op (driver had no probe to run).
188
+ */
189
+ onProbe(): Promise<void>;
190
+ /**
191
+ * Phase 5 — fired after the device + its accessories are registered.
192
+ * Drivers publish streams to the broker, kick off background tasks,
193
+ * or subscribe to lib events that need a fully-registered device id.
194
+ *
195
+ * Default: no-op.
196
+ *
197
+ * RENAMED FROM `onCreated` (which still exists for back-compat in this
198
+ * pass). The new name reflects the post-probe, post-accessory contract.
199
+ */
200
+ onActivate(): Promise<void>;
201
+ /**
202
+ * Re-run the probe + reconcile accessories + refresh features meta.
203
+ * Drivers call this when device-side state changes (battery cam wakes,
204
+ * firmware update, manual operator trigger).
205
+ *
206
+ * The kernel injects `_kernelReprobe` on registration so this method
207
+ * delegates to the same orchestrator that runs the boot-time phase
208
+ * 3 + 4 sequence. Drivers should NOT override this — they override
209
+ * `onProbe()` instead.
210
+ */
211
+ reprobe(): Promise<void>;
212
+ /**
213
+ * Kernel-injected callback that runs the full post-probe orchestration
214
+ * (onProbe → registerDevice meta refresh → accessory reconciliation).
215
+ * Set by `device-cap-proxy.register()`. Drivers should not touch this
216
+ * directly — call `reprobe()` instead.
217
+ */
218
+ _kernelReprobe?: () => Promise<void>;
219
+ /**
220
+ * Declare accessory child devices the kernel should auto-spawn
221
+ * after `onProbe()` resolves. Each spec fully describes one child
222
+ * — stableId suffix (deterministic per kind for restore-safety),
223
+ * meta (type / name / location), config (initial blob the child
224
+ * self-hydrates), and a factory that constructs the concrete
225
+ * class with whatever closure-captured refs it needs (typically
226
+ * `this` for the parent reference).
227
+ *
228
+ * The kernel handles the rest: allocateDeviceId, persistInitialConfig
229
+ * (skipped on restore when the row already exists),
230
+ * persistInitialMeta, createContext, factory invocation, register,
231
+ * and recursive lifecycle (probe + accessories + activate).
232
+ *
233
+ * Implementations should derive children from
234
+ * `this.runtimeState.getCapState('feature-probe')` (post-probe truth).
235
+ * Drivers can use the `getProbeFlags()` helper to read the flag bag
236
+ * with a typed cast.
237
+ *
238
+ * Default: no children.
239
+ */
240
+ getAccessoryChildren(): readonly AccessoryChildSpec[];
241
+ /**
242
+ * Read the current feature-probe flag bag with a typed cast. Helper
243
+ * for `getAccessoryChildren()` and `features` getters that derive
244
+ * outputs from the probe results.
245
+ */
246
+ protected getProbeFlags<F extends Record<string, unknown> = Record<string, unknown>>(): F;
247
+ /**
248
+ * Returns true once `onProbe` has completed at least once
249
+ * (`lastProbedAt > 0`). Drivers gate `getAccessoryChildren()` on this
250
+ * to avoid spawning stale accessories on a fresh device whose probe
251
+ * hasn't landed yet.
252
+ */
253
+ protected hasProbed(): boolean;
254
+ }
255
+ /**
256
+ * Specification for one accessory child a parent device wants the
257
+ * kernel to auto-spawn. Returned from `BaseDevice.getAccessoryChildren()`.
258
+ */
259
+ export interface AccessoryChildSpec {
260
+ /**
261
+ * Stable suffix appended to the parent's stableId to derive the
262
+ * child's stableId (e.g. `siren` → `${parent.stableId}-siren`).
263
+ * Must be deterministic per (parent, accessory kind) so restore
264
+ * resolves the same numeric id and re-instantiates without
265
+ * orphaning the persisted config.
266
+ */
267
+ readonly stableIdSuffix: string;
268
+ /** Operator-organisational meta passed to `kernel.devices.create()`'s
269
+ * `initialMeta` arg. The kernel pre-writes the meta row before
270
+ * the child class constructor runs. */
271
+ readonly meta: import('./device-management.js').InitialDeviceMeta;
272
+ /** Initial config blob the child self-hydrates from on first
273
+ * create. Empty `{}` on restore (DB row carries the canonical
274
+ * values) — the kernel detects the existing row and skips the
275
+ * pre-persist step. */
276
+ readonly config: Record<string, unknown>;
277
+ /**
278
+ * Constructor closure — invoked with the kernel-built context
279
+ * after meta + config are persisted. Closures over the parent
280
+ * reference for child classes that need `parent` as a constructor
281
+ * arg (e.g. accessories that share the parent's connection). The
282
+ * returned IDevice is registered + `onCreated`-fired by the
283
+ * kernel.
284
+ */
285
+ readonly factory: (ctx: DeviceContext) => IDevice;
286
+ }
287
+ //# sourceMappingURL=base-device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-device.d.ts","sourceRoot":"","sources":["../../src/device/base-device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { StreamQuality } from '../interfaces/device-capabilities/camera.js';
2
+ import type { IDevice } from './device.js';
3
+ import type { DeviceType } from './device-type.js';
4
+ export interface StreamSourceEntry {
5
+ readonly id: string;
6
+ readonly label: string;
7
+ readonly protocol: 'rtsp' | 'rtmp' | 'annexb' | 'http-mjpeg' | 'webrtc' | 'custom';
8
+ /** Stream URL — required for rtsp, rtmp, http-mjpeg. Not used for annexb/custom. */
9
+ readonly url?: string;
10
+ /**
11
+ * Stream metadata — optional. If omitted, the stream-broker will probe
12
+ * the stream (via ffprobe) on first registration to discover resolution/fps/codec.
13
+ * Providers that already know the metadata (e.g. ONVIF profiles) should provide it
14
+ * to avoid the probe delay.
15
+ */
16
+ readonly resolution?: {
17
+ readonly width: number;
18
+ readonly height: number;
19
+ };
20
+ readonly fps?: number;
21
+ readonly bitrate?: number;
22
+ readonly codec?: string;
23
+ /** Hint: suggested quality profile. Stream-broker may override after probing. */
24
+ readonly profileHint?: StreamQuality;
25
+ /**
26
+ * Pre-built SDP. Drivers that publish a `pull-rfc4571` source can
27
+ * derive a synthetic SDP from device-side metadata (e.g. Reolink
28
+ * `getStreamMetadata` cmd_id 56 — `videoEncType` + audio config) so
29
+ * the broker's `metadata.sdp` is populated WITHOUT first opening an
30
+ * upstream streaming session. SPS/PPS are intentionally omitted —
31
+ * the lib's `Rfc4571Muxer.sendCachedVideoConfigToClient` primes
32
+ * downstream consumers from in-band keyframe NAL units.
33
+ *
34
+ * Drivers that need full SDP (with parameter sets) still open a real
35
+ * streaming session at publish time — the field stays optional.
36
+ */
37
+ readonly sdp?: string;
38
+ }
39
+ /**
40
+ * Camera device interface — extends IDevice with stream source exposure.
41
+ * Every camera MUST implement getStreamSources() to tell the stream-broker
42
+ * how to consume its video feeds. The broker will probe streams that lack
43
+ * metadata (resolution/fps) and assign quality profiles automatically.
44
+ */
45
+ export interface ICameraDevice extends IDevice {
46
+ readonly type: typeof DeviceType.Camera;
47
+ getStreamSources(): Promise<readonly StreamSourceEntry[]>;
48
+ }
49
+ //# sourceMappingURL=camera-device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-device.d.ts","sourceRoot":"","sources":["../../src/device/camera-device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAClF,oFAAoF;IACpF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,QAAQ,CAAC,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAA;IACvC,gBAAgB,IAAI,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAA;CAC1D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Per-device capability binding record. For each capability a device supports,
3
+ * one entry tells consumers which addon+node currently serves it (native or
4
+ * wrapper) and which addon provides the underlying native in case a wrapper is
5
+ * active.
6
+ */
7
+ export interface DeviceBindingEntry {
8
+ capName: string;
9
+ kind: 'native' | 'wrapped';
10
+ /** Currently-active provider. For kind='native', equal to `nativeAddonId`.
11
+ * For kind='wrapped', the wrapper addon id. */
12
+ providerAddonId: string;
13
+ /** Node where the active provider runs. 'hub' for native; may vary for wrappers. */
14
+ providerNodeId: string;
15
+ /** Always the addon id of the underlying native provider for the device. */
16
+ nativeAddonId: string;
17
+ }
18
+ export interface DeviceBinding {
19
+ /** Numeric device id — matches `IDevice.id`. */
20
+ deviceId: number;
21
+ entries: DeviceBindingEntry[];
22
+ }
23
+ //# sourceMappingURL=device-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-binding.d.ts","sourceRoot":"","sources":["../../src/device/device-binding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B;oDACgD;IAChD,eAAe,EAAE,MAAM,CAAA;IACvB,oFAAoF;IACpF,cAAc,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B"}
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Optional callback invoked when `fromSchema` had to drop one or
4
+ * more persisted fields to recover from a Zod validation failure.
5
+ * Used by `BaseDevice` to surface the action via the device logger.
6
+ */
7
+ export type ConfigRecoveryListener = (info: {
8
+ droppedKeys: readonly string[];
9
+ issues: readonly z.core.$ZodIssue[];
10
+ }) => void;
11
+ export declare class DeviceConfig<T extends z.ZodObject<z.core.$ZodLooseShape>> {
12
+ readonly schema: T;
13
+ private data;
14
+ private readonly persistFn;
15
+ private constructor();
16
+ /**
17
+ * Build a `DeviceConfig` from a persisted blob, with automatic
18
+ * recovery from schema-validation failures. Boot must never be
19
+ * blocked by stale persisted values: if Zod rejects the blob,
20
+ * we drop every offending top-level field, retry, and persist
21
+ * the cleaned blob so the bad value is healed in the DB on next
22
+ * write. The most common trigger is a tightened range constraint
23
+ * (e.g. `max(100) → max(50)`) on a field that already has an
24
+ * out-of-range value persisted from the previous schema. Without
25
+ * this safety net, the device would fail to instantiate and end
26
+ * up with no caps registered — exactly the failure mode that
27
+ * stranded device 15 when `motionSensitivity: 90` no longer fit
28
+ * the new `1..50` schema.
29
+ *
30
+ * Recovery rules:
31
+ * 1. Try `safeParse(initialData)`. If it succeeds, done.
32
+ * 2. On failure, walk `error.issues`, collect the top-level path
33
+ * of each issue, and drop those keys from `initialData`.
34
+ * 3. Re-run `safeParse`. If the cleaned blob now passes (Zod
35
+ * fills the missing keys with schema defaults / undefined for
36
+ * `.optional()`), persist it via `persist()` so the bad
37
+ * values disappear from the DB, and return the device.
38
+ * 4. If the cleaned blob STILL fails (very rare — would require
39
+ * a non-recoverable required field), fall back to
40
+ * `schema.parse({})` so the device still boots with pure
41
+ * schema defaults. Persist nothing in that path so the next
42
+ * successful `setAll` still writes a coherent blob.
43
+ */
44
+ static fromSchema<T extends z.ZodObject<z.core.$ZodLooseShape>>(schema: T, persist: (data: z.infer<T>) => Promise<void>, initialData?: Record<string, unknown>, onRecover?: ConfigRecoveryListener): DeviceConfig<T>;
45
+ get values(): z.infer<T>;
46
+ get<K extends keyof z.infer<T>>(key: K): z.infer<T>[K];
47
+ set<K extends keyof z.infer<T>>(key: K, value: z.infer<T>[K]): Promise<void>;
48
+ /**
49
+ * Merge an untyped patch onto the current config and persist. Accepts
50
+ * `Record<string, unknown>` because the patch typically comes from the
51
+ * UI form layer (a `ConfigField.key → value` map) where the caller
52
+ * doesn't hold the Zod schema's static type. Runtime validation is
53
+ * authoritative: `this.schema.parse` rejects unknown keys or invalid
54
+ * shapes before touching storage.
55
+ */
56
+ setAll(partial: Record<string, unknown>): Promise<void>;
57
+ deleteKey<K extends keyof z.infer<T>>(key: K): Promise<void>;
58
+ entries(): Array<{
59
+ key: string;
60
+ schema: z.ZodType;
61
+ value: unknown;
62
+ description?: string;
63
+ }>;
64
+ }
65
+ //# sourceMappingURL=device-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-config.d.ts","sourceRoot":"","sources":["../../src/device/device-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAC1C,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;CACpC,KAAK,IAAI,CAAA;AAEV,qBAAa,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IACpE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAE/D,OAAO;IAUP;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAC5D,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAC5C,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,SAAS,CAAC,EAAE,sBAAsB,GACjC,YAAY,CAAC,CAAC,CAAC;IAuClB,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAEvB;IAED,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAIhD,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,OAAO,IAAI,KAAK,CAAC;QACf,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,CAAC,CAAC,OAAO,CAAA;QACjB,KAAK,EAAE,OAAO,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAC;CASH"}