@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,318 @@
1
+ /**
2
+ * SystemMirror — system-wide reactive view of every device, like
3
+ * Scrypted's `systemManager.getDeviceById`. One warm-boot fetches the
4
+ * full bindings + runtime-state snapshot + device metadata; live
5
+ * `device.state-changed`, `capability.binding-changed`,
6
+ * `device.registered`, `device.unregistered`, and `device.updated`
7
+ * events keep the in-memory mirrors fresh. Subsequent
8
+ * `getDeviceById(id)` calls are sync.
9
+ *
10
+ * Renamed from `SystemManager` (and its file `system-manager.ts`) when
11
+ * the SDK introduced a top-level `System` facade. The cluster-wide
12
+ * mirror is one of `System`'s collaborators — calling it a "mirror"
13
+ * disambiguates from the new public class. The old export name is
14
+ * still available as a deprecated alias from this file.
15
+ *
16
+ * Cap-agnostic by construction: the state mirror is `Map<deviceId,
17
+ * Map<capName, slice>>` and the proxies are produced by the
18
+ * codegen'd `createDeviceProxy` we already use everywhere — so a
19
+ * brand-new cap with `runtimeState:` lights up here without a single
20
+ * line of additional code.
21
+ *
22
+ * Two transports today, same shape:
23
+ * - tRPC client (browser, Electron, SDK consumers).
24
+ * - In-process AddonApi (server REPL, addons that want a global view).
25
+ *
26
+ * Boot:
27
+ *
28
+ * const sm = new SystemMirror(api)
29
+ * await sm.init()
30
+ *
31
+ * const dev = sm.getDeviceById(8) // sync
32
+ * dev?.state.battery.value?.sleeping // sync read from mirror
33
+ * await dev?.snapshot?.getSnapshot({...}) // method dispatch via cap-router
34
+ *
35
+ * sm.query({ addonId: 'reolink', online: true })
36
+ * sm.whereState('battery', s => s.percentage < 20)
37
+ * sm.listenCap('motion', (id, slice) => …)
38
+ * await sm.waitForState(8, 'battery', s => !s.sleeping, 30_000)
39
+ *
40
+ * Lifecycle: caller is responsible for `dispose()` when done — closes
41
+ * the live event subscriptions.
42
+ */
43
+ import type { DeviceBinding } from './device-binding.js';
44
+ import { type DeviceProxy } from '../generated/device-proxy.js';
45
+ import type { DeviceInfo } from '../capabilities/device-manager.cap.js';
46
+ import { DeviceType } from './device-type.js';
47
+ import { type SliceHandleApi } from './device-state-handle.js';
48
+ /**
49
+ * Minimal subset of `AddonApi` the SystemMirror needs.
50
+ */
51
+ export interface SystemMirrorApi extends SliceHandleApi {
52
+ readonly deviceManager: {
53
+ readonly getAllBindings: {
54
+ query(input: Record<string, never>): Promise<ReadonlyArray<DeviceBinding>>;
55
+ };
56
+ readonly listAll: {
57
+ query(input: {
58
+ addonId?: string;
59
+ }): Promise<ReadonlyArray<DeviceInfo>>;
60
+ };
61
+ };
62
+ readonly deviceState: SliceHandleApi['deviceState'] & {
63
+ readonly getAllSnapshots: {
64
+ query(input: Record<string, never>): Promise<Record<string, Record<string, Record<string, unknown>>>>;
65
+ };
66
+ };
67
+ }
68
+ export type SystemMirrorListener = (deviceId: number, capName: string, slice: Record<string, unknown> | undefined) => void;
69
+ export type DeviceCapListener = (deviceId: number, slice: Record<string, unknown> | undefined) => void;
70
+ export type DeviceLifecycleListener = (deviceId: number, info: DeviceInfo | null) => void;
71
+ /**
72
+ * Match shape — `string` is exact match, `RegExp` is regex match,
73
+ * `{ contains }` is case-insensitive substring, `{ exact }` is the
74
+ * verbose form of plain string. Useful for `query({ name: ... })`
75
+ * where the same field accepts multiple match modes.
76
+ */
77
+ export type StringMatch = string | RegExp | {
78
+ readonly exact: string;
79
+ } | {
80
+ readonly contains: string;
81
+ };
82
+ /**
83
+ * Filter set for `query()`. All fields are optional and ANDed
84
+ * together. Array values are ORed within a single field
85
+ * (`addonId: ['a', 'b']` matches devices owned by either). The
86
+ * `where` escape hatch runs LAST so the structured filters do the
87
+ * cheap rejection first.
88
+ */
89
+ export interface DeviceQueryFilters {
90
+ /** Match by exact deviceId. Single value or array (OR'd). */
91
+ readonly id?: number | readonly number[];
92
+ /** Match by exact stableId. Single value or array. */
93
+ readonly stableId?: string | readonly string[];
94
+ /** Match by owning addonId. Single value or array. */
95
+ readonly addonId?: string | readonly string[];
96
+ /** Match by `DeviceType` enum value. Single value or array. */
97
+ readonly type?: DeviceType | readonly DeviceType[];
98
+ /** Match devices that bind ALL listed caps. Single capName or array. */
99
+ readonly caps?: string | readonly string[];
100
+ /** Match devices that bind ANY of the listed caps. Mutually exclusive
101
+ * with `caps`. */
102
+ readonly anyCap?: string | readonly string[];
103
+ /** Match by device name. */
104
+ readonly name?: StringMatch;
105
+ /** Match the `online` flag. */
106
+ readonly online?: boolean;
107
+ /** Match by parent device id. Pass `null` for top-level devices. */
108
+ readonly parentDeviceId?: number | null;
109
+ /** Match devices that expose a feature (e.g. `'BatteryOperated'`). */
110
+ readonly feature?: string | readonly string[];
111
+ /** Match `isCamera` flag. */
112
+ readonly isCamera?: boolean;
113
+ /** Custom predicate. Runs last; receives both metadata and proxy. */
114
+ readonly where?: (info: DeviceInfo, proxy: DeviceProxy) => boolean;
115
+ }
116
+ export declare class SystemMirror {
117
+ private readonly api;
118
+ /** deviceId → capName → slice (push-driven mirror). */
119
+ private readonly stateMirror;
120
+ /** deviceId → binding (warm-boot + binding-changed events). */
121
+ private readonly bindings;
122
+ /** deviceId → metadata (warm-boot + lifecycle events). */
123
+ private readonly devices;
124
+ /** Listener map for individual `(deviceId, capName)` watches —
125
+ * shared with every `MirrorSource` we hand out. */
126
+ private readonly handleListeners;
127
+ /** Global state-change listeners registered via `listen()`. */
128
+ private readonly globalStateListeners;
129
+ /** Per-cap state listeners registered via `listenCap(capName, …)`. */
130
+ private readonly capListeners;
131
+ /** Per-device state listeners registered via `listenDevice(id, …)`. */
132
+ private readonly deviceListeners;
133
+ /** Lifecycle listeners. */
134
+ private readonly addedListeners;
135
+ private readonly removedListeners;
136
+ /** waitForState pending requests — keyed by an internal counter. */
137
+ private readonly pendingWaits;
138
+ /** Memoised state source — every proxy shares it. */
139
+ private readonly stateSource;
140
+ /** Live event bridges — closed in `dispose()`. */
141
+ private bridges;
142
+ private initialized;
143
+ private initPromise;
144
+ constructor(api: SystemMirrorApi);
145
+ /**
146
+ * Warm-boot: three round-trips (bindings + snapshots + listAll) and
147
+ * then the live event subscriptions. Idempotent — concurrent callers
148
+ * await the same in-flight Promise.
149
+ *
150
+ * Each warm-boot query is wrapped in a 15s timeout so a missing
151
+ * endpoint or stuck broker poll surfaces as a clear error instead
152
+ * of silently hanging the caller forever. The default is generous
153
+ * enough for cluster-wide setups but short enough for ops to
154
+ * notice and fix the underlying transport issue.
155
+ */
156
+ init(timeoutMs?: number): Promise<void>;
157
+ /** True after `init()` resolves. */
158
+ isReady(): boolean;
159
+ /** Promise that resolves once `init()` has completed. */
160
+ awaitReady(): Promise<void>;
161
+ /**
162
+ * Tear down the event bridges + clear listener registries. Existing
163
+ * proxy references become inert (slice reads keep working off the
164
+ * stale mirror, but no further updates arrive).
165
+ */
166
+ dispose(): void;
167
+ /** Sync lookup by numeric id. `null` if unknown. */
168
+ getDeviceById(deviceId: number): DeviceProxy | null;
169
+ /** Sync lookup by display name (exact match). `null` if unknown. */
170
+ getDeviceByName(name: string): DeviceProxy | null;
171
+ /** Sync lookup by stableId (the addon-scoped external id). */
172
+ getDeviceByStableId(stableId: string): DeviceProxy | null;
173
+ /** All devices owned by an addon. */
174
+ getDevicesByAddon(addonId: string): readonly DeviceProxy[];
175
+ /** All devices of a given `DeviceType`. */
176
+ getDevicesByType(type: DeviceType): readonly DeviceProxy[];
177
+ /**
178
+ * Live metadata snapshot for a device. Same shape as
179
+ * `deviceManager.getDevice(id)`; sync from the mirror.
180
+ */
181
+ getDeviceInfo(deviceId: number): DeviceInfo | null;
182
+ /** Snapshot of every known device as a typed proxy. */
183
+ getAllDevices(): readonly DeviceProxy[];
184
+ /** Filter devices by cap presence — shorthand for `query({caps: capName})`. */
185
+ filterByCap(capName: string): readonly DeviceProxy[];
186
+ /**
187
+ * Filter the fleet against a structured filter set. All fields ANDed,
188
+ * arrays ORed within a single field. Returns proxies — chain with
189
+ * cap-method calls or state reads as needed.
190
+ *
191
+ * Examples:
192
+ *
193
+ * sm.query({ addonId: 'reolink', online: true })
194
+ * sm.query({ type: DeviceType.Camera, caps: ['snapshot', 'motion'] })
195
+ * sm.query({ id: [1, 2, 3] })
196
+ * sm.query({ name: { contains: 'sala' } })
197
+ * sm.query({ name: /^cam-\d+$/ })
198
+ * sm.query({ parentDeviceId: 8 }) // accessories of cam 8
199
+ * sm.query({ where: (info, dev) => dev.state.battery.value?.sleeping })
200
+ */
201
+ query(filters?: DeviceQueryFilters): readonly DeviceProxy[];
202
+ /**
203
+ * Return every proxy whose runtime-state slice for `capName` matches
204
+ * `predicate`. Devices without the cap or without a slice are
205
+ * skipped. The predicate receives a typed slice reference — pass
206
+ * the typed cap (e.g. `'battery'`) and TypeScript widens to
207
+ * `Record<string, unknown>`; cast inside the predicate body if the
208
+ * caller knows the cap shape.
209
+ */
210
+ whereState<T extends Record<string, unknown> = Record<string, unknown>>(capName: string, predicate: (slice: T, deviceId: number) => boolean): readonly DeviceProxy[];
211
+ /** Map every device's slice for `capName` to a derived value. Devices
212
+ * without the cap or without a slice are skipped. */
213
+ mapState<T extends Record<string, unknown> = Record<string, unknown>, R = unknown>(capName: string, mapper: (slice: T, deviceId: number) => R): readonly R[];
214
+ /** First device whose slice matches `predicate`, or null. */
215
+ findState<T extends Record<string, unknown> = Record<string, unknown>>(capName: string, predicate: (slice: T, deviceId: number) => boolean): DeviceProxy | null;
216
+ /** Count devices that bind a cap. Faster than `filterByCap(...).length`. */
217
+ countByCap(capName: string): number;
218
+ /** Count devices whose slice for `capName` matches `predicate`. */
219
+ countByState<T extends Record<string, unknown> = Record<string, unknown>>(capName: string, predicate: (slice: T, deviceId: number) => boolean): number;
220
+ /**
221
+ * Global listener — fires for every `device.state-changed` event the
222
+ * mirror absorbs.
223
+ */
224
+ listen(cb: SystemMirrorListener): () => void;
225
+ /**
226
+ * Per-cap listener — fires only for state changes on `capName`,
227
+ * across every device. The callback receives the deviceId so the
228
+ * caller can route.
229
+ */
230
+ listenCap(capName: string, cb: DeviceCapListener): () => void;
231
+ /**
232
+ * Per-device listener — fires for every cap change on `deviceId`.
233
+ */
234
+ listenDevice(deviceId: number, cb: SystemMirrorListener): () => void;
235
+ /** Fires when `device.registered` lands. Receives the new metadata. */
236
+ onDeviceAdded(cb: DeviceLifecycleListener): () => void;
237
+ /** Fires when `device.unregistered` lands. `info` is the LAST-known
238
+ * metadata (or null if the device was never seen). */
239
+ onDeviceRemoved(cb: DeviceLifecycleListener): () => void;
240
+ /**
241
+ * Resolve when `predicate` over the runtime-state slice for
242
+ * `(deviceId, capName)` becomes true. Resolves immediately if the
243
+ * current slice already matches. Rejects with `Error('timeout')`
244
+ * after `timeoutMs` (default 30s; pass `Infinity` to wait forever).
245
+ *
246
+ * Returns the matching slice — caller can read it directly without
247
+ * a second mirror lookup.
248
+ */
249
+ waitForState<T extends Record<string, unknown> = Record<string, unknown>>(deviceId: number, capName: string, predicate: (slice: T) => boolean, timeoutMs?: number): Promise<T>;
250
+ /**
251
+ * Resolve when a device with `deviceId` becomes available (a
252
+ * binding exists). Resolves immediately if already known. Rejects
253
+ * with timeout.
254
+ */
255
+ waitForDevice(deviceId: number, timeoutMs?: number): Promise<DeviceProxy>;
256
+ /**
257
+ * Iterate every device that binds `capName`. Awaits each callback
258
+ * sequentially — for parallel use `invokeCap` with explicit
259
+ * parallelism.
260
+ */
261
+ forEachCap(capName: string, cb: (proxy: DeviceProxy) => void | Promise<void>): Promise<void>;
262
+ /**
263
+ * Invoke a cap method on every device that binds the cap. Returns
264
+ * one result per device, success or failure isolated. Optional
265
+ * parallelism cap — useful for "snapshot all cameras but only 4
266
+ * at a time so battery cams don't all wake at once".
267
+ *
268
+ * Example:
269
+ *
270
+ * const results = await sm.invokeCap('snapshot', 'getSnapshot', {}, { parallelism: 4 })
271
+ * const failed = results.filter(r => !r.ok)
272
+ */
273
+ invokeCap<R = unknown>(capName: string, methodName: string, args: Record<string, unknown>, opts?: {
274
+ parallelism?: number;
275
+ }): Promise<ReadonlyArray<{
276
+ deviceId: number;
277
+ ok: boolean;
278
+ result?: R;
279
+ error?: unknown;
280
+ }>>;
281
+ /**
282
+ * One-shot summary — fleet size, breakdown by cap / addon / type.
283
+ * Designed for REPL inspection (`sm.summary()`).
284
+ */
285
+ summary(): {
286
+ totalDevices: number;
287
+ online: number;
288
+ offline: number;
289
+ byCap: Record<string, number>;
290
+ byAddon: Record<string, number>;
291
+ byType: Record<string, number>;
292
+ statedDevices: number;
293
+ };
294
+ /**
295
+ * Debug-friendly dump — full state + binding + metadata for one
296
+ * device or all devices. Cheap deep clone so caller mutations don't
297
+ * leak into the mirror.
298
+ */
299
+ dump(deviceId?: number): unknown;
300
+ /**
301
+ * Direct read-only access to the underlying state mirror. Use
302
+ * sparingly — `getSystemState` returns a deep copy that's safer for
303
+ * exploratory work; this avoids the clone cost when iterating
304
+ * thousands of slices.
305
+ */
306
+ getRawMirror(): ReadonlyMap<number, ReadonlyMap<string, Record<string, unknown>>>;
307
+ /**
308
+ * Snapshot of the full state mirror — same shape as the warm-boot
309
+ * payload. Deep-cloned; safe to mutate.
310
+ */
311
+ getSystemState(): Map<number, Map<string, Record<string, unknown>>>;
312
+ private subscribeBus;
313
+ private applyStateUpdate;
314
+ private applyDeviceRemoval;
315
+ private refreshBinding;
316
+ private refreshDeviceMetadata;
317
+ }
318
+ //# sourceMappingURL=system-mirror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-mirror.d.ts","sourceRoot":"","sources":["../../src/device/system-mirror.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAElF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAsB,KAAK,cAAc,EAA0B,MAAM,0BAA0B,CAAA;AAQ1G;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,cAAc,EAAE;YACvB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;SAC3E,CAAA;QACD,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,KAAK,EAAE;gBAAE,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;SACvE,CAAA;KACF,CAAA;IACD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG;QACpD,QAAQ,CAAC,eAAe,EAAE;YACxB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;SACtG,CAAA;KACF,CAAA;CACF;AAED,MAAM,MAAM,oBAAoB,GAAG,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACvC,IAAI,CAAA;AAET,MAAM,MAAM,iBAAiB,GAAG,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACvC,IAAI,CAAA;AAET,MAAM,MAAM,uBAAuB,GAAG,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GAAG,IAAI,KACpB,IAAI,CAAA;AAET;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IACxC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC9C,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC7C,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAAA;IAClD,wEAAwE;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC1C;uBACmB;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC5C,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAA;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC7C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,KAAK,OAAO,CAAA;CACnE;AAED,qBAAa,YAAY;IA4BX,OAAO,CAAC,QAAQ,CAAC,GAAG;IA3BhC,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+D;IAC3F,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D;wDACoD;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+D;IAC/F,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IACvE,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4C;IACzE,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAC/E,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IACpE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;IACtE,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2D;IACxF,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,kDAAkD;IAClD,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,WAAW,CAA6B;gBAEnB,GAAG,EAAE,eAAe;IAMjD;;;;;;;;;;OAUG;IACG,IAAI,CAAC,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DrD,oCAAoC;IACpC,OAAO,IAAI,OAAO;IAIlB,yDAAyD;IACnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAiBf,oDAAoD;IACpD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAMnD,oEAAoE;IACpE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAOjD,8DAA8D;IAC9D,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAOzD,qCAAqC;IACrC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE;IAI1D,2CAA2C;IAC3C,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,WAAW,EAAE;IAI1D;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIlD,uDAAuD;IACvD,aAAa,IAAI,SAAS,WAAW,EAAE;IASvC,+EAA+E;IAC/E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE;IAMpD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,OAAO,GAAE,kBAAuB,GAAG,SAAS,WAAW,EAAE;IAoE/D;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,GACjD,SAAS,WAAW,EAAE;IAYzB;0DACsD;IACtD,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,EAC/E,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC,GACxC,SAAS,CAAC,EAAE;IAUf,6DAA6D;IAC7D,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,GACjD,WAAW,GAAG,IAAI;IAUrB,4EAA4E;IAC5E,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQnC,mEAAmE;IACnE,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,GACjD,MAAM;IAYT;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAK5C;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAU7D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAUpE,uEAAuE;IACvE,aAAa,CAAC,EAAE,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAKtD;2DACuD;IACvD,eAAe,CAAC,EAAE,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAOxD;;;;;;;;OAQG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAChC,SAAS,GAAE,MAAe,GACzB,OAAO,CAAC,CAAC,CAAC;IAgCb;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BjF;;;;OAIG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;;;;;;OAUG;IACG,SAAS,CAAC,CAAC,GAAG,OAAO,EACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAClC,OAAO,CAAC,aAAa,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAgCzF;;;OAGG;IACH,OAAO,IAAI;QACT,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,aAAa,EAAE,MAAM,CAAA;KACtB;IA8BD;;;;OAIG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAwBhC;;;;;OAKG;IACH,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAIjF;;;OAGG;IACH,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAYnE,OAAO,CAAC,YAAY;IA4EpB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,kBAAkB;YAUZ,cAAc;YAgBd,qBAAqB;CA2BpC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import type { ConfigUISchema } from '../interfaces/config-ui.js';
3
+ export interface DeviceConfigEntry {
4
+ key: string;
5
+ schema: z.ZodType;
6
+ value: unknown;
7
+ description?: string;
8
+ }
9
+ /**
10
+ * Convert DeviceConfig.entries() output to ConfigUISchema for the admin UI FormBuilder.
11
+ *
12
+ * Each entry's Zod type is inspected to determine the correct ConfigField type:
13
+ * - ZodString → 'text' (or 'password' when key contains "password"/"secret"/"token"/"apikey")
14
+ * - ZodNumber → 'number' (extracts min/max/step from Zod v4 checks)
15
+ * - ZodBoolean → 'boolean'
16
+ * - ZodEnum → 'select' (options built from enum values)
17
+ * - Anything else → 'text' fallback
18
+ *
19
+ * Wrapper types ZodDefault, ZodOptional, and ZodNullable are unwrapped transparently.
20
+ * Default values are extracted from ZodDefault wrappers.
21
+ */
22
+ export declare function zodEntriesToConfigUI(entries: readonly DeviceConfigEntry[], sectionTitle?: string, sectionId?: string): ConfigUISchema;
23
+ //# sourceMappingURL=zod-to-config-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-config-ui.d.ts","sourceRoot":"","sources":["../../src/device/zod-to-config-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EACV,cAAc,EAQf,MAAM,4BAA4B,CAAA;AAInC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,CAAC,CAAC,OAAO,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAqCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,YAAY,SAAkB,EAC9B,SAAS,SAAS,GACjB,cAAc,CAchB"}
@@ -0,0 +1,32 @@
1
+ export type DisposerFn = () => void | Promise<void>;
2
+ export interface DisposerChainOptions {
3
+ /** Logged when an individual disposer throws. Defaults to console.error. */
4
+ onError?: (err: unknown, index: number) => void;
5
+ }
6
+ export declare class DisposerChain {
7
+ private disposers;
8
+ private disposed;
9
+ private readonly onError;
10
+ constructor(opts?: DisposerChainOptions);
11
+ /**
12
+ * Register a teardown callback. Returns an unregister function so
13
+ * callers can drop a single disposer without disposing the whole
14
+ * chain.
15
+ *
16
+ * If the chain has already been disposed, the callback runs immediately
17
+ * (sync) — this matches the “register-after-shutdown” edge case where
18
+ * an addon's late initialization races with kernel restart.
19
+ */
20
+ add(fn: DisposerFn): () => void;
21
+ /** True after `dispose()` has been called at least once. */
22
+ get isDisposed(): boolean;
23
+ /** Number of disposers currently registered. */
24
+ get size(): number;
25
+ /**
26
+ * Run every registered disposer in LIFO order. Idempotent: subsequent
27
+ * calls do nothing. Awaits async disposers so callers can sequence
28
+ * shutdown → restart correctly.
29
+ */
30
+ dispose(): Promise<void>;
31
+ }
32
+ //# sourceMappingURL=disposer-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposer-chain.d.ts","sourceRoot":"","sources":["../src/disposer-chain.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAChD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;gBAEnD,IAAI,GAAE,oBAAyB;IAS3C;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,IAAI;IAoB/B,4DAA4D;IAC5D,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,gDAAgD;IAChD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB/B"}