@camstack/system 1.2.389 → 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.
- package/dist/addon/addon-api-factory.d.ts +30 -30
- package/dist/addon-routes/addon-route-registry.d.ts +31 -31
- package/dist/addon-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/addon-utils.d.ts +22 -22
- package/dist/auth/admin-token-manager.d.ts +37 -67
- package/dist/auth/api-key-manager.d.ts +8 -8
- package/dist/auth/auth-audit-log.d.ts +29 -49
- package/dist/auth/auth-manager.d.ts +127 -126
- package/dist/auth/cidr.d.ts +8 -8
- package/dist/auth/external-identity-manager.d.ts +46 -34
- package/dist/auth/jwt-signing-key.d.ts +14 -14
- package/dist/auth/login-session-manager.d.ts +95 -135
- package/dist/auth/parse-record.d.ts +13 -13
- package/dist/auth/scope-matcher.d.ts +7 -7
- package/dist/auth/scoped-token-manager.d.ts +62 -62
- package/dist/auth/token-expiry.d.ts +49 -26
- package/dist/auth/totp-manager.d.ts +48 -48
- package/dist/auth/user-management-internal.d.ts +67 -52
- package/dist/auth/user-manager.d.ts +58 -58
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
- package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
- package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
- package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
- package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
- package/dist/builtins/alerts/device-label.d.ts +6 -6
- package/dist/builtins/alerts/index.d.ts +1 -1
- package/dist/builtins/alerts/prune-policy.d.ts +36 -36
- package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
- package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
- package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
- package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
- package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
- package/dist/builtins/autotrack/frame-error.d.ts +38 -38
- package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
- package/dist/builtins/autotrack/index.d.ts +2 -2
- package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
- package/dist/builtins/autotrack/target-selection.d.ts +33 -47
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
- package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
- package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
- package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
- package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
- package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
- package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
- package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
- package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
- package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
- package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
- package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
- package/dist/builtins/calendars/calendar-color.d.ts +5 -1
- package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
- package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
- package/dist/builtins/calendars/index.d.ts +1 -1
- package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
- package/dist/builtins/camera-grid/addon.d.ts +200 -174
- package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
- package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
- package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
- package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
- package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
- package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
- package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
- package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
- package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
- package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
- package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
- package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
- package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
- package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
- package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
- package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
- package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
- package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
- package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
- package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
- package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
- package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
- package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
- package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
- package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
- package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
- package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
- package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
- package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
- package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
- package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
- package/dist/builtins/camera-grid/index.d.ts +44 -44
- package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
- package/dist/builtins/composer/claim-gate.d.ts +54 -27
- package/dist/builtins/composer/composed-device-set.d.ts +40 -26
- package/dist/builtins/composer/composed-device.d.ts +39 -17
- package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
- package/dist/builtins/composer/composer-grafts.d.ts +57 -38
- package/dist/builtins/composer/composer-live-set.d.ts +15 -15
- package/dist/builtins/composer/composer-plan.d.ts +76 -60
- package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
- package/dist/builtins/composer/composer-seeds.d.ts +20 -14
- package/dist/builtins/composer/composer-verdict.d.ts +28 -14
- package/dist/builtins/composer/composer.addon.d.ts +23 -9
- package/dist/builtins/composer/composer.d.ts +145 -100
- package/dist/builtins/composer/composition-declarations.d.ts +50 -39
- package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
- package/dist/builtins/composer/composition-runtime.d.ts +178 -125
- package/dist/builtins/composer/composition-target.d.ts +38 -34
- package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
- package/dist/builtins/composer/deadline-timer.d.ts +13 -13
- package/dist/builtins/composer/existing-target.d.ts +90 -73
- package/dist/builtins/composer/field-record.d.ts +26 -19
- package/dist/builtins/composer/graft-host.d.ts +56 -32
- package/dist/builtins/composer/held-claims.d.ts +26 -9
- package/dist/builtins/composer/index.d.ts +1 -1
- package/dist/builtins/composer/own-field-reads.d.ts +26 -15
- package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
- package/dist/builtins/composer/slice-assembler.d.ts +19 -3
- package/dist/builtins/composer/source-readings.d.ts +67 -61
- package/dist/builtins/composer/source-tracker.d.ts +133 -69
- package/dist/builtins/console-logging/console-destination.d.ts +15 -8
- package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
- package/dist/builtins/console-logging/index.d.ts +3 -3
- package/dist/builtins/core-blocks/block-package.d.ts +37 -37
- package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
- package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
- package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
- package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
- package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
- package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
- package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
- package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
- package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
- package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
- package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
- package/dist/builtins/core-blocks/index.d.ts +8 -8
- package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
- package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
- package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
- package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
- package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
- package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
- package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
- package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
- package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
- package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
- package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
- package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
- package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
- package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
- package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
- package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
- package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
- package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
- package/dist/builtins/device-manager/device-projection.d.ts +53 -67
- package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
- package/dist/builtins/device-manager/device-queries.d.ts +63 -63
- package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
- package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
- package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
- package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
- package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
- package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
- package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
- package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
- package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
- package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
- package/dist/builtins/device-manager/index.d.ts +2 -2
- package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
- package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
- package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
- package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
- package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
- package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
- package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
- package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
- package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
- package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
- package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
- package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
- package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
- package/dist/builtins/device-manager/write-lock.d.ts +13 -13
- package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
- package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
- package/dist/builtins/hub-forwarder/index.d.ts +3 -3
- package/dist/builtins/keychain/index.d.ts +1 -1
- package/dist/builtins/keychain/key-sources.d.ts +19 -19
- package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
- package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
- package/dist/builtins/keychain/keychain-service.d.ts +128 -128
- package/dist/builtins/keychain/keychain-store.d.ts +96 -87
- package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
- package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
- package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
- package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
- package/dist/builtins/liveness-monitor/index.d.ts +2 -2
- package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
- package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
- package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
- package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
- package/dist/builtins/local-auth/index.d.ts +1 -1
- package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
- package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
- package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
- package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
- package/dist/builtins/local-network/address-book.d.ts +61 -36
- package/dist/builtins/local-network/index.d.ts +2 -2
- package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
- package/dist/builtins/local-network/local-hostname.d.ts +10 -10
- package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
- package/dist/builtins/loki-logging/index.d.ts +4 -4
- package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
- package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
- package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
- package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
- package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
- package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
- package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
- package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
- package/dist/builtins/native-metrics/index.d.ts +2 -2
- package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
- package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
- package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
- package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
- package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
- package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
- package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
- package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
- package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
- package/dist/builtins/platform-probe/index.d.ts +38 -30
- package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
- package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
- package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
- package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
- package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
- package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
- package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
- package/dist/builtins/shared/device-state-changed.d.ts +9 -9
- package/dist/builtins/shared/settle-sources.d.ts +16 -16
- package/dist/builtins/snapshot/index.d.ts +2 -2
- package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
- package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
- package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
- package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
- package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
- package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
- package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
- package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
- package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
- package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
- package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
- package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
- package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
- package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
- package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
- package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
- package/dist/builtins/sqlite-storage/index.d.ts +12 -12
- package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
- package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
- package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
- package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
- package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
- package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
- package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
- package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
- package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
- package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
- package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
- package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
- package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
- package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
- package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
- package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
- package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
- package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
- package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
- package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
- package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
- package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
- package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
- package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
- package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
- package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
- package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
- package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
- package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
- package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
- package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
- package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
- package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
- package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
- package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
- package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
- package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
- package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
- package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
- package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
- package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
- package/dist/builtins/system-config/index.d.ts +2 -2
- package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
- package/dist/builtins/system-config/system-config.addon.d.ts +57 -93
- package/dist/builtins/system-config/system-config.addon.js +46 -33
- package/dist/builtins/system-config/system-config.addon.mjs +46 -33
- package/dist/builtins/winston-logging/index.d.ts +3 -3
- package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
- package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
- package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
- package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
- package/dist/download/hosted-model-revisions.d.ts +8 -8
- package/dist/download/model-download-service.d.ts +32 -32
- package/dist/download/model-downloader.d.ts +88 -88
- package/dist/events/event-bus.d.ts +6 -6
- package/dist/events/system-event-bus.d.ts +11 -11
- package/dist/feature/feature-manager.d.ts +6 -6
- package/dist/http/asset-compression.d.ts +35 -73
- package/dist/http/authenticated-file-server.d.ts +32 -32
- package/dist/http/data-plane-registry.d.ts +49 -39
- package/dist/http/file-data-plane.d.ts +14 -14
- package/dist/http/lan-http-bind.d.ts +24 -13
- package/dist/http/reverse-proxy.d.ts +36 -24
- package/dist/index.d.ts +137 -137
- package/dist/index.js +4 -3
- package/dist/index.mjs +2 -4
- package/dist/kernel/addon-class-resolver.d.ts +1 -1
- package/dist/kernel/addon-engine-manager.d.ts +20 -20
- package/dist/kernel/addon-health-monitor.d.ts +151 -151
- package/dist/kernel/addon-installer.d.ts +609 -609
- package/dist/kernel/addon-loader.d.ts +133 -133
- package/dist/kernel/addon-manifest.d.ts +118 -118
- package/dist/kernel/addon-residue.d.ts +28 -32
- package/dist/kernel/array-buffer-census.d.ts +84 -88
- package/dist/kernel/bootstrap-config.d.ts +3 -3
- package/dist/kernel/cap-router-builder.d.ts +145 -101
- package/dist/kernel/capability-handle.d.ts +41 -41
- package/dist/kernel/capability-registry.d.ts +588 -576
- package/dist/kernel/config-manager.d.ts +199 -199
- package/dist/kernel/config-schema.d.ts +132 -128
- package/dist/kernel/custom-action-registry.d.ts +25 -25
- package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
- package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
- package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
- package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
- package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
- package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
- package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
- package/dist/kernel/deps/npm-command.d.ts +45 -45
- package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
- package/dist/kernel/deps/system-package-broker.d.ts +20 -20
- package/dist/kernel/deps/system-package-client.d.ts +3 -3
- package/dist/kernel/device-registry.d.ts +27 -27
- package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
- package/dist/kernel/event-plane-report.d.ts +174 -174
- package/dist/kernel/fs-utils.d.ts +70 -70
- package/dist/kernel/gc-census.d.ts +119 -119
- package/dist/kernel/heap-spaces.d.ts +87 -87
- package/dist/kernel/heap-watch.d.ts +706 -706
- package/dist/kernel/host-externals.d.ts +8 -8
- package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
- package/dist/kernel/index.d.ts +115 -113
- package/dist/kernel/inference/inference-resolver.d.ts +13 -13
- package/dist/kernel/infra-capabilities.d.ts +7 -7
- package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
- package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
- package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
- package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
- package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
- package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
- package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
- package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
- package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
- package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
- package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
- package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
- package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
- package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
- package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
- package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
- package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
- package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
- package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
- package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
- package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
- package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
- package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
- package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
- package/dist/kernel/moleculer/event-bus.d.ts +73 -73
- package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
- package/dist/kernel/moleculer/hub-service.d.ts +42 -42
- package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
- package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
- package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
- package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
- package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
- package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
- package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
- package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
- package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
- package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
- package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
- package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
- package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
- package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
- package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
- package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
- package/dist/kernel/moleculer/node-registry.d.ts +120 -120
- package/dist/kernel/moleculer/process-context.d.ts +2 -2
- package/dist/kernel/moleculer/process-service.d.ts +168 -168
- package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
- package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
- package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
- package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
- package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
- package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
- package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
- package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
- package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
- package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
- package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
- package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
- package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
- package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
- package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
- package/dist/kernel/outbound-queue-watch.d.ts +74 -74
- package/dist/kernel/process-cpu-census.d.ts +55 -55
- package/dist/kernel/provider-kind-drift.d.ts +17 -8
- package/dist/kernel/restart-coordinator.d.ts +71 -71
- package/dist/kernel/settings-door-view.d.ts +36 -25
- package/dist/kernel/settings-read-error.d.ts +29 -31
- package/dist/kernel/settings-view-types.d.ts +100 -95
- package/dist/kernel/socket-plane-report.d.ts +214 -153
- package/dist/kernel/status-overlay.d.ts +31 -11
- package/dist/kernel/storage-location-registry.d.ts +50 -50
- package/dist/kernel/store-settings-view.d.ts +13 -13
- package/dist/kernel/system-settings-mirror.d.ts +40 -28
- package/dist/kernel/system-settings-policy.d.ts +15 -34
- package/dist/kernel/transport/cap-action-census.d.ts +183 -183
- package/dist/kernel/transport/cap-action-name.d.ts +84 -84
- package/dist/kernel/transport/cap-child-index.d.ts +41 -41
- package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
- package/dist/kernel/transport/cap-route.d.ts +139 -139
- package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
- package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
- package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
- package/dist/kernel/transport/create-local-transport.d.ts +5 -5
- package/dist/kernel/transport/frame-codec.d.ts +109 -109
- package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
- package/dist/kernel/transport/index.d.ts +36 -36
- package/dist/kernel/transport/local-child-client.d.ts +184 -184
- package/dist/kernel/transport/local-child-registry.d.ts +592 -592
- package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
- package/dist/kernel/transport/local-transport.d.ts +92 -92
- package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
- package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
- package/dist/kernel/transport/socket-channel.d.ts +110 -110
- package/dist/kernel/transport/socket-traffic.d.ts +96 -96
- package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
- package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
- package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
- package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
- package/dist/kernel/transport/uds-logger.d.ts +33 -33
- package/dist/kernel/utils/ring-buffer.d.ts +12 -12
- package/dist/kernel/workspace-detect.d.ts +7 -7
- package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
- package/dist/logging/formatter.d.ts +52 -25
- package/dist/logging/log-manager.d.ts +133 -133
- package/dist/logging/log-redactor.d.ts +22 -1
- package/dist/logging/log-ring-buffer.d.ts +57 -57
- package/dist/logging/logging-gate.d.ts +69 -25
- package/dist/logging/logging-gate.singleton.d.ts +12 -1
- package/dist/logging/partitioned-log-buffer.d.ts +161 -161
- package/dist/logging/scoped-logger.d.ts +14 -14
- package/dist/network/network-quality.d.ts +8 -8
- package/dist/notification/notification-service.d.ts +37 -37
- package/dist/notification/toast-service.d.ts +18 -18
- package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
- package/dist/pipeline/pipeline-runner.d.ts +6 -6
- package/dist/pipeline/pipeline-validator.d.ts +8 -8
- package/dist/process/proc-stat.d.ts +51 -51
- package/dist/process/resource-monitor.d.ts +19 -19
- package/dist/python/python-env-manager.d.ts +10 -10
- package/dist/repl/interfaces.d.ts +21 -21
- package/dist/repl/repl-engine.d.ts +6 -6
- package/dist/storage/fs-storage-backend.d.ts +35 -35
- package/dist/storage/storage-location-manager.d.ts +21 -21
- package/dist/storage/storage-manager.d.ts +68 -68
- package/dist/tls/boot-tls.d.ts +24 -24
- package/dist/tls/cert-evaluation.d.ts +25 -25
- package/dist/tls/cert-identity.d.ts +39 -39
- package/dist/tls/cert-issue.d.ts +37 -17
- package/dist/tls/cert-manager.d.ts +86 -84
- package/dist/tls/https-listener.d.ts +16 -16
- package/dist/tls/index.d.ts +8 -8
- package/dist/tls/tls-actions.d.ts +18 -18
- package/dist/tls/tls-status.d.ts +15 -15
- package/dist/tls/uploaded-cert.d.ts +9 -9
- package/package.json +9 -3
|
@@ -1,113 +1,155 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Per-device event rings — the history a single camera's Events panel reads.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. The retaining bus keeps ONE global ring
|
|
5
|
+
* (`SharedBusState.recent`, {@link MAX_RECENT_EVENTS}). That ring is a COUNT,
|
|
6
|
+
* not a window, and it is shared by the whole fleet, so a quiet camera is
|
|
7
|
+
* evicted by its 31 noisy siblings long before the operator opens its panel.
|
|
8
|
+
* Measured on the live hub: 16 events/s fleet-wide, 817 B average per event —
|
|
9
|
+
* a 10 000-slot global ring covers 10.4 minutes of FLEET traffic and can hold
|
|
10
|
+
* nothing at all for a camera that emitted an hour ago.
|
|
11
|
+
*
|
|
12
|
+
* WHAT THIS IS NOT. Still telemetry (D8/D11): in-memory, hub-main only, lost on
|
|
13
|
+
* restart, no table, no persistence. Nothing durable may be derived from it.
|
|
14
|
+
*
|
|
15
|
+
* SHAPE. One ring per device id, each holding two disjoint parts:
|
|
16
|
+
*
|
|
17
|
+
* - `history` — events of categories nobody declared a mirror. Bounded by
|
|
18
|
+
* {@link MAX_DEVICE_RING_EVENTS}. After coalescing the fleet emits ~1.1
|
|
19
|
+
* events/s (~3 000/day/camera), so 2 000 slots ≈ 16 h per camera — the day
|
|
20
|
+
* the operator asked for.
|
|
21
|
+
* - `mirrors` — the LATEST event per declared-mirror category
|
|
22
|
+
* ({@link MIRROR_CATEGORIES}). A mirror has no history, only a current
|
|
23
|
+
* value: the penultimate value of `device.state-changed` means nothing, and
|
|
24
|
+
* keeping it is what made 89 % of the fleet's traffic evict everything else.
|
|
25
|
+
* Bounded by the size of the declared set, i.e. a handful of slots.
|
|
26
|
+
*
|
|
27
|
+
* A category NOBODY classified is NOT coalesced. Keeping history is the safe
|
|
28
|
+
* default; silently collapsing an unclassified category would lose data nobody
|
|
29
|
+
* decided to lose.
|
|
30
|
+
*
|
|
31
|
+
* NO deviceId ⇒ NOT HERE. An event that carries no device attribution
|
|
32
|
+
* (`broker.message`, the Home Assistant state mirror, ~64 000/day, carries only
|
|
33
|
+
* `brokerId` / `subscriptionId` / `key`) is a first-class case: it is retained
|
|
34
|
+
* in the GLOBAL ring only and no device is invented for it. If attribution is
|
|
35
|
+
* added later, the event starts landing in a device ring with no change here.
|
|
36
|
+
*
|
|
37
|
+
* MEMORY. The retained `data` payload is capped
|
|
38
|
+
* ({@link MAX_RETAINED_DATA_BYTES}), not the event count — hub-main's heap is
|
|
39
|
+
* not a place to spend 52 MB on telemetry. A capped payload is REPLACED by a
|
|
40
|
+
* marked {@link TruncatedEventData} so a consumer can tell a short payload from
|
|
41
|
+
* a cut one.
|
|
42
|
+
*/
|
|
43
|
+
import type { SystemEvent } from "@camstack/types";
|
|
2
44
|
/** One declared mirror category and the reason it may be collapsed. */
|
|
3
45
|
export interface MirrorCategoryDeclaration {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
46
|
+
/** Exact event category. Not a glob — a mirror is declared one by one. */
|
|
47
|
+
readonly category: string;
|
|
48
|
+
/** Why the penultimate value of this category carries no information. */
|
|
49
|
+
readonly reason: string;
|
|
8
50
|
}
|
|
9
51
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
52
|
+
* The categories whose per-device history is ONE slot: the latest value.
|
|
53
|
+
*
|
|
54
|
+
* Declared here, with a reason each, on purpose — the alternative is `if`s
|
|
55
|
+
* scattered over the delivery path, and nobody can then answer "what does this
|
|
56
|
+
* system collapse, and who decided?".
|
|
57
|
+
*
|
|
58
|
+
* Adding an entry DELETES history for that category. Add one only when the
|
|
59
|
+
* category is genuinely a state mirror (a snapshot of a current value), never
|
|
60
|
+
* because it is merely frequent — a frequent EDGE (a motion start, a crash)
|
|
61
|
+
* belongs in `RING_BUFFER_DENY_PATTERNS` or nowhere, not here.
|
|
62
|
+
*/
|
|
21
63
|
export declare const MIRROR_CATEGORIES: readonly MirrorCategoryDeclaration[];
|
|
22
64
|
/** The declared reason this category is a mirror, or `undefined` if unclassified. */
|
|
23
65
|
export declare function mirrorReason(category: string): string | undefined;
|
|
24
66
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
67
|
+
* Is this category declared a mirror? An unclassified category is NOT a mirror
|
|
68
|
+
* — the safe default is to keep its history.
|
|
69
|
+
*/
|
|
28
70
|
export declare function isMirrorCategory(category: string): boolean;
|
|
29
71
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export declare const MAX_DEVICE_RING_EVENTS =
|
|
72
|
+
* Non-mirror events retained per device. ~1.1 events/s fleet-wide after
|
|
73
|
+
* coalescing ⇒ ~3 000/day/camera ⇒ 2 000 ≈ 16 h.
|
|
74
|
+
*/
|
|
75
|
+
export declare const MAX_DEVICE_RING_EVENTS = 2e3;
|
|
34
76
|
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
77
|
+
* Cap on the retained `data` payload, in UTF-8 bytes. The COUNT is not what
|
|
78
|
+
* costs memory — 32 devices × 2 000 events × 817 B (measured average) ≈ 52 MB.
|
|
79
|
+
* Capping the payload brings the worst case to ≈ 26 MB and the realistic case
|
|
80
|
+
* far below it, since most events are already under the cap.
|
|
81
|
+
*/
|
|
40
82
|
export declare const MAX_RETAINED_DATA_BYTES = 256;
|
|
41
83
|
/** Bytes of the original JSON kept as a human-readable preview of a cut payload. */
|
|
42
84
|
export declare const TRUNCATED_PREVIEW_BYTES = 160;
|
|
43
85
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
86
|
+
* Devices tracked at once. Far above the fleet (32) — it exists so a bad
|
|
87
|
+
* deviceId stream cannot grow the map without bound. Eviction is
|
|
88
|
+
* least-recently-written.
|
|
89
|
+
*/
|
|
48
90
|
export declare const MAX_TRACKED_DEVICES = 512;
|
|
49
91
|
/** Marker key present on — and only on — a payload this module cut. */
|
|
50
92
|
export declare const TRUNCATED_DATA_KEY = "__truncated";
|
|
51
93
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
94
|
+
* What replaces a payload above {@link MAX_RETAINED_DATA_BYTES}. A consumer
|
|
95
|
+
* MUST be able to tell a short payload from a cut one, so the replacement says
|
|
96
|
+
* so explicitly rather than silently shipping a prefix.
|
|
97
|
+
*/
|
|
56
98
|
export interface TruncatedEventData extends Record<string, unknown> {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
99
|
+
readonly __truncated: true;
|
|
100
|
+
/** Size of the original JSON payload, or `null` when it could not be measured. */
|
|
101
|
+
readonly __originalBytes: number | null;
|
|
102
|
+
/** First {@link TRUNCATED_PREVIEW_BYTES} characters of the original JSON. */
|
|
103
|
+
readonly __preview: string;
|
|
62
104
|
}
|
|
63
105
|
/** Is this the marked replacement of a cut payload? */
|
|
64
106
|
export declare function isTruncatedEventData(data: Record<string, unknown>): data is TruncatedEventData;
|
|
65
107
|
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
108
|
+
* The event as it should be RETAINED: unchanged when its payload is within the
|
|
109
|
+
* cap, otherwise a NEW event whose `data` is the marked replacement. The
|
|
110
|
+
* argument is never mutated — the same object is still live on the fan-out path
|
|
111
|
+
* and in the global ring.
|
|
112
|
+
*/
|
|
71
113
|
export declare function capEventData(event: SystemEvent): SystemEvent;
|
|
72
114
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
115
|
+
* The device this event is about, or `undefined` when it is about no device.
|
|
116
|
+
*
|
|
117
|
+
* Same rule as `matchesEventFilter` — `source.deviceId`, or `source.id` when
|
|
118
|
+
* the source IS a device — so a read filtered by `deviceId` and a read served
|
|
119
|
+
* from that device's ring agree on which events belong to it. A non-numeric
|
|
120
|
+
* device source id yields `undefined` rather than `NaN`: an unattributable
|
|
121
|
+
* event must never become a bucket of its own.
|
|
122
|
+
*/
|
|
81
123
|
export declare function eventDeviceId(event: SystemEvent): number | undefined;
|
|
82
124
|
interface DeviceRing {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
125
|
+
/** Non-mirror events, oldest first, bounded by {@link MAX_DEVICE_RING_EVENTS}. */
|
|
126
|
+
readonly history: SystemEvent[];
|
|
127
|
+
/** Latest event per declared-mirror category. */
|
|
128
|
+
readonly mirrors: Map<string, SystemEvent>;
|
|
87
129
|
}
|
|
88
130
|
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
131
|
+
* Every device's ring. Insertion order is least-recently-written first, which
|
|
132
|
+
* is what {@link MAX_TRACKED_DEVICES} evicts by.
|
|
133
|
+
*/
|
|
92
134
|
export interface DeviceEventRings {
|
|
93
|
-
|
|
135
|
+
readonly byDevice: Map<number, DeviceRing>;
|
|
94
136
|
}
|
|
95
137
|
export declare function createDeviceEventRings(): DeviceEventRings;
|
|
96
138
|
/**
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
139
|
+
* Retain `event` in its device's ring, with its payload capped.
|
|
140
|
+
*
|
|
141
|
+
* Returns the device it was filed under, or `undefined` when the event names no
|
|
142
|
+
* device — the caller has already retained it in the global ring and nothing
|
|
143
|
+
* more happens here. No device is fabricated.
|
|
144
|
+
*/
|
|
103
145
|
export declare function recordDeviceEvent(rings: DeviceEventRings, event: SystemEvent): number | undefined;
|
|
104
146
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
147
|
+
* Everything retained for one device, oldest first — history merged with the
|
|
148
|
+
* current value of each mirror, ordered by timestamp so the caller's `-limit`
|
|
149
|
+
* slice means the same thing it means on the global ring.
|
|
150
|
+
*
|
|
151
|
+
* An unknown device yields `[]`: unknown is the truth about a camera that has
|
|
152
|
+
* emitted nothing since this process started.
|
|
153
|
+
*/
|
|
112
154
|
export declare function getDeviceRecent(rings: DeviceEventRings, deviceId: number): readonly SystemEvent[];
|
|
113
155
|
export {};
|
|
@@ -1,186 +1,198 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Shared event-bus core — pure in-process fan-out logic with NO dependency on
|
|
3
|
+
* Moleculer or any transport layer.
|
|
4
|
+
*
|
|
5
|
+
* Consumed by:
|
|
6
|
+
* - `event-bus.ts` (Moleculer broker-backed cluster bus)
|
|
7
|
+
* - `uds-event-bus.ts` (UDS-backed child-process bus, C1)
|
|
8
|
+
*
|
|
9
|
+
* Keeping this module transport-free means the UDS bus can reuse every piece
|
|
10
|
+
* of logic (deny-list, subscriber map, filter semantics) without pulling in
|
|
11
|
+
* Moleculer types.
|
|
12
|
+
*/
|
|
13
|
+
import type { EventFilter, SystemEvent } from "@camstack/types";
|
|
14
|
+
import type { DeviceEventRings } from "./device-event-ring.js";
|
|
3
15
|
export interface SubscriberEntry {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
/** Original filter — kept whole so non-category dimensions are honoured per-event. */
|
|
17
|
+
readonly filter: EventFilter | string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Pre-computed category pattern for the cheap pre-filter — the FIRST of
|
|
20
|
+
* {@link extractCategoryPatterns} when the filter names several. Diagnostic
|
|
21
|
+
* only: the authority on which keys an entry occupies is the handler map
|
|
22
|
+
* itself, written by {@link registerSubscriber}.
|
|
23
|
+
*/
|
|
24
|
+
readonly categoryPattern: string;
|
|
25
|
+
readonly handler: (event: SystemEvent) => void;
|
|
14
26
|
}
|
|
15
27
|
export interface SharedBusState {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Subscribers indexed by category pattern. Each entry also carries its full
|
|
30
|
+
* filter so the subsequent `matchesEventFilter` call can reject events that
|
|
31
|
+
* match the category but not the scope (deviceId, addonId, …).
|
|
32
|
+
*/
|
|
33
|
+
readonly handlers: Map<string, Set<SubscriberEntry>>;
|
|
34
|
+
/**
|
|
35
|
+
* In-memory recent-events buffer. The deny-list below filters out
|
|
36
|
+
* high-frequency categories so the buffer only accumulates audit-grade
|
|
37
|
+
* lifecycle events.
|
|
38
|
+
*
|
|
39
|
+
* ONLY populated when `retainRecent` is true (the hub main process). On every
|
|
40
|
+
* other bus this array stays empty for the process's whole lifetime.
|
|
41
|
+
*
|
|
42
|
+
* Cleared on server restart (intentional — events are volatile by design).
|
|
43
|
+
*/
|
|
44
|
+
readonly recent: SystemEvent[];
|
|
45
|
+
/**
|
|
46
|
+
* Per-device rings BESIDE `recent[]` — not a replacement for it.
|
|
47
|
+
*
|
|
48
|
+
* `recent[]` is one global, count-bounded ring: a busy fleet evicts a quiet
|
|
49
|
+
* camera's events out of it long before an operator opens that camera's
|
|
50
|
+
* panel, and filtering a global ring by device cannot bring them back. A
|
|
51
|
+
* per-device ask is therefore answered from here instead
|
|
52
|
+
* (`getBrokerEventBus().getRecent({ deviceId })`), while an ask that names no
|
|
53
|
+
* device is still answered from `recent[]`.
|
|
54
|
+
*
|
|
55
|
+
* Populated under exactly the same conditions as `recent[]` (retaining bus,
|
|
56
|
+
* category not on the high-frequency deny-list), with mirror categories
|
|
57
|
+
* coalesced and payloads capped — see `device-event-ring.ts`. An event that
|
|
58
|
+
* names no device is retained in `recent[]` ONLY; no device is invented for
|
|
59
|
+
* it.
|
|
60
|
+
*/
|
|
61
|
+
readonly deviceRings: DeviceEventRings;
|
|
62
|
+
/**
|
|
63
|
+
* Whether this bus retains events in `recent[]` to back the
|
|
64
|
+
* `getRecent`/audit capability.
|
|
65
|
+
*
|
|
66
|
+
* Events are one-shot (fire-and-forget): ONLY the hub main process — the
|
|
67
|
+
* single process that serves `getRecent` — needs the registry, so ONLY its
|
|
68
|
+
* broker bus sets this true. Child addon runners and remote agents leave it
|
|
69
|
+
* false: they fan every event out to their local subscribers but retain
|
|
70
|
+
* nothing, so their heap can never accumulate an unbounded recent[] backlog.
|
|
71
|
+
*
|
|
72
|
+
* Mutable so the authoritative opt-in (the hub-main `getBrokerEventBus`
|
|
73
|
+
* caller) can upgrade a bus that a non-retaining caller happened to create
|
|
74
|
+
* first — see `getSharedBusState`. Never downgraded from true → false.
|
|
75
|
+
*/
|
|
76
|
+
retainRecent: boolean;
|
|
65
77
|
}
|
|
66
78
|
/**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
79
|
+
* @param retainRecent - `true` ONLY for the hub main broker bus (it serves
|
|
80
|
+
* `getRecent`). Defaults to `false` — the safe one-shot default for child
|
|
81
|
+
* runners + agents, which retain nothing.
|
|
82
|
+
*/
|
|
71
83
|
export declare function createSharedBusState(retainRecent?: boolean): SharedBusState;
|
|
72
84
|
export declare function matchesPattern(pattern: string, category: string): boolean;
|
|
73
85
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
86
|
+
* The FIRST category pattern of a filter.
|
|
87
|
+
*
|
|
88
|
+
* Kept for the diagnostic `SubscriberEntry.categoryPattern` field and for
|
|
89
|
+
* callers that genuinely want one string. It is NOT the registration path:
|
|
90
|
+
* a filter naming several categories must occupy several map keys, which is
|
|
91
|
+
* what {@link extractCategoryPatterns} + {@link registerSubscriber} do. Using
|
|
92
|
+
* this function to key a subscriber is the bug described on
|
|
93
|
+
* `extractCategoryPatterns`.
|
|
94
|
+
*/
|
|
83
95
|
export declare function extractCategoryPattern(filter: EventFilter | string): string;
|
|
84
96
|
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
* EVERY category pattern a filter asks for — the registration key set.
|
|
98
|
+
*
|
|
99
|
+
* `EventFilter.category` has always accepted an array, and until 2026-08-12
|
|
100
|
+
* the delivery path kept only `cat[0]`. Inside a forked runner that was not
|
|
101
|
+
* merely a local filter: `createUdsEventBus` reports its handler-map keys to
|
|
102
|
+
* the parent as this child's forwarding interest, so the categories that never
|
|
103
|
+
* became keys were never forwarded across the process boundary at all. A
|
|
104
|
+
* ten-category subscribe received one category, silently.
|
|
105
|
+
*
|
|
106
|
+
* Duplicates are collapsed so a filter that names the same category twice does
|
|
107
|
+
* not put the entry in one key twice.
|
|
108
|
+
*/
|
|
97
109
|
export declare function extractCategoryPatterns(filter: EventFilter | string): readonly string[];
|
|
98
110
|
/**
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
* Register one handler under every category pattern its filter names, and
|
|
112
|
+
* return the unsubscribe that removes it from all of them.
|
|
113
|
+
*
|
|
114
|
+
* The ONE place a subscriber enters `state.handlers` — both bus
|
|
115
|
+
* implementations (broker and UDS) call it, so "which keys does this
|
|
116
|
+
* subscriber occupy" has a single answer. An emptied key is DELETED rather
|
|
117
|
+
* than left as an empty `Set`: on a child bus the key set is what the parent
|
|
118
|
+
* is told to forward, and an empty set left behind pins the parent to forward
|
|
119
|
+
* a category nobody wants.
|
|
120
|
+
*
|
|
121
|
+
* @param onKeysChanged - Called after the key set may have changed (both on
|
|
122
|
+
* registration and on unsubscribe), for buses that mirror their key set
|
|
123
|
+
* somewhere — the UDS child's parent report, the broker's local-interest
|
|
124
|
+
* surface. Receives the patterns this call touched.
|
|
125
|
+
*/
|
|
114
126
|
export declare function registerSubscriber(state: SharedBusState, filter: EventFilter | string, handler: (event: SystemEvent) => void, onKeysChanged?: (patterns: readonly string[], added: boolean) => void): () => void;
|
|
115
127
|
/**
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
128
|
+
* Match an event against the full `EventFilter`. The Map-keyed subscribe path
|
|
129
|
+
* only handles the category pattern (deciding which handler set to fan out to);
|
|
130
|
+
* this function applies the remaining scope dimensions (`agentId`, `addonId`,
|
|
131
|
+
* `deviceId`, `source`, `since`) so per-device / per-addon subscribers don't
|
|
132
|
+
* receive sibling events.
|
|
133
|
+
*/
|
|
122
134
|
export declare function matchesEventFilter(event: SystemEvent, filter: EventFilter | string | undefined): boolean;
|
|
123
135
|
/**
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
136
|
+
* Categories filtered out of the `recent[]` ring buffer.
|
|
137
|
+
*
|
|
138
|
+
* High-frequency, low-value-for-the-operator categories — periodic metrics
|
|
139
|
+
* snapshots, per-frame inference traces, raw motion-mask dumps, model-download
|
|
140
|
+
* progress, etc. They still fan out to live subscribers (UI charts that
|
|
141
|
+
* explicitly listen for them), but do NOT enter the recent-events ring so
|
|
142
|
+
* meaningful events (motion / phase transitions / device lifecycle / addon
|
|
143
|
+
* lifecycle / recording / detection.event) survive in the last-N window without
|
|
144
|
+
* being displaced by per-frame noise.
|
|
145
|
+
*/
|
|
134
146
|
export declare const RING_BUFFER_DENY_PATTERNS: readonly string[];
|
|
135
147
|
/**
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
export declare const MAX_RECENT_EVENTS =
|
|
148
|
+
* Hard cap on the `recent[]` buffer size. Even audit-grade categories that
|
|
149
|
+
* are NOT on the deny-list (e.g. `device.state-changed`) must not accumulate
|
|
150
|
+
* without bound — this is the last-N window, not a durable log. Without this
|
|
151
|
+
* cap the buffer grew forever (~26 MB/h/process across every broker, agent,
|
|
152
|
+
* and UDS-child bus), filling the hub to 16 GB.
|
|
153
|
+
*/
|
|
154
|
+
export declare const MAX_RECENT_EVENTS = 1e3;
|
|
143
155
|
export declare function isHighFrequencyCategory(category: string): boolean;
|
|
144
156
|
/**
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
157
|
+
* Cross-node (Moleculer) inbound gate: an inbound cross-node event whose
|
|
158
|
+
* category no local subscriber on THIS node wants (the union of its children's
|
|
159
|
+
* declared patterns) is dropped and counted (`suppressed`). It always filters —
|
|
160
|
+
* the `CAMSTACK_MOLECULER_EVENT_FANOUT` shadow/broadcast modes were removed on
|
|
161
|
+
* 2026-10-06; the intra-host analogue is `LocalChildRegistry.childWantsEvent`.
|
|
162
|
+
*/
|
|
151
163
|
/**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
164
|
+
* A node's inbound-interest snapshot used by {@link crossNodeAcceptsCategory}.
|
|
165
|
+
* - `retainRecent` — the receiving bus retains events for `getRecent`/audit
|
|
166
|
+
* (the hub main process). Such a bus genuinely wants EVERY category (its
|
|
167
|
+
* interest set is the admin-ui live stream + recent[] ring), so it always
|
|
168
|
+
* fails OPEN — it never filters inbound cross-node events.
|
|
169
|
+
* - `interest` — the union of this node's local subscribers' declared category
|
|
170
|
+
* patterns (aggregated from its UDS children). `null` = undeclared / unknown
|
|
171
|
+
* (a legacy child, or no oracle installed) → fail OPEN (accept everything).
|
|
172
|
+
* An EMPTY array is a *declared* "wants nothing" and drops every category.
|
|
173
|
+
*/
|
|
162
174
|
export interface CrossNodeInterestSnapshot {
|
|
163
|
-
|
|
164
|
-
|
|
175
|
+
readonly retainRecent: boolean;
|
|
176
|
+
readonly interest: readonly string[] | null;
|
|
165
177
|
}
|
|
166
178
|
/**
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
179
|
+
* Does this node want to accept an inbound cross-node event in `category`?
|
|
180
|
+
* The receiving-side mirror of `LocalChildRegistry.childWantsEvent`:
|
|
181
|
+
* - a retaining bus (hub main) → always (it serves `getRecent` + admin-ui;
|
|
182
|
+
* its interest is genuinely everything).
|
|
183
|
+
* - undeclared interest (`null`) → always (fail-open).
|
|
184
|
+
* - else the declared union must match via `matchesPattern` — the SAME
|
|
185
|
+
* function the local subscriber map-key gate uses, giving delivery parity.
|
|
186
|
+
*/
|
|
175
187
|
export declare function crossNodeAcceptsCategory(snapshot: CrossNodeInterestSnapshot, category: string): boolean;
|
|
176
188
|
/**
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
189
|
+
* Deliver `event` to all matching local subscribers and — ONLY on a bus that
|
|
190
|
+
* opted into retention (`state.retainRecent`, i.e. the hub main process) and
|
|
191
|
+
* unless the event is high-frequency — append it to the bounded `recent[]`
|
|
192
|
+
* ring.
|
|
193
|
+
*
|
|
194
|
+
* On a non-retaining bus (child runners, agents) the retention block is skipped
|
|
195
|
+
* entirely: events are one-shot / fire-and-forget, still fanned out to local
|
|
196
|
+
* subscribers but never accumulated. `getRecent` on such a bus returns `[]`.
|
|
197
|
+
*/
|
|
186
198
|
export declare function deliverShared(state: SharedBusState, event: SystemEvent): void;
|