@camstack/system 1.2.390 → 1.2.391

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 (503) 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/auth/admin-token-manager.d.ts +37 -67
  7. package/dist/auth/api-key-manager.d.ts +8 -8
  8. package/dist/auth/auth-audit-log.d.ts +29 -49
  9. package/dist/auth/auth-manager.d.ts +127 -126
  10. package/dist/auth/cidr.d.ts +8 -8
  11. package/dist/auth/external-identity-manager.d.ts +46 -34
  12. package/dist/auth/jwt-signing-key.d.ts +14 -14
  13. package/dist/auth/login-session-manager.d.ts +95 -135
  14. package/dist/auth/parse-record.d.ts +13 -13
  15. package/dist/auth/scope-matcher.d.ts +7 -7
  16. package/dist/auth/scoped-token-manager.d.ts +62 -62
  17. package/dist/auth/token-expiry.d.ts +49 -26
  18. package/dist/auth/totp-manager.d.ts +48 -48
  19. package/dist/auth/user-management-internal.d.ts +67 -52
  20. package/dist/auth/user-manager.d.ts +58 -58
  21. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  22. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  23. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  24. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  25. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  26. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  27. package/dist/builtins/alerts/device-label.d.ts +6 -6
  28. package/dist/builtins/alerts/index.d.ts +1 -1
  29. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  30. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  31. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  32. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  33. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  34. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  35. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  36. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  37. package/dist/builtins/autotrack/index.d.ts +2 -2
  38. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  39. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  40. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  41. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  42. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  43. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  44. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  45. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  46. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  47. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  48. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  49. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  50. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  51. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  52. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  53. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  54. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  55. package/dist/builtins/calendars/index.d.ts +1 -1
  56. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  57. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  58. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  59. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  60. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  61. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  62. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  63. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  64. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  65. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  66. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  67. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  68. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  69. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  70. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  71. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  72. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  73. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  74. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  75. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  76. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  77. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  78. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  79. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  80. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  81. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  82. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  83. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  84. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  85. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  86. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  87. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  88. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  89. package/dist/builtins/camera-grid/index.d.ts +44 -44
  90. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  91. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  92. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  93. package/dist/builtins/composer/composed-device.d.ts +39 -17
  94. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  95. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  96. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  97. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  98. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  99. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  100. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  101. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  102. package/dist/builtins/composer/composer.d.ts +145 -100
  103. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  104. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  105. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  106. package/dist/builtins/composer/composition-target.d.ts +38 -34
  107. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  108. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  109. package/dist/builtins/composer/existing-target.d.ts +90 -73
  110. package/dist/builtins/composer/field-record.d.ts +26 -19
  111. package/dist/builtins/composer/graft-host.d.ts +56 -32
  112. package/dist/builtins/composer/held-claims.d.ts +26 -9
  113. package/dist/builtins/composer/index.d.ts +1 -1
  114. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  115. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  116. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  117. package/dist/builtins/composer/source-readings.d.ts +67 -61
  118. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  119. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  120. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  121. package/dist/builtins/console-logging/index.d.ts +3 -3
  122. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  123. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  124. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  125. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  126. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  127. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  128. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  129. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  130. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  131. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  132. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  133. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  134. package/dist/builtins/core-blocks/index.d.ts +8 -8
  135. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  136. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  137. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  138. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  139. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  140. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  141. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  142. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  143. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  144. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  145. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  146. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  147. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  148. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  149. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  150. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  151. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  152. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  153. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  154. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  155. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  156. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  157. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  158. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  159. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  160. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  161. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  162. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  163. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  164. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  165. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  166. package/dist/builtins/device-manager/index.d.ts +2 -2
  167. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  168. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  169. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  170. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  171. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  172. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  173. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  174. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  175. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  176. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  177. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  178. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  179. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  180. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  181. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  182. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  183. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  184. package/dist/builtins/keychain/index.d.ts +1 -1
  185. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  186. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  187. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  188. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  189. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  190. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  191. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  192. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  193. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  194. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  195. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  196. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  197. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  198. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  199. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  200. package/dist/builtins/local-auth/index.d.ts +1 -1
  201. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  202. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  203. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  204. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  205. package/dist/builtins/local-network/address-book.d.ts +61 -36
  206. package/dist/builtins/local-network/index.d.ts +2 -2
  207. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  208. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  209. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  210. package/dist/builtins/loki-logging/index.d.ts +4 -4
  211. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  212. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  213. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  214. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  215. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  216. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  217. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  218. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  219. package/dist/builtins/native-metrics/index.d.ts +2 -2
  220. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  221. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  222. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  223. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  224. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  225. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  226. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  227. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  228. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  229. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  230. package/dist/builtins/platform-probe/index.d.ts +38 -30
  231. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  232. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  233. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  234. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  235. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  236. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  237. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  238. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  239. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  240. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  241. package/dist/builtins/snapshot/index.d.ts +2 -2
  242. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  243. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  244. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  245. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  246. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  247. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  248. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  249. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  250. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  251. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  252. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  253. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  254. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  255. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  256. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  257. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  258. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  259. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  260. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  261. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  262. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  263. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  264. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  265. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  266. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  267. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  268. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  269. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  270. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  271. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  272. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  273. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  274. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  275. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  276. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  277. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  278. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  279. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  280. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  281. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  282. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  283. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  284. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  285. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  286. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  287. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  288. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  289. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  290. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  291. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  292. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  293. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  294. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  295. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  296. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  297. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  298. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  299. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  300. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  301. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  302. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  303. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  304. package/dist/builtins/system-config/index.d.ts +2 -2
  305. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  306. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  307. package/dist/builtins/system-config/system-config.addon.js +37 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +37 -33
  309. package/dist/builtins/winston-logging/index.d.ts +3 -3
  310. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  311. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  312. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
  313. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
  314. package/dist/download/hosted-model-revisions.d.ts +8 -8
  315. package/dist/download/model-download-service.d.ts +32 -32
  316. package/dist/download/model-downloader.d.ts +88 -88
  317. package/dist/events/event-bus.d.ts +6 -6
  318. package/dist/events/system-event-bus.d.ts +11 -11
  319. package/dist/feature/feature-manager.d.ts +6 -6
  320. package/dist/http/asset-compression.d.ts +35 -73
  321. package/dist/http/authenticated-file-server.d.ts +32 -32
  322. package/dist/http/data-plane-registry.d.ts +49 -39
  323. package/dist/http/file-data-plane.d.ts +14 -14
  324. package/dist/http/lan-http-bind.d.ts +24 -13
  325. package/dist/http/reverse-proxy.d.ts +36 -24
  326. package/dist/index.d.ts +137 -137
  327. package/dist/index.js +4 -3
  328. package/dist/index.mjs +2 -4
  329. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  330. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  331. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  332. package/dist/kernel/addon-installer.d.ts +609 -609
  333. package/dist/kernel/addon-loader.d.ts +133 -133
  334. package/dist/kernel/addon-manifest.d.ts +118 -118
  335. package/dist/kernel/addon-residue.d.ts +28 -32
  336. package/dist/kernel/array-buffer-census.d.ts +84 -88
  337. package/dist/kernel/bootstrap-config.d.ts +3 -3
  338. package/dist/kernel/cap-router-builder.d.ts +145 -101
  339. package/dist/kernel/capability-handle.d.ts +41 -41
  340. package/dist/kernel/capability-registry.d.ts +588 -576
  341. package/dist/kernel/config-manager.d.ts +199 -199
  342. package/dist/kernel/config-schema.d.ts +132 -128
  343. package/dist/kernel/custom-action-registry.d.ts +25 -25
  344. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  345. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  346. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  347. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  348. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  349. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  350. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  351. package/dist/kernel/deps/npm-command.d.ts +45 -45
  352. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  353. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  354. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  355. package/dist/kernel/device-registry.d.ts +27 -27
  356. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  357. package/dist/kernel/event-plane-report.d.ts +174 -174
  358. package/dist/kernel/fs-utils.d.ts +70 -70
  359. package/dist/kernel/gc-census.d.ts +119 -119
  360. package/dist/kernel/heap-spaces.d.ts +87 -87
  361. package/dist/kernel/heap-watch.d.ts +706 -706
  362. package/dist/kernel/host-externals.d.ts +8 -8
  363. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  364. package/dist/kernel/index.d.ts +115 -113
  365. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  366. package/dist/kernel/infra-capabilities.d.ts +7 -7
  367. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  368. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  369. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  370. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  371. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  372. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  373. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  374. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  375. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  376. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  377. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  378. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  379. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  380. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  381. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  382. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  383. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  384. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  385. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  386. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  387. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  388. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  389. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  390. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  391. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  392. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  393. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  394. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  395. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  396. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  397. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  398. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  399. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  400. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  401. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  402. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  403. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  404. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  405. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  406. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  407. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  408. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  409. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  410. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  411. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  412. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  413. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  414. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  415. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  416. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  417. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  418. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  419. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  420. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  421. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  422. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  423. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  424. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  425. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  426. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  427. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  428. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  429. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  430. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  431. package/dist/kernel/process-cpu-census.d.ts +55 -55
  432. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  433. package/dist/kernel/restart-coordinator.d.ts +71 -71
  434. package/dist/kernel/settings-door-view.d.ts +36 -25
  435. package/dist/kernel/settings-read-error.d.ts +29 -31
  436. package/dist/kernel/settings-view-types.d.ts +100 -95
  437. package/dist/kernel/socket-plane-report.d.ts +214 -153
  438. package/dist/kernel/status-overlay.d.ts +31 -11
  439. package/dist/kernel/storage-location-registry.d.ts +50 -50
  440. package/dist/kernel/store-settings-view.d.ts +13 -13
  441. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  442. package/dist/kernel/system-settings-policy.d.ts +15 -34
  443. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  444. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  445. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  446. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  447. package/dist/kernel/transport/cap-route.d.ts +139 -139
  448. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  449. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  450. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  451. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  452. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  453. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  454. package/dist/kernel/transport/index.d.ts +36 -36
  455. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  456. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  457. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  458. package/dist/kernel/transport/local-transport.d.ts +92 -92
  459. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  460. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  461. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  462. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  463. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  464. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  465. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  466. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  467. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  468. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  469. package/dist/kernel/workspace-detect.d.ts +7 -7
  470. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  471. package/dist/logging/formatter.d.ts +52 -25
  472. package/dist/logging/log-manager.d.ts +133 -133
  473. package/dist/logging/log-redactor.d.ts +22 -1
  474. package/dist/logging/log-ring-buffer.d.ts +57 -57
  475. package/dist/logging/logging-gate.d.ts +69 -25
  476. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  477. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  478. package/dist/logging/scoped-logger.d.ts +14 -14
  479. package/dist/network/network-quality.d.ts +8 -8
  480. package/dist/notification/notification-service.d.ts +37 -37
  481. package/dist/notification/toast-service.d.ts +18 -18
  482. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  483. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  484. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  485. package/dist/process/proc-stat.d.ts +51 -51
  486. package/dist/process/resource-monitor.d.ts +19 -19
  487. package/dist/python/python-env-manager.d.ts +10 -10
  488. package/dist/repl/interfaces.d.ts +21 -21
  489. package/dist/repl/repl-engine.d.ts +6 -6
  490. package/dist/storage/fs-storage-backend.d.ts +35 -35
  491. package/dist/storage/storage-location-manager.d.ts +21 -21
  492. package/dist/storage/storage-manager.d.ts +68 -68
  493. package/dist/tls/boot-tls.d.ts +24 -24
  494. package/dist/tls/cert-evaluation.d.ts +25 -25
  495. package/dist/tls/cert-identity.d.ts +39 -39
  496. package/dist/tls/cert-issue.d.ts +37 -17
  497. package/dist/tls/cert-manager.d.ts +86 -84
  498. package/dist/tls/https-listener.d.ts +16 -16
  499. package/dist/tls/index.d.ts +8 -8
  500. package/dist/tls/tls-actions.d.ts +18 -18
  501. package/dist/tls/tls-status.d.ts +15 -15
  502. package/dist/tls/uploaded-cert.d.ts +9 -9
  503. 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";
@@ -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;