@camstack/system 1.2.390 → 1.2.391
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon/addon-api-factory.d.ts +30 -30
- package/dist/addon-routes/addon-route-registry.d.ts +31 -31
- package/dist/addon-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/addon-utils.d.ts +22 -22
- package/dist/auth/admin-token-manager.d.ts +37 -67
- package/dist/auth/api-key-manager.d.ts +8 -8
- package/dist/auth/auth-audit-log.d.ts +29 -49
- package/dist/auth/auth-manager.d.ts +127 -126
- package/dist/auth/cidr.d.ts +8 -8
- package/dist/auth/external-identity-manager.d.ts +46 -34
- package/dist/auth/jwt-signing-key.d.ts +14 -14
- package/dist/auth/login-session-manager.d.ts +95 -135
- package/dist/auth/parse-record.d.ts +13 -13
- package/dist/auth/scope-matcher.d.ts +7 -7
- package/dist/auth/scoped-token-manager.d.ts +62 -62
- package/dist/auth/token-expiry.d.ts +49 -26
- package/dist/auth/totp-manager.d.ts +48 -48
- package/dist/auth/user-management-internal.d.ts +67 -52
- package/dist/auth/user-manager.d.ts +58 -58
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
- package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
- package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
- package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
- package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
- package/dist/builtins/alerts/device-label.d.ts +6 -6
- package/dist/builtins/alerts/index.d.ts +1 -1
- package/dist/builtins/alerts/prune-policy.d.ts +36 -36
- package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
- package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
- package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
- package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
- package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
- package/dist/builtins/autotrack/frame-error.d.ts +38 -38
- package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
- package/dist/builtins/autotrack/index.d.ts +2 -2
- package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
- package/dist/builtins/autotrack/target-selection.d.ts +33 -47
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
- package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
- package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
- package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
- package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
- package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
- package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
- package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
- package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
- package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
- package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
- package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
- package/dist/builtins/calendars/calendar-color.d.ts +5 -1
- package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
- package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
- package/dist/builtins/calendars/index.d.ts +1 -1
- package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
- package/dist/builtins/camera-grid/addon.d.ts +200 -174
- package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
- package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
- package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
- package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
- package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
- package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
- package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
- package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
- package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
- package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
- package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
- package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
- package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
- package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
- package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
- package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
- package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
- package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
- package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
- package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
- package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
- package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
- package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
- package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
- package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
- package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
- package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
- package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
- package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
- package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
- package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
- package/dist/builtins/camera-grid/index.d.ts +44 -44
- package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
- package/dist/builtins/composer/claim-gate.d.ts +54 -27
- package/dist/builtins/composer/composed-device-set.d.ts +40 -26
- package/dist/builtins/composer/composed-device.d.ts +39 -17
- package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
- package/dist/builtins/composer/composer-grafts.d.ts +57 -38
- package/dist/builtins/composer/composer-live-set.d.ts +15 -15
- package/dist/builtins/composer/composer-plan.d.ts +76 -60
- package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
- package/dist/builtins/composer/composer-seeds.d.ts +20 -14
- package/dist/builtins/composer/composer-verdict.d.ts +28 -14
- package/dist/builtins/composer/composer.addon.d.ts +23 -9
- package/dist/builtins/composer/composer.d.ts +145 -100
- package/dist/builtins/composer/composition-declarations.d.ts +50 -39
- package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
- package/dist/builtins/composer/composition-runtime.d.ts +178 -125
- package/dist/builtins/composer/composition-target.d.ts +38 -34
- package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
- package/dist/builtins/composer/deadline-timer.d.ts +13 -13
- package/dist/builtins/composer/existing-target.d.ts +90 -73
- package/dist/builtins/composer/field-record.d.ts +26 -19
- package/dist/builtins/composer/graft-host.d.ts +56 -32
- package/dist/builtins/composer/held-claims.d.ts +26 -9
- package/dist/builtins/composer/index.d.ts +1 -1
- package/dist/builtins/composer/own-field-reads.d.ts +26 -15
- package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
- package/dist/builtins/composer/slice-assembler.d.ts +19 -3
- package/dist/builtins/composer/source-readings.d.ts +67 -61
- package/dist/builtins/composer/source-tracker.d.ts +133 -69
- package/dist/builtins/console-logging/console-destination.d.ts +15 -8
- package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
- package/dist/builtins/console-logging/index.d.ts +3 -3
- package/dist/builtins/core-blocks/block-package.d.ts +37 -37
- package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
- package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
- package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
- package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
- package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
- package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
- package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
- package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
- package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
- package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
- package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
- package/dist/builtins/core-blocks/index.d.ts +8 -8
- package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
- package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
- package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
- package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
- package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
- package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
- package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
- package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
- package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
- package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
- package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
- package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
- package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
- package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
- package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
- package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
- package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
- package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
- package/dist/builtins/device-manager/device-projection.d.ts +53 -67
- package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
- package/dist/builtins/device-manager/device-queries.d.ts +63 -63
- package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
- package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
- package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
- package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
- package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
- package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
- package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
- package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
- package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
- package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
- package/dist/builtins/device-manager/index.d.ts +2 -2
- package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
- package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
- package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
- package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
- package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
- package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
- package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
- package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
- package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
- package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
- package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
- package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
- package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
- package/dist/builtins/device-manager/write-lock.d.ts +13 -13
- package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
- package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
- package/dist/builtins/hub-forwarder/index.d.ts +3 -3
- package/dist/builtins/keychain/index.d.ts +1 -1
- package/dist/builtins/keychain/key-sources.d.ts +19 -19
- package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
- package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
- package/dist/builtins/keychain/keychain-service.d.ts +128 -128
- package/dist/builtins/keychain/keychain-store.d.ts +96 -87
- package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
- package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
- package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
- package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
- package/dist/builtins/liveness-monitor/index.d.ts +2 -2
- package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
- package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
- package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
- package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
- package/dist/builtins/local-auth/index.d.ts +1 -1
- package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
- package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
- package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
- package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
- package/dist/builtins/local-network/address-book.d.ts +61 -36
- package/dist/builtins/local-network/index.d.ts +2 -2
- package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
- package/dist/builtins/local-network/local-hostname.d.ts +10 -10
- package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
- package/dist/builtins/loki-logging/index.d.ts +4 -4
- package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
- package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
- package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
- package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
- package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
- package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
- package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
- package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
- package/dist/builtins/native-metrics/index.d.ts +2 -2
- package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
- package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
- package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
- package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
- package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
- package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
- package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
- package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
- package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
- package/dist/builtins/platform-probe/index.d.ts +38 -30
- package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
- package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
- package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
- package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
- package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
- package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
- package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
- package/dist/builtins/shared/device-state-changed.d.ts +9 -9
- package/dist/builtins/shared/settle-sources.d.ts +16 -16
- package/dist/builtins/snapshot/index.d.ts +2 -2
- package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
- package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
- package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
- package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
- package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
- package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
- package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
- package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
- package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
- package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
- package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
- package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
- package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
- package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
- package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
- package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
- package/dist/builtins/sqlite-storage/index.d.ts +12 -12
- package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
- package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
- package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
- package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
- package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
- package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
- package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
- package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
- package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
- package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
- package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
- package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
- package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
- package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
- package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
- package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
- package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
- package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
- package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
- package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
- package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
- package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
- package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
- package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
- package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
- package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
- package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
- package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
- package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
- package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
- package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
- package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
- package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
- package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
- package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
- package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
- package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
- package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
- package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
- package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
- package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
- package/dist/builtins/system-config/index.d.ts +2 -2
- package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
- package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
- package/dist/builtins/system-config/system-config.addon.js +37 -33
- package/dist/builtins/system-config/system-config.addon.mjs +37 -33
- package/dist/builtins/winston-logging/index.d.ts +3 -3
- package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
- package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
- package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
- package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
- package/dist/download/hosted-model-revisions.d.ts +8 -8
- package/dist/download/model-download-service.d.ts +32 -32
- package/dist/download/model-downloader.d.ts +88 -88
- package/dist/events/event-bus.d.ts +6 -6
- package/dist/events/system-event-bus.d.ts +11 -11
- package/dist/feature/feature-manager.d.ts +6 -6
- package/dist/http/asset-compression.d.ts +35 -73
- package/dist/http/authenticated-file-server.d.ts +32 -32
- package/dist/http/data-plane-registry.d.ts +49 -39
- package/dist/http/file-data-plane.d.ts +14 -14
- package/dist/http/lan-http-bind.d.ts +24 -13
- package/dist/http/reverse-proxy.d.ts +36 -24
- package/dist/index.d.ts +137 -137
- package/dist/index.js +4 -3
- package/dist/index.mjs +2 -4
- package/dist/kernel/addon-class-resolver.d.ts +1 -1
- package/dist/kernel/addon-engine-manager.d.ts +20 -20
- package/dist/kernel/addon-health-monitor.d.ts +151 -151
- package/dist/kernel/addon-installer.d.ts +609 -609
- package/dist/kernel/addon-loader.d.ts +133 -133
- package/dist/kernel/addon-manifest.d.ts +118 -118
- package/dist/kernel/addon-residue.d.ts +28 -32
- package/dist/kernel/array-buffer-census.d.ts +84 -88
- package/dist/kernel/bootstrap-config.d.ts +3 -3
- package/dist/kernel/cap-router-builder.d.ts +145 -101
- package/dist/kernel/capability-handle.d.ts +41 -41
- package/dist/kernel/capability-registry.d.ts +588 -576
- package/dist/kernel/config-manager.d.ts +199 -199
- package/dist/kernel/config-schema.d.ts +132 -128
- package/dist/kernel/custom-action-registry.d.ts +25 -25
- package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
- package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
- package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
- package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
- package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
- package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
- package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
- package/dist/kernel/deps/npm-command.d.ts +45 -45
- package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
- package/dist/kernel/deps/system-package-broker.d.ts +20 -20
- package/dist/kernel/deps/system-package-client.d.ts +3 -3
- package/dist/kernel/device-registry.d.ts +27 -27
- package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
- package/dist/kernel/event-plane-report.d.ts +174 -174
- package/dist/kernel/fs-utils.d.ts +70 -70
- package/dist/kernel/gc-census.d.ts +119 -119
- package/dist/kernel/heap-spaces.d.ts +87 -87
- package/dist/kernel/heap-watch.d.ts +706 -706
- package/dist/kernel/host-externals.d.ts +8 -8
- package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
- package/dist/kernel/index.d.ts +115 -113
- package/dist/kernel/inference/inference-resolver.d.ts +13 -13
- package/dist/kernel/infra-capabilities.d.ts +7 -7
- package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
- package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
- package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
- package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
- package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
- package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
- package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
- package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
- package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
- package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
- package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
- package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
- package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
- package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
- package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
- package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
- package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
- package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
- package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
- package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
- package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
- package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
- package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
- package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
- package/dist/kernel/moleculer/event-bus.d.ts +73 -73
- package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
- package/dist/kernel/moleculer/hub-service.d.ts +42 -42
- package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
- package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
- package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
- package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
- package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
- package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
- package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
- package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
- package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
- package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
- package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
- package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
- package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
- package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
- package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
- package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
- package/dist/kernel/moleculer/node-registry.d.ts +120 -120
- package/dist/kernel/moleculer/process-context.d.ts +2 -2
- package/dist/kernel/moleculer/process-service.d.ts +168 -168
- package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
- package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
- package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
- package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
- package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
- package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
- package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
- package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
- package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
- package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
- package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
- package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
- package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
- package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
- package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
- package/dist/kernel/outbound-queue-watch.d.ts +74 -74
- package/dist/kernel/process-cpu-census.d.ts +55 -55
- package/dist/kernel/provider-kind-drift.d.ts +17 -8
- package/dist/kernel/restart-coordinator.d.ts +71 -71
- package/dist/kernel/settings-door-view.d.ts +36 -25
- package/dist/kernel/settings-read-error.d.ts +29 -31
- package/dist/kernel/settings-view-types.d.ts +100 -95
- package/dist/kernel/socket-plane-report.d.ts +214 -153
- package/dist/kernel/status-overlay.d.ts +31 -11
- package/dist/kernel/storage-location-registry.d.ts +50 -50
- package/dist/kernel/store-settings-view.d.ts +13 -13
- package/dist/kernel/system-settings-mirror.d.ts +40 -28
- package/dist/kernel/system-settings-policy.d.ts +15 -34
- package/dist/kernel/transport/cap-action-census.d.ts +183 -183
- package/dist/kernel/transport/cap-action-name.d.ts +84 -84
- package/dist/kernel/transport/cap-child-index.d.ts +41 -41
- package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
- package/dist/kernel/transport/cap-route.d.ts +139 -139
- package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
- package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
- package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
- package/dist/kernel/transport/create-local-transport.d.ts +5 -5
- package/dist/kernel/transport/frame-codec.d.ts +109 -109
- package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
- package/dist/kernel/transport/index.d.ts +36 -36
- package/dist/kernel/transport/local-child-client.d.ts +184 -184
- package/dist/kernel/transport/local-child-registry.d.ts +592 -592
- package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
- package/dist/kernel/transport/local-transport.d.ts +92 -92
- package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
- package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
- package/dist/kernel/transport/socket-channel.d.ts +110 -110
- package/dist/kernel/transport/socket-traffic.d.ts +96 -96
- package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
- package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
- package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
- package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
- package/dist/kernel/transport/uds-logger.d.ts +33 -33
- package/dist/kernel/utils/ring-buffer.d.ts +12 -12
- package/dist/kernel/workspace-detect.d.ts +7 -7
- package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
- package/dist/logging/formatter.d.ts +52 -25
- package/dist/logging/log-manager.d.ts +133 -133
- package/dist/logging/log-redactor.d.ts +22 -1
- package/dist/logging/log-ring-buffer.d.ts +57 -57
- package/dist/logging/logging-gate.d.ts +69 -25
- package/dist/logging/logging-gate.singleton.d.ts +12 -1
- package/dist/logging/partitioned-log-buffer.d.ts +161 -161
- package/dist/logging/scoped-logger.d.ts +14 -14
- package/dist/network/network-quality.d.ts +8 -8
- package/dist/notification/notification-service.d.ts +37 -37
- package/dist/notification/toast-service.d.ts +18 -18
- package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
- package/dist/pipeline/pipeline-runner.d.ts +6 -6
- package/dist/pipeline/pipeline-validator.d.ts +8 -8
- package/dist/process/proc-stat.d.ts +51 -51
- package/dist/process/resource-monitor.d.ts +19 -19
- package/dist/python/python-env-manager.d.ts +10 -10
- package/dist/repl/interfaces.d.ts +21 -21
- package/dist/repl/repl-engine.d.ts +6 -6
- package/dist/storage/fs-storage-backend.d.ts +35 -35
- package/dist/storage/storage-location-manager.d.ts +21 -21
- package/dist/storage/storage-manager.d.ts +68 -68
- package/dist/tls/boot-tls.d.ts +24 -24
- package/dist/tls/cert-evaluation.d.ts +25 -25
- package/dist/tls/cert-identity.d.ts +39 -39
- package/dist/tls/cert-issue.d.ts +37 -17
- package/dist/tls/cert-manager.d.ts +86 -84
- package/dist/tls/https-listener.d.ts +16 -16
- package/dist/tls/index.d.ts +8 -8
- package/dist/tls/tls-actions.d.ts +18 -18
- package/dist/tls/tls-status.d.ts +15 -15
- package/dist/tls/uploaded-cert.d.ts +9 -9
- package/package.json +9 -3
|
@@ -1,137 +1,158 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Converging the running block processes onto the stored blocks.
|
|
3
|
+
*
|
|
4
|
+
* Reconcile against the registry, not one-shot reactions to events: a spawn
|
|
5
|
+
* that was missed because an event was dropped (D8 — events are telemetry) has
|
|
6
|
+
* to be fixed by the next pass, and an operator restarting the hub must end up
|
|
7
|
+
* with exactly the blocks the store says are enabled. So `converge()` is
|
|
8
|
+
* idempotent and safe to call from a timer, from a write, and from boot.
|
|
9
|
+
*
|
|
10
|
+
* **The supervision itself is not in this file, and that is deliberate.** A
|
|
11
|
+
* block that never returns is bounded by `process-service`'s `CrashSupervisor`
|
|
12
|
+
* (D6) — the same circuit-breaker that bounds every addon. This class only
|
|
13
|
+
* decides which runners should exist and translates their state back into
|
|
14
|
+
* something the author can read. Re-implementing backoff here would be a second
|
|
15
|
+
* supervisor to keep in step with the first.
|
|
16
|
+
*
|
|
17
|
+
* The invariant it exists to hold: **a block that is not running says why.**
|
|
18
|
+
* Every path out of `converge()` that does not end in a live process writes a
|
|
19
|
+
* status the operator can see, with the reason attached. A block that is
|
|
20
|
+
* silently absent is the failure mode this whole feature has to avoid.
|
|
21
|
+
*/
|
|
22
|
+
import { type ComposerApplyInput, type ComposerApplyResult, type ComposerUnreadableBlock, type CoreBlock, type IScopedLogger } from "@camstack/types";
|
|
2
23
|
/** The runner lifecycle states `$process.list` reports. `stopping`/`stopped`
|
|
3
|
-
|
|
4
|
-
export type BlockRunnerState =
|
|
24
|
+
* are transient states of a runner on its way out and are treated as absent. */
|
|
25
|
+
export type BlockRunnerState = "starting" | "running" | "stopping" | "stopped" | "crashed" | "failed";
|
|
5
26
|
export interface BlockRunnerSnapshot {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
27
|
+
/** The runner id — equal to the generated addon id for a block runner. */
|
|
28
|
+
readonly name: string;
|
|
29
|
+
readonly state: BlockRunnerState;
|
|
9
30
|
}
|
|
10
31
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
32
|
+
* The process plane, narrowed to the three things a block needs.
|
|
33
|
+
*
|
|
34
|
+
* Injected rather than reached for, so the decision logic above is testable
|
|
35
|
+
* without a broker — and so the day a block runs on an agent, only this
|
|
36
|
+
* implementation changes.
|
|
37
|
+
*/
|
|
17
38
|
export interface BlockProcessHost {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
39
|
+
list(): Promise<readonly BlockRunnerSnapshot[]>;
|
|
40
|
+
spawn(input: {
|
|
41
|
+
runnerId: string;
|
|
42
|
+
addonId: string;
|
|
43
|
+
addonDir: string;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
stop(runnerId: string): Promise<void>;
|
|
25
46
|
}
|
|
26
47
|
export interface BlockCompileOutcome {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
48
|
+
readonly ok: boolean;
|
|
49
|
+
readonly error?: string;
|
|
50
|
+
readonly js?: string;
|
|
30
51
|
}
|
|
31
52
|
export interface BlockCompileSource {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
53
|
+
readonly code: string;
|
|
54
|
+
readonly files?: Readonly<Record<string, string>>;
|
|
55
|
+
readonly entry?: string;
|
|
35
56
|
}
|
|
36
57
|
/** The composer's one verb, as the supervisor needs it. */
|
|
37
58
|
export interface ComposerPort {
|
|
38
|
-
|
|
59
|
+
apply(input: ComposerApplyInput): Promise<ComposerApplyResult>;
|
|
39
60
|
}
|
|
40
61
|
export interface BlockSupervisorDeps {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
/** This node's id, already stripped of any `/<addon>` runner suffix. */
|
|
63
|
+
readonly nodeId: string;
|
|
64
|
+
/** Where block packages are materialised — one directory per block. */
|
|
65
|
+
readonly root: string;
|
|
66
|
+
readonly store: BlockStoreView;
|
|
67
|
+
readonly host: BlockProcessHost;
|
|
68
|
+
readonly compile: (source: BlockCompileSource) => Promise<BlockCompileOutcome>;
|
|
69
|
+
readonly logger: IScopedLogger;
|
|
70
|
+
/** Null when this node exposes no composer, and then every composition says so. */
|
|
71
|
+
readonly composer: ComposerPort | null;
|
|
72
|
+
/** The shared Blocks integration, null until it has reconciled. */
|
|
73
|
+
readonly integrationId: () => string | null;
|
|
74
|
+
/** False while the `core_blocks` read has not succeeded — the composer then withdraws nothing (D49). */
|
|
75
|
+
readonly storeLoaded: () => boolean;
|
|
76
|
+
/** Re-read `core_blocks`. Called by a converge while `storeLoaded()` is false — the converge IS the retry (D3). Never throws. */
|
|
77
|
+
readonly loadStore: () => Promise<void>;
|
|
57
78
|
}
|
|
58
79
|
/** The slice of `CoreBlockStore` the supervisor uses. */
|
|
59
80
|
export interface BlockStoreView {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
81
|
+
list(): readonly CoreBlock[];
|
|
82
|
+
get(blockId: string): CoreBlock | null;
|
|
83
|
+
/** Stored composition rows that do not parse: sent to the composer so their devices are held (D49). */
|
|
84
|
+
unreadableCompositions(): readonly ComposerUnreadableBlock[];
|
|
85
|
+
setStatus(blockId: string, status: CoreBlock["status"], error?: string): Promise<void>;
|
|
65
86
|
}
|
|
66
87
|
export declare class BlockSupervisor {
|
|
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
|
-
|
|
88
|
+
private readonly deps;
|
|
89
|
+
/**
|
|
90
|
+
* `blockId → updatedAt` of the source this supervisor last materialised.
|
|
91
|
+
* The only way to know a running block is running YESTERDAY'S code: the
|
|
92
|
+
* process is alive either way, and nothing on disk carries the version.
|
|
93
|
+
* In-memory is correct — a hub restart takes every child with it.
|
|
94
|
+
*/
|
|
95
|
+
private readonly materialized;
|
|
96
|
+
private timer;
|
|
97
|
+
/** Serialises passes so a timer tick cannot interleave with a write-driven
|
|
98
|
+
* converge and spawn the same runner twice. */
|
|
99
|
+
private inFlight;
|
|
100
|
+
/** Composition restarts not yet delivered to the composer. Stores nothing durable (D62). */
|
|
101
|
+
private pendingCompositionRestarts;
|
|
102
|
+
/**
|
|
103
|
+
* Empty applies still owed: the composer withdraws only after TWO agree
|
|
104
|
+
* (D49), and a boot sends one. Only an apply the composer says it ACTED on
|
|
105
|
+
* (`result.acted`) pays one off — it can refuse with the store loaded.
|
|
106
|
+
*/
|
|
107
|
+
private emptyAppliesOwed;
|
|
108
|
+
/** Consecutive applies that could not reach the composer: warned once per run. */
|
|
109
|
+
private failedApplies;
|
|
110
|
+
constructor(deps: BlockSupervisorDeps);
|
|
111
|
+
/** Start the reconcile timer. The first pass runs immediately. */
|
|
112
|
+
start(intervalMs: number): void;
|
|
113
|
+
stop(): void;
|
|
114
|
+
/** One reconcile pass. Never throws — a pass that failed must not stop the
|
|
115
|
+
* next one, and the reason belongs in the log, not in a rejected promise
|
|
116
|
+
* nobody awaits. */
|
|
117
|
+
converge(): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Stop one block's runner and let the pass that follows bring it back.
|
|
120
|
+
*
|
|
121
|
+
* The same path a code change already takes (see `stale` in `reconcile`),
|
|
122
|
+
* exposed on purpose. It writes NO state of its own: forgetting the
|
|
123
|
+
* materialised `updatedAt` is what makes the next pass treat the block as
|
|
124
|
+
* needing a launch, and that pass is still the authority — so a restart that
|
|
125
|
+
* raced a converge ends with one runner, not two.
|
|
126
|
+
*
|
|
127
|
+
* Queued on the same chain as `converge()`: a restart that interleaved with a
|
|
128
|
+
* timer tick could stop a runner the tick had just decided was healthy and
|
|
129
|
+
* then never re-launch it.
|
|
130
|
+
*/
|
|
131
|
+
restart(blockId: string): Promise<void>;
|
|
132
|
+
private runRestart;
|
|
133
|
+
private runPass;
|
|
134
|
+
private reconcile;
|
|
135
|
+
/**
|
|
136
|
+
* Send every composition placed here to the composer and mirror its verdicts
|
|
137
|
+
* into the block status, reason verbatim. A `starting` verdict (the composer
|
|
138
|
+
* does not trust its store or seed yet) is mirrored as `starting`; the next
|
|
139
|
+
* pass of this same converge is the retry — no timer of its own (D3).
|
|
140
|
+
*/
|
|
141
|
+
private convergeCompositions;
|
|
142
|
+
/** Compile, write the package, spawn. Each failure is reported ON the block
|
|
143
|
+
* — the author asked for this to run, so they are owed the reason it does
|
|
144
|
+
* not. */
|
|
145
|
+
private launch;
|
|
146
|
+
private reportRunnerState;
|
|
147
|
+
/**
|
|
148
|
+
* Write a status only when it actually changed.
|
|
149
|
+
*
|
|
150
|
+
* A reconcile pass runs on a timer, and every write rewrites the row AND
|
|
151
|
+
* moves `lastChangedAt` — which is the only thing telling an operator WHEN a
|
|
152
|
+
* block last did something. Rewriting it every tick would make it read as
|
|
153
|
+
* "just now", forever.
|
|
154
|
+
*/
|
|
155
|
+
private report;
|
|
156
|
+
private isPlacedHere;
|
|
157
|
+
private stopReason;
|
|
137
158
|
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { IScopedLogger } from
|
|
1
|
+
import type { IScopedLogger } from "@camstack/types";
|
|
2
2
|
export interface BlockTypeLib {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
readonly filePath: string;
|
|
4
|
+
readonly content: string;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
* Minimal Node surface for block authorship. Not `@types/node` — that package
|
|
8
|
+
* is a build-time dep and is not in the production closure. This is enough
|
|
9
|
+
* that Save is not refused for the builtins real scripts use (`process`,
|
|
10
|
+
* `node:net`, `node:fs`, `node:path`, `node:http(s)`, `node:crypto`, timers).
|
|
11
|
+
* Widen when a block hits a new missing name; do not paste the full DefinitelyTyped
|
|
12
|
+
* tree into every getTypeDefs response.
|
|
13
|
+
*/
|
|
14
14
|
export declare const BLOCK_NODE_AMBIENT: string;
|
|
15
15
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
* Read every declaration a block editor needs: `@camstack/types`, `zod`, and
|
|
17
|
+
* the Node ambient.
|
|
18
|
+
*
|
|
19
|
+
* Best-effort by design: a node that cannot find `@camstack/types` serves an
|
|
20
|
+
* EMPTY types list (plus whatever else resolved), and the editor then registers
|
|
21
|
+
* an empty lib set rather than keeping a stale one — so an author sees "no
|
|
22
|
+
* types" instead of validating against a contract that has moved.
|
|
23
|
+
*/
|
|
24
24
|
export declare function loadBlockTypeDefs(logger: IScopedLogger): Promise<readonly BlockTypeLib[]>;
|
|
25
25
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
* Resolve a package's directory that holds `index.d.ts` (the types dist root).
|
|
27
|
+
* Exported for the test that pins createRequire-over-cwd.
|
|
28
|
+
*/
|
|
29
29
|
export declare function resolveTypesDist(): Promise<string | null>;
|
|
@@ -1,62 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The integration every block's devices hang from.
|
|
3
|
+
*
|
|
4
|
+
* ## Why it is not the block's own
|
|
5
|
+
*
|
|
6
|
+
* A core block CANNOT own an integration, and the failure was silent and
|
|
7
|
+
* accumulating. Every integration READ is gated on the installed-addon set
|
|
8
|
+
* (`addon-registry.service.ts` → `createFilteredRegistry`), and a block's addon
|
|
9
|
+
* id — `core-block-<uuid>` — is never in that set: a block is materialised and
|
|
10
|
+
* spawned, not installed. So `getIntegrationByAddonId` answered `null` forever
|
|
11
|
+
* while `createIntegration` succeeded, and every block start minted a fresh row
|
|
12
|
+
* that `listIntegrations` then hid and `integrations.delete` refused to remove.
|
|
13
|
+
* Measured on the live hub 2026-08-09: `int_0021` and `int_0022`, two starts of
|
|
14
|
+
* one block, invisible and undeletable through the API.
|
|
15
|
+
*
|
|
16
|
+
* `core-blocks` is an installed builtin, so it passes the filter. It reconciles
|
|
17
|
+
* ONE integration; a block names that integration by id
|
|
18
|
+
* (`DeclaredDevicesSpec.integrationId`) and mints nothing. Ownership of the
|
|
19
|
+
* DEVICE is untouched — that is `(addonId, stableId)`, and `listOwnDevices`
|
|
20
|
+
* stays addon-scoped, which is what keeps one block's withdrawal sweep away
|
|
21
|
+
* from another block's devices now that the integration no longer distinguishes
|
|
22
|
+
* them.
|
|
23
|
+
*
|
|
24
|
+
* The block-side read is
|
|
25
|
+
* `ctx.api.integrations.getByAddonId.query({ addonId: CORE_BLOCKS_ADDON_ID })`
|
|
26
|
+
* — legal, because `core-blocks` is installed. No new cap method is needed.
|
|
27
|
+
*/
|
|
28
|
+
import { type DeclaredDevicePorts, type IScopedLogger } from "@camstack/types";
|
|
2
29
|
/** Operator-visible name of the shared integration. Seeded once, at create. */
|
|
3
30
|
export declare const BLOCKS_INTEGRATION_NAME = "Blocks";
|
|
4
31
|
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export type BlocksIntegrationPorts = Omit<DeclaredDevicePorts,
|
|
32
|
+
* The declared-device ports minus the owner — `reconcileBlocksIntegration`
|
|
33
|
+
* pins that itself, because getting it wrong is the entire bug above.
|
|
34
|
+
*/
|
|
35
|
+
export type BlocksIntegrationPorts = Omit<DeclaredDevicePorts, "addonId">;
|
|
9
36
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
* Reconcile the shared integration. Idempotent; safe on every boot.
|
|
38
|
+
*
|
|
39
|
+
* Returns its id, or `null` when this node does not own the declaration (it is
|
|
40
|
+
* hub-owned, like every declaration).
|
|
41
|
+
*
|
|
42
|
+
* **The trap, stated where it lives:** `devices: []` makes every row the index
|
|
43
|
+
* returns under this integration a withdrawal candidate. That is safe ONLY
|
|
44
|
+
* because `listOwnDevices` is scoped to `core-blocks` and a block's devices are
|
|
45
|
+
* owned by `core-block-<uuid>` — so the listing is empty. Two ways to destroy
|
|
46
|
+
* that: wire `listOwnDevices` without its owner filter (it would then answer
|
|
47
|
+
* with every device on the cluster, and the sweep would delete the blocks'), or
|
|
48
|
+
* make `core-blocks` declare a device of its own. Neither is worth the
|
|
49
|
+
* convenience; the spec test pins both.
|
|
50
|
+
*
|
|
51
|
+
* A SECOND owner hangs devices here since D659: `composer` (every composed
|
|
52
|
+
* device). It is equally safe for the same reason — its rows are owned by
|
|
53
|
+
* `composer`, never by `core-blocks`, and its own withdrawal sweep is scoped to
|
|
54
|
+
* `composer`.
|
|
55
|
+
*/
|
|
29
56
|
export declare function reconcileBlocksIntegration(ports: BlocksIntegrationPorts): Promise<string | null>;
|
|
30
57
|
/** What {@link armBlocksIntegration} needs, and the seam its spec drives. */
|
|
31
58
|
export interface ArmBlocksIntegrationOptions {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
59
|
+
readonly logger: IScopedLogger;
|
|
60
|
+
readonly reconcile: () => Promise<string | null>;
|
|
61
|
+
readonly onLanded: (integrationId: string | null) => void;
|
|
62
|
+
readonly retryDelayMs?: number;
|
|
63
|
+
readonly maxAttempts?: number;
|
|
37
64
|
}
|
|
38
65
|
/** A reconcile running in the background, and a handle to await in tests. */
|
|
39
66
|
export interface ArmedBlocksIntegration {
|
|
40
|
-
|
|
67
|
+
readonly settled: Promise<void>;
|
|
41
68
|
}
|
|
42
69
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
70
|
+
* Arm the shared integration WITHOUT putting it on the boot path (D167).
|
|
71
|
+
*
|
|
72
|
+
* `integrations` is a hub-core namespace served by the `$core-caps` Moleculer
|
|
73
|
+
* service, and that service is registered only after `app.init()` returns —
|
|
74
|
+
* which is where the entire addon boot runs. During boot the read is therefore
|
|
75
|
+
* not slow, it is unanswerable: it burns the full 30 s discovery deadline and
|
|
76
|
+
* fast-fails, with no boot-window retry (core caps are excluded from it).
|
|
77
|
+
*
|
|
78
|
+
* Awaited inside `onInitialize()`, that 30 s sat on the hub's SERIAL in-process
|
|
79
|
+
* builtin loop and delayed `device-manager` — which every provider runner waits
|
|
80
|
+
* on before it may publish a single capability. Measured 2026-08-15: builtins
|
|
81
|
+
* stalled t0+10 s → t0+40 s, and the first camera's first keyframe landed at
|
|
82
|
+
* t0+75 s.
|
|
83
|
+
*
|
|
84
|
+
* So: arm it, let boot finish, and let the retry land it a few seconds later. A
|
|
85
|
+
* block that declares a device before it lands finds `null` and gets the
|
|
86
|
+
* integration on the next converge tick — which was already the documented
|
|
87
|
+
* behaviour when the API was unavailable.
|
|
88
|
+
*/
|
|
62
89
|
export declare function armBlocksIntegration(options: ArmBlocksIntegrationOptions): ArmedBlocksIntegration;
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { CoreBlockCompileResult, DEFAULT_CORE_BLOCK_ENTRY } from
|
|
1
|
+
import { type CoreBlockCompileResult, DEFAULT_CORE_BLOCK_ENTRY } from "@camstack/types";
|
|
2
2
|
/** The esbuild surface this needs — injected so the compile is testable and so
|
|
3
|
-
|
|
3
|
+
* the kernel does not hard-depend on a bundler at import time. */
|
|
4
4
|
export interface BlockTranspiler {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
transform(code: string, options: {
|
|
6
|
+
loader: "ts";
|
|
7
|
+
format: "esm";
|
|
8
|
+
target: string;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
code: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Multi-file bundle. Absent on a node that only got `transform` (tests that
|
|
14
|
+
* never exercise files); then a files compile answers "unavailable".
|
|
15
|
+
*/
|
|
16
|
+
build?(options: BlockBundleOptions): Promise<BlockBundleResult>;
|
|
17
17
|
}
|
|
18
18
|
export interface BlockBundleOptions {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
readonly absWorkingDir: string;
|
|
20
|
+
readonly entryPoints: readonly string[];
|
|
21
|
+
readonly outfile: string;
|
|
22
|
+
readonly bundle: true;
|
|
23
|
+
readonly format: "esm";
|
|
24
|
+
readonly platform: "node";
|
|
25
|
+
readonly target: string;
|
|
26
|
+
readonly write: true;
|
|
27
|
+
readonly logLevel: "silent";
|
|
28
28
|
}
|
|
29
29
|
export interface BlockBundleResult {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
readonly errors: readonly {
|
|
31
|
+
text: string;
|
|
32
|
+
location?: {
|
|
33
|
+
line: number;
|
|
34
|
+
column: number;
|
|
35
|
+
} | null;
|
|
36
|
+
}[];
|
|
37
37
|
}
|
|
38
38
|
export interface CompileBlockFilesInput {
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
readonly files: Readonly<Record<string, string>>;
|
|
40
|
+
readonly entry?: string;
|
|
41
41
|
}
|
|
42
42
|
export type CompileBlockSource = string | CompileBlockFilesInput;
|
|
43
43
|
export interface CompileBlockResult extends CoreBlockCompileResult {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
/** The emitted JavaScript, when it compiled. */
|
|
45
|
+
readonly js?: string;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
* Never throws. A compile failure is an ANSWER — the author needs to read it,
|
|
49
|
+
* and a thrown error at this layer becomes a 500 with the useful part buried.
|
|
50
|
+
*/
|
|
51
51
|
export declare function compileBlock(transpiler: BlockTranspiler, source: CompileBlockSource): Promise<CompileBlockResult>;
|
|
52
52
|
export { DEFAULT_CORE_BLOCK_ENTRY };
|
|
@@ -1,30 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The composition half of the `core-blocks` provider (D659). Flat methods,
|
|
3
|
+
* spread into the provider: no nested sub-object.
|
|
4
|
+
*
|
|
5
|
+
* Every save is VALIDATED against the live sources, its existing target (read
|
|
6
|
+
* once: slim row + `getBindings`) and every stored composition first; a refusal
|
|
7
|
+
* names each problem by path and reason (D391) and stores nothing. The store's
|
|
8
|
+
* own refusals (not loaded, unknown block, a code block) propagate unchanged —
|
|
9
|
+
* this layer never swallows them.
|
|
10
|
+
*
|
|
11
|
+
* A customization of an existing device (D663) has no name of its own: the
|
|
12
|
+
* server derives it (`customizationBlockName`), refuses one the client sends,
|
|
13
|
+
* and never lets it move to another device. One per device, by block id (S2).
|
|
14
|
+
*/
|
|
15
|
+
import { type CapabilityDefinition, type CapabilityLookup, type CompositionBlockPatch, type CompositionBlockState, type CompositionSourceRef, type CoreBlock, type ICoreBlocksProvider, type IScopedLogger } from "@camstack/types";
|
|
16
|
+
import type { NamedCompositionInput } from "./core-block-store.js";
|
|
17
|
+
import type { CompositionDescriptions } from "./composition-sources.js";
|
|
4
18
|
export interface CompositionStoreView {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
19
|
+
/** False until the table has been READ; a verdict against an empty peer set would hide a cycle. */
|
|
20
|
+
isLoaded(): boolean;
|
|
21
|
+
list(): readonly CoreBlock[];
|
|
22
|
+
get(blockId: string): CoreBlock | null;
|
|
23
|
+
createComposition(input: NamedCompositionInput, createdBy: string): Promise<CoreBlock>;
|
|
24
|
+
updateComposition(blockId: string, patch: CompositionBlockPatch): Promise<CoreBlock>;
|
|
11
25
|
}
|
|
12
26
|
export interface CompositionApiDeps {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
readonly store: CompositionStoreView;
|
|
28
|
+
/** One read of every source and every existing target a save names (`describeCompositionSources`). */
|
|
29
|
+
readonly describe: (sources: readonly CompositionSourceRef[], targets: readonly CompositionSourceRef[]) => Promise<CompositionDescriptions>;
|
|
30
|
+
readonly lookupCap: CapabilityLookup;
|
|
31
|
+
readonly composerStates: (blockIds: readonly string[]) => Promise<readonly CompositionBlockState[]>;
|
|
32
|
+
readonly convergeSoon: () => void;
|
|
33
|
+
readonly logger: IScopedLogger;
|
|
34
|
+
/** Every capability definition — the listing is derived from them, never from the registry's live state. */
|
|
35
|
+
readonly capabilityDefinitions: readonly CapabilityDefinition[];
|
|
22
36
|
}
|
|
23
|
-
export type CompositionApi = Pick<ICoreBlocksProvider,
|
|
37
|
+
export type CompositionApi = Pick<ICoreBlocksProvider, "createComposition" | "updateComposition" | "getComposition" | "listCompositions" | "validateComposition" | "getCustomization" | "listComposableCaps">;
|
|
24
38
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
* Every write runs validate-then-persist on ONE chain. Validation awaits a
|
|
40
|
+
* source read before the save lands; two unserialized saves (A reads B, B
|
|
41
|
+
* reads A) would each be judged against a store without the other and BOTH
|
|
42
|
+
* pass — a stored cycle nothing downstream catches.
|
|
43
|
+
*/
|
|
30
44
|
export declare function buildCompositionApi(deps: CompositionApiDeps): CompositionApi;
|