@camstack/system 1.2.390 → 1.2.392

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 (575) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/addon-utils.js +1 -1
  7. package/dist/addon-utils.mjs +1 -1
  8. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  9. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  10. package/dist/amd-npu-B-QyyMyF.js +53 -0
  11. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  12. package/dist/auth/admin-token-manager.d.ts +37 -67
  13. package/dist/auth/api-key-manager.d.ts +8 -8
  14. package/dist/auth/auth-audit-log.d.ts +29 -49
  15. package/dist/auth/auth-manager.d.ts +127 -126
  16. package/dist/auth/cidr.d.ts +8 -8
  17. package/dist/auth/external-identity-manager.d.ts +46 -34
  18. package/dist/auth/jwt-signing-key.d.ts +14 -14
  19. package/dist/auth/login-session-manager.d.ts +95 -135
  20. package/dist/auth/parse-record.d.ts +13 -13
  21. package/dist/auth/scope-matcher.d.ts +7 -7
  22. package/dist/auth/scoped-token-manager.d.ts +62 -62
  23. package/dist/auth/token-expiry.d.ts +49 -26
  24. package/dist/auth/totp-manager.d.ts +48 -48
  25. package/dist/auth/user-management-internal.d.ts +67 -52
  26. package/dist/auth/user-manager.d.ts +58 -58
  27. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  28. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  29. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  30. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  31. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  32. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  33. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  34. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  35. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  36. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  37. package/dist/builtins/alerts/alerts.addon.js +1 -1
  38. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  39. package/dist/builtins/alerts/device-label.d.ts +6 -6
  40. package/dist/builtins/alerts/index.d.ts +1 -1
  41. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  42. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  43. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  44. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  45. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  46. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  47. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  48. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  49. package/dist/builtins/autotrack/index.d.ts +2 -2
  50. package/dist/builtins/autotrack/index.js +1 -1
  51. package/dist/builtins/autotrack/index.mjs +1 -1
  52. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  53. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  54. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  57. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  58. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  59. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  60. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  61. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  62. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  63. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  64. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  65. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  66. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  67. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  68. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  69. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  70. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  71. package/dist/builtins/calendars/calendars.addon.js +1 -1
  72. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  73. package/dist/builtins/calendars/index.d.ts +1 -1
  74. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  75. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  76. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  77. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  78. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  79. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  80. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  81. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  82. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  83. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  84. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  85. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  86. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  87. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  88. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  89. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  90. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  91. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  92. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  93. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  94. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  95. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  96. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  97. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  98. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  99. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  100. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  101. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  102. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  103. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  104. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  105. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  106. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  107. package/dist/builtins/camera-grid/index.d.ts +44 -44
  108. package/dist/builtins/camera-grid/index.js +1 -1
  109. package/dist/builtins/camera-grid/index.mjs +1 -1
  110. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  111. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  112. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  113. package/dist/builtins/composer/composed-device.d.ts +39 -17
  114. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  115. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  116. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  117. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  118. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  119. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  120. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  121. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  122. package/dist/builtins/composer/composer.addon.js +2 -2
  123. package/dist/builtins/composer/composer.addon.mjs +2 -2
  124. package/dist/builtins/composer/composer.d.ts +145 -100
  125. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  126. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  127. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  128. package/dist/builtins/composer/composition-target.d.ts +38 -34
  129. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  130. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  131. package/dist/builtins/composer/existing-target.d.ts +90 -73
  132. package/dist/builtins/composer/field-record.d.ts +26 -19
  133. package/dist/builtins/composer/graft-host.d.ts +56 -32
  134. package/dist/builtins/composer/held-claims.d.ts +26 -9
  135. package/dist/builtins/composer/index.d.ts +1 -1
  136. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  137. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  138. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  139. package/dist/builtins/composer/source-readings.d.ts +67 -61
  140. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  141. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  142. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  143. package/dist/builtins/console-logging/index.d.ts +3 -3
  144. package/dist/builtins/console-logging/index.js +1 -1
  145. package/dist/builtins/console-logging/index.mjs +1 -1
  146. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  147. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  148. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  149. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  150. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  151. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  152. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  153. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  154. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  155. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  156. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  157. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  158. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  159. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  160. package/dist/builtins/core-blocks/index.d.ts +8 -8
  161. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  162. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  163. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  164. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  165. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  166. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  167. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  168. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  169. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  170. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  171. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  172. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  173. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  174. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  175. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  176. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  177. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  178. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  179. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  180. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  181. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  182. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  183. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  184. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  185. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  186. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  187. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  188. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  189. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  190. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  191. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  192. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  193. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  194. package/dist/builtins/device-manager/index.d.ts +2 -2
  195. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  196. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  197. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  198. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  199. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  200. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  201. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  202. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  203. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  204. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  205. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  206. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  207. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  208. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  209. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  210. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  211. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  212. package/dist/builtins/hub-forwarder/index.js +1 -1
  213. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  214. package/dist/builtins/keychain/index.d.ts +1 -1
  215. package/dist/builtins/keychain/index.js +3 -3
  216. package/dist/builtins/keychain/index.mjs +3 -3
  217. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  218. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  219. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  220. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  221. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  222. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  223. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  224. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  225. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  226. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  227. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  228. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  229. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  230. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  231. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  232. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  233. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  234. package/dist/builtins/local-auth/index.d.ts +1 -1
  235. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  236. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  237. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  238. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  239. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  240. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  241. package/dist/builtins/local-network/address-book.d.ts +61 -36
  242. package/dist/builtins/local-network/index.d.ts +2 -2
  243. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  244. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  245. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  246. package/dist/builtins/local-network/local-network.addon.js +1 -1
  247. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  248. package/dist/builtins/loki-logging/index.d.ts +4 -4
  249. package/dist/builtins/loki-logging/index.js +1 -1
  250. package/dist/builtins/loki-logging/index.mjs +1 -1
  251. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  252. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  253. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  254. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  255. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  256. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  257. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  258. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  259. package/dist/builtins/native-metrics/index.d.ts +2 -2
  260. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  261. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  262. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  263. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  264. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  265. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  266. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  267. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  268. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  269. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  270. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  271. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  272. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  273. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  274. package/dist/builtins/platform-probe/index.d.ts +38 -30
  275. package/dist/builtins/platform-probe/index.js +59 -22
  276. package/dist/builtins/platform-probe/index.mjs +59 -22
  277. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  278. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  279. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  280. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  281. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  282. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  283. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  284. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  285. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  286. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  287. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  288. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  289. package/dist/builtins/snapshot/index.d.ts +2 -2
  290. package/dist/builtins/snapshot/index.js +1 -1
  291. package/dist/builtins/snapshot/index.mjs +1 -1
  292. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  293. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  294. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  295. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  296. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  297. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  298. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  299. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  300. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  301. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  302. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  303. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  304. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  305. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  306. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  307. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  308. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  309. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  310. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  311. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  312. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  313. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  314. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  315. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  316. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  317. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  318. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  319. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  320. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  321. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  322. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  323. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  324. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  325. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  326. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  327. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  328. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  329. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  330. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  331. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  332. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  333. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  334. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  335. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  336. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  337. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  338. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  339. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  340. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  341. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  342. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  343. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  344. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  345. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  346. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  347. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  348. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  349. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  350. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  351. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  352. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  353. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  354. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  355. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  356. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  357. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  358. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  359. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  360. package/dist/builtins/system-config/index.d.ts +2 -2
  361. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  362. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  363. package/dist/builtins/system-config/system-config.addon.js +39 -35
  364. package/dist/builtins/system-config/system-config.addon.mjs +320 -316
  365. package/dist/builtins/winston-logging/index.d.ts +3 -3
  366. package/dist/builtins/winston-logging/index.js +1 -1
  367. package/dist/builtins/winston-logging/index.mjs +1 -1
  368. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  369. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  370. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Nx-lrlHR.js} +19 -1
  371. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
  372. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
  373. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
  374. package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
  375. package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
  376. package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
  377. package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -1
  378. package/dist/download/hosted-model-revisions.d.ts +8 -8
  379. package/dist/download/model-download-service.d.ts +32 -32
  380. package/dist/download/model-downloader.d.ts +88 -88
  381. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
  382. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
  383. package/dist/events/event-bus.d.ts +6 -6
  384. package/dist/events/system-event-bus.d.ts +11 -11
  385. package/dist/feature/feature-manager.d.ts +6 -6
  386. package/dist/http/asset-compression.d.ts +35 -73
  387. package/dist/http/authenticated-file-server.d.ts +32 -32
  388. package/dist/http/data-plane-registry.d.ts +49 -39
  389. package/dist/http/file-data-plane.d.ts +14 -14
  390. package/dist/http/lan-http-bind.d.ts +24 -13
  391. package/dist/http/reverse-proxy.d.ts +36 -24
  392. package/dist/index.d.ts +137 -137
  393. package/dist/index.js +9 -8
  394. package/dist/index.mjs +7 -9
  395. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
  396. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
  397. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  398. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  399. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  400. package/dist/kernel/addon-installer.d.ts +609 -609
  401. package/dist/kernel/addon-loader.d.ts +133 -133
  402. package/dist/kernel/addon-manifest.d.ts +118 -118
  403. package/dist/kernel/addon-residue.d.ts +28 -32
  404. package/dist/kernel/array-buffer-census.d.ts +84 -88
  405. package/dist/kernel/bootstrap-config.d.ts +3 -3
  406. package/dist/kernel/cap-router-builder.d.ts +145 -101
  407. package/dist/kernel/capability-handle.d.ts +41 -41
  408. package/dist/kernel/capability-registry.d.ts +588 -576
  409. package/dist/kernel/config-manager.d.ts +199 -199
  410. package/dist/kernel/config-schema.d.ts +132 -128
  411. package/dist/kernel/custom-action-registry.d.ts +25 -25
  412. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  413. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  414. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  415. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  416. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  417. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  418. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  419. package/dist/kernel/deps/npm-command.d.ts +45 -45
  420. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  421. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  422. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  423. package/dist/kernel/device-registry.d.ts +27 -27
  424. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  425. package/dist/kernel/event-plane-report.d.ts +174 -174
  426. package/dist/kernel/fs-utils.d.ts +70 -70
  427. package/dist/kernel/gc-census.d.ts +119 -119
  428. package/dist/kernel/heap-spaces.d.ts +87 -87
  429. package/dist/kernel/heap-watch.d.ts +706 -706
  430. package/dist/kernel/host-externals.d.ts +8 -8
  431. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  432. package/dist/kernel/index.d.ts +115 -113
  433. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  434. package/dist/kernel/infra-capabilities.d.ts +7 -7
  435. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  436. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  437. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  438. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  439. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  440. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  441. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  442. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  443. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  444. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  445. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  446. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  447. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  448. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  449. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  450. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  451. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  452. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  453. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  454. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  455. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  456. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  457. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  458. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  459. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  460. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  461. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  462. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  463. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  464. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  465. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  466. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  467. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  468. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  469. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  470. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  471. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  472. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  473. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  474. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  475. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  476. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  477. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  478. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  479. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  480. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  481. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  482. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  483. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  484. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  485. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  486. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  487. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  488. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  489. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  490. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  491. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  492. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  493. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  494. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  495. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  496. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  497. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  498. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  499. package/dist/kernel/process-cpu-census.d.ts +55 -55
  500. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  501. package/dist/kernel/restart-coordinator.d.ts +71 -71
  502. package/dist/kernel/settings-door-view.d.ts +36 -25
  503. package/dist/kernel/settings-read-error.d.ts +29 -31
  504. package/dist/kernel/settings-view-types.d.ts +100 -95
  505. package/dist/kernel/socket-plane-report.d.ts +214 -153
  506. package/dist/kernel/status-overlay.d.ts +31 -11
  507. package/dist/kernel/storage-location-registry.d.ts +50 -50
  508. package/dist/kernel/store-settings-view.d.ts +13 -13
  509. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  510. package/dist/kernel/system-settings-policy.d.ts +15 -34
  511. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  512. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  513. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  514. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  515. package/dist/kernel/transport/cap-route.d.ts +139 -139
  516. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  517. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  518. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  519. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  520. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  521. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  522. package/dist/kernel/transport/index.d.ts +36 -36
  523. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  524. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  525. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  526. package/dist/kernel/transport/local-transport.d.ts +92 -92
  527. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  528. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  529. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  530. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  531. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  532. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  533. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  534. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  535. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  536. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  537. package/dist/kernel/workspace-detect.d.ts +7 -7
  538. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  539. package/dist/logging/formatter.d.ts +52 -25
  540. package/dist/logging/log-manager.d.ts +133 -133
  541. package/dist/logging/log-redactor.d.ts +22 -1
  542. package/dist/logging/log-ring-buffer.d.ts +57 -57
  543. package/dist/logging/logging-gate.d.ts +69 -25
  544. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  545. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  546. package/dist/logging/scoped-logger.d.ts +14 -14
  547. package/dist/network/network-quality.d.ts +8 -8
  548. package/dist/notification/notification-service.d.ts +37 -37
  549. package/dist/notification/toast-service.d.ts +18 -18
  550. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  551. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  552. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  553. package/dist/process/proc-stat.d.ts +51 -51
  554. package/dist/process/resource-monitor.d.ts +19 -19
  555. package/dist/python/python-env-manager.d.ts +10 -10
  556. package/dist/repl/interfaces.d.ts +21 -21
  557. package/dist/repl/repl-engine.d.ts +6 -6
  558. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
  559. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
  560. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
  561. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
  562. package/dist/storage/fs-storage-backend.d.ts +35 -35
  563. package/dist/storage/storage-location-manager.d.ts +21 -21
  564. package/dist/storage/storage-manager.d.ts +68 -68
  565. package/dist/tls/boot-tls.d.ts +24 -24
  566. package/dist/tls/cert-evaluation.d.ts +25 -25
  567. package/dist/tls/cert-identity.d.ts +39 -39
  568. package/dist/tls/cert-issue.d.ts +37 -17
  569. package/dist/tls/cert-manager.d.ts +86 -84
  570. package/dist/tls/https-listener.d.ts +16 -16
  571. package/dist/tls/index.d.ts +8 -8
  572. package/dist/tls/tls-actions.d.ts +18 -18
  573. package/dist/tls/tls-status.d.ts +15 -15
  574. package/dist/tls/uploaded-cert.d.ts +9 -9
  575. package/package.json +9 -3
@@ -1,71 +1,108 @@
1
- import { AddonInitResult, BaseAddon } from '@camstack/types';
1
+ /**
2
+ * `autotrack` — the EMULATED implementation behind the `ptz-autotrack` switch.
3
+ *
4
+ * A camera with firmware autotrack serves `ptz-autotrack` from its own native
5
+ * provider. A camera with a mechanical head and no firmware autotrack gets the
6
+ * same cap from THIS addon, as a wrapper the operator binds per camera —
7
+ * exactly how `snapshot` gives a frame to a device whose driver cannot take
8
+ * one.
9
+ *
10
+ * That is the whole point of the shape (D62, D520): **one switch**. The
11
+ * operator turns autotrack on in the same place whichever implementation is
12
+ * behind it, and the two can never disagree, because there are not two of them
13
+ * on one camera — the binding chooses which one answers.
14
+ *
15
+ * ## What the emulation may do, and what it may never do (D520)
16
+ *
17
+ * It moves a head ONLY with a self-terminating `ptz.move` pulse — never
18
+ * `continuousMove`, whose `stop` would ride on telemetry that may be dropped,
19
+ * and whose worst case is a camera spinning unattended. It refuses to move at
20
+ * all when it cannot read `moveImpulseMs`, because that number is the proof the
21
+ * head stops without a second message. It refuses while the camera's NATIVE
22
+ * autotrack is on. It is declaredly visual: `getPosition` is null on every PTZ
23
+ * driver here, so the loop never knows where the head points.
24
+ *
25
+ * ## Erring direction: CLOSED
26
+ *
27
+ * A gate whose worst error is a spurious event may err OPEN on an unreadable
28
+ * binding (D49). Here it is the opposite: the cost of running when the
29
+ * operator has unbound us is a head that keeps moving on its own. A camera whose binding cannot be
30
+ * confirmed stops. It resumes the moment a read confirms it again, and the
31
+ * stop is logged — a loop that quietly stopped is the same as a loop that
32
+ * never ran.
33
+ *
34
+ * Its own runner, `hub-only`, and no `execution.group`: it drives devices and a
35
+ * co-located crash would respawn everything sharing the runner (D29).
36
+ */
37
+ import type { AddonInitResult } from "@camstack/types";
38
+ import { BaseAddon } from "@camstack/types";
2
39
  /** Persisted shape: one entry per camera the operator has touched. */
3
40
  export interface AutotrackConfig {
4
- readonly cameras: Record<string, unknown>;
41
+ readonly cameras: Record<string, unknown>;
5
42
  }
6
43
  export declare class AutotrackAddon extends BaseAddon<AutotrackConfig> {
7
- private records;
8
- private readonly sessions;
9
- /** Cameras whose `ptz-autotrack` binding names THIS addon, last time we read. */
10
- private bound;
11
- /**
12
- * Cameras that ALSO have a `ptz-autotrack` provider that is not us.
13
- *
14
- * This is the only way to ask about a firmware autotrack without asking
15
- * ourselves: on a camera where our wrapper is the binding, `ptzAutotrack.
16
- * getStatus` resolves to THIS addon and returns our own switch — so a loop
17
- * that read it would see `enabled: true` the moment the operator turned it
18
- * on, conclude the firmware was driving the head, and refuse to move. A
19
- * self-deadlock that would have looked exactly like the safety gate working.
20
- */
21
- private foreignProvider;
22
- private readonly lastChangedAt;
23
- private unsubscribeFrames;
24
- private unsubscribeBindings;
25
- private mirrorTimer;
26
- private watchdogTimer;
27
- constructor();
28
- protected onInitialize(): Promise<AddonInitResult>;
29
- protected onShutdown(): Promise<void>;
30
- protected onConfigChanged(): Promise<void>;
31
- private recordOf;
32
- private statusOf;
33
- private patchCamera;
34
- private serialiseRecords;
35
- /** Bindings first, then sessions: a session must never outlive its binding. */
36
- private refreshEverything;
37
- /**
38
- * Which cameras have this addon bound as their `ptz-autotrack` provider.
39
- *
40
- * Only cameras the operator has a record for are asked about: a wrapper that
41
- * enumerated every camera on every refresh would walk the whole fleet to
42
- * learn nothing about the ones nobody switched on.
43
- *
44
- * A read that FAILS leaves the previous answer standing (D49) — a transient
45
- * store blip must not stop a running loop. A read that SUCCEEDS and omits us
46
- * is believed immediately: unlike a doorbell press, the cost of erring open
47
- * here is a head that keeps moving after the operator unbound it.
48
- */
49
- private refreshBindings;
50
- /** Start a loop for every camera that is bound AND switched on; stop the rest. */
51
- private reconcileSessions;
52
- private startSession;
53
- private stopSession;
54
- /**
55
- * One off-event-path refresh of a camera's mirror.
56
- *
57
- * Two reads, and either one failing fails the whole refresh: a mirror half
58
- * from now and half from twenty minutes ago is worse than one that says it
59
- * is stale. The previous answers stand (D49).
60
- */
61
- private refreshMirror;
62
- /**
63
- * Is the camera's OWN autotrack on?
64
- *
65
- * `null` when the camera has no native autotrack at all — which is the case
66
- * this addon exists for, and is NOT an error. A camera that HAS one and has
67
- * it armed makes this loop refuse: two implementations driving one head is
68
- * the thing the single-switch rule exists to prevent (D62).
69
- */
70
- private readNativeAutotrack;
44
+ private records;
45
+ private readonly sessions;
46
+ /** Cameras whose `ptz-autotrack` binding names THIS addon, last time we read. */
47
+ private bound;
48
+ /**
49
+ * Cameras that ALSO have a `ptz-autotrack` provider that is not us.
50
+ *
51
+ * This is the only way to ask about a firmware autotrack without asking
52
+ * ourselves: on a camera where our wrapper is the binding, `ptzAutotrack.
53
+ * getStatus` resolves to THIS addon and returns our own switch — so a loop
54
+ * that read it would see `enabled: true` the moment the operator turned it
55
+ * on, conclude the firmware was driving the head, and refuse to move. A
56
+ * self-deadlock that would have looked exactly like the safety gate working.
57
+ */
58
+ private foreignProvider;
59
+ private readonly lastChangedAt;
60
+ private unsubscribeFrames;
61
+ private unsubscribeBindings;
62
+ private mirrorTimer;
63
+ private watchdogTimer;
64
+ constructor();
65
+ protected onInitialize(): Promise<AddonInitResult>;
66
+ protected onShutdown(): Promise<void>;
67
+ protected onConfigChanged(): Promise<void>;
68
+ private recordOf;
69
+ private statusOf;
70
+ private patchCamera;
71
+ private serialiseRecords;
72
+ /** Bindings first, then sessions: a session must never outlive its binding. */
73
+ private refreshEverything;
74
+ /**
75
+ * Which cameras have this addon bound as their `ptz-autotrack` provider.
76
+ *
77
+ * Only cameras the operator has a record for are asked about: a wrapper that
78
+ * enumerated every camera on every refresh would walk the whole fleet to
79
+ * learn nothing about the ones nobody switched on.
80
+ *
81
+ * A read that FAILS leaves the previous answer standing (D49) — a transient
82
+ * store blip must not stop a running loop. A read that SUCCEEDS and omits us
83
+ * is believed immediately: unlike a doorbell press, the cost of erring open
84
+ * here is a head that keeps moving after the operator unbound it.
85
+ */
86
+ private refreshBindings;
87
+ /** Start a loop for every camera that is bound AND switched on; stop the rest. */
88
+ private reconcileSessions;
89
+ private startSession;
90
+ private stopSession;
91
+ /**
92
+ * One off-event-path refresh of a camera's mirror.
93
+ *
94
+ * Two reads, and either one failing fails the whole refresh: a mirror half
95
+ * from now and half from twenty minutes ago is worse than one that says it
96
+ * is stale. The previous answers stand (D49).
97
+ */
98
+ private refreshMirror;
99
+ /**
100
+ * Is the camera's OWN autotrack on?
101
+ *
102
+ * `null` when the camera has no native autotrack at all — which is the case
103
+ * this addon exists for, and is NOT an error. A camera that HAS one and has
104
+ * it armed makes this loop refuse: two implementations driving one head is
105
+ * the thing the single-switch rule exists to prevent (D62).
106
+ */
107
+ private readNativeAutotrack;
71
108
  }
@@ -1,50 +1,50 @@
1
1
  /**
2
- * The frame-space error term: where the subject's centre sits relative to the
3
- * centre of the frame, normalized to ±0.5 on each axis.
4
- *
5
- * ## There is no letterbox to discount here, and that was checked
6
- *
7
- * The detector runs on a 640×640 `fit: 'contain'` view
8
- * (`SPLIT_DETECTION_VIEW`, `packages/addon-pipeline/src/pipeline-runner/
9
- * index.ts`), so the raster the model sees IS letterboxed. The coordinates that
10
- * reach this module are not: `ObjectDetection.bbox` is documented — and
11
- * produced — as "absolute pixel coordinates in the SOURCE frame"
12
- * (`packages/types/src/types/detection.ts`), and the same payload carries the
13
- * `frameWidth` / `frameHeight` those pixels are expressed in
14
- * (`PipelineAnalyticsFrameTrackedPayload`). The un-letterboxing has already
15
- * happened upstream; doing it again here would double-count the bars.
16
- *
17
- * ## A geometry we cannot read is `null`, never centred (D393)
18
- *
19
- * A frame that arrives with a zero or non-finite width has not told us the
20
- * subject is centred — it has told us nothing. Folding that into `{x:0, y:0}`
21
- * would read as "perfectly on target" and silence the loop exactly when it
22
- * should complain, the same shape as the unreadable `statfs` folded into "0
23
- * bytes of headroom". The return type says so, and every caller must branch.
24
- */
2
+ * The frame-space error term: where the subject's centre sits relative to the
3
+ * centre of the frame, normalized to ±0.5 on each axis.
4
+ *
5
+ * ## There is no letterbox to discount here, and that was checked
6
+ *
7
+ * The detector runs on a 640×640 `fit: 'contain'` view
8
+ * (`SPLIT_DETECTION_VIEW`, `packages/addon-pipeline/src/pipeline-runner/
9
+ * index.ts`), so the raster the model sees IS letterboxed. The coordinates that
10
+ * reach this module are not: `ObjectDetection.bbox` is documented — and
11
+ * produced — as "absolute pixel coordinates in the SOURCE frame"
12
+ * (`packages/types/src/types/detection.ts`), and the same payload carries the
13
+ * `frameWidth` / `frameHeight` those pixels are expressed in
14
+ * (`PipelineAnalyticsFrameTrackedPayload`). The un-letterboxing has already
15
+ * happened upstream; doing it again here would double-count the bars.
16
+ *
17
+ * ## A geometry we cannot read is `null`, never centred (D393)
18
+ *
19
+ * A frame that arrives with a zero or non-finite width has not told us the
20
+ * subject is centred — it has told us nothing. Folding that into `{x:0, y:0}`
21
+ * would read as "perfectly on target" and silence the loop exactly when it
22
+ * should complain, the same shape as the unreadable `statfs` folded into "0
23
+ * bytes of headroom". The return type says so, and every caller must branch.
24
+ */
25
25
  /** Signed offset of the subject's centre from the frame centre, in fractions
26
- * of the frame: `-0.5` = hard left/top edge, `0` = centred, `+0.5` = hard
27
- * right/bottom edge. `y` grows DOWNWARD, as image coordinates do. */
26
+ * of the frame: `-0.5` = hard left/top edge, `0` = centred, `+0.5` = hard
27
+ * right/bottom edge. `y` grows DOWNWARD, as image coordinates do. */
28
28
  export interface NormalizedError {
29
- readonly x: number;
30
- readonly y: number;
29
+ readonly x: number;
30
+ readonly y: number;
31
31
  }
32
32
  /** The frame the bbox's pixels are expressed in. */
33
33
  export interface FrameGeometry {
34
- readonly frameWidth: number;
35
- readonly frameHeight: number;
34
+ readonly frameWidth: number;
35
+ readonly frameHeight: number;
36
36
  }
37
37
  /** Absolute-pixel box in the source frame (`ObjectDetection.bbox`). */
38
38
  export interface FrameBox {
39
- readonly x: number;
40
- readonly y: number;
41
- readonly width: number;
42
- readonly height: number;
39
+ readonly x: number;
40
+ readonly y: number;
41
+ readonly width: number;
42
+ readonly height: number;
43
43
  }
44
44
  /**
45
- * Error of one subject box against the frame centre.
46
- *
47
- * `null` when the frame geometry or the box is unreadable — never a centred
48
- * zero (D393).
49
- */
45
+ * Error of one subject box against the frame centre.
46
+ *
47
+ * `null` when the frame geometry or the box is unreadable — never a centred
48
+ * zero (D393).
49
+ */
50
50
  export declare function computeNormalizedError(box: FrameBox, geometry: FrameGeometry): NormalizedError | null;
@@ -1,97 +1,97 @@
1
1
  /**
2
- * The two measurements this slice exists to produce. Pure reducers: a tally in,
3
- * a NEW tally out, nothing mutated, no clock read inside.
4
- *
5
- * ## 1. Bus latency — how old a `frame-tracked` payload is when a hub-only
6
- * subscriber gets it
7
- *
8
- * `Date.now() - payload.timestamp`, per frame. Nobody has measured this hop.
9
- * The only latency number in the docs (p90 381 ms, max 22 s) is a DIFFERENT hop
10
- * and must not be reused for it. It decides whether a visual control loop is
11
- * viable at all: the error the loop acts on is this many milliseconds stale, so
12
- * a subject walking at 1 m/s has already moved `latency × 1 m/s` by the time a
13
- * pulse is issued.
14
- *
15
- * ## 2. Track absence — the empirical test of the loop's SAFETY PREMISE
16
- *
17
- * The premise is that every bbox on `frame-tracked` is an OBSERVED detection,
18
- * never a coasted `SortTracker` prediction. It is INFERRED, not measured:
19
- * `buildOverlayDetections` (`addon-post-analysis/src/pipeline-analytics/
20
- * overlay-frame-builder.ts`) iterates the REAL frame detections and attaches a
21
- * track only to the ones a tracked entry was associated with, so a coasted
22
- * track contributes no box. `matchedThisFrame` is not on the wire, so the
23
- * premise cannot be read off the payload — only inferred from the SHAPE of the
24
- * gaps.
25
- *
26
- * If the premise HOLDS, an absence is a genuine miss and gaps are ragged: runs
27
- * of 1, the odd 2, no preferred length. If it is FALSE — if a coasted
28
- * prediction is being published as a box — the loop would be chasing a
29
- * fabricated position, and the tell is the opposite: long stretches with NO
30
- * gaps at all (the tracker filling every miss), then a gap exactly as long as
31
- * the tracker's max age when it finally gives up. That is what
32
- * {@link PresenceTally.gapRunHistogram} is for; a run-length distribution with
33
- * a spike at one value is coasting, a decaying distribution is honest misses.
34
- */
2
+ * The two measurements this slice exists to produce. Pure reducers: a tally in,
3
+ * a NEW tally out, nothing mutated, no clock read inside.
4
+ *
5
+ * ## 1. Bus latency — how old a `frame-tracked` payload is when a hub-only
6
+ * subscriber gets it
7
+ *
8
+ * `Date.now() - payload.timestamp`, per frame. Nobody has measured this hop.
9
+ * The only latency number in the docs (p90 381 ms, max 22 s) is a DIFFERENT hop
10
+ * and must not be reused for it. It decides whether a visual control loop is
11
+ * viable at all: the error the loop acts on is this many milliseconds stale, so
12
+ * a subject walking at 1 m/s has already moved `latency × 1 m/s` by the time a
13
+ * pulse is issued.
14
+ *
15
+ * ## 2. Track absence — the empirical test of the loop's SAFETY PREMISE
16
+ *
17
+ * The premise is that every bbox on `frame-tracked` is an OBSERVED detection,
18
+ * never a coasted `SortTracker` prediction. It is INFERRED, not measured:
19
+ * `buildOverlayDetections` (`addon-post-analysis/src/pipeline-analytics/
20
+ * overlay-frame-builder.ts`) iterates the REAL frame detections and attaches a
21
+ * track only to the ones a tracked entry was associated with, so a coasted
22
+ * track contributes no box. `matchedThisFrame` is not on the wire, so the
23
+ * premise cannot be read off the payload — only inferred from the SHAPE of the
24
+ * gaps.
25
+ *
26
+ * If the premise HOLDS, an absence is a genuine miss and gaps are ragged: runs
27
+ * of 1, the odd 2, no preferred length. If it is FALSE — if a coasted
28
+ * prediction is being published as a box — the loop would be chasing a
29
+ * fabricated position, and the tell is the opposite: long stretches with NO
30
+ * gaps at all (the tracker filling every miss), then a gap exactly as long as
31
+ * the tracker's max age when it finally gives up. That is what
32
+ * {@link PresenceTally.gapRunHistogram} is for; a run-length distribution with
33
+ * a spike at one value is coasting, a decaying distribution is honest misses.
34
+ */
35
35
  /** Rolling aggregate of the bus-latency measurement. */
36
36
  export interface LatencyTally {
37
- readonly frames: number;
38
- readonly sumMs: number;
39
- readonly minMs: number | null;
40
- readonly maxMs: number | null;
41
- /** Upper bounds, ms, of the histogram buckets — the last bucket is the
42
- * overflow above the final bound. */
43
- readonly bucketBoundsMs: readonly number[];
44
- /** One count per bucket bound, plus one trailing overflow count. */
45
- readonly bucketCounts: readonly number[];
46
- /** Frames whose `timestamp` produced a NEGATIVE age. A clock skew between
47
- * the analytics node and the hub shows up here and nowhere else; counted
48
- * separately rather than folded into the mean, which would hide it. */
49
- readonly negativeAgeFrames: number;
37
+ readonly frames: number;
38
+ readonly sumMs: number;
39
+ readonly minMs: number | null;
40
+ readonly maxMs: number | null;
41
+ /** Upper bounds, ms, of the histogram buckets — the last bucket is the
42
+ * overflow above the final bound. */
43
+ readonly bucketBoundsMs: readonly number[];
44
+ /** One count per bucket bound, plus one trailing overflow count. */
45
+ readonly bucketCounts: readonly number[];
46
+ /** Frames whose `timestamp` produced a NEGATIVE age. A clock skew between
47
+ * the analytics node and the hub shows up here and nowhere else; counted
48
+ * separately rather than folded into the mean, which would hide it. */
49
+ readonly negativeAgeFrames: number;
50
50
  }
51
51
  export declare const LATENCY_BUCKET_BOUNDS_MS: readonly number[];
52
52
  export declare const INITIAL_LATENCY_TALLY: LatencyTally;
53
53
  export declare function recordLatency(tally: LatencyTally, latencyMs: number): LatencyTally;
54
54
  /** Rolling aggregate of the track-absence measurement. */
55
55
  export interface PresenceTally {
56
- /** Frames counted while a target was HELD — the denominator. A frame with
57
- * no target held at all is not evidence about absence and is excluded. */
58
- readonly framesWithTarget: number;
59
- /** Of those, how many did not carry a box for the held track. */
60
- readonly absentFrames: number;
61
- /** Length of the gap currently open, in frames. */
62
- readonly currentGapFrames: number;
63
- /** Longest gap seen. */
64
- readonly maxGapFrames: number;
65
- /** How many CLOSED gaps had length 1, 2, 3, … The index is `length - 1`;
66
- * lengths beyond {@link GAP_HISTOGRAM_LENGTHS} land in the final overflow
67
- * slot. The SHAPE of this is the premise test — see the module docblock. */
68
- readonly gapRunHistogram: readonly number[];
56
+ /** Frames counted while a target was HELD — the denominator. A frame with
57
+ * no target held at all is not evidence about absence and is excluded. */
58
+ readonly framesWithTarget: number;
59
+ /** Of those, how many did not carry a box for the held track. */
60
+ readonly absentFrames: number;
61
+ /** Length of the gap currently open, in frames. */
62
+ readonly currentGapFrames: number;
63
+ /** Longest gap seen. */
64
+ readonly maxGapFrames: number;
65
+ /** How many CLOSED gaps had length 1, 2, 3, … The index is `length - 1`;
66
+ * lengths beyond {@link GAP_HISTOGRAM_LENGTHS} land in the final overflow
67
+ * slot. The SHAPE of this is the premise test — see the module docblock. */
68
+ readonly gapRunHistogram: readonly number[];
69
69
  }
70
70
  export declare const GAP_HISTOGRAM_LENGTHS = 8;
71
71
  export declare const INITIAL_PRESENCE_TALLY: PresenceTally;
72
72
  /**
73
- * Count one frame on which a target was held.
74
- *
75
- * `present` is "the held track carried a box on THIS frame". A closing gap is
76
- * binned at the moment it closes, which is why the open gap is reported
77
- * separately (`currentGapFrames`) instead of being counted twice.
78
- */
73
+ * Count one frame on which a target was held.
74
+ *
75
+ * `present` is "the held track carried a box on THIS frame". A closing gap is
76
+ * binned at the moment it closes, which is why the open gap is reported
77
+ * separately (`currentGapFrames`) instead of being counted twice.
78
+ */
79
79
  export declare function recordPresence(tally: PresenceTally, present: boolean): PresenceTally;
80
80
  /** Flat, log-friendly view of both tallies. Every field is a number so the log
81
- * line can be grouped and diffed per camera. */
81
+ * line can be grouped and diffed per camera. */
82
82
  export interface MeasurementSummary {
83
- readonly frames: number;
84
- readonly latencyMeanMs: number | null;
85
- readonly latencyMinMs: number | null;
86
- readonly latencyMaxMs: number | null;
87
- readonly latencyBucketsMs: readonly number[];
88
- readonly latencyBucketCounts: readonly number[];
89
- readonly negativeAgeFrames: number;
90
- readonly framesWithTarget: number;
91
- readonly absentFrames: number;
92
- readonly absentFraction: number | null;
93
- readonly maxGapFrames: number;
94
- readonly openGapFrames: number;
95
- readonly gapRunHistogram: readonly number[];
83
+ readonly frames: number;
84
+ readonly latencyMeanMs: number | null;
85
+ readonly latencyMinMs: number | null;
86
+ readonly latencyMaxMs: number | null;
87
+ readonly latencyBucketsMs: readonly number[];
88
+ readonly latencyBucketCounts: readonly number[];
89
+ readonly negativeAgeFrames: number;
90
+ readonly framesWithTarget: number;
91
+ readonly absentFrames: number;
92
+ readonly absentFraction: number | null;
93
+ readonly maxGapFrames: number;
94
+ readonly openGapFrames: number;
95
+ readonly gapRunHistogram: readonly number[];
96
96
  }
97
97
  export declare function summarize(latency: LatencyTally, presence: PresenceTally): MeasurementSummary;
@@ -1,2 +1,2 @@
1
- export { AutotrackAddon } from './autotrack.addon.js';
2
- export { AutotrackAddon as default } from './autotrack.addon.js';
1
+ export { AutotrackAddon } from "./autotrack.addon.js";
2
+ export { AutotrackAddon as default } from "./autotrack.addon.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-XTkzsnz-.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { Pr as isEvent, S as FIRST_LEVEL_MACRO_CLASSES, Z as bareAddonId, _n as ptzAutotrackCapability, lr as errMsg, ni as EventCategory, ur as BaseAddon } from "../../dist-Biqn3TEn.mjs";
1
+ import { Pr as isEvent, S as FIRST_LEVEL_MACRO_CLASSES, Z as bareAddonId, _n as ptzAutotrackCapability, lr as errMsg, ni as EventCategory, ur as BaseAddon } from "../../dist-byg8IP4Q.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -1,25 +1,54 @@
1
- import { NativeAutotrackState } from './autotrack-decision.js';
1
+ /**
2
+ * The in-memory mirror of everything the loop needs to know about the camera
3
+ * that is NOT on the event payload — refreshed off the event path, by timer,
4
+ * and only READ on the event path (D49).
5
+ *
6
+ * Two facts live here:
7
+ * - `moveImpulseMs` (`ptz.getOptions`) — how long one pulse runs. Without it
8
+ * nothing proves the pulse self-terminates, and the loop refuses to move.
9
+ * - the NATIVE autotrack state (`deviceManager.getBindings` +
10
+ * `ptzAutotrack.getStatus`) — whether the firmware is already driving this
11
+ * head.
12
+ *
13
+ * ## Why a mirror and not a read on the event path
14
+ *
15
+ * A one-shot decision must never gate on a fallible read (D49). If the loop
16
+ * awaited `getOptions()` per frame, one bad read would look exactly like "this
17
+ * camera has no PTZ" — and at 10 Hz it would also put a tRPC round-trip on the
18
+ * frame path. So the refresh runs on its own timer and the event path reads a
19
+ * field.
20
+ *
21
+ * ## A failed refresh changes nothing
22
+ *
23
+ * {@link applyMirrorRefresh} never downgrades a KNOWN value to `null` on a
24
+ * failed read: a refresh that threw leaves the previous answer standing and
25
+ * records the failure. A value that has never been read stays `unknown`, and
26
+ * `unknown` refuses to move — not-yet-read must not look like not-enabled
27
+ * (D315), and a measurement that failed is `null`, never a convenient zero
28
+ * (D393).
29
+ */
30
+ import type { NativeAutotrackState } from "./autotrack-decision.js";
2
31
  export interface PtzMirror {
3
- /** `ptz.getOptions().moveImpulseMs`. `null` = never read, or the driver
4
- * itself reports it cannot say. */
5
- readonly moveImpulseMs: number | null;
6
- readonly nativeAutotrack: NativeAutotrackState;
7
- /** When a refresh last SUCCEEDED. `null` = never. */
8
- readonly lastRefreshAtMs: number | null;
9
- /** Message of the last failed refresh, `null` once one succeeds again. */
10
- readonly lastError: string | null;
11
- /** Consecutive failed refreshes since the last success. */
12
- readonly consecutiveFailures: number;
32
+ /** `ptz.getOptions().moveImpulseMs`. `null` = never read, or the driver
33
+ * itself reports it cannot say. */
34
+ readonly moveImpulseMs: number | null;
35
+ readonly nativeAutotrack: NativeAutotrackState;
36
+ /** When a refresh last SUCCEEDED. `null` = never. */
37
+ readonly lastRefreshAtMs: number | null;
38
+ /** Message of the last failed refresh, `null` once one succeeds again. */
39
+ readonly lastError: string | null;
40
+ /** Consecutive failed refreshes since the last success. */
41
+ readonly consecutiveFailures: number;
13
42
  }
14
43
  export declare const INITIAL_PTZ_MIRROR: PtzMirror;
15
44
  /** What one refresh attempt found. A `failed` outcome carries a reason —
16
- * there is no silent failure shape. */
45
+ * there is no silent failure shape. */
17
46
  export type MirrorRefreshOutcome = {
18
- readonly kind: 'read';
19
- readonly moveImpulseMs: number | null;
20
- readonly nativeAutotrack: NativeAutotrackState;
47
+ readonly kind: "read";
48
+ readonly moveImpulseMs: number | null;
49
+ readonly nativeAutotrack: NativeAutotrackState;
21
50
  } | {
22
- readonly kind: 'failed';
23
- readonly error: string;
51
+ readonly kind: "failed";
52
+ readonly error: string;
24
53
  };
25
54
  export declare function applyMirrorRefresh(mirror: PtzMirror, outcome: MirrorRefreshOutcome, nowMs: number): PtzMirror;
@@ -1,60 +1,46 @@
1
1
  /**
2
- * Sticky target choice: pick ONE track, then stay on it.
3
- *
4
- * Re-picking "the best candidate" every frame is oscillation on another axis —
5
- * two people a metre apart trade the top score frame to frame and the head
6
- * saws between them, having centred neither. So the target is chosen ONCE and
7
- * held by `trackId` until it has been gone for the disappear delay. While it
8
- * is merely MISSING from a frame nothing is switched and nothing is released:
9
- * `present: false` is reported and the decision layer decides what a gap means.
10
- *
11
- * Pure: state in, state out, no clock read inside — `nowMs` is passed. A new
12
- * state object is returned every call; the input is never mutated.
13
- */
2
+ * Sticky target choice: pick ONE track, then stay on it.
3
+ *
4
+ * Re-picking "the best candidate" every frame is oscillation on another axis —
5
+ * two people a metre apart trade the top score frame to frame and the head
6
+ * saws between them, having centred neither. So the target is chosen ONCE and
7
+ * held by `trackId` until it has been gone for the disappear delay. While it
8
+ * is merely MISSING from a frame nothing is switched and nothing is released:
9
+ * `present: false` is reported and the decision layer decides what a gap means.
10
+ *
11
+ * Pure: state in, state out, no clock read inside — `nowMs` is passed. A new
12
+ * state object is returned every call; the input is never mutated.
13
+ */
14
14
  /** One candidate of the configured class on this frame. */
15
15
  export interface TargetCandidate {
16
- readonly trackId: string;
17
- /** Pixel area of the box. Used ONLY to break the first choice; it never
18
- * unseats a target that is still alive. */
19
- readonly areaPx: number;
16
+ readonly trackId: string;
17
+ /** Pixel area of the box. Used ONLY to break the first choice; it never
18
+ * unseats a target that is still alive. */
19
+ readonly areaPx: number;
20
20
  }
21
21
  export interface TargetSelectionState {
22
- /** The track being followed, or `null` when nothing is held. */
23
- readonly trackId: string | null;
24
- /** When that track was last OBSERVED on a frame. `null` while nothing is
25
- * held. Never advanced by a frame the track was absent from. */
26
- readonly lastSeenAtMs: number | null;
22
+ /** The track being followed, or `null` when nothing is held. */
23
+ readonly trackId: string | null;
24
+ /** When that track was last OBSERVED on a frame. `null` while nothing is
25
+ * held. Never advanced by a frame the track was absent from. */
26
+ readonly lastSeenAtMs: number | null;
27
27
  }
28
28
  export declare const INITIAL_TARGET_SELECTION_STATE: TargetSelectionState;
29
29
  /** Why the selection came out the way it did — logged on every frame so a
30
- * loop that chooses nothing is distinguishable from a loop that is dead. */
31
- export type TargetSelectionReason =
32
- /** The held track was observed on this frame. */
33
- 'held'
34
- /** The held track was absent from this frame but is still within its
35
- * disappear delay — nothing is switched, nothing is released. */
36
- | 'held-absent'
37
- /** The held track exceeded its disappear delay and was released; no
38
- * candidate was available to take its place. */
39
- | 'released'
40
- /** The held track was released and a new one was picked on the same frame. */
41
- | 'switched'
42
- /** Nothing was held and a candidate was picked. */
43
- | 'acquired'
44
- /** Nothing was held and no candidate was available. */
45
- | 'idle';
30
+ * loop that chooses nothing is distinguishable from a loop that is dead. */
31
+ export type TargetSelectionReason = "held" | "held-absent" | "released" | "switched" | "acquired" | "idle";
46
32
  export interface TargetSelectionResult {
47
- readonly state: TargetSelectionState;
48
- /** The held track, after this frame. `null` when nothing is held. */
49
- readonly trackId: string | null;
50
- /** Whether the held track was OBSERVED on this frame. This is the boolean
51
- * the absence measurement counts. */
52
- readonly present: boolean;
53
- readonly reason: TargetSelectionReason;
33
+ readonly state: TargetSelectionState;
34
+ /** The held track, after this frame. `null` when nothing is held. */
35
+ readonly trackId: string | null;
36
+ /** Whether the held track was OBSERVED on this frame. This is the boolean
37
+ * the absence measurement counts. */
38
+ readonly present: boolean;
39
+ readonly reason: TargetSelectionReason;
54
40
  }
55
41
  export interface TargetSelectionInput {
56
- readonly nowMs: number;
57
- readonly candidates: readonly TargetCandidate[];
58
- readonly disappearDelayMs: number;
42
+ readonly nowMs: number;
43
+ readonly candidates: readonly TargetCandidate[];
44
+ readonly disappearDelayMs: number;
59
45
  }
60
46
  export declare function selectTarget(state: TargetSelectionState, input: TargetSelectionInput): TargetSelectionResult;