@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,85 +1,85 @@
|
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
2
|
+
* The composed picture as a buffer this addon owns.
|
|
3
|
+
*
|
|
4
|
+
* ## Why a canvas instead of ffmpeg's `overlay`
|
|
5
|
+
*
|
|
6
|
+
* `overlay` pairs its inputs BY PTS, and ffmpeg gives every input pts 0 at ITS
|
|
7
|
+
* OWN first frame. Two sources that joined at different moments therefore
|
|
8
|
+
* compose different moments, for the life of the child, with nothing to correct
|
|
9
|
+
* it. Measured on this hub at 4-5 s between two tiles, drifting over hours as
|
|
10
|
+
* the sources' key-frame phases slide through each other (0.5 s at 13:05, 3 s
|
|
11
|
+
* at 13:50 on the same pair, 2026-09-18).
|
|
12
|
+
*
|
|
13
|
+
* It is not reachable from a flag. `-use_wallclock_as_timestamps` re-times by
|
|
14
|
+
* ARRIVAL and wrecked the pacing instead (ten stalls over a second in an 18 s
|
|
15
|
+
* run, against none). `-copyts` changes nothing, because the broker re-bases
|
|
16
|
+
* each session — both restreams report `pts_time:0` — so there is no common
|
|
17
|
+
* timeline to trim against. Serving each dial from the newest key frame it
|
|
18
|
+
* already holds does not help either: those key frames are of different ages,
|
|
19
|
+
* and pts 0 still lands on whatever arrives first.
|
|
20
|
+
*
|
|
21
|
+
* A canvas has no pairing to get wrong. When the output tick fires, each
|
|
22
|
+
* rectangle holds whatever arrived last from its source, and the OUTPUT owns
|
|
23
|
+
* the clock. The gap is zero by construction rather than by tuning, and a cell
|
|
24
|
+
* that has produced nothing yet costs nothing — so the picture appears at once
|
|
25
|
+
* instead of waiting for the slowest source's first key frame. What such a cell
|
|
26
|
+
* shows is the seed the compositor blits in at construction
|
|
27
|
+
* (`grid-canvas-seed.ts`); `clear()` below is what it shows without one.
|
|
28
|
+
*
|
|
29
|
+
* ## Why yuv420p, and why everything here must be even
|
|
30
|
+
*
|
|
31
|
+
* yuv420p is the one pixel format every consumer of a CamStack profile reads,
|
|
32
|
+
* and a plane copy in it is a strided memcpy — no arithmetic per pixel, which
|
|
33
|
+
* is the whole reason compositing can be cheaper than the filter graph it
|
|
34
|
+
* replaces.
|
|
35
|
+
*
|
|
36
|
+
* Its chroma planes are half resolution in BOTH axes. So an odd origin or an
|
|
37
|
+
* odd size would put a tile's chroma half a sample off its luma, and the result
|
|
38
|
+
* is a tile that is subtly TINTED rather than visibly broken — the kind of
|
|
39
|
+
* fault that survives review. Every rectangle is therefore required to be even,
|
|
40
|
+
* and a blit that is not is refused rather than rounded: rounding would move a
|
|
41
|
+
* cell the operator placed.
|
|
42
|
+
*/
|
|
43
43
|
export interface PixelSize {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
readonly width: number;
|
|
45
|
+
readonly height: number;
|
|
46
46
|
}
|
|
47
47
|
export interface PixelOrigin {
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
readonly x: number;
|
|
49
|
+
readonly y: number;
|
|
50
50
|
}
|
|
51
51
|
/** Bytes one yuv420p frame of this size occupies. */
|
|
52
52
|
export declare function yuv420pSize(width: number, height: number): number;
|
|
53
53
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
* Round DOWN to even.
|
|
55
|
+
*
|
|
56
|
+
* Down and not nearest: a tile that rounded UP would claim a row of samples the
|
|
57
|
+
* decoder was never asked to produce, and the copy would either overrun or be
|
|
58
|
+
* refused at the moment the picture is wanted.
|
|
59
|
+
*/
|
|
60
60
|
export declare function evenDown(value: number): number;
|
|
61
61
|
export declare class GridCanvas {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
62
|
+
readonly width: number;
|
|
63
|
+
readonly height: number;
|
|
64
|
+
readonly buffer: Buffer;
|
|
65
|
+
private readonly lumaBytes;
|
|
66
|
+
private readonly chromaBytes;
|
|
67
|
+
constructor(width: number, height: number);
|
|
68
|
+
/**
|
|
69
|
+
* Legible black — Y 0, chroma 128 (neutral).
|
|
70
|
+
*
|
|
71
|
+
* `Buffer.alloc` already zeroes, and zeroed CHROMA is not black: it is a
|
|
72
|
+
* strong green. A cell nobody has filled yet has to look like an empty cell,
|
|
73
|
+
* not like a fault.
|
|
74
|
+
*/
|
|
75
|
+
clear(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Copy one decoded tile in at `origin`.
|
|
78
|
+
*
|
|
79
|
+
* Returns false — never throws, never writes a partial tile — when the tile
|
|
80
|
+
* does not fit, is the wrong size for the dimensions it claims, or sits on an
|
|
81
|
+
* odd boundary. This runs on the output tick, so a bad frame from one source
|
|
82
|
+
* must cost that source's rectangle and nothing else.
|
|
83
|
+
*/
|
|
84
|
+
blit(tile: Buffer, size: PixelSize, origin: PixelOrigin): boolean;
|
|
85
85
|
}
|
|
@@ -1,19 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Spawning the composition, through the ONE primitive.
|
|
3
|
+
*
|
|
4
|
+
* `FfmpegProcess` (`@camstack/types`) owns spawn, the first-data deadline, the
|
|
5
|
+
* hardware→software retry, exit classification and the bounded restart. This
|
|
6
|
+
* file owns only the PLUMBING — which bytes go where — because that is the one
|
|
7
|
+
* thing the primitive deliberately does not own.
|
|
8
|
+
*
|
|
9
|
+
* `maxRestarts: 0`. A composite is demand-driven: if the child dies, the
|
|
10
|
+
* session tells every consumer why and tears down, and the consumer's next read
|
|
11
|
+
* starts a cold one with freshly acquired sources. A restart inside the process
|
|
12
|
+
* would reuse broker handles that may already have been released.
|
|
13
|
+
*/
|
|
14
|
+
import { type IScopedLogger } from "@camstack/types";
|
|
15
|
+
import type { GridSourceHandle, GridStreamChild, GridStreamPlan } from "./grid-stream-session.js";
|
|
3
16
|
export interface GridChildContext {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
readonly binaryPath: string;
|
|
18
|
+
readonly logger: IScopedLogger;
|
|
19
|
+
/** The COMPOSITE's device id — every line the primitive emits is tagged with it. */
|
|
20
|
+
readonly deviceId: number;
|
|
21
|
+
/**
|
|
22
|
+
* The SOURCE cameras' names, for the cards the canvas is seeded with
|
|
23
|
+
* (`grid-canvas-seed.ts`). Read at the point of use rather than mirrored:
|
|
24
|
+
* this addon does not own those devices, and a name it cached would be the
|
|
25
|
+
* second copy of a fact the device manager already owns (D224).
|
|
26
|
+
*
|
|
27
|
+
* Optional, and a failure is not one: a card with no name carries the device
|
|
28
|
+
* id, which is what every log line about that tile carries anyway.
|
|
29
|
+
*/
|
|
30
|
+
readonly resolveSourceNames?: (deviceIds: readonly number[]) => Promise<ReadonlyMap<number, string>>;
|
|
18
31
|
}
|
|
19
32
|
export declare function startGridChild(ctx: GridChildContext, plan: GridStreamPlan, sources: readonly GridSourceHandle[], onEnded: (reason: string) => void): Promise<GridStreamChild>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { GridChildContext } from
|
|
2
|
-
import { GridSourceHandle, GridStreamChild, GridStreamPlan } from
|
|
1
|
+
import type { GridChildContext } from "./grid-child.js";
|
|
2
|
+
import type { GridSourceHandle, GridStreamChild, GridStreamPlan } from "./grid-stream-session.js";
|
|
3
3
|
export declare function startGridCompositorChild(ctx: GridChildContext, plan: GridStreamPlan, sources: readonly GridSourceHandle[], onEnded: (reason: string) => void): Promise<GridStreamChild>;
|
|
@@ -1,19 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The two argv the compositor spawns: a tile DECODER, and the canvas ENCODER.
|
|
3
|
+
*
|
|
4
|
+
* Both go through the shared builder in `@camstack/types`. This addon builds no
|
|
5
|
+
* argv of its own — the repo has already shipped two builders that disagreed
|
|
6
|
+
* about hardware, and `scripts/check-ffmpeg-primitive.ts` refuses a third.
|
|
7
|
+
*
|
|
8
|
+
* ## The decoder pays no codec on the way out
|
|
9
|
+
*
|
|
10
|
+
* A tile is copied into a canvas this process owns, so encoding it and decoding
|
|
11
|
+
* it again would be two codecs paid to deliver frames that were already there.
|
|
12
|
+
* It emits raw yuv420p — the format the canvas is in, so the composition is a
|
|
13
|
+
* strided memcpy rather than a convert.
|
|
14
|
+
*
|
|
15
|
+
* The input flags are the ones D527 measured: the probe returns from the SDP
|
|
16
|
+
* (`0` / `32`) instead of reading media, which is what took the old single
|
|
17
|
+
* child's start from ~9 s to 2.3 s. They matter less here — a compositor does
|
|
18
|
+
* not pair inputs, so a slow open costs that tile's first frame and nothing
|
|
19
|
+
* else — but a tile that appears in 300 ms instead of 4 s is still the
|
|
20
|
+
* difference the operator sees.
|
|
21
|
+
*
|
|
22
|
+
* ## The encoder never decodes
|
|
23
|
+
*
|
|
24
|
+
* It reads the canvas as raw frames on stdin and encodes once. `zerolatency`
|
|
25
|
+
* and a one-second GOP are carried over from the single-child invocation, where
|
|
26
|
+
* they were measured: without `zerolatency` about four seconds of picture sat
|
|
27
|
+
* inside the encoder, which the operator reported as "ritardi di secondi".
|
|
28
|
+
*/
|
|
29
|
+
import type { FfmpegInvocation, FfmpegVideoEncoderId } from "@camstack/types";
|
|
30
|
+
import { type GridTile } from "./grid-tile-plan.js";
|
|
31
|
+
import type { PixelSize } from "./grid-canvas.js";
|
|
4
32
|
export interface GridTileDecoderInput {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
33
|
+
readonly tile: GridTile;
|
|
34
|
+
/** A broker restream URL, acquired through `streamBroker.getStreamWithCodec`. */
|
|
35
|
+
readonly url: string;
|
|
36
|
+
readonly fps: number;
|
|
9
37
|
}
|
|
10
38
|
/** One tile's decoder: dial in, raw yuv420p frames out. */
|
|
11
39
|
export declare function gridTileDecoderInvocation(input: GridTileDecoderInput): FfmpegInvocation;
|
|
12
40
|
export interface GridCanvasEncoderInput {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
41
|
+
readonly canvas: PixelSize;
|
|
42
|
+
readonly fps: number;
|
|
43
|
+
readonly encoder: FfmpegVideoEncoderId;
|
|
44
|
+
readonly bitrateKbps: number;
|
|
17
45
|
}
|
|
18
46
|
/** The canvas encoder: raw frames on stdin, one compressed stream out. */
|
|
19
47
|
export declare function gridCanvasEncoderInvocation(input: GridCanvasEncoderInput): FfmpegInvocation;
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { GridTilePlan } from
|
|
1
|
+
import type { GridTilePlan } from "./grid-tile-plan.js";
|
|
2
2
|
export interface GridCompositorDeps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
3
|
+
readonly plan: GridTilePlan;
|
|
4
|
+
/**
|
|
5
|
+
* Hand one composed frame to the encoder. `false` means the sink is not
|
|
6
|
+
* draining — the caller slows down rather than queueing raw frames, which at
|
|
7
|
+
* 345 KB each is how a stalled encoder becomes an OOM.
|
|
8
|
+
*/
|
|
9
|
+
readonly write: (frame: Buffer) => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The picture the canvas carries before any tile has arrived — one card per
|
|
12
|
+
* cell, naming its camera (`grid-canvas-seed.ts`). `null` ⇒ black, which is
|
|
13
|
+
* what this was before the seed and what it falls back to when the seed
|
|
14
|
+
* cannot be drawn.
|
|
15
|
+
*
|
|
16
|
+
* Blitted ONCE, here, so the very first tick already carries it: the tick
|
|
17
|
+
* serves every cell and must never wait on a render.
|
|
18
|
+
*/
|
|
19
|
+
readonly seed: Buffer | null;
|
|
20
20
|
}
|
|
21
21
|
export declare class GridCompositor {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
22
|
+
private readonly deps;
|
|
23
|
+
private readonly canvas;
|
|
24
|
+
/** Keyed by tile id — unique per CELL, because one camera can hold two. */
|
|
25
|
+
private readonly placed;
|
|
26
|
+
private closed;
|
|
27
|
+
constructor(deps: GridCompositorDeps);
|
|
28
|
+
/**
|
|
29
|
+
* Raw bytes from one decoder output.
|
|
30
|
+
*
|
|
31
|
+
* A tile this composition has no rectangle for is IGNORED, never thrown on: a
|
|
32
|
+
* child that outlives a layout change would otherwise take the tick down with
|
|
33
|
+
* it, and the tick is what every other cell depends on.
|
|
34
|
+
*/
|
|
35
|
+
onTile(tileId: string, chunk: Buffer): void;
|
|
36
|
+
/**
|
|
37
|
+
* Compose and emit one frame. Returns what the sink said about back-pressure.
|
|
38
|
+
*
|
|
39
|
+
* Every tile is redrawn, fresh or not: a tile that produced nothing this tick
|
|
40
|
+
* is a still picture, not a hole, and clearing it would make a late source
|
|
41
|
+
* flicker. The canvas is never cleared between ticks for the same reason.
|
|
42
|
+
*/
|
|
43
|
+
tick(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* A tile's decoder was replaced: drop its half frame, keep its picture.
|
|
46
|
+
*
|
|
47
|
+
* Without this the new decoder's bytes would be appended to the old one's
|
|
48
|
+
* partial frame and every frame after would be sheared — raw video has no
|
|
49
|
+
* framing to re-sync on.
|
|
50
|
+
*/
|
|
51
|
+
resetTile(tileId: string): void;
|
|
52
|
+
/** After this, a tick emits nothing — a dead child must not keep writing. */
|
|
53
|
+
close(): void;
|
|
54
54
|
}
|
|
@@ -1,31 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A detection seen by a SOURCE camera, placed where the operator is looking.
|
|
3
|
+
*
|
|
4
|
+
* ## Why a grid maps boxes at all
|
|
5
|
+
*
|
|
6
|
+
* The viewer feeds the detection ring and the box overlay from the SAME event
|
|
7
|
+
* (`detection.result`). So a grid that reports detections — which is what makes
|
|
8
|
+
* its tile light up — reports boxes too, whether or not anyone asked for them.
|
|
9
|
+
* The only choices are to send the source's own box, which would be drawn
|
|
10
|
+
* against the composed canvas at confidently wrong coordinates, or to carry it
|
|
11
|
+
* through the geometry the composition already uses. Both rectangles are
|
|
12
|
+
* normalized on both sides (D519), so carrying it is a multiplication.
|
|
13
|
+
*
|
|
14
|
+
* ## Three ways to be subtly wrong
|
|
15
|
+
*
|
|
16
|
+
* - **A camera can appear in SEVERAL cells.** A wide shot and a crop of the
|
|
17
|
+
* same street is the case composites are asked for most, and `grid-plan.ts`
|
|
18
|
+
* already makes both read ONE input. One detection therefore lands once per
|
|
19
|
+
* cell that shows it — or not at all.
|
|
20
|
+
* - **A cell shows only PART of its source.** A detection outside the crop is
|
|
21
|
+
* not in the picture, and drawing it at the cell's edge would invent a
|
|
22
|
+
* subject standing where nobody is.
|
|
23
|
+
* - **A detection can straddle the crop edge.** Half a subject really is half
|
|
24
|
+
* visible, so the box is clipped to what the cell shows rather than dropped.
|
|
25
|
+
*
|
|
26
|
+
* This deliberately does not go through `deriveDetailCropRect` (D52): that
|
|
27
|
+
* function exists to keep every crop feeding a VECTOR INDEX cut the same way.
|
|
28
|
+
* This is presentation, feeds no index, and routing it through there would add
|
|
29
|
+
* a second cutter to the one thing D52 keeps single.
|
|
30
|
+
*/
|
|
31
|
+
import type { DetectionBoundingBox } from "@camstack/types";
|
|
32
|
+
import type { NormalizedRect } from "./grid-filter-graph.js";
|
|
3
33
|
/** One place a source appears: the part taken, and where that part lands. */
|
|
4
34
|
export interface GridMappingCell {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
35
|
+
/** The part of the source this cell shows, normalized against the SOURCE. */
|
|
36
|
+
readonly source: NormalizedRect;
|
|
37
|
+
/** Where it lands, normalized against the CANVAS. */
|
|
38
|
+
readonly cell: NormalizedRect;
|
|
9
39
|
}
|
|
10
40
|
export interface GridFrameSize {
|
|
11
|
-
|
|
12
|
-
|
|
41
|
+
readonly width: number;
|
|
42
|
+
readonly height: number;
|
|
13
43
|
}
|
|
14
44
|
export interface MapDetectionInput {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
45
|
+
/** The detection's box, in ABSOLUTE pixels of the source frame. */
|
|
46
|
+
readonly bbox: DetectionBoundingBox;
|
|
47
|
+
/** The frame those pixels are measured against (`FrameResult.width/height`). */
|
|
48
|
+
readonly sourceFrame: GridFrameSize;
|
|
49
|
+
/** The composed canvas the result is measured against. */
|
|
50
|
+
readonly canvas: GridFrameSize;
|
|
51
|
+
/** Every cell this source appears in. */
|
|
52
|
+
readonly cells: readonly GridMappingCell[];
|
|
23
53
|
}
|
|
24
54
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
55
|
+
* Where this detection lands on the canvas — once per cell that shows it.
|
|
56
|
+
*
|
|
57
|
+
* Empty is a real answer: the subject is in a part of the source this grid does
|
|
58
|
+
* not display, or the frame arrived with no size to measure against. Neither is
|
|
59
|
+
* a reason to guess.
|
|
60
|
+
*/
|
|
31
61
|
export declare function mapDetectionToCanvas(input: MapDetectionInput): readonly DetectionBoundingBox[];
|
|
@@ -1,11 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The grid's own section on the camera page — built HERE, not derived by the
|
|
3
|
+
* framework.
|
|
4
|
+
*
|
|
5
|
+
* The section this returns is what `getDeviceSettingsContribution` hands the
|
|
6
|
+
* device-page aggregation. It carries the layout widget, and it carries the
|
|
7
|
+
* placement with it: the addon names its own tab, location and order, the way
|
|
8
|
+
* any other setting does.
|
|
9
|
+
*
|
|
10
|
+
* The alternative the framework offers — a `deviceConfig.ui` block on the cap —
|
|
11
|
+
* renders the same widget, and is what seven other widgets still use. It was
|
|
12
|
+
* rejected here for two reasons that are not cosmetic:
|
|
13
|
+
*
|
|
14
|
+
* - placement would be a CAP declaration, so changing where a grid's editor
|
|
15
|
+
* lives would mean a framework change and a published server;
|
|
16
|
+
* - it cannot DECLINE. A `deviceConfig.ui` section is emitted for every device
|
|
17
|
+
* the cap is bound to, so a camera that is not a grid would get a panel that
|
|
18
|
+
* renders its own "this is not a grid" state — a UI that exists to say it
|
|
19
|
+
* should not exist.
|
|
20
|
+
*
|
|
21
|
+
* `recording` is the precedent (`recorder/recording-device-settings.ts`):
|
|
22
|
+
* returning `null` is how it keeps the Recording tab off a device that is not
|
|
23
|
+
* a camera.
|
|
24
|
+
*/
|
|
25
|
+
import type { ConfigUISchema } from "@camstack/types";
|
|
2
26
|
/** The widget id, registered in `ui-library`'s `HOST_WIDGETS`. */
|
|
3
27
|
export declare const GRID_LAYOUT_WIDGET_ID = "host/camera-grid-layout";
|
|
4
28
|
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
29
|
+
* The layout section, or `null` when this device is not a grid.
|
|
30
|
+
*
|
|
31
|
+
* `isGrid` is the ANSWER to "is this a grid", never "do we know yet". A caller
|
|
32
|
+
* that cannot tell must not call this — an unresolved read rendered as `null`
|
|
33
|
+
* would hide the editor from a real grid (D315).
|
|
34
|
+
*/
|
|
11
35
|
export declare function buildGridDeviceSchema(isGrid: boolean): ConfigUISchema | null;
|
|
@@ -1,53 +1,53 @@
|
|
|
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
|
-
|
|
26
|
-
|
|
2
|
+
* The composite's geometry, as the `-filter_complex` the extended ffmpeg
|
|
3
|
+
* primitive carries.
|
|
4
|
+
*
|
|
5
|
+
* ## Why normalized, and why not `deriveDetailCropRect`
|
|
6
|
+
*
|
|
7
|
+
* Both rectangles -- the crop taken OUT of a source and the cell it lands IN --
|
|
8
|
+
* are normalized [0,1]. A source camera can change resolution under us (a
|
|
9
|
+
* profile switch, a firmware update, a substream that comes back different) and
|
|
10
|
+
* a rectangle stored in pixels would quietly start cutting the wrong part of
|
|
11
|
+
* the picture, with nothing to say so.
|
|
12
|
+
*
|
|
13
|
+
* This deliberately does NOT go through `deriveDetailCropRect`. D52 -- "one
|
|
14
|
+
* vector index = one crop derivation" -- protects the COMPARABILITY of a vector
|
|
15
|
+
* index: every crop that feeds it must be cut the same way. This is
|
|
16
|
+
* presentation, feeds no index, and routing it through that function would add
|
|
17
|
+
* a second cutter to the one thing D52 exists to keep single.
|
|
18
|
+
*
|
|
19
|
+
* ## Why a canvas and overlays rather than stacks
|
|
20
|
+
*
|
|
21
|
+
* `hstack`/`vstack` only express a regular grid of equal tiles. The operator
|
|
22
|
+
* composes *arbitrary* rectangles -- "a 16:9 from the middle of two streams" is
|
|
23
|
+
* the case this was asked for -- so every cell is scaled and overlaid onto one
|
|
24
|
+
* explicit canvas at its own origin. The canvas is also what makes a missing
|
|
25
|
+
* cell legible: a gap is black, not a stretched neighbour.
|
|
26
|
+
*/
|
|
27
27
|
/** A rectangle in normalized [0,1] coordinates of whatever contains it. */
|
|
28
28
|
export interface NormalizedRect {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
readonly x: number;
|
|
30
|
+
readonly y: number;
|
|
31
|
+
readonly width: number;
|
|
32
|
+
readonly height: number;
|
|
33
33
|
}
|
|
34
34
|
/** One source, the part of it taken, and where that part lands. */
|
|
35
35
|
export interface GridCell {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
/** Which ffmpeg input this cell reads — its ORDINAL among the invocation's inputs. */
|
|
37
|
+
readonly inputIndex: number;
|
|
38
|
+
/** The part of the source to take, normalized against the SOURCE. */
|
|
39
|
+
readonly source: NormalizedRect;
|
|
40
|
+
/** Where it lands, normalized against the CANVAS. */
|
|
41
|
+
readonly cell: NormalizedRect;
|
|
42
42
|
}
|
|
43
43
|
export interface GridLayout {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
/** Canvas size in pixels — the composite camera's own resolution. */
|
|
45
|
+
readonly width: number;
|
|
46
|
+
readonly height: number;
|
|
47
|
+
readonly cells: readonly GridCell[];
|
|
48
48
|
}
|
|
49
49
|
export interface GridFilterGraph {
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
readonly graph: string;
|
|
51
|
+
readonly videoOutLabel: string;
|
|
52
52
|
}
|
|
53
53
|
export declare function buildGridFilterGraph(layout: GridLayout): GridFilterGraph;
|