@camstack/system 1.2.390 → 1.2.392
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/addon-utils.js +1 -1
- package/dist/addon-utils.mjs +1 -1
- package/dist/amd-accelerators-CEuPFBBK.js +36 -0
- package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
- package/dist/amd-npu-B-QyyMyF.js +53 -0
- package/dist/amd-npu-Db_SoSuL.mjs +52 -0
- 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/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- 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/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- 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/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- 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/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- 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/backup-orchestrator.addon.js +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
- 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/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- 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/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- 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.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- 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/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- 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/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- 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-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- 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/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.d.ts +1 -1
- package/dist/builtins/keychain/index.js +3 -3
- package/dist/builtins/keychain/index.mjs +3 -3
- 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/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- 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/local-auth.addon.js +2 -2
- package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
- 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/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.d.ts +4 -4
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- 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/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- 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/amd-accelerators.d.ts +15 -0
- package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
- 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/index.js +59 -22
- package/dist/builtins/platform-probe/index.mjs +59 -22
- 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/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- 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/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- 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/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- 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-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- 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.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- 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 +39 -35
- package/dist/builtins/system-config/system-config.addon.mjs +320 -316
- package/dist/builtins/winston-logging/index.d.ts +3 -3
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- 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-Nx-lrlHR.js} +19 -1
- package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
- package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
- package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
- package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
- package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
- package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
- package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -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/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
- package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
- 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 +9 -8
- package/dist/index.mjs +7 -9
- package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
- package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
- 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/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
- package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
- package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
- package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
- 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,5 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* CapabilityRegistry — auto-mounts tRPC routers from CapabilityDefinitions.
|
|
3
|
+
*
|
|
4
|
+
* Responsibilities:
|
|
5
|
+
* - Register/unregister providers for capabilities
|
|
6
|
+
* - Auto-create tRPC routers for each registered capability (via factory function)
|
|
7
|
+
* - Emit lifecycle events on the EventBus
|
|
8
|
+
* - Provide typed getProvider() for consumers
|
|
9
|
+
*
|
|
10
|
+
* Does NOT contain tRPC code directly — receives a router factory function
|
|
11
|
+
* from the server layer (which owns @trpc/server).
|
|
12
|
+
*/
|
|
13
|
+
import type { CapabilityDeclaration, CapabilityDefinition, CapabilityInfo, CapabilityMode, CapabilityProviderMap, CollectionCapabilityMap, IEventBus, IScopedLogger, SingletonCapabilityMap } from "@camstack/types";
|
|
14
|
+
import { type StatusOverlay, type StatusOverlayAnswer } from "./status-overlay.js";
|
|
3
15
|
/** Result of creating a capability router (opaque to the kernel). */
|
|
4
16
|
export type CapabilityRouter = unknown;
|
|
5
17
|
/** Factory that creates a tRPC router from a capability definition + provider getter. */
|
|
@@ -7,585 +19,585 @@ export type CapabilityRouterFactory = (definition: CapabilityDefinition, getProv
|
|
|
7
19
|
/** Reader function that resolves user's singleton preference for a capability. */
|
|
8
20
|
export type ConfigReader = (capability: string) => string | undefined;
|
|
9
21
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
* Reader function that resolves the persisted set of disabled addonIds for a
|
|
23
|
+
* collection capability. Parallel to {@link ConfigReader} but for the
|
|
24
|
+
* collection mode — returns the addonIds an operator has disabled so the
|
|
25
|
+
* registry can restore them as disabled on a fresh boot. An empty array (or
|
|
26
|
+
* `undefined`) means "nothing persisted, all providers enabled".
|
|
27
|
+
*
|
|
28
|
+
* Wired by the server layer in `addon-registry.service.ts` to read the same
|
|
29
|
+
* `capabilities.collection.<cap>` ConfigService key the `capabilities` router
|
|
30
|
+
* writes. Keeps the registry decoupled from `ConfigService` — exactly like
|
|
31
|
+
* {@link ConfigReader} does for singletons.
|
|
32
|
+
*/
|
|
21
33
|
export type CollectionConfigReader = (capability: string) => readonly string[] | undefined;
|
|
22
34
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
* Proof that an unregister owns the registration it is about to delete.
|
|
36
|
+
*
|
|
37
|
+
* A `(capability, addonId)` key is NOT unique over time: a runner replaced by
|
|
38
|
+
* an update re-registers under the exact same key (`resolveRunnerId` is
|
|
39
|
+
* deterministic), so the dead generation's teardown and the live generation's
|
|
40
|
+
* registration are indistinguishable by key alone. The owner token names the
|
|
41
|
+
* INCARNATION that made a registration — e.g. `hub/recorder#7` — and
|
|
42
|
+
* {@link CapabilityRegistry.unregisterProvider} refuses any unregister that
|
|
43
|
+
* cannot present it. See docs/decisions/adr-0188-an-unregister-carries-proof-of-ownership.md.
|
|
44
|
+
*/
|
|
33
45
|
export type ProviderOwnerToken = string;
|
|
34
46
|
/** What {@link CapabilityRegistry.applyPersistedPreferences} changed. */
|
|
35
47
|
export interface PersistedPreferenceReplay {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
readonly singletons: ReadonlyArray<{
|
|
49
|
+
readonly capability: string;
|
|
50
|
+
readonly addonId: string;
|
|
51
|
+
}>;
|
|
52
|
+
readonly disabled: ReadonlyArray<{
|
|
53
|
+
readonly capability: string;
|
|
54
|
+
readonly addonId: string;
|
|
55
|
+
}>;
|
|
44
56
|
}
|
|
45
57
|
export declare class CapabilityRegistry {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
58
|
+
private readonly capabilities;
|
|
59
|
+
private readonly logger;
|
|
60
|
+
private readonly eventBus;
|
|
61
|
+
private routerFactory;
|
|
62
|
+
private configReader;
|
|
63
|
+
private collectionConfigReader;
|
|
64
|
+
private _ready;
|
|
65
|
+
/** Boot-time dependency graph: capability → dependsOn names (from CapabilityDeclaration) */
|
|
66
|
+
private readonly capabilityDeps;
|
|
67
|
+
/**
|
|
68
|
+
* capability → addon ids whose MANIFEST declares it.
|
|
69
|
+
*
|
|
70
|
+
* Populated by {@link declareFromManifest}, which runs at addon-LOAD time —
|
|
71
|
+
* before a forked addon's runner has spawned, let alone registered anything.
|
|
72
|
+
* So this map answers a question `providers` cannot: **which addons still owe
|
|
73
|
+
* this capability a provider**, i.e. is an absence final or merely early.
|
|
74
|
+
*
|
|
75
|
+
* It is not a second registry and nothing waits on it: it stores an argument
|
|
76
|
+
* `declareFromManifest` was already being handed and dropping, and it is read
|
|
77
|
+
* synchronously at the moment a caller needs the answer ([D3](../../../../docs/decisions/adr-0003.md)).
|
|
78
|
+
*/
|
|
79
|
+
private readonly manifestDeclarers;
|
|
80
|
+
/** Per-device singleton overrides: deviceId → (capability → addonId) */
|
|
81
|
+
private readonly deviceOverrides;
|
|
82
|
+
/** capName → (nodeId → bare addonId) per-node singleton overrides. */
|
|
83
|
+
private readonly singletonNodeOverrides;
|
|
84
|
+
/** Optional reader for persisted per-node overrides: (cap, nodeId) → addonId. */
|
|
85
|
+
private nodeConfigReader;
|
|
86
|
+
/**
|
|
87
|
+
* Per-device SOURCE deactivations: deviceId → (capability → disabled addon ids).
|
|
88
|
+
*
|
|
89
|
+
* The in-memory PROJECTION of the persisted wrapper activation
|
|
90
|
+
* (`deviceBindings[deviceId][capName].disabledSourceAddonIds`, written by
|
|
91
|
+
* `setWrapperActive`), and never an authority of its own —
|
|
92
|
+
* [D556](../../../../docs/decisions/adr-0556-a-per-device-source-switch-is-the-wrapper-activation-and-the-registry-holds-only-its-projection.md).
|
|
93
|
+
* Nothing but `device-source-activation.ts` writes it: the operator's verb
|
|
94
|
+
* is `deviceManager.setWrapperActive`, and a second writable surface here is
|
|
95
|
+
* exactly the two-authorities defect D62 exists for.
|
|
96
|
+
*
|
|
97
|
+
* A DENY list, not an allow list, and that is the deliberate answer to what
|
|
98
|
+
* "unset" means: a source nobody has ruled out is a source. An untouched
|
|
99
|
+
* camera keeps every provider it has today, and a provider that registers
|
|
100
|
+
* after the operator's last toggle needs no second write to be seen.
|
|
101
|
+
*/
|
|
102
|
+
/** autoActivate flags per (capability, addonId) — from addon manifests */
|
|
103
|
+
private readonly autoActivateFlags;
|
|
104
|
+
/**
|
|
105
|
+
* Per-device native providers: capName → deviceId (numeric) → { addonId, provider }.
|
|
106
|
+
*
|
|
107
|
+
* Backs `DeviceContext.registerNativeCap`. Lets device-driver addons
|
|
108
|
+
* (OnvifCamera, RtspCamera, etc.) publish capability implementations
|
|
109
|
+
* scoped to a single device; the device-proxy router resolves these by
|
|
110
|
+
* `(capName, deviceId)` to dispatch incoming calls.
|
|
111
|
+
*
|
|
112
|
+
* Distinct from the `capabilities[].providers` map (system-wide providers
|
|
113
|
+
* keyed by addonId) — native providers are device-instance-scoped and
|
|
114
|
+
* never participate in singleton/collection resolution.
|
|
115
|
+
*/
|
|
116
|
+
private readonly nativeProviders;
|
|
117
|
+
/**
|
|
118
|
+
* Wrapper provider registrations: capName → Set<addonId>. Tracked separately
|
|
119
|
+
* from `capabilities[].providers` because wrappers aren't system-wide
|
|
120
|
+
* providers — they're user-toggleable decorators addons declare via
|
|
121
|
+
* `ProviderRegistration.kind === 'wrapper'`. Consumers query this map (via
|
|
122
|
+
* `getWrappersForCap`) to render the "pick a wrapper for this device"
|
|
123
|
+
* dropdown in the device-bindings UI.
|
|
124
|
+
*/
|
|
125
|
+
private readonly wrapperProviders;
|
|
126
|
+
/**
|
|
127
|
+
* Wrapper registrations that declared `ProviderRegistration.defaultActive:
|
|
128
|
+
* true`. Keyed by `capName` and valued by `addonId` — the first wrapper
|
|
129
|
+
* flagged default-active wins per cap. Consumed by `device-manager.getBindings`
|
|
130
|
+
* to synthesise a wrapper binding when no explicit activation has been
|
|
131
|
+
* persisted for a (device, cap) pair and no native provider exists either —
|
|
132
|
+
* otherwise the default wrapper would sit dormant waiting for a manual
|
|
133
|
+
* `setWrapperActive({active: true})` that never comes.
|
|
134
|
+
*/
|
|
135
|
+
private readonly wrapperDefaults;
|
|
136
|
+
/**
|
|
137
|
+
* Pending {@link waitForProvider} waiters, keyed by
|
|
138
|
+
* `"${capabilityName}::${addonId}"`. Resolved by {@link registerProvider}
|
|
139
|
+
* as soon as the matching pair is registered — the mechanism that replaces
|
|
140
|
+
* the 100ms polling loop the device-management router used to run while
|
|
141
|
+
* waiting for forked providers to finish announcing their Moleculer service.
|
|
142
|
+
*/
|
|
143
|
+
private readonly pendingWaiters;
|
|
144
|
+
/** Period for the "still waiting" log emitted by `waitForProvider`. */
|
|
145
|
+
private static readonly WAIT_HEARTBEAT_INTERVAL_MS;
|
|
146
|
+
constructor(logger: IScopedLogger, eventBus?: IEventBus);
|
|
147
|
+
/** Set the config reader for singleton preference resolution. */
|
|
148
|
+
setConfigReader(reader: ConfigReader): void;
|
|
149
|
+
/**
|
|
150
|
+
* Set the config reader for collection-provider enable/disable persistence.
|
|
151
|
+
* Consulted by {@link registerProvider} so a provider an operator disabled
|
|
152
|
+
* in a previous session comes back disabled after a hub reboot.
|
|
153
|
+
*/
|
|
154
|
+
setCollectionConfigReader(reader: CollectionConfigReader): void;
|
|
155
|
+
/** Register boot-time dependency edges (from CapabilityDeclaration.dependsOn). */
|
|
156
|
+
setDependencies(capabilityName: string, dependsOn: readonly string[]): void;
|
|
157
|
+
/** Set the router factory — called by the server layer once at boot. */
|
|
158
|
+
setRouterFactory(factory: CapabilityRouterFactory): void;
|
|
159
|
+
/** Mark boot complete. Before this, getProvider() returns null. */
|
|
160
|
+
ready(): void;
|
|
161
|
+
isReady(): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Declare a capability from its definition.
|
|
164
|
+
* Creates the auto-mounted router (if factory is set).
|
|
165
|
+
* Called during addon manifest loading, before providers are registered.
|
|
166
|
+
*/
|
|
167
|
+
declareCapability(definition: CapabilityDefinition): void;
|
|
168
|
+
/**
|
|
169
|
+
* Register manifest metadata (dependsOn + autoActivate) for a capability,
|
|
170
|
+
* and — when the capability's definition declares `kind: 'wrapper'` —
|
|
171
|
+
* register the addon as a wrapper provider.
|
|
172
|
+
*
|
|
173
|
+
* The capability MUST already be declared via `declareCapability` from
|
|
174
|
+
* its full `CapabilityDefinition`. Behavioural metadata (`mode`, `kind`,
|
|
175
|
+
* `defaultActive`) is owned exclusively by the cap definition — never
|
|
176
|
+
* the manifest (D4, base-layer rework; mirrors the Session 5 A5 `mode`
|
|
177
|
+
* consolidation). The manifest declaration carries only the cap name,
|
|
178
|
+
* `dependsOn`, `autoActivate`, and `optional`.
|
|
179
|
+
*/
|
|
180
|
+
declareFromManifest(declaration: CapabilityDeclaration, addonId?: string): void;
|
|
181
|
+
/**
|
|
182
|
+
* Register a provider for a capability.
|
|
183
|
+
* For singleton: auto-activates if user-preferred or first registered.
|
|
184
|
+
* For collection: adds to the collection.
|
|
185
|
+
*
|
|
186
|
+
* Phase 12 (settings redesign follow-up): throws if the same
|
|
187
|
+
* `(capabilityName, addonId)` pair is registered more than once.
|
|
188
|
+
* Previously the second call would silently replace the first via
|
|
189
|
+
* `state.providers.set(addonId, provider)` — that was the root cause
|
|
190
|
+
* of the "analysis-pipeline registered three times" bug observed in
|
|
191
|
+
* the kernel cleanup log (`analytics` addon called `registerProvider`
|
|
192
|
+
* twice plus the `analysis-pipeline` addon called it a third time).
|
|
193
|
+
*
|
|
194
|
+
* Double-register of the same pair is always a programmer error —
|
|
195
|
+
* two legitimately different addons implementing the same cap keep
|
|
196
|
+
* using different `addonId`s and the user picks one via `configReader`.
|
|
197
|
+
*
|
|
198
|
+
* `owner` (optional) stamps the registration with the incarnation that made
|
|
199
|
+
* it — see {@link ProviderOwnerToken}. Once stamped, only an unregister
|
|
200
|
+
* presenting the SAME token can delete it. Registration paths whose key is
|
|
201
|
+
* reused across process generations (the UDS child manifest, the D3
|
|
202
|
+
* `registerNode` handshake) MUST pass one; ownerless registrations keep the
|
|
203
|
+
* historical unconditional behaviour.
|
|
204
|
+
*/
|
|
205
|
+
registerProvider(capabilityName: string, addonId: string, provider: unknown, owner?: ProviderOwnerToken): void;
|
|
206
|
+
/**
|
|
207
|
+
* Whether a provider for the exact `(capabilityName, addonId)` pair is
|
|
208
|
+
* currently registered. Lets a re-registration path (e.g. the agent's
|
|
209
|
+
* in-place group-runner reload) make {@link registerProvider} idempotent by
|
|
210
|
+
* dropping a stale prior registration first — `registerProvider` itself
|
|
211
|
+
* throws on a duplicate pair (a deliberate guard against a duplicate
|
|
212
|
+
* `registerProvider` call inside one init path), so callers that legitimately
|
|
213
|
+
* re-register the same pair must unregister first.
|
|
214
|
+
*/
|
|
215
|
+
hasProvider(capabilityName: string, addonId: string): boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Addon ids whose manifest declares `capabilityName`, whether or not they
|
|
218
|
+
* have registered a provider yet.
|
|
219
|
+
*
|
|
220
|
+
* Pair it with {@link hasProvider} to separate "this capability's collection
|
|
221
|
+
* is still filling up" from "this is everything there will ever be" — the
|
|
222
|
+
* difference between a 503 a client should retry and a 400 it should not.
|
|
223
|
+
* Every entry is an addon INSTALLED on this node; an addon that is installed
|
|
224
|
+
* but disabled therefore stays listed, which is the honest answer (the
|
|
225
|
+
* capability is owed by something that is not going to supply it, and naming
|
|
226
|
+
* it is the diagnosis).
|
|
227
|
+
*/
|
|
228
|
+
getManifestDeclarers(capabilityName: string): readonly string[];
|
|
229
|
+
/**
|
|
230
|
+
* The owner token a registration declared, or `null` when the pair is not
|
|
231
|
+
* registered or was registered without one.
|
|
232
|
+
*/
|
|
233
|
+
getProviderOwner(capabilityName: string, addonId: string): ProviderOwnerToken | null;
|
|
234
|
+
/**
|
|
235
|
+
* Hand an EXISTING registration to a new owner, without touching the provider
|
|
236
|
+
* instance, the active-singleton selection or any event.
|
|
237
|
+
*
|
|
238
|
+
* The takeover case: a replacement runner handshakes with an UNCHANGED cap
|
|
239
|
+
* set, so the manifest diff correctly leaves the registration alone — but the
|
|
240
|
+
* registration is still stamped with the dead generation's token, and nothing
|
|
241
|
+
* the LIVE generation can present would ever match it. Re-stamping keeps the
|
|
242
|
+
* capability cleanable when the successor eventually dies.
|
|
243
|
+
*
|
|
244
|
+
* Returns `false` when the pair is not registered (nothing to hand over) —
|
|
245
|
+
* the caller decides whether that is a register-instead or a diagnosis.
|
|
246
|
+
*/
|
|
247
|
+
reassignProviderOwner(capabilityName: string, addonId: string, owner: ProviderOwnerToken): boolean;
|
|
248
|
+
/**
|
|
249
|
+
* Unregister a provider. For singleton: clears active. For collection:
|
|
250
|
+
* removes from list.
|
|
251
|
+
*
|
|
252
|
+
* `owner` is the caller's PROOF that it owns the registration it is deleting.
|
|
253
|
+
* When the registration declared an owner (see {@link ProviderOwnerToken})
|
|
254
|
+
* and the caller presents a different one — or none at all — this is a
|
|
255
|
+
* logged no-op: the caller belongs to a generation that no longer holds the
|
|
256
|
+
* key. This is what stops a dead runner's teardown from erasing its
|
|
257
|
+
* successor's live registration ([D188](../../../../docs/decisions/adr-0188-an-unregister-carries-proof-of-ownership.md)).
|
|
258
|
+
*/
|
|
259
|
+
unregisterProvider(capabilityName: string, addonId: string, owner?: ProviderOwnerToken): void;
|
|
260
|
+
/**
|
|
261
|
+
* Re-apply the operator's PERSISTED preferences to providers that
|
|
262
|
+
* registered before those preferences could be read — once, when the boot
|
|
263
|
+
* read of them settles (D675).
|
|
264
|
+
*
|
|
265
|
+
* `registerProvider` consults the preference readers at the moment a
|
|
266
|
+
* provider registers. With the settings engine isolated (D231) the
|
|
267
|
+
* preferences arrive over an async door, so a provider can register before
|
|
268
|
+
* they are known; the readers then answer "no preference" and the default
|
|
269
|
+
* wins. This replays the answer the readers give NOW over every registered
|
|
270
|
+
* provider: a singleton whose persisted choice is registered and not active
|
|
271
|
+
* is switched to it, and a collection provider the operator disabled is
|
|
272
|
+
* disabled again. It is one pass, triggered by the read settling — not a
|
|
273
|
+
* wait, a poll or a retry (D3).
|
|
274
|
+
*
|
|
275
|
+
* `skip` names the capabilities that must not be switched live (infra caps
|
|
276
|
+
* need a restart — the same rule `capabilities.setPreference` applies).
|
|
277
|
+
*/
|
|
278
|
+
applyPersistedPreferences(skip: (capability: string) => boolean): PersistedPreferenceReplay;
|
|
279
|
+
/** Enable a previously disabled collection provider. */
|
|
280
|
+
enableCollectionProvider(capability: string, addonId: string): void;
|
|
281
|
+
/** Disable a collection provider (keeps it registered but excluded from active list). */
|
|
282
|
+
disableCollectionProvider(capability: string, addonId: string): void;
|
|
283
|
+
/**
|
|
284
|
+
* Register a native capability provider scoped to a single device.
|
|
285
|
+
* Throws if the same `(capName, deviceId)` is registered twice — that is
|
|
286
|
+
* always a programmer error: device-driver addons must call
|
|
287
|
+
* `DeviceContext.registerNativeCap` exactly once per cap per device.
|
|
288
|
+
*/
|
|
289
|
+
registerNativeProvider(capName: string, deviceId: number, addonId: string, provider: unknown): void;
|
|
290
|
+
/** Remove a single native provider entry. No-op if absent. */
|
|
291
|
+
unregisterNativeProvider(capName: string, deviceId: number): void;
|
|
292
|
+
/** Remove every native provider entry for a device — called on device removal. */
|
|
293
|
+
unregisterAllNativeForDevice(deviceId: number): void;
|
|
294
|
+
/** Fallback resolver for native providers that aren't registered in-process. */
|
|
295
|
+
private nativeFallback;
|
|
296
|
+
/**
|
|
297
|
+
* Install a fallback resolver for cross-process native caps. When a device's
|
|
298
|
+
* live `IDevice` lives in a forked worker (e.g. `provider-rtsp`), the native
|
|
299
|
+
* cap it published via `DeviceContext.registerNativeCap` is reachable over
|
|
300
|
+
* the broker — but the hub's `nativeProviders` map never saw it. The fallback
|
|
301
|
+
* is called by {@link getNativeProvider} on local-miss and is expected to
|
|
302
|
+
* return a proxy object whose methods issue `broker.call` into the owning
|
|
303
|
+
* worker. Set once at hub boot time.
|
|
304
|
+
*/
|
|
305
|
+
setNativeFallback(resolver: (capName: string, deviceId: number) => unknown | null): void;
|
|
306
|
+
/**
|
|
307
|
+
* Resolve the native provider for `(capName, deviceId)` or null. A CLAIMED
|
|
308
|
+
* cap's provider is handed back with its `getStatus` overlaid (D663, S3) —
|
|
309
|
+
* on the in-process branch AND the `nativeFallback` branch, which is the
|
|
310
|
+
* path the HA feeder's devices take.
|
|
311
|
+
*/
|
|
312
|
+
getNativeProvider<T = unknown>(capName: string, deviceId: number): T | null;
|
|
313
|
+
/** The device-manager's view over its mirror; `null` until installed. */
|
|
314
|
+
private statusOverlay;
|
|
315
|
+
/** `(cap, device)` pairs whose merged slice currently fails its status schema — one warn per transition. */
|
|
316
|
+
private readonly overlayParseFailing;
|
|
317
|
+
/**
|
|
318
|
+
* Install (or remove, with `null`) the claimed-status overlay. Installed once
|
|
319
|
+
* by the device-manager at init over its `DeviceStateMirror`; removed on its
|
|
320
|
+
* shutdown. Wrappers already resolved re-read it at call time, so an
|
|
321
|
+
* uninstall hands `getStatus` back to the native immediately.
|
|
322
|
+
*/
|
|
323
|
+
setStatusOverlay(overlay: StatusOverlay | null): void;
|
|
324
|
+
/**
|
|
325
|
+
* THE question every `getStatus` awaits before it is answered (the registry's
|
|
326
|
+
* own wrappers at call time, and the three transport entries through
|
|
327
|
+
* `answerClaimedGetStatus`). The overlay resolves the device's claims first;
|
|
328
|
+
* `unknown` survives only when its row cannot be read, and the caller then
|
|
329
|
+
* answers "not reported", never the native (D315, D49).
|
|
330
|
+
*
|
|
331
|
+
* A claimed slice is parsed with the cap's `status.schema` — S4 makes
|
|
332
|
+
* `status ⊆ runtimeState`, so the merged runtime slice parses and a
|
|
333
|
+
* runtime-only key such as `lastFetchedAt` is stripped. A slice that does not
|
|
334
|
+
* parse is `null`, logged once per `(cap, device)` transition with the device
|
|
335
|
+
* tag; a held claim is `null` without a parse. A cap with no `status` block
|
|
336
|
+
* passes its merged slice through as is.
|
|
337
|
+
*/
|
|
338
|
+
resolveClaimedStatus(capName: string, deviceId: number): Promise<StatusOverlayAnswer>;
|
|
339
|
+
private parseClaimed;
|
|
340
|
+
/**
|
|
341
|
+
* Hand `provider` back untouched when `(capName, deviceId)` is KNOWN to be
|
|
342
|
+
* unclaimed; otherwise wrap it so `getStatus` awaits `resolveClaimedStatus`
|
|
343
|
+
* (re-read at call time — the parse, and for an unknown device the row read,
|
|
344
|
+
* happen only when `getStatus` is actually called) and everything else stays
|
|
345
|
+
* the provider's own. An unclaimed device pays one in-memory lookup; with no
|
|
346
|
+
* overlay installed it pays nothing.
|
|
347
|
+
*/
|
|
348
|
+
private withOverlay;
|
|
349
|
+
/** Resolve the addonId that registered the native provider for `(capName, deviceId)`. */
|
|
350
|
+
getNativeAddonId(capName: string, deviceId: number): string | null;
|
|
351
|
+
/** List the capability names for which this device has a native provider registered. */
|
|
352
|
+
getNativeCapsForDevice(deviceId: number): readonly string[];
|
|
353
|
+
/**
|
|
354
|
+
* Mark `addonId` as providing a wrapper implementation for `capName`. Called
|
|
355
|
+
* by `declareFromManifest` when the capability's `CapabilityDefinition` declares
|
|
356
|
+
* `kind: 'wrapper'` (D4 — the cap definition is the single source of truth for wrapper behaviour).
|
|
357
|
+
* Idempotent — re-registration keeps a single entry.
|
|
358
|
+
*/
|
|
359
|
+
registerWrapper(capName: string, addonId: string, opts?: {
|
|
360
|
+
defaultActive?: boolean;
|
|
361
|
+
}): void;
|
|
362
|
+
/** Remove a wrapper registration. No-op if absent. */
|
|
363
|
+
unregisterWrapper(capName: string, addonId: string): void;
|
|
364
|
+
/** Remove every wrapper registration owned by `addonId`. Called on addon stop. */
|
|
365
|
+
unregisterAllWrappersForAddon(addonId: string): void;
|
|
366
|
+
/** Return the addon ids that declared a wrapper for `capName`. */
|
|
367
|
+
getWrappersForCap(capName: string): readonly string[];
|
|
368
|
+
/**
|
|
369
|
+
* Return the wrapper addon flagged `defaultActive: true` for `capName`, or
|
|
370
|
+
* null when no wrapper declared itself the default. Used by
|
|
371
|
+
* `device-manager.getBindings` to auto-bind default wrappers on devices
|
|
372
|
+
* without an explicit user activation.
|
|
373
|
+
*/
|
|
374
|
+
getDefaultWrapperForCap(capName: string): string | null;
|
|
375
|
+
/** List capability names that have at least one wrapper flagged `defaultActive: true`. */
|
|
376
|
+
getCapsWithDefaultWrapper(): readonly string[];
|
|
377
|
+
/**
|
|
378
|
+
* Get the active provider for a singleton capability.
|
|
379
|
+
*
|
|
380
|
+
* When called with a declared capability name (a key of
|
|
381
|
+
* `CapabilityProviderMap`), the return type is inferred automatically —
|
|
382
|
+
* no caller-side casts needed. Arbitrary string names fall back to
|
|
383
|
+
* `unknown`.
|
|
384
|
+
*/
|
|
385
|
+
getProvider<K extends keyof CapabilityProviderMap>(capabilityName: K): CapabilityProviderMap[K] | null;
|
|
386
|
+
getProvider(capabilityName: string): unknown | null;
|
|
387
|
+
/**
|
|
388
|
+
* Unified per-device resolver (D13). Resolves a `(cap, device)` pair to
|
|
389
|
+
* its provider transparently — native (per-device) first, then a
|
|
390
|
+
* device-bound system provider. Callers no longer branch on
|
|
391
|
+
* `kind: 'native' | 'wrapped'`; `kind` is metadata on the binding only.
|
|
392
|
+
*
|
|
393
|
+
* Resolution order:
|
|
394
|
+
* 1. Native provider registered for the exact `(capName, deviceId)` pair.
|
|
395
|
+
* 2. System provider: for singleton caps, honours per-device overrides and
|
|
396
|
+
* activation via `resolveForDevice`; for collection caps, returns the
|
|
397
|
+
* first registered provider.
|
|
398
|
+
* 3. `null` when neither exists.
|
|
399
|
+
*/
|
|
400
|
+
getProviderForDevice<T = unknown>(capName: string, deviceId: number): T | null;
|
|
401
|
+
/** Get all providers for a collection capability. */
|
|
402
|
+
getAllProviders<K extends keyof CapabilityProviderMap>(capabilityName: K): readonly CapabilityProviderMap[K][];
|
|
403
|
+
getAllProviders(capabilityName: string): readonly unknown[];
|
|
404
|
+
/** Get provider by addon ID (for per-device resolution). */
|
|
405
|
+
getProviderByAddon<K extends keyof CapabilityProviderMap>(capabilityName: K, addonId: string): CapabilityProviderMap[K] | null;
|
|
406
|
+
getProviderByAddon<T = unknown>(capabilityName: string, addonId: string): T | null;
|
|
407
|
+
/**
|
|
408
|
+
* Wait for a specific `(capabilityName, addonId)` provider to become
|
|
409
|
+
* available, up to `timeoutMs`. Resolves synchronously with the live
|
|
410
|
+
* provider if it is already registered; otherwise queues a waiter that
|
|
411
|
+
* {@link registerProvider} fulfils as soon as the matching pair shows up.
|
|
412
|
+
* Resolves to `null` on timeout instead of rejecting — the caller
|
|
413
|
+
* ({@link device-management.router}) already branches on `null` to return
|
|
414
|
+
* a user-facing "provider not available" error.
|
|
415
|
+
*
|
|
416
|
+
* Replaces the 100ms polling loop from the post-settings-redesign
|
|
417
|
+
* `waitForDeviceProvider` helper. On the happy path there is zero
|
|
418
|
+
* overhead and zero behavioural change; on the race path the wait
|
|
419
|
+
* unblocks on the next `registerProvider` call without any intermediate
|
|
420
|
+
* sleeps. See `[WAIT-EVENT]` in the 2026-04-12 handover.
|
|
421
|
+
*/
|
|
422
|
+
waitForProvider<K extends keyof CapabilityProviderMap>(capabilityName: K, addonId: string, timeoutMs: number): Promise<CapabilityProviderMap[K] | null>;
|
|
423
|
+
waitForProvider(capabilityName: string, addonId: string, timeoutMs: number): Promise<unknown | null>;
|
|
424
|
+
/**
|
|
425
|
+
* Get the active singleton provider for a capability.
|
|
426
|
+
*
|
|
427
|
+
* Declared capability names resolve to their typed provider via
|
|
428
|
+
* `SingletonCapabilityMap` — a cap declared as `collection` in its
|
|
429
|
+
* `.cap.ts` definition is rejected at the type level. Arbitrary strings
|
|
430
|
+
* (non-declared capabilities) fall back to the caller-provided `T`
|
|
431
|
+
* (default `unknown`) through the second overload for compatibility
|
|
432
|
+
* with downstream packages that extend `CapabilityProviderMap` via
|
|
433
|
+
* declaration merging.
|
|
434
|
+
*
|
|
435
|
+
* Hard-typed narrowing via `SingletonCapabilityMap` was introduced in
|
|
436
|
+
* session 5 Sprint A5 — see audit addendum finding R6.
|
|
437
|
+
*/
|
|
438
|
+
getSingleton<K extends keyof SingletonCapabilityMap>(capability: K): SingletonCapabilityMap[K] | null;
|
|
439
|
+
getSingleton<T = unknown>(capability: string): T | null;
|
|
440
|
+
/** Get the addon ID of the active singleton provider. */
|
|
441
|
+
getSingletonAddonId(capability: string): string | null;
|
|
442
|
+
/**
|
|
443
|
+
* Override the active addon for a singleton capability. Called by the
|
|
444
|
+
* pipeline-orchestrator binding system so future `getSingleton(cap)`
|
|
445
|
+
* lookups return the addon the operator explicitly selected. If
|
|
446
|
+
* `addonId` is `null` or no provider is registered under that id,
|
|
447
|
+
* falls back to the cap-declared `preferredProvider` (when registered),
|
|
448
|
+
* otherwise the first-registered provider (legacy behaviour).
|
|
449
|
+
*
|
|
450
|
+
* This helper is an internal hook for the UDS-preference race (it does
|
|
451
|
+
* NOT read `configReader` — the operator's persisted choice is applied
|
|
452
|
+
* by `registerProvider`/`unregisterProvider`). For consistency with those
|
|
453
|
+
* paths the fallback still honours `preferredProvider` ahead of
|
|
454
|
+
* insertion-order first-remaining.
|
|
455
|
+
*
|
|
456
|
+
* No-op when the capability isn't declared, isn't a singleton, or the
|
|
457
|
+
* requested addon hasn't registered a provider for it yet.
|
|
458
|
+
*/
|
|
459
|
+
setSingletonActiveAddon(capability: string, addonId: string | null): void;
|
|
460
|
+
/**
|
|
461
|
+
* Get all active collection providers for a capability.
|
|
462
|
+
*
|
|
463
|
+
* Declared capability names resolve to their typed provider via
|
|
464
|
+
* `CollectionCapabilityMap` — a cap declared as `singleton` in its
|
|
465
|
+
* `.cap.ts` definition is rejected at the type level. Arbitrary strings
|
|
466
|
+
* fall back to the caller-provided `T` (default `unknown`) for
|
|
467
|
+
* compatibility with declaration-merged extensions.
|
|
468
|
+
*/
|
|
469
|
+
getCollection<K extends keyof CollectionCapabilityMap>(capability: K): readonly CollectionCapabilityMap[K][];
|
|
470
|
+
getCollection<T = unknown>(capability: string): readonly T[];
|
|
471
|
+
/**
|
|
472
|
+
* Like {@link getCollection} but returns `[addonId, provider]` tuples so
|
|
473
|
+
* callers can attribute work back to the contributing addon.
|
|
474
|
+
*
|
|
475
|
+
* Needed by the device-settings aggregator (`device-manager.addon.ts`) —
|
|
476
|
+
* each contributed field must carry the writer's `addonId` so the
|
|
477
|
+
* `deviceManager.updateDeviceField` mutation can route the write to the
|
|
478
|
+
* correct addon-settings store without hardcoding any addon identity.
|
|
479
|
+
*/
|
|
480
|
+
getCollectionEntries<K extends keyof CollectionCapabilityMap>(capability: K): readonly (readonly [string, CollectionCapabilityMap[K]])[];
|
|
481
|
+
getCollectionEntries<T = unknown>(capability: string): readonly (readonly [string, T])[];
|
|
482
|
+
/**
|
|
483
|
+
* Is `addonId` currently DISABLED as a provider of `capability`?
|
|
484
|
+
*
|
|
485
|
+
* Exposed because the disabled set was write-only for `log-destination`:
|
|
486
|
+
* the orchestrator toggle added the addon here and nothing ever read it, so
|
|
487
|
+
* console and winston could not be turned off at all while the UI badge said
|
|
488
|
+
* they were (audit 2026-07-30).
|
|
489
|
+
*/
|
|
490
|
+
isProviderDisabled(capability: string, addonId: string): boolean;
|
|
491
|
+
/** Get the full CapabilityDefinition for a declared capability. */
|
|
492
|
+
getDefinition(capability: string): CapabilityDefinition | undefined;
|
|
493
|
+
/** Get the mode declared for a capability. */
|
|
494
|
+
getMode(capability: string): CapabilityMode | undefined;
|
|
495
|
+
/** Get a specific addon's provider by addon ID. */
|
|
496
|
+
getProviderByAddonId<K extends keyof CapabilityProviderMap>(capability: K, addonId: string): CapabilityProviderMap[K] | null;
|
|
497
|
+
getProviderByAddonId<T = unknown>(capability: string, addonId: string): T | null;
|
|
498
|
+
/**
|
|
499
|
+
* Every registry KEY currently registered for `capability`, disabled ones
|
|
500
|
+
* included — i.e. exactly the ids {@link getProviderByAddonId} can resolve.
|
|
501
|
+
* Keys are bare (`homeassistant-export`) for hub-local providers and
|
|
502
|
+
* `<addonId>@<nodeId>` for providers that registered from another node.
|
|
503
|
+
*
|
|
504
|
+
* Exists so an unresolvable `{ addonId }` pin can REFUSE with the valid ids
|
|
505
|
+
* spelled out (the `addons.custom` unknown-id posture) instead of silently
|
|
506
|
+
* degrading to another provider's answer — a fabricated `addonId` used to
|
|
507
|
+
* return the first-registered provider's status, indistinguishable from
|
|
508
|
+
* success (2026-08-09).
|
|
509
|
+
*/
|
|
510
|
+
getProviderAddonIds(capability: string): readonly string[];
|
|
511
|
+
/** Bare addonId from a registry key (`webrtc-native@dev-agent-0` → `webrtc-native`). */
|
|
512
|
+
private bareAddonId;
|
|
513
|
+
/** nodeId a provider key belongs to (bare → 'hub', `@node` → node). */
|
|
514
|
+
private nodeOfKey;
|
|
515
|
+
/** capName → (nodeId → bare addonId[]) availability derived from provider keys. */
|
|
516
|
+
getProvidersByNode(capability: string): Map<string, string[]>;
|
|
517
|
+
/**
|
|
518
|
+
* Resolve the BARE addon id a node should use for a singleton cap.
|
|
519
|
+
* Chain: per-node override → cluster-global default → first available.
|
|
520
|
+
* Returns null when the node hosts no provider for the cap.
|
|
521
|
+
*/
|
|
522
|
+
resolveSingletonAddonIdForNode(capability: string, nodeId: string): string | null;
|
|
523
|
+
/** Resolve the in-process provider object for a node (hub-local only). */
|
|
524
|
+
getSingletonForNode<T = unknown>(capability: string, nodeId: string): T | null;
|
|
525
|
+
/** Per-node override accessor (for listCapabilities + tests). */
|
|
526
|
+
getSingletonNodeOverrides(capability: string): Map<string, string>;
|
|
527
|
+
/** Set the reader for persisted per-node overrides (boot restore). */
|
|
528
|
+
setNodeConfigReader(reader: (capability: string, nodeId: string) => string | undefined): void;
|
|
529
|
+
/** Clear a per-node override (UI "inherit global"). */
|
|
530
|
+
clearSingletonNodeOverride(capability: string, nodeId: string): void;
|
|
531
|
+
/**
|
|
532
|
+
* Set which addon should be the active singleton for a capability.
|
|
533
|
+
* Pass an optional `nodeId` to set a per-node override instead of the cluster-global default.
|
|
534
|
+
*/
|
|
535
|
+
setActiveSingleton(capability: string, addonId: string, nodeId?: string): Promise<void>;
|
|
536
|
+
/**
|
|
537
|
+
* Check if a specific addon's capability is active.
|
|
538
|
+
*
|
|
539
|
+
* Resolution: the manifest's `autoActivate` flag, else active. There is no
|
|
540
|
+
* persisted override layer — see D334: an activation map keyed by
|
|
541
|
+
* `{capability}/{addonId}` is a second authority over a function some addon
|
|
542
|
+
* already owns, which is what D62 forbids.
|
|
543
|
+
*/
|
|
544
|
+
isActiveForSystem(capability: string, addonId: string): boolean;
|
|
545
|
+
/**
|
|
546
|
+
* Get all addon/capability activations at system level.
|
|
547
|
+
* Returns every registered provider with its resolved active status.
|
|
548
|
+
*/
|
|
549
|
+
getSystemActivations(): ReadonlyArray<{
|
|
550
|
+
capability: string;
|
|
551
|
+
addonId: string;
|
|
552
|
+
active: boolean;
|
|
553
|
+
}>;
|
|
554
|
+
/** Set a per-device singleton override. */
|
|
555
|
+
setDeviceOverride(deviceId: string, capability: string, addonId: string): void;
|
|
556
|
+
/** Clear a per-device singleton override. */
|
|
557
|
+
clearDeviceOverride(deviceId: string, capability: string): void;
|
|
558
|
+
/** Get all per-device singleton overrides for a device. */
|
|
559
|
+
getDeviceOverrides(deviceId: string): Map<string, string>;
|
|
560
|
+
/**
|
|
561
|
+
* Resolve a singleton provider for a specific device.
|
|
562
|
+
* Checks activation (the manifest's autoActivate) then the per-device
|
|
563
|
+
* singleton override — the in-memory provider pin, not a persisted flag.
|
|
564
|
+
*/
|
|
565
|
+
resolveForDevice<T = unknown>(capability: string, deviceId: string): T | null;
|
|
566
|
+
/**
|
|
567
|
+
* Resolve collection providers for a specific device.
|
|
568
|
+
*
|
|
569
|
+
* Filters by activation (the manifest's autoActivate) and by nothing else.
|
|
570
|
+
* The per-device DENY set that used to filter here is gone with the switch
|
|
571
|
+
* it projected (2026-09-20): *"tutti i providers funzionano sempre"* [all the providers always work]. WHICH
|
|
572
|
+
* providers a device has is now answered by its BINDINGS
|
|
573
|
+
* (`device-bindings-store.ts` step 0), which is a different question from
|
|
574
|
+
* which of them are registered and running — this one.
|
|
575
|
+
*
|
|
576
|
+
* `deviceId` is kept in the signature and deliberately unused: the resolution
|
|
577
|
+
* is per-device by CONTRACT, and a caller that stops passing one is a caller
|
|
578
|
+
* that has stopped asking about a device.
|
|
579
|
+
*/
|
|
580
|
+
resolveCollectionForDevice<T = unknown>(capability: string, _deviceId: string): readonly T[];
|
|
581
|
+
/** Check if all dependencies for a capability are satisfied. */
|
|
582
|
+
areDependenciesMet(capabilityName: string): boolean;
|
|
583
|
+
/** Get topologically sorted boot order based on dependsOn. */
|
|
584
|
+
getBootOrder(): string[];
|
|
585
|
+
/** Get all auto-mounted routers. Key = capability name. */
|
|
586
|
+
getMountedRouters(): ReadonlyMap<string, CapabilityRouter>;
|
|
587
|
+
/** Get a single mounted router by capability name. */
|
|
588
|
+
getRouter(capabilityName: string): CapabilityRouter | null;
|
|
589
|
+
/** List all declared capabilities (v1-compatible shape). */
|
|
590
|
+
listCapabilities(): CapabilityInfo[];
|
|
591
|
+
/** Check if a capability is declared. */
|
|
592
|
+
has(capabilityName: string): boolean;
|
|
593
|
+
/** Check if a capability has at least one provider. */
|
|
594
|
+
isAvailable(capabilityName: string): boolean;
|
|
595
|
+
/**
|
|
596
|
+
* Return every declared device-scoped capability (`scope: 'device'`)
|
|
597
|
+
* whose `deviceTypes` list includes the given type — or caps that declare
|
|
598
|
+
* no explicit `deviceTypes` (treat as applies-to-all). Used by the
|
|
599
|
+
* bindings UI to enumerate which caps the user can wire for a device.
|
|
600
|
+
*/
|
|
601
|
+
listDeviceScopedCapsForType(deviceType: string): readonly string[];
|
|
602
|
+
private emitEvent;
|
|
591
603
|
}
|