@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,196 +1,222 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The ROW WRITER of the hub runtime-state mirror (`DeviceStateMirror`): every
|
|
3
|
+
* write of a device's `__device-state:<id>` row goes through here — the
|
|
4
|
+
* debounced writer, a claim's write-through, the migration drain, the shutdown
|
|
5
|
+
* flush.
|
|
6
|
+
*
|
|
7
|
+
* Every row write of a device goes through ONE queue per device
|
|
8
|
+
* (`serialiseWrite`), so two writes are never in flight at once and each
|
|
9
|
+
* carries the memory of the moment it RUNS (`persistableFor`, supplied by the
|
|
10
|
+
* mirror). What is believed to be on disk (`lastPersisted`) is the baseline of
|
|
11
|
+
* the effective-change gate. A migration HOLDS the writer off two rows while it
|
|
12
|
+
* swaps them (`holdDiskWrites`).
|
|
13
|
+
*
|
|
14
|
+
* Extracted from `device-state-mirror.ts` (D663 final review I-2) — the mirror
|
|
15
|
+
* owns memory and the merge; this owns what reaches the row, and when.
|
|
16
|
+
*
|
|
17
|
+
* ── Never write a row this process has not READ (D677) ────────────────────
|
|
18
|
+
* A row write REPLACES the whole row. So every write path — debounced,
|
|
19
|
+
* write-through, drain, shutdown flush — first makes sure the device's row was
|
|
20
|
+
* read into memory (`readRowFirst`, the mirror's single-flight `fill` seed:
|
|
21
|
+
* memory wins per cap, the row fills the gaps). A read that fails writes
|
|
22
|
+
* NOTHING and is logged once per episode with `tags.deviceId`. A write that
|
|
23
|
+
* would still drop a cap the stored row holds is logged at warn, by name: the
|
|
24
|
+
* boot race that did exactly that was silent since at least 09-18 (159 shrinks, 15
|
|
25
|
+
* cameras, 65 of 82 hub restarts).
|
|
26
|
+
*/
|
|
27
|
+
import type { IScopedLogger } from "@camstack/types";
|
|
28
|
+
import type { DeviceManagerSettings } from "./device-meta-store.js";
|
|
29
|
+
import { MigrationRefusedError } from "./migration-refused.js";
|
|
30
|
+
import { type RuntimeStatePolicyLookup } from "./runtime-state-persist-gate.js";
|
|
5
31
|
/** A device's row as it may reach disk: cap name → persistable slice (plus `$owned`). */
|
|
6
32
|
export type PersistableRow = Record<string, Record<string, unknown>>;
|
|
7
33
|
/** Which path wrote (or tried to write) a row — named on every line it logs. */
|
|
8
|
-
export type RowWritePath =
|
|
34
|
+
export type RowWritePath = "debounced" | "shutdown-flush" | "drain" | "claim" | "release";
|
|
9
35
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
36
|
+
* A write-through refused because the device's row could not be read first
|
|
37
|
+
* (D677). Nothing was written; the caller rolls its memory change back.
|
|
38
|
+
*/
|
|
13
39
|
export declare class RuntimeStateRowUnreadError extends Error {
|
|
14
|
-
|
|
15
|
-
|
|
40
|
+
readonly deviceId: number;
|
|
41
|
+
constructor(deviceId: number);
|
|
16
42
|
}
|
|
17
43
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
44
|
+
* The drain before a migration could not vouch for a device's row. Nothing has
|
|
45
|
+
* moved yet, so it is a {@link MigrationRefusedError}: the migration refuses
|
|
46
|
+
* and restores both cameras' switches.
|
|
47
|
+
*/
|
|
22
48
|
export declare class RuntimeStateDrainError extends MigrationRefusedError {
|
|
23
|
-
|
|
24
|
-
|
|
49
|
+
readonly deviceId: number;
|
|
50
|
+
constructor(deviceId: number, reason: string, options?: ErrorOptions);
|
|
25
51
|
}
|
|
26
52
|
/** A migration's hold on the debounced writer (`holdDiskWrites`). */
|
|
27
53
|
export interface MirrorWriteHold {
|
|
28
|
-
|
|
29
|
-
|
|
54
|
+
/** Let the writer back onto the rows; re-arms it so the row converges to memory. */
|
|
55
|
+
readonly release: () => void;
|
|
30
56
|
}
|
|
31
57
|
/** What the writer needs from the mirror that owns it. */
|
|
32
58
|
export interface MirrorRowWriterDeps {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
59
|
+
readonly logger: IScopedLogger;
|
|
60
|
+
/** Per-cap durability + volatile-field policy (D4). */
|
|
61
|
+
readonly policyFor: RuntimeStatePolicyLookup;
|
|
62
|
+
/** The device's row as memory holds it NOW — taken when a write RUNS. */
|
|
63
|
+
readonly persistableFor: (deviceId: number) => PersistableRow;
|
|
64
|
+
/** The device's row was read into memory in this process (D677). */
|
|
65
|
+
readonly isRowRead: (deviceId: number) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Read the row into memory — single-flight, `fill` (memory wins per cap).
|
|
68
|
+
* Rejects when the row cannot be read; memory is then unchanged.
|
|
69
|
+
*/
|
|
70
|
+
readonly readRowFirst: (deviceId: number, settings: DeviceManagerSettings) => Promise<void>;
|
|
45
71
|
}
|
|
46
72
|
export declare class MirrorRowWriter {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
73
|
+
private readonly deps;
|
|
74
|
+
static readonly RUNTIME_STATE_DEBOUNCE_MS = 1e3;
|
|
75
|
+
/** Ceiling of the re-arm backoff while a device's row cannot be read (D677, D3). */
|
|
76
|
+
static readonly UNREAD_REARM_MAX_MS = 6e4;
|
|
77
|
+
/** The re-arm delay after `refusals` consecutive unread refusals: 1 s, 2 s, 4 s … capped at 60 s. */
|
|
78
|
+
static unreadRearmDelayMs(refusals: number): number;
|
|
79
|
+
/**
|
|
80
|
+
* Per-device disk-write debouncer for runtime-state. `setCapSlice`
|
|
81
|
+
* updates the in-memory mirror synchronously and emits the change
|
|
82
|
+
* event immediately, but the disk write is coalesced.
|
|
83
|
+
*/
|
|
84
|
+
private readonly runtimeStateDebounce;
|
|
85
|
+
/**
|
|
86
|
+
* Devices whose debounced writer is HELD off the row — a migration is
|
|
87
|
+
* swapping it (`holdDiskWrites`). A change while held stays in memory only.
|
|
88
|
+
*/
|
|
89
|
+
private readonly writesHeld;
|
|
90
|
+
/** Held devices a durable change was scheduled for — what `release` re-arms. */
|
|
91
|
+
private readonly heldDirty;
|
|
92
|
+
/**
|
|
93
|
+
* What is believed to be ON DISK for each device — the persistable projection
|
|
94
|
+
* of the last blob actually written (or read at seed time). The
|
|
95
|
+
* effective-change gate compares against THIS, not against the previous
|
|
96
|
+
* mirror state: two clock-only ticks in a row must not add up to a write just
|
|
97
|
+
* because each was compared with its immediate predecessor.
|
|
98
|
+
*/
|
|
99
|
+
private readonly lastPersisted;
|
|
100
|
+
/**
|
|
101
|
+
* Per-device count of writes the effective-change gate skipped since the last
|
|
102
|
+
* real one. Reported on the next write that DOES happen, so the log says how
|
|
103
|
+
* much churn the gate absorbed instead of saying nothing at all — a branch
|
|
104
|
+
* that drops work silently reads as "never happened".
|
|
105
|
+
*/
|
|
106
|
+
private readonly skippedSinceWrite;
|
|
107
|
+
/** Devices whose unreadable-row refusal is already logged — once per episode. */
|
|
108
|
+
private readonly rowUnreadLogged;
|
|
109
|
+
constructor(deps: MirrorRowWriterDeps);
|
|
110
|
+
/** What is believed to be on the device's row; undefined before any read or write. */
|
|
111
|
+
persisted(deviceId: number): PersistableRow | undefined;
|
|
112
|
+
/** Record what the row now holds — a write that landed, or a row just read. */
|
|
113
|
+
markPersisted(deviceId: number, row: PersistableRow): void;
|
|
114
|
+
/** A migration holds the writer off this device's row right now. */
|
|
115
|
+
isHeld(deviceId: number): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Chain a row write behind whatever is in flight for the device. Returns the
|
|
118
|
+
* write's own promise (it may reject, to its caller); the queue tail never
|
|
119
|
+
* rejects and clears itself once it is the last one out.
|
|
120
|
+
*/
|
|
121
|
+
serialiseWrite<T>(deviceId: number, task: () => Promise<T>): Promise<T>;
|
|
122
|
+
private slotFor;
|
|
123
|
+
/** Arm the writer for a durable change, or remember it for `release` while a migration holds the device. */
|
|
124
|
+
armOrHold(deviceId: number, settings: DeviceManagerSettings): void;
|
|
125
|
+
/**
|
|
126
|
+
* Debounced disk writer, behind two gates.
|
|
127
|
+
*
|
|
128
|
+
* GATE — DURABILITY: a change to a `durability: 'session'` cap never even
|
|
129
|
+
* arms the timer. That is where the fleet's write rate goes: `audio-metrics`
|
|
130
|
+
* and `zone-analytics` are ~90 % of the offered 12–19 writes/s, they change
|
|
131
|
+
* genuinely every second, and their restored value is worthless.
|
|
132
|
+
*
|
|
133
|
+
* GATE — EFFECTIVE CHANGE (at flush): the persistable blob is compared with
|
|
134
|
+
* what is believed to be on disk, ignoring the clock fields each cap declared
|
|
135
|
+
* volatile. `battery` wrote its blob 526 times in 25 minutes without one
|
|
136
|
+
* percentage moving; this is the gate that turns those into one write.
|
|
137
|
+
*
|
|
138
|
+
* The blob is read from the live mirror at flush time, so the disk picture is
|
|
139
|
+
* always the latest state — no risk of writing a stale snapshot.
|
|
140
|
+
*/
|
|
141
|
+
schedule(deviceId: number, settings: DeviceManagerSettings, changedCap: string): void;
|
|
142
|
+
/** Arm the debounce timer; at fire, queue a write of the live blob unless disk already has it. */
|
|
143
|
+
private armDiskWrite;
|
|
144
|
+
/**
|
|
145
|
+
* Forget a removed device: cancel its armed write, await one in flight, and
|
|
146
|
+
* drop its baseline and counters — nothing writes its row after this.
|
|
147
|
+
*/
|
|
148
|
+
forget(deviceId: number): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* The row is in memory, or is read now (D677). False when the read failed:
|
|
151
|
+
* the caller writes nothing. Logged once per episode, tagged; the episode
|
|
152
|
+
* ends at the next successful read.
|
|
153
|
+
*/
|
|
154
|
+
private rowReadOrRefuse;
|
|
155
|
+
/**
|
|
156
|
+
* The ONE call of `writeDeviceRuntimeState`. A blob that lacks a cap the
|
|
157
|
+
* stored row holds is written (memory is the authority once the row was
|
|
158
|
+
* read) but never silently: the dropped caps are named at warn (D677).
|
|
159
|
+
* `$owned` is excluded — a release that empties it is the claim path's own
|
|
160
|
+
* logged business.
|
|
161
|
+
*/
|
|
162
|
+
private writeRow;
|
|
163
|
+
/**
|
|
164
|
+
* A claim's write-through (D663): queued behind the device's writes, the row
|
|
165
|
+
* read first, the blob taken when it runs. Rejects with
|
|
166
|
+
* {@link RuntimeStateRowUnreadError} when the row cannot be read, or with the
|
|
167
|
+
* write's own error; resolves to what landed.
|
|
168
|
+
*/
|
|
169
|
+
writeThroughRow(deviceId: number, settings: DeviceManagerSettings, path: RowWritePath): Promise<PersistableRow>;
|
|
170
|
+
/**
|
|
171
|
+
* The debounced write itself: the row read first (D677), then the blob as
|
|
172
|
+
* memory holds it NOW, behind the effective-change gate. Never rejects. An
|
|
173
|
+
* unreadable row writes nothing; the debounced path re-arms with a backoff
|
|
174
|
+
* (1 s doubling to 60 s — never a 1 Hz loop, D3), and the armed timer is
|
|
175
|
+
* what a migration drain sees as owed, so a row that has become readable
|
|
176
|
+
* drains normally. The shutdown flush does not re-arm.
|
|
177
|
+
*/
|
|
178
|
+
private writeLiveBlob;
|
|
179
|
+
/** Re-arm an unread refusal with its backoff, or remember it for `release` while held. */
|
|
180
|
+
private rearmAfterUnread;
|
|
181
|
+
/**
|
|
182
|
+
* Hold the debounced writer off these devices' rows while a migration swaps
|
|
183
|
+
* them (D663 re-review N-6). Resolves once each device is DRAINED: a write
|
|
184
|
+
* still in its debounce window is written now (it is this hardware's latest
|
|
185
|
+
* state, and the swap then carries it to the right number), and a write
|
|
186
|
+
* already in flight has landed. Until `release`, nothing the writer does
|
|
187
|
+
* reaches these rows — a blob read before the swap and written after it would
|
|
188
|
+
* put the other box's state back under the number, and make it the baseline.
|
|
189
|
+
*
|
|
190
|
+
* Only what the writer already had pending is written — never memory
|
|
191
|
+
* wholesale, which for a row nobody read would overwrite it with a partial
|
|
192
|
+
* picture. `release` re-arms the writer for a device changed while held:
|
|
193
|
+
* after the migration's `replace` reseed memory equals the row and nothing
|
|
194
|
+
* is written; after a failed swap the row converges to memory.
|
|
195
|
+
*
|
|
196
|
+
* The migration must not proceed over a row that is not what memory says it
|
|
197
|
+
* is. So a drain write that FAILS, and equally a write that was in flight and
|
|
198
|
+
* FAILED (ruling I-2 — awaiting it is not the same as it landing), release
|
|
199
|
+
* the hold, log the device and reject with a {@link RuntimeStateDrainError};
|
|
200
|
+
* the owed write is re-armed on release.
|
|
201
|
+
*
|
|
202
|
+
* One hold per device at a time: `writesHeld` is a set, not a refcount, so a
|
|
203
|
+
* second overlapping hold would be released by the first. Safe because the
|
|
204
|
+
* only caller is `migrateDevice`, serialised by `migrationGuard` and the meta
|
|
205
|
+
* write lock; a new caller needs a refcount first.
|
|
206
|
+
*/
|
|
207
|
+
holdDiskWrites(deviceIds: readonly number[], settings: DeviceManagerSettings): Promise<MirrorWriteHold>;
|
|
208
|
+
/** Cancel the timer, await the write in flight, then write (queued) what is not yet on disk. */
|
|
209
|
+
private drainDiskWrite;
|
|
210
|
+
/** A drain that cannot vouch for the row: still owed (re-armed on release), logged, refused. */
|
|
211
|
+
private refuseDrain;
|
|
212
|
+
/**
|
|
213
|
+
* True when `blob` differs from what is believed to be on disk only in fields
|
|
214
|
+
* the owning caps declared volatile. Counts the skip so the next real write
|
|
215
|
+
* can report how much churn was absorbed.
|
|
216
|
+
*/
|
|
217
|
+
private isAlreadyPersisted;
|
|
218
|
+
/** Flush every pending debounced disk write (graceful shutdown). Clears the
|
|
219
|
+
* debounce slots after awaiting in-flight + scheduled writes so shutdown is
|
|
220
|
+
* lossless. */
|
|
221
|
+
flushPendingWrites(settings: DeviceManagerSettings | undefined): Promise<void>;
|
|
196
222
|
}
|
|
@@ -1,41 +1,65 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* `recording-onboard` — server-side `ConfigUISchema` builder + form-patch
|
|
3
|
+
* parser. Sibling of `day-night-config-schema.ts`, registered against the
|
|
4
|
+
* `recording-onboard` builderId in `device-config-contribution.ts`.
|
|
5
|
+
*
|
|
6
|
+
* Field keys use the `recordingOnboard_<prop>` prefix so a flat form
|
|
7
|
+
* patch can be re-parsed by {@link parseRecordingOnboardFormPatch}.
|
|
8
|
+
*
|
|
9
|
+
* Two deliberate choices:
|
|
10
|
+
*
|
|
11
|
+
* - **The schedule is ONE field**, an `editable-array` of windows,
|
|
12
|
+
* not a field per trigger per day. The device-manager save path has
|
|
13
|
+
* a single-field entry point (`updateDeviceField`), so a patch may
|
|
14
|
+
* legitimately carry one key; a schedule spread over many keys could
|
|
15
|
+
* not be reassembled from such a patch, and reassembling it from a
|
|
16
|
+
* stale mirror is exactly the second-authority failure D62 forbids.
|
|
17
|
+
* One key means the value that arrives is always complete.
|
|
18
|
+
*
|
|
19
|
+
* - **Every field is rendered on every camera**, and one this camera
|
|
20
|
+
* cannot write is rendered DISABLED with its reason in the
|
|
21
|
+
* description. Not hidden: a control that vanishes is
|
|
22
|
+
* indistinguishable from a feature CamStack never built, and
|
|
23
|
+
* disabled must not look like broken.
|
|
24
|
+
*/
|
|
25
|
+
import type { ConfigUISchema, RecordingOnboardOptions, RecordingOnboardStatus } from "@camstack/types";
|
|
2
26
|
export declare const RECORDING_ONBOARD_KEYS: {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
27
|
+
readonly storageBanner: string;
|
|
28
|
+
readonly volumes: string;
|
|
29
|
+
readonly tracks: string;
|
|
30
|
+
readonly enabled: string;
|
|
31
|
+
readonly overwriteWhenFull: string;
|
|
32
|
+
readonly preRecordSec: string;
|
|
33
|
+
readonly postRecordSec: string;
|
|
34
|
+
readonly segmentMinutes: string;
|
|
35
|
+
readonly windows: string;
|
|
12
36
|
};
|
|
13
37
|
/** Row keys inside the windows `editable-array`. Local, not prefixed. */
|
|
14
38
|
export declare const WINDOW_ROW_KEYS: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
39
|
+
readonly trigger: "trigger";
|
|
40
|
+
readonly day: "day";
|
|
41
|
+
readonly startMinute: "startMinute";
|
|
42
|
+
readonly endMinute: "endMinute";
|
|
19
43
|
};
|
|
20
44
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
* Build the `recording-onboard` `ConfigUISchema`.
|
|
46
|
+
*
|
|
47
|
+
* Never returns null. The storage read works on every camera in the
|
|
48
|
+
* fleet, so the section always has something true to say — and a camera
|
|
49
|
+
* CamStack has not reached yet says exactly that, rather than
|
|
50
|
+
* disappearing (D315: not-yet-known must not look like not-installed).
|
|
51
|
+
*/
|
|
28
52
|
export declare function buildRecordingOnboardConfigSchema(options: RecordingOnboardOptions, status: RecordingOnboardStatus | null): ConfigUISchema | null;
|
|
29
53
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
54
|
+
* Re-parse a flat `ConfigFormBuilder` patch into a
|
|
55
|
+
* `RecordingOnboardPatch`-shaped object.
|
|
56
|
+
*
|
|
57
|
+
* Returns only the keys the patch actually carried. The windows key is
|
|
58
|
+
* all-or-nothing on purpose: the field is a single editable array, so
|
|
59
|
+
* its presence means the operator submitted the COMPLETE window set. A
|
|
60
|
+
* row that cannot be read is DROPPED and the remaining set is still
|
|
61
|
+
* submitted — the provider then refuses or applies a set the operator
|
|
62
|
+
* can see in the form, rather than the form and the camera silently
|
|
63
|
+
* disagreeing about a row neither shows.
|
|
64
|
+
*/
|
|
41
65
|
export declare function parseRecordingOnboardFormPatch(patch: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
2
|
+
* A removed device stays removed.
|
|
3
|
+
*
|
|
4
|
+
* `removeDevice` deletes the row and clears the device's config store, but
|
|
5
|
+
* NOTHING stopped a write that was already on its way from putting the row
|
|
6
|
+
* back: `registerDevice` upserts unconditionally (`upsertRegistration` doubles
|
|
7
|
+
* as the INSERT), and `allocateDeviceId` mints a fresh row for any
|
|
8
|
+
* `(addonId, stableId)` it cannot find. A live device object whose runner had
|
|
9
|
+
* not finished tearing down — a probe retry, a reconcile, an accessory
|
|
10
|
+
* re-register — therefore resurrected the row it had just lost, with its
|
|
11
|
+
* construction-time name and type intact and its config GONE, because the
|
|
12
|
+
* config was cleared by the removal and `registerDevice` does not write config.
|
|
13
|
+
*
|
|
14
|
+
* That is exactly the shell device 614 ("Videocamera studio") was left in on
|
|
15
|
+
* 2026-09-05: row present, `config: {}`, `disabled: false`, `online: true`,
|
|
16
|
+
* failing its provider's Zod schema on `host`/`password` at every boot for a
|
|
17
|
+
* day. See D376.
|
|
18
|
+
*
|
|
19
|
+
* The fence is deliberately IN-MEMORY and short-lived. The race it closes is
|
|
20
|
+
* a teardown that is seconds wide, in the one process that owns the rows; a
|
|
21
|
+
* durable tombstone would be a second authority on "does this device exist"
|
|
22
|
+
* and this repo has been burned by those. A deliberate re-add of the same
|
|
23
|
+
* hardware (`createDevice` / `adoptDevice`) lifts the fence for that pair
|
|
24
|
+
* explicitly, so an operator is never told "no" for their own action.
|
|
25
|
+
*/
|
|
26
26
|
/** How long a removed identity refuses to be re-created. */
|
|
27
27
|
export declare const REMOVAL_FENCE_TTL_MS: number;
|
|
28
28
|
export interface RemovalFenceEntry {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
readonly deviceId: number;
|
|
30
|
+
readonly addonId: string;
|
|
31
|
+
readonly stableId: string;
|
|
32
|
+
readonly removedAt: number;
|
|
33
33
|
}
|
|
34
34
|
export interface RemovalFence {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
35
|
+
/** Record a completed removal. */
|
|
36
|
+
record(entry: Omit<RemovalFenceEntry, "removedAt">): void;
|
|
37
|
+
/** Is this numeric id fenced? */
|
|
38
|
+
isIdFenced(deviceId: number): RemovalFenceEntry | null;
|
|
39
|
+
/** Is this addon-facing identity fenced? */
|
|
40
|
+
isPairFenced(addonId: string, stableId: string): RemovalFenceEntry | null;
|
|
41
|
+
/** Lift the fence for one identity — an operator re-adding the device. */
|
|
42
|
+
lift(addonId: string, stableId: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* Run an operator-initiated create/adopt with the fence down.
|
|
45
|
+
*
|
|
46
|
+
* `createDevice` / `adoptDevice` do not know the stableId in advance — the
|
|
47
|
+
* provider derives it from the hardware — so re-adding a camera that was
|
|
48
|
+
* just deleted cannot lift a single pair. It suspends the whole fence for
|
|
49
|
+
* the duration of the operator's own action instead, which is the one case
|
|
50
|
+
* where "this identity was removed" must not win.
|
|
51
|
+
*/
|
|
52
|
+
runUnfenced<T>(fn: () => Promise<T>): Promise<T>;
|
|
53
53
|
}
|
|
54
54
|
export interface RemovalFenceOptions {
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
readonly ttlMs?: number;
|
|
56
|
+
readonly now?: () => number;
|
|
57
57
|
}
|
|
58
58
|
export declare function createRemovalFence(options?: RemovalFenceOptions): RemovalFence;
|