@camstack/system 1.2.390 → 1.2.391
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -100
- package/dist/builtins/system-config/system-config.addon.js +37 -33
- package/dist/builtins/system-config/system-config.addon.mjs +37 -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,64 +1,85 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The liveness invariants, as pure functions.
|
|
3
|
+
*
|
|
4
|
+
* On 2026-08-03 the hub ran for four hours with zero devices, zero published
|
|
5
|
+
* streams and zero recordings, and nothing said a word. Three separate defects
|
|
6
|
+
* caused it — optional chaining that no-oped, an `if` with no `else`, a JSON
|
|
7
|
+
* parse that returned `{}` — and each was silent at the point of failure. All
|
|
8
|
+
* three were fixed and a log line added at each. This module exists for the
|
|
9
|
+
* CLASS rather than the instances: assert what must be true of a working node,
|
|
10
|
+
* and report when it is not.
|
|
11
|
+
*
|
|
12
|
+
* **Every check here is unambiguous, on purpose.** An alert that fires on a
|
|
13
|
+
* quiet night is one an operator learns to ignore, and an ignored alert is
|
|
14
|
+
* worse than no alert. So "the pipeline emitted no tracks recently" is NOT a
|
|
15
|
+
* check — a camera can legitimately see nothing for hours — while "a camera
|
|
16
|
+
* that has been recording all day stopped producing segments" is: continuous
|
|
17
|
+
* recording produces segments whether or not anything moves.
|
|
18
|
+
*
|
|
19
|
+
* I/O lives in the addon; everything here is a function of facts, so the
|
|
20
|
+
* outage can be replayed in a test.
|
|
21
|
+
*/
|
|
22
|
+
import type { RecordingStatus } from "@camstack/types";
|
|
2
23
|
/** The recording mode a camera is running under, as `recording.getStatus` reports it. */
|
|
3
|
-
export type RecordingActiveMode = RecordingStatus[
|
|
24
|
+
export type RecordingActiveMode = RecordingStatus["activeMode"];
|
|
4
25
|
/** What the monitor learned about one camera this tick. */
|
|
5
26
|
export interface CameraFootage {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
readonly deviceId: number;
|
|
28
|
+
/**
|
|
29
|
+
* Operator-facing name. Prefer this in the finding message; the numeric id
|
|
30
|
+
* stays on `deviceId` for tags / stable finding ids.
|
|
31
|
+
*/
|
|
32
|
+
readonly name?: string;
|
|
33
|
+
readonly online: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* ms-epoch of the newest recorded segment within the lookback window, or
|
|
36
|
+
* `null` when the camera has produced NO footage in it.
|
|
37
|
+
*
|
|
38
|
+
* `null` means "this camera does not record" and is deliberately not a
|
|
39
|
+
* finding — it is what makes the check self-calibrating. Nothing has to be
|
|
40
|
+
* told which cameras are supposed to record: a camera that was recording and
|
|
41
|
+
* stopped is a fault, a camera that never records is a configuration.
|
|
42
|
+
*/
|
|
43
|
+
readonly lastSegmentMs: number | null;
|
|
44
|
+
/**
|
|
45
|
+
* The recording mode the camera runs under, asked only when it looks silent
|
|
46
|
+
* (`null` = not asked, the footage was recent). Silence is a fault ONLY for a
|
|
47
|
+
* `continuous` recorder: an `events` recorder that has seen nothing move is
|
|
48
|
+
* doing its job, and `off` is the operator's own switch. Seven events-mode
|
|
49
|
+
* cameras alerted for a whole quiet night on 2026-09-06.
|
|
50
|
+
*/
|
|
51
|
+
readonly activeMode: RecordingActiveMode | null;
|
|
31
52
|
}
|
|
32
53
|
export interface LivenessFacts {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
54
|
+
readonly nowMs: number;
|
|
55
|
+
/** Every device the node knows about, cameras and accessories alike. */
|
|
56
|
+
readonly deviceCount: number;
|
|
57
|
+
readonly cameras: readonly CameraFootage[];
|
|
58
|
+
/** How long a recording camera may stay silent before it is a fault. */
|
|
59
|
+
readonly staleAfterMs: number;
|
|
39
60
|
}
|
|
40
61
|
export interface LivenessFinding {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Stable across ticks, so an ongoing fault UPDATES one alert instead of
|
|
64
|
+
* producing a new one every minute. Same contract as the kernel's
|
|
65
|
+
* `addon-load-failed:<packageName>` ids.
|
|
66
|
+
*/
|
|
67
|
+
readonly id: string;
|
|
68
|
+
readonly severity: "error" | "warning";
|
|
69
|
+
readonly title: string;
|
|
70
|
+
readonly message: string;
|
|
71
|
+
/** Present on per-camera findings. Always the numeric id. */
|
|
72
|
+
readonly deviceId?: number;
|
|
73
|
+
/** Operator name when known — alert surfaces prefer this over the id. */
|
|
74
|
+
readonly deviceName?: string;
|
|
54
75
|
}
|
|
55
76
|
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
77
|
+
* Evaluate every invariant against one tick's facts.
|
|
78
|
+
*
|
|
79
|
+
* Ordered most-fundamental first, and it STOPS at "no devices": when the node
|
|
80
|
+
* has nothing, every camera is also silent, and reporting twelve consequences
|
|
81
|
+
* of one cause is how an operator ends up reading none of them.
|
|
82
|
+
*/
|
|
62
83
|
export declare function evaluateLiveness(facts: LivenessFacts): readonly LivenessFinding[];
|
|
63
84
|
/** Every finding id this module can produce, for the recovery sweep. */
|
|
64
85
|
export declare function isLivenessFindingId(id: string): boolean;
|
|
@@ -1,41 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* liveness-monitor — the node states, out loud, when it has stopped working.
|
|
3
|
+
*
|
|
4
|
+
* On 2026-08-03 the hub ran for four hours with zero devices, zero published
|
|
5
|
+
* streams and zero recordings. Three separate defects caused it, each silent at
|
|
6
|
+
* the point of failure, and the operator found out by opening the viewer. Every
|
|
7
|
+
* one of those defects has since been fixed and given a log line — but a log
|
|
8
|
+
* line per known bug does not cover the next one. This addon covers the class:
|
|
9
|
+
* it asserts what must be true of a working node and reports when it is not.
|
|
10
|
+
*
|
|
11
|
+
* It emits `SystemLivenessFailed` / `SystemLivenessRecovered` on the event bus
|
|
12
|
+
* with a STABLE finding id, exactly like the kernel's addon-health monitor, so
|
|
13
|
+
* AlertCenter raises one persistent alert per fault and dismisses it on
|
|
14
|
+
* recovery instead of producing a stream of them. The same lines go to the log
|
|
15
|
+
* at ERROR, which is what makes them alertable in Loki.
|
|
16
|
+
*
|
|
17
|
+
* Deliberately hub-only and deliberately read-only: it observes through
|
|
18
|
+
* `ctx.api` and changes nothing. A monitor that can act is a monitor that can
|
|
19
|
+
* cause the outage it was meant to report — this repo has already stopped a
|
|
20
|
+
* hub that way once (the remedial-action watcher, 2026-07-30).
|
|
21
|
+
*/
|
|
22
|
+
import { BaseAddon, type ProviderRegistration } from "@camstack/types";
|
|
23
|
+
import { type LivenessFinding } from "./liveness-checks.js";
|
|
3
24
|
interface LivenessMonitorConfig extends Record<string, unknown> {
|
|
4
|
-
|
|
25
|
+
readonly staleAfterMs?: number;
|
|
5
26
|
}
|
|
6
27
|
export declare class LivenessMonitorAddon extends BaseAddon<LivenessMonitorConfig> {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
private tickTimer;
|
|
29
|
+
private startedAtMs;
|
|
30
|
+
/** Finding ids currently reported, so recovery can be detected and announced. */
|
|
31
|
+
private active;
|
|
32
|
+
constructor();
|
|
33
|
+
protected onInitialize(): Promise<ProviderRegistration[]>;
|
|
34
|
+
protected onShutdown(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* One evaluation. Public so a test or an operator-facing action can force it
|
|
37
|
+
* without waiting out the interval.
|
|
38
|
+
*/
|
|
39
|
+
tick(): Promise<readonly LivenessFinding[]>;
|
|
40
|
+
/** Read the facts through the cap surface. Changes nothing. */
|
|
41
|
+
private gather;
|
|
42
|
+
/**
|
|
43
|
+
* Newest segment for a camera, or null when it has produced none in a day.
|
|
44
|
+
*
|
|
45
|
+
* Two steps on purpose: the healthy case asks only for the recent window,
|
|
46
|
+
* which is a handful of ranges, and only a camera that looks silent pays for
|
|
47
|
+
* the 24-hour lookback that decides whether it records at all.
|
|
48
|
+
*/
|
|
49
|
+
private lastSegmentMs;
|
|
50
|
+
/**
|
|
51
|
+
* A camera nobody could read is NOT a camera with no footage.
|
|
52
|
+
*
|
|
53
|
+
* `null` here means "no claim", and `liveness-checks.ts` skips a camera with
|
|
54
|
+
* no claim — which is the safe direction. But a skip that says nothing is
|
|
55
|
+
* indistinguishable from a healthy tick, so the branch that drops the camera
|
|
56
|
+
* names it, per camera (D393, and CLAUDE.md's logging rule).
|
|
57
|
+
*/
|
|
58
|
+
private unreadable;
|
|
59
|
+
/** Announce new faults and recoveries; say nothing about an unchanged fault. */
|
|
60
|
+
private report;
|
|
40
61
|
}
|
|
41
62
|
export {};
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { IScopedLogger } from
|
|
2
|
-
import { AdminSeedOutcome, EnsureAdminOptions } from
|
|
1
|
+
import type { IScopedLogger } from "@camstack/types";
|
|
2
|
+
import { type AdminSeedOutcome, type EnsureAdminOptions } from "../../auth/user-manager.js";
|
|
3
3
|
/** The trigger's name, at the root of the node's data directory. */
|
|
4
4
|
export declare const ADMIN_PASSWORD_RESET_TRIGGER = "RESET_ADMIN_PASSWORD";
|
|
5
5
|
/** The file operations the boot step needs — injectable for tests. */
|
|
6
6
|
export interface TriggerFs {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
exists(filePath: string): boolean;
|
|
8
|
+
remove(filePath: string): void;
|
|
9
9
|
}
|
|
10
10
|
/** The slice of `UserManager` the boot step drives. */
|
|
11
11
|
export interface AdminAccountManager {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
ensureAdminExists(options?: EnsureAdminOptions): Promise<AdminSeedOutcome>;
|
|
13
|
+
hasPassword(username: string, password: string): Promise<boolean>;
|
|
14
14
|
}
|
|
15
15
|
export interface AdminAccountBootInput {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
readonly users: AdminAccountManager;
|
|
17
|
+
/** `ctx.nodeDataDir` — where the operator drops the trigger. */
|
|
18
|
+
readonly dataDir: string;
|
|
19
|
+
readonly fs: TriggerFs;
|
|
20
|
+
readonly logger: IScopedLogger;
|
|
21
21
|
}
|
|
22
22
|
export interface AdminAccountBootResult {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
readonly outcome: AdminSeedOutcome;
|
|
24
|
+
/** The admin still signs in with {@link FIRST_BOOT_ADMIN_PASSWORD}. */
|
|
25
|
+
readonly usesDefaultPassword: boolean;
|
|
26
26
|
}
|
|
27
27
|
export declare function reconcileAdminAccountAtBoot(input: AdminAccountBootInput): Promise<AdminAccountBootResult>;
|
|
@@ -1,22 +1,39 @@
|
|
|
1
|
-
import { AuthConfigReader } from '../../auth/auth-manager.js';
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
* The `AuthConfigReader` shim `local-auth` hands to its own `AuthManager`.
|
|
3
|
+
*
|
|
4
|
+
* WHY IT IS AN ALLOW-LIST AND STAYS ONE. `AuthConfigReader.get` is
|
|
5
|
+
* SYNCHRONOUS; `ctx.settings.getSection` is a promise over the hub's settings
|
|
6
|
+
* store. The addon therefore resolves the handful of paths its AuthManager
|
|
7
|
+
* actually consults ONCE, in `onInitialize`, and answers only those. The
|
|
8
|
+
* whitelist is not decoration: it is the list of values that were awaited, and
|
|
9
|
+
* a path outside it has no resolved value to return. Widening it means
|
|
10
|
+
* pre-resolving one more value here — never "let the addon read arbitrary host
|
|
11
|
+
* config", which it structurally cannot do anyway.
|
|
12
|
+
*
|
|
13
|
+
* `auth.tokenExpiry` was the path that fell off the end. It was declared,
|
|
14
|
+
* editable and mapped to the `auth` yml section, and this reader answered
|
|
15
|
+
* `undefined` for it, so this AuthManager always signed with the hardcoded
|
|
16
|
+
* fallback no matter what the operator set.
|
|
17
|
+
*/
|
|
18
|
+
import type { AuthConfigReader } from "../../auth/auth-manager.js";
|
|
19
|
+
/**
|
|
20
|
+
* The values `local-auth` pre-resolves before constructing its AuthManager.
|
|
21
|
+
*
|
|
22
|
+
* No credential is among them (D797): the session signing key lives in the
|
|
23
|
+
* keychain (`jwt-signing-key.ts`) and the first-boot admin is fixed
|
|
24
|
+
* (`admin` / `changeme`), so `auth.jwtSecret`, `auth.adminUsername` and
|
|
25
|
+
* `auth.adminPassword` are answered by nothing.
|
|
26
|
+
*/
|
|
10
27
|
export interface ResolvedAuthConfig {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Operator-configured session lifetime. `undefined` when the `auth` section
|
|
30
|
+
* carries no value — the signer then applies `DEFAULT_TOKEN_EXPIRY`, which
|
|
31
|
+
* is where the default belongs (one default, one place).
|
|
32
|
+
*/
|
|
33
|
+
readonly tokenExpiry: string | undefined;
|
|
17
34
|
}
|
|
18
35
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
36
|
+
* Every config path this reader can answer. Anything else resolves to
|
|
37
|
+
* `undefined` by construction — see the module docblock.
|
|
38
|
+
*/
|
|
22
39
|
export declare function createAuthConfigReader(resolved: ResolvedAuthConfig): AuthConfigReader;
|
|
@@ -1,83 +1,106 @@
|
|
|
1
|
-
import { SettingsStoreClient } from '@camstack/types';
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
* Auth-schema — typed SQL schemas for local-auth's collections.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the pattern used by pipeline-analytics (`event-store.ts`,
|
|
5
|
+
* `track-store.ts`): each addon owns its own schema, declared once
|
|
6
|
+
* in `onInitialize` via `store.declareCollection.mutate(...)`.
|
|
7
|
+
*
|
|
8
|
+
* Collection names (no namespace — these are global, single-tenant
|
|
9
|
+
* tables backing the auth layer):
|
|
10
|
+
* - users
|
|
11
|
+
* - api_keys
|
|
12
|
+
* - scoped_tokens
|
|
13
|
+
* - oauth_sessions
|
|
14
|
+
* - login_sessions, login_session_cutoffs (`login-session-manager.ts`)
|
|
15
|
+
* - admin_tokens (`admin-token-manager.ts`), auth_audit (`auth-audit-log.ts`)
|
|
16
|
+
*
|
|
17
|
+
* Schema migration: when the backend receives `declareCollection` for
|
|
18
|
+
* a name that already exists with a legacy `(id, data)` KV shape, the
|
|
19
|
+
* `ensureTable` helper drops the old table and recreates it. Existing
|
|
20
|
+
* data is wiped — `ensureAdminExists` re-seeds the admin from
|
|
21
|
+
* CAMSTACK_ADMIN_USER / CAMSTACK_ADMIN_PASS on the next boot (an empty
|
|
22
|
+
* table is a first boot).
|
|
23
|
+
*/
|
|
24
|
+
import type { SettingsStoreClient } from "@camstack/types";
|
|
25
|
+
/**
|
|
26
|
+
* @durable class=config owner=local-auth
|
|
27
|
+
* write="an operator creates a user, or `ensureAdminExists` seeds the configured
|
|
28
|
+
* admin on first boot (or resets its password on the operator's one-shot
|
|
29
|
+
* RESET_ADMIN_PASSWORD trigger); updated on scope, isAdmin and password edits"
|
|
30
|
+
* retention="none — a row goes only when an operator deletes the user. A
|
|
31
|
+
* `declareCollection` that adds a PK/UNIQUE/NOT-NULL-without-default column
|
|
32
|
+
* REBUILDS the table: every account is wiped and only the configured admin
|
|
33
|
+
* comes back on the next boot."
|
|
34
|
+
*/
|
|
12
35
|
export declare const USERS_COLLECTION = "users";
|
|
13
36
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
37
|
+
* @durable class=config owner=local-auth
|
|
38
|
+
* write="an operator mints an API key; `validateToken` rewrites `lastUsedAt` on
|
|
39
|
+
* every request the key authorises"
|
|
40
|
+
* retention="none — an explicit `revoke` is the only delete. API keys have no
|
|
41
|
+
* expiry column and no sweep, so a key lives until someone removes it (or the
|
|
42
|
+
* destructive `declareCollection` rebuild takes the table)."
|
|
43
|
+
*/
|
|
21
44
|
export declare const API_KEYS_COLLECTION = "api_keys";
|
|
22
45
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
46
|
+
* @durable class=config owner=local-auth
|
|
47
|
+
* write="an operator or the CLI mints a scoped token; `validate` fires
|
|
48
|
+
* `updateLastUsed` on every accepted call"
|
|
49
|
+
* retention="`revoke` deletes one. The daily sweep `reapExpired` drops rows past
|
|
50
|
+
* `expiresAt` — a NULL expiry is a deliberate never-expires token and BETWEEN
|
|
51
|
+
* never matches it. `cleanupOrphans` drops tokens owned by the legacy 'system'
|
|
52
|
+
* id or by a user that no longer exists."
|
|
53
|
+
*/
|
|
31
54
|
export declare const SCOPED_TOKENS_COLLECTION = "scoped_tokens";
|
|
32
55
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
56
|
+
* @durable class=ledger owner=local-auth
|
|
57
|
+
* write="one row per redeemed OAuth code — every completed account link through
|
|
58
|
+
* `oauthExchangeCode`; `touch` rewrites `lastUsedAt` on each refresh"
|
|
59
|
+
* retention="ONLY revoked rows are pruned: the daily sweep deletes sessions
|
|
60
|
+
* revoked more than OAUTH_REVOKED_RETENTION_MS (30 d) ago. An ACTIVE session
|
|
61
|
+
* has `revokedAt` NULL, never expires and is never swept — the table grows one
|
|
62
|
+
* row per login until an operator revokes the link."
|
|
63
|
+
*/
|
|
41
64
|
export declare const OAUTH_SESSIONS_COLLECTION = "oauth_sessions";
|
|
42
65
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
* TOTP enrollment table — split off from `users` to avoid the
|
|
67
|
+
* destructive drop-+-recreate migration `ensureTable` performs when a
|
|
68
|
+
* new column is added to a typed schema (see `sqlite-settings-backend.ts`).
|
|
69
|
+
*
|
|
70
|
+
* Lifecycle:
|
|
71
|
+
* - Setup: row inserted with `confirmedAt = null` and a fresh secret.
|
|
72
|
+
* - Confirm: a valid code from the secret flips `confirmedAt` to now().
|
|
73
|
+
* - Disable: the row is deleted (next setup starts fresh).
|
|
74
|
+
*
|
|
75
|
+
* "Enabled" means `confirmedAt != null`. A half-enrolled row (`confirmedAt
|
|
76
|
+
* = null`) is INACTIVE — `verifyTotp` returns false until confirmation.
|
|
77
|
+
*
|
|
78
|
+
* @durable class=config owner=local-auth
|
|
79
|
+
* write="`setup` inserts a fresh secret for the user (deleting any pending row
|
|
80
|
+
* first); `confirm` flips `confirmedAt` once a valid code proves possession"
|
|
81
|
+
* retention="`disable` deletes the row, and `setup` deletes before re-inserting.
|
|
82
|
+
* Nothing else prunes — deleting a USER does not cascade here, so their
|
|
83
|
+
* enrollment row outlives the account."
|
|
84
|
+
*/
|
|
62
85
|
export declare const USER_TOTP_COLLECTION = "user_totp";
|
|
63
86
|
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
* External sign-in identities linked to local users (D782): one row per
|
|
88
|
+
* `(provider, subject)` — the row id IS the identity, so one identity maps to
|
|
89
|
+
* one user by primary key. Written only by the identity's owner completing a
|
|
90
|
+
* "Link" flow from their profile (bound to their session).
|
|
91
|
+
*
|
|
92
|
+
* @durable class=config owner=local-auth
|
|
93
|
+
* write="`ExternalIdentityManager.link` when a signed-in user completes a
|
|
94
|
+
* link flow; `unlink` from the profile or the Users page"
|
|
95
|
+
* retention="`unlink` deletes one row; deleting the user deletes all of its
|
|
96
|
+
* rows (`deleteUser` → `removeAllForUser`). A row whose provider instance
|
|
97
|
+
* was renamed or removed stays, inert, until someone unlinks it."
|
|
98
|
+
*/
|
|
76
99
|
export declare const USER_EXTERNAL_IDENTITIES_COLLECTION = "user_external_identities";
|
|
77
100
|
/**
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
101
|
+
* Declare every auth collection with the typed schema. Called by
|
|
102
|
+
* `LocalAuthAddon.onInitialize` before constructing the per-collection
|
|
103
|
+
* managers. Idempotent — `declareCollection` is a no-op when the
|
|
104
|
+
* collection has already been declared (same shape).
|
|
105
|
+
*/
|
|
83
106
|
export declare function declareAuthSchema(store: SettingsStoreClient): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { LocalAuthAddon } from
|
|
1
|
+
export { LocalAuthAddon } from "./local-auth.addon.js";
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { SecretsAccess } from
|
|
1
|
+
import type { SecretsAccess } from "@camstack/types";
|
|
2
2
|
/** How often a locked keychain is asked again. */
|
|
3
|
-
export declare const SIGNING_KEY_RETRY_MS =
|
|
3
|
+
export declare const SIGNING_KEY_RETRY_MS = 3e4;
|
|
4
4
|
interface KeeperLogger {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
info(message: string, meta?: {
|
|
6
|
+
meta?: Record<string, unknown>;
|
|
7
|
+
}): void;
|
|
8
|
+
error(message: string, meta?: {
|
|
9
|
+
meta?: Record<string, unknown>;
|
|
10
|
+
}): void;
|
|
11
11
|
}
|
|
12
12
|
export interface JwtSigningKeyKeeperDeps {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
/** A keychain handle for owner `system`; `null` when this process has no keychain door. */
|
|
14
|
+
readonly secrets: SecretsAccess | null;
|
|
15
|
+
readonly logger: KeeperLogger;
|
|
16
|
+
readonly retryMs?: number;
|
|
17
17
|
}
|
|
18
18
|
export declare class JwtSigningKeyKeeper {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
private readonly deps;
|
|
20
|
+
private retryTimer;
|
|
21
|
+
private unsubscribe;
|
|
22
|
+
private stopped;
|
|
23
|
+
constructor(deps: JwtSigningKeyKeeperDeps);
|
|
24
|
+
start(): Promise<void>;
|
|
25
|
+
stop(): void;
|
|
26
|
+
private load;
|
|
27
|
+
private apply;
|
|
28
|
+
private scheduleRetry;
|
|
29
29
|
}
|
|
30
30
|
export {};
|