@camstack/addon-pipeline-orchestrator 1.1.49 → 1.1.50

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.
@@ -36,6 +36,6 @@
36
36
  </noscript>
37
37
  <!-- The root element for your Expo app. -->
38
38
  <div id="root"></div>
39
- <script src="/viewer/camstack/_expo/static/js/web/index-5b6b7a6f9c54fd4f38efb799e5f75952.js" defer></script>
39
+ <script src="/viewer/camstack/_expo/static/js/web/index-864eb219c6810859b34768e62dd81a03.js" defer></script>
40
40
  </body>
41
41
  </html>
package/dist/_stub.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BiLBDmU5.mjs";
2
- import { n as t, t as n } from "./_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D0br6Ap8.mjs";
2
+ import { n as t, t as n } from "./_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CZrkMtyG.mjs";
3
3
  import { a as r, c as i, i as a, n as o, o as s, r as c, s as l, t as u } from "./_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.js-a8tvh93M.mjs";
4
4
  import { C as d, S as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, l as S, m as C, n as w, o as T, p as E, r as D, s as O, t as k, u as A, v as j, w as M, x as N, y as P } from "./_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CVV0TbM1.mjs";
5
5
  import { n as F, r as I, t as L } from "./_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-yD-rMaFX.mjs";
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.1.26",
6
+ version: "1.1.27",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_pipeline_orchestrator_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.1.47",
21
+ version: "1.1.48",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_orchestrator_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.1.38",
36
+ version: "1.1.39",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_orchestrator_widgets",
@@ -0,0 +1,26 @@
1
+ //#region \0virtual:mf:__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
2
+ var e = "__mf_init__virtual:mf:__mfe_internal__addon_pipeline_orchestrator_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
3
+ if (!t) {
4
+ let n, r, i = new Promise((e, t) => {
5
+ n = e, r = t;
6
+ });
7
+ t = globalThis[e] = {
8
+ initPromise: i,
9
+ initResolve: n,
10
+ initReject: r
11
+ };
12
+ }
13
+ var n = t.initPromise, r = "__mf_module_cache__";
14
+ globalThis[r] ||= {
15
+ share: {},
16
+ remote: {}
17
+ }, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
18
+ var i = globalThis[r], a, o, s = (e) => {
19
+ e.ACCESSORY_LABEL, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionReleaseInputSchema, e.AdoptionStatusSchema, e.AgentLoadSummarySchema, e.AirQualitySensorStatusSchema, e.AlarmArmModeSchema, e.AlarmPanelStatusSchema, e.AlarmStateSchema, e.AlertSchema, e.AlertSeveritySchema, e.AlertSourceSchema, e.AlertStatusSchema, e.AmbientLightSensorStatusSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationControlStatusSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BATTERY_DEVICE_PROFILE, e.BacklightModeSchema, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BoundingBoxSchema, e.BrightnessStatusSchema, e.BrokerAddInputSchema, e.BrokerAudioClientSchema, e.BrokerClientsSchema, e.BrokerConnectionDetailsSchema, e.BrokerConsumerAttributionSchema, e.BrokerConsumerKindSchema, e.BrokerDecodedClientSchema, e.BrokerEncodedClientSchema, e.BrokerGetStateInputSchema, e.BrokerInfoSchema, e.BrokerProviderInfoSchema, e.BrokerPublishInputSchema, e.BrokerRegistryStatusSchema, e.BrokerRtspClientSchema, e.BrokerStatsSchema, e.BrokerStatusEnum, e.BrokerStatusSchema, e.BrokerSubscribeInputSchema, e.BrokerSubscribeResultSchema, e.BrokerTestConnectionResultSchema, e.BrokerUnsubscribeInputSchema, e.CAM_PROFILE_ORDER, e.CAPABILITY_NAMES, e.CAPABILITY_ROUTER_KEYS, e.CAP_NAMES_WITH_STATUS, e.CAP_NODE_PIN_CONTEXT_KEY, e.CAP_PROVIDER_KIND_MAP, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CamProfileSchema, e.CamStreamDescriptorSchema, e.CamStreamKindSchema, e.CamStreamResolutionSchema, e.CameraAssignmentStatusSchema, e.CameraAudioStatusSchema, e.CameraBrokerProfileSchema, e.CameraBrokerStatusSchema, e.CameraCredentialsSchema, e.CameraCredentialsStatusSchema, e.CameraDecoderShmSchema, e.CameraDecoderStatusSchema, e.CameraDetectionPhaseSchema, e.CameraDetectionProvisioningSchema, e.CameraDetectionProvisioningStateSchema, e.CameraDetectionStatusSchema, e.CameraMetricsSchema, e.CameraMetricsWithDeviceIdSchema, e.CameraMotionStatusSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusSchema, e.CameraStreamSchema, e.CandidateQueryFilterSchema, e.CapScopeSchema, e.CapabilityBindingsSchema, e.CarbonMonoxideStatusSchema, e.ChargingStatus, e.ClientNetworkStatsSchema, e.ClimateControlStatusSchema, e.ClipPlaybackSchema, e.ClipSchema, e.ClusterAddonNodeDeploymentSchema, e.ClusterAddonStatusEntrySchema, e.CollectionColumnSchema, e.CollectionIndexSchema, e.ColorStatusSchema, e.ConfigEntrySchema, e.ConfigSectionWithValuesSchema, e.ConfigTabDeclarationSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoverStateSchema, e.CoverStatusSchema, e.CreateApiKeyInputSchema, e.CreateApiKeyResultSchema, e.CreateIntegrationInputSchema, e.CreateScopedTokenInputSchema, e.CreateScopedTokenResultSchema, e.CreateUserInputSchema, e.CustomActionInputSchema, e.CustomModelDescriptorSchema, e.DATAPLANE_SECRET_HEADER, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_FEATURES, e.DEFAULT_RETENTION, e.DEFAULT_SCRUB_THUMBNAIL_PRESET, e.DEVICE_CAP_NAMES, e.DEVICE_PROFILES, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_INFO, e.DayNightModeSchema, e.DayNightOptionsSchema, e.DayNightSettingsPatchSchema, e.DayNightStatusSchema, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetectionSourceSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceLinkModeSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENT_KIND_BY_CAP, e.EVENT_PAD_MS, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, e.EventKindSchema, e.EventSourceType, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExposedDeviceSchema, e.ExposureModeSchema, e.ExpressionEvalError, e.ExpressionParseError, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.ImageRotateSchema, e.ImageSettingsOptionsSchema, e.ImageSettingsPatchSchema, e.ImageSettingsStatusSchema, e.ImageStatusSchema, e.IngestOwnerSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.KeyEventSchema, e.LabelDefinitionSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LinkedDeviceSchema, e.LlmDefaultSchema, e.LlmDefaultSelectorSchema, e.LlmErrorCodeSchema, e.LlmGenerateBaseInputSchema, e.LlmGenerateErrSchema, e.LlmGenerateOkSchema, e.LlmGenerateResultSchema, e.LlmImageSchema, e.LlmNodeModelSchema, e.LlmProfileKindDescriptorSchema, e.LlmProfileKindSchema, e.LlmProfileSchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmUsageRollupSchema, e.LlmUsageSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoginMethodContributionSchema, e.LoginStageEnum, a = e.MACRO_LABELS, e.MAX_EXPRESSION_AST_NODES, e.MAX_EXPRESSION_BINDINGS, e.MAX_EXPRESSION_CALL_ARGS, e.MAX_EXPRESSION_EVAL_STEPS, e.MAX_EXPRESSION_SOURCE_LENGTH, e.METHOD_ACCESS_MAP, e.MODEL_FORMATS, e.ManagedModelCatalogEntrySchema, e.ManagedModelRefSchema, e.ManagedRuntimeConfigSchema, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.ModelSubstitutionSchema, e.ModelVariantGroupSchema, e.MotionAnalysisResultSchema, e.MotionEventSchema, e.MotionOnMotionChangedDataSchema, e.MotionRegionSchema, e.MotionSourceEnum, e.MotionSourcesSchema, e.MotionStatusSchema, e.MotionTriggerRuntimeStateSchema, e.MotionTriggerStatusSchema, e.MotionZoneOptionsSchema, e.MotionZonePatchSchema, e.MotionZoneRegionSchema, e.MotionZoneStatusSchema, e.MqttBrokerStatusSchema, e.NativeDetectionSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NetworkAccessStatusSchema, e.NetworkAddressSchema, e.NetworkEndpointSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationHistoryEntrySchema, e.NotificationRuleSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, e.OrchestratorMetricsSchema, e.OsdOverlayKindEnum, e.OsdOverlayPatchSchema, e.OsdOverlaySchema, e.OsdPositionEnum, e.OsdStatusSchema, e.PET_FEEDER_MANUAL_FEED_MAX, e.PET_FEEDER_MANUAL_FEED_MIN, e.PIPELINE_FLOW_CAPABILITY_NAMES, e.PIPELINE_OWNER_CAPABILITY_NAMES, e.PROVIDER_KIND_CAP_NAMES, e.PYTHON_SCRIPT, e.PackageUpdateSchema, e.PackageVersionInfoSchema, e.PasskeyLoginMethodSchema, e.PasskeySummarySchema, e.PcmSampleFormatSchema, e.PerScopeBreakdownSchema, e.PetFeederStatusSchema, e.PickStreamPreferencesSchema, e.PickStreamRequirementsSchema, e.PickedCamStreamSchema, e.PipelineAssignmentSchema, e.PipelineDefaultStepSchema, e.PipelineEngineChoiceSchema, e.PipelineRunResultBridge, e.PipelineStepInputSchema, e.PipelineValidationIssueSchema, e.PipelineValidationResultSchema, e.PlaceholderReasonSchema, e.PolygonPointSchema, e.PowerMeterStatusSchema, e.PresenceStatusSchema, e.PressureSensorStatusSchema, e.PrivacyMaskOptionsSchema, e.PrivacyMaskPatchSchema, e.PrivacyMaskRegionSchema, e.PrivacyMaskShapeSchema, e.PrivacyMaskStatusSchema, e.ProfileRtspEntrySchema, e.ProfileSlotSchema, e.ProfileSlotStatusSchema, e.ProviderStatusSchema, e.PtzAutotrackRuntimeStateSchema, e.PtzAutotrackSettingsSchema, e.PtzAutotrackStatusSchema, e.PtzAutotrackTargetOptionSchema, e.PtzMoveCommandSchema, e.PtzPositionSchema, e.PtzPresetSchema, e.PtzStatusSchema, e.QueryFilterSchema, e.REACHABILITY_FAILURES_TO_OFFLINE, e.REACHABILITY_POLL_INTERVAL_MS, e.REACHABILITY_PROBE_TIMEOUT_MS, e.RECOGNITION_TYPES, e.RESERVED_BINDING_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadSegmentBytesResultSchema, e.ReadinessRegistry, e.ReadinessTimeoutError, e.RecentTracksPageSchema, e.RecentTracksQueryInput, e.RecordingAvailabilitySchema, e.RecordingBandModeSchema, e.RecordingBandSchema, e.RecordingBandTriggersSchema, e.RecordingConfigSchema, e.RecordingDaysSchema, e.RecordingDeviceUsageSchema, e.RecordingLocationUsageSchema, e.RecordingManifestSchema, e.RecordingModeSchema, e.RecordingRangeSchema, e.RecordingRetentionSchema, e.RecordingRuleSchema, e.RecordingScheduleSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RedirectLoginMethodSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, e.RingBuffer, e.RtpSourceSchema, e.RtspRestreamEntrySchema, e.RunnerCameraConfigSchema, e.RunnerCameraDeviceUIFields, e.RunnerFrameSourceSchema, e.RunnerLocalLoadSchema, e.RunnerLocalMetricsSchema, e.SCOPE_PRESETS, e.SCRUB_THUMBNAIL_PRESETS, e.SCRUB_THUMBNAIL_PRESET_LABELS, e.SCRUB_THUMBNAIL_PRESET_ORDER, e.SOURCE_INFO_METADATA_KEY, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SYSTEM_CAP_NAMES, e.SceneCheckSchema, e.SceneConditionSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.ScrubThumbnailPresetSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.SensorEventSchema, e.ServerBootModeSchema, e.ServerPackageStatusSchema, e.ServerRollbackInfoSchema, e.ServerUpdateActionResultSchema, e.ServerUpdateCheckResultSchema, e.ServerUpdateStateSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SmokeStatusSchema, e.SmtpStatusSchema, e.SnapshotImageSchema, e.SourceInfoSchema, e.SpatialDetectionSchema, e.SsoBridgeClaimsSchema, e.StartEmbeddedInputSchema, e.StationaryObjectSchema, e.StorageAbortUploadInputSchema, e.StorageBeginDownloadInputSchema, e.StorageBeginDownloadResultSchema, e.StorageBeginUploadInputSchema, e.StorageBeginUploadResultSchema, e.StorageEndDownloadInputSchema, e.StorageFinalizeUploadInputSchema, e.StorageLocationDeclarationSchema, e.StorageLocationRefSchema, e.StorageLocationSchema, e.StorageLocationTypeSchema, e.StorageProviderInfoSchema, e.StorageReadChunkInputSchema, e.StorageTestLocationResultSchema, e.StorageWriteChunkInputSchema, e.StreamCodecSchema, e.StreamFormatSchema, e.StreamNetworkStatsSchema, e.StreamParamsOptionsSchema, e.StreamParamsStatusSchema, e.StreamProfileConfigSchema, e.StreamProfileOptionsSchema, e.StreamProfilePatchSchema, e.StreamProfileSchema, e.StreamSourceEntrySchema, e.StreamSourceSchema, e.SubscribeAudioChunksInputSchema, e.SubscribeAudioChunksResultSchema, e.SubscribeFramesInputSchema, e.SubscribeFramesResultSchema, e.SwitchStatusSchema, e.SystemMetricsSchema, e.SystemMirror, e.TIMEZONES, e.TamperStatusSchema, e.TankStatusSchema, e.TargetKindCapsSchema, e.TargetKindLevelSchema, e.TargetKindSchema, e.TargetSchema, e.TemperatureSensorStatusSchema, e.TestConnectionResultSchema, e.TestResultSchema, e.ToastSchema, e.TokenScopeSchema, e.TopologyNodeSchema, e.TopologyProcessSchema, e.TopologyServiceSchema, e.TrackCascadeCountsSchema, e.TrackEnvelopeSchema, e.TrackProjectionSchema, e.TrackSchema, e.TrackStateSchema, e.TrackZoneFilterSchema, e.TrackedDetectionSchema, e.TurnServerSchema, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, e.UpdateIntegrationInputSchema, e.UpdateStatusSchema, e.UpdateUserInputSchema, e.UserRecordSchema, e.UserSummarySchema, e.VacuumControlStatusSchema, e.VacuumStateSchema, e.ValveStateSchema, e.ValveStatusSchema, e.VibrationStatusSchema, e.VideoEncodeSchema, e.WELL_KNOWN_TABS, e.WELL_KNOWN_TAB_MAP, e.WaterHeaterStatusSchema, e.WeatherStatusSchema, e.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WhiteBalanceModeSchema, e.WidgetHostEnum, e.WidgetLoginMethodSchema, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.YAMNET_TO_MACRO, e.ZoneKindEnum, e.ZoneRuleModeEnum, e.ZoneRuleSchema, e.ZoneRuleStageEnum, e.ZoneRulesArraySchema, e.ZoneSchema, e.ZoneScopeBreakdownSchema, e.accessoriesCapability, e.accessoryStableId, e.addonPagesCapability, e.addonPagesSourceCapability, e.addonRoutesCapability, e.addonSettingsCapability, e.addonWidgetsCapability, e.addonWidgetsSourceCapability, e.addonsCapability, e.adminUiCapability, e.advancedNotifierCapability, e.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.applyTransform, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioMetricsCapability, e.authProviderCapability, e.autoAssignProfiles, e.automationControlCapability, e.backupCapability, e.batteryCapability, e.bestLocationMatch, e.binaryCapability, e.bindAddonActions, e.brightnessCapability, e.brokerCapability, e.buildAddonRouteProvider, e.buildModelVariantGroups, e.buildStreamParamsConfigSchema, e.buttonCapability, e.cameraCredentialsCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.carbonMonoxideCapability, e.cellsToRects, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.collectHydratedFieldEntries, e.collectHydratedFieldValues, e.colorCapability, e.compileExpression, e.compileExpressionSafe, e.connectivityCapability, e.consumablesCapability, e.contactCapability, e.controlCapability, e.convertUnit, e.cosineSimilarity, e.coverCapability, e.createDeviceProxy, e.createDurableState, e.createEvent, e.createExpressionScope, e.createLazyTrpcSource, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.dayNightCapability, e.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, e.describeModelVariant, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceStateCapability, e.deviceStatusCapability, e.doorbellCapability, e.embeddingEncoderCapability, e.emitDownForOwnedCaps, e.emitReadiness, e.encodeProfileFromStreamShape, e.enumSensorCapability, e.enumerateItemArrayFields, e.enumerateSchemaFields, e.errMsg, e.evaluateAst, e.evaluateLinkExpression, e.evaluateZoneRules, e.event, e.eventEmitterCapability, e.eventsCapability, e.expandCapMethods, e.extractNestedAddonId, e.extractSourceInfoFromMetadata, e.faceGalleryCapability, e.fanControlCapability, e.featureProbeCapability, e.filesystemBrowseCapability, e.findTimezone, e.floodCapability, e.formatForBackend, e.formatForRuntime, e.frameworkSwapConfirmSchema, e.frameworkSwapPackageSchema, e.gasCapability, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.imageSettingsCapability, e.integrationsCapability, e.intercomCapability, e.isAgentOnlyPlacement, e.isArrayOutputSchema, e.isCollectionArrayMethod, e.isDeployableToAgent, e.isDeviceConfigCap, e.isEvent, e.isObjectInput, e.isVoidInput, e.jobKindSchema, e.kebabToCamel, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.llmCapability, e.llmRuntimeCapability, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logDestinationCapability, e.loginMethodCapability, e.looseSchema, e.makeProfileBrokerId, e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.metricsProviderCapability, e.migrateConfigToBands, e.modelConvertCapability, e.modelDistributorCapability, e.modelFormatForRuntime, e.motionCapability, e.motionDetectionCapability, e.motionTriggerCapability, e.motionZonesCapability, e.mqttBrokerCapability, e.nativeObjectDetectionCapability, e.networkAccessCapability, e.networkQualityCapability, e.nodePin, e.nodesCapability, e.normalizeAddonInitResult, e.normalizeUnit, e.notificationOutputCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.objectInputDeclaresAddonId, e.osdCapability, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseProfileBrokerId, e.parseStreamParamsFormPatch, e.pendingFrameworkSwapSchema, e.petFeederCapability, e.pickPreferredRtspEntry, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.privacyMaskCapability, e.procedureAuthKey, e.ptzAutotrackCapability, e.ptzCapability, e.pythonScriptForBackend, e.readNodePin, e.readinessKey, e.rebootCapability, e.recordingCapability, e.rectsToCells, e.requiresPython, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveCapMount, e.resolveDetectionRuntime, e.resolveDeviceProfile, e.resolveFormat, o = e.resolveHydratedFieldValue, e.resolveModelFormat, e.resolveRunnerId, e.resolveScrubThumbnailGeometry, e.resolveVariantModelId, e.runInferenceStep, e.runtimeDevices, e.sceneMonitorCapability, e.scopeKey, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.serverManagementCapability, e.setByPath, e.settingsStoreCapability, e.sleep, e.sleepCancellable, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.ssoBridgeCapability, e.startReachabilityPoll, e.storageCapability, e.storageEvictableCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.supportedRuntimes, e.switchCapability, e.synthesizeSourceInfo, e.systemCapability, e.tamperCapability, e.taskLogEntrySchema, e.taskPhaseSchema, e.taskTargetSchema, e.temperatureSensorCapability, e.textToHtml, e.toDeviceSummary, e.toExpressionValue, e.toStreamSourceEntry, e.toastCapability, e.tokenize, e.transcodeBody, e.tryConvertUnit, e.turnProviderCapability, e.unitDimension, e.unitsForDimension, e.updateCapability, e.userManagementCapability, e.userPasskeysCapability, e.vacuumControlCapability, e.validateExpressionSource, e.valveCapability, e.vibrationCapability, e.videoclipsCapability, e.viewerUiCapability, e.waterHeaterCapability, e.weatherCapability, e.webrtcClientHintsSchema, e.webrtcSessionCapability, e.wiringAddonHealthSchema, e.wiringHealthSnapshotSchema, e.wiringNodeHealthSchema, e.wiringProbeKindSchema, e.wiringProbeResultSchema, e.zodEntriesToConfigUI, e.zoneAnalyticsCapability, e.zoneRulesCapability, e.zonesCapability, e.default;
20
+ }, c = i.share["default:@camstack/types"];
21
+ c === void 0 ? n.then(() => {
22
+ if (c = i.share["default:@camstack/types"], c === void 0) throw Error("[Module Federation] Shared module @camstack/types was imported before federation bootstrap finished.");
23
+ s(c);
24
+ }) : s(c);
25
+ //#endregion
26
+ export { o as n, a as t };
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.1.47",
39
+ version: "1.1.48",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.1.26",
48
+ version: "1.1.27",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -99,7 +99,7 @@ async function r() {
99
99
  }
100
100
  },
101
101
  "@camstack/ui-library": {
102
- version: "1.1.38",
102
+ version: "1.1.39",
103
103
  scope: "default",
104
104
  shareConfig: {
105
105
  singleton: !0,
package/dist/index.js CHANGED
@@ -6494,6 +6494,19 @@ function scopeKey(scope) {
6494
6494
  case "device": return `device:${scope.deviceId}`;
6495
6495
  }
6496
6496
  }
6497
+ /**
6498
+ * Producer transition order within ONE generation: `starting → ready →
6499
+ * down`. Used by `hydrate` to accept only forward moves for
6500
+ * same-generation snapshot records (a snapshot can be ahead of a lost
6501
+ * delta, never behind it, within one producer generation).
6502
+ */
6503
+ function stateRank(state) {
6504
+ switch (state) {
6505
+ case "starting": return 0;
6506
+ case "ready": return 1;
6507
+ case "down": return 2;
6508
+ }
6509
+ }
6497
6510
  function scopesEqual(a, b) {
6498
6511
  if (a.type !== b.type) return false;
6499
6512
  if (a.type === "global" || b.type === "global") return true;
@@ -6544,43 +6557,70 @@ var ReadinessRegistry = class {
6544
6557
  return Array.from(this.snapshot.values());
6545
6558
  }
6546
6559
  /**
6547
- * Hydrate the snapshot from an authoritative source. Entries already
6548
- * present locally are skipped live deltas (received via the event
6549
- * bus subscription) always take precedence over the snapshot. For
6550
- * each newly hydrated entry, a one-shot transition is dispatched to
6551
- * matching subscriptions so pending `awaitReady` callers unblock
6552
- * without having to wait for a fresh event.
6560
+ * Hydrate the snapshot from an authoritative source a RECONCILE, not
6561
+ * an add-only merge (D8: readiness events are telemetry and may be
6562
+ * lost; the on-reconnect/periodic snapshot re-pull is the repair path,
6563
+ * so it MUST be able to advance a stale record the 2026-07-17
6564
+ * "still awaiting platform-probe forever" wedge was this method
6565
+ * skipping every already-seen key).
6553
6566
  *
6554
- * Local `epoch` is reset to 1 per entry consumer-side epoch is
6555
- * derived from observed generation transitions, so this mirrors the
6556
- * value that would have been assigned had the consumer observed the
6557
- * first `ready` event directly.
6567
+ * - **Unseen keys** are added (epoch 1 mirrors the value the
6568
+ * consumer would have derived from the first observed `ready`).
6569
+ * - **Existing keys** are UPDATED when the authoritative record
6570
+ * carries a different generation (producer restart / synthetic-down
6571
+ * superseded — epoch bumps on a new-generation `ready`, mirroring
6572
+ * `ingest`), or a FORWARD state move within the same generation
6573
+ * (`starting → ready → down`; within one producer generation a
6574
+ * snapshot can only be ahead of a lost delta, never behind it).
6575
+ * - **Never a same-generation regress** — a snapshot pulled just
6576
+ * before a live delta landed must not un-ready a record (the next
6577
+ * reconcile round converges it anyway).
6578
+ * - **Never a record this process is authoritative for** — node-scoped
6579
+ * records for our own nodeId, and device/global records we emitted,
6580
+ * keep local truth (an authority's stale copy of OUR record must
6581
+ * not regress us).
6582
+ *
6583
+ * Every applied entry dispatches a one-shot transition to matching
6584
+ * subscriptions so pending `awaitReady` callers unblock without having
6585
+ * to wait for a fresh event.
6558
6586
  */
6559
6587
  hydrate(records) {
6560
6588
  const now = this.now();
6561
6589
  for (const record of records) {
6562
6590
  const key = readinessKey(record.capName, record.scope);
6563
- if (this.snapshot.has(key)) continue;
6591
+ const prev = this.snapshot.get(key) ?? null;
6592
+ let epoch;
6593
+ let durationInPrevState;
6594
+ if (prev !== null) {
6595
+ if (this.isLocallyAuthoritative(prev)) continue;
6596
+ const sameGeneration = prev.generation === record.generation;
6597
+ if (sameGeneration && stateRank(record.state) <= stateRank(prev.state)) continue;
6598
+ epoch = !sameGeneration && record.state === "ready" ? prev.epoch + 1 : prev.epoch;
6599
+ durationInPrevState = Math.max(0, now - prev.lastChange);
6600
+ } else {
6601
+ epoch = 1;
6602
+ durationInPrevState = 0;
6603
+ }
6564
6604
  const hydrated = {
6565
6605
  capName: record.capName,
6566
6606
  scope: record.scope,
6567
6607
  state: record.state,
6568
6608
  generation: record.generation,
6569
- epoch: 1,
6609
+ epoch,
6570
6610
  lastChange: now,
6571
6611
  sourceNodeId: record.sourceNodeId
6572
6612
  };
6573
6613
  this.snapshot.set(key, hydrated);
6574
- if (this.logger) this.logger.debug(`readiness: ${record.capName} (${scopeKey(record.scope)}) → ${record.state} (hydrated, gen=${record.generation.slice(0, 6)})`);
6614
+ if (this.logger) this.logger.debug(`readiness: ${record.capName} (${scopeKey(record.scope)}) → ${record.state} (hydrated${prev !== null ? " update" : ""}, gen=${record.generation.slice(0, 6)})`);
6575
6615
  const transition = {
6576
6616
  capName: record.capName,
6577
6617
  scope: record.scope,
6578
6618
  state: record.state,
6579
- epoch: 1,
6619
+ epoch,
6580
6620
  generation: record.generation,
6581
6621
  sourceNodeId: "hydrated",
6582
6622
  ts: now,
6583
- durationInPrevState: 0
6623
+ durationInPrevState
6584
6624
  };
6585
6625
  for (const sub of this.subscriptions) {
6586
6626
  if (sub.capName !== record.capName) continue;
@@ -6593,6 +6633,17 @@ var ReadinessRegistry = class {
6593
6633
  }
6594
6634
  }
6595
6635
  }
6636
+ /**
6637
+ * True when THIS process is the origin authority for `record` — a
6638
+ * snapshot pulled from elsewhere must never overwrite it:
6639
+ * - node-scoped records whose `scope.nodeId` is our own node id
6640
+ * (this process — or a child bridged onto our bus — emits them);
6641
+ * - device/global-scoped records whose latest transition WE emitted.
6642
+ */
6643
+ isLocallyAuthoritative(record) {
6644
+ if (record.scope.type === "node") return record.scope.nodeId === this.sourceNodeId;
6645
+ return record.sourceNodeId === this.sourceNodeId;
6646
+ }
6596
6647
  /** Shallow copy of the full snapshot — mainly for diagnostics/tests. */
6597
6648
  getAll() {
6598
6649
  return new Map(this.snapshot);
@@ -7679,6 +7730,24 @@ var RecordingRetentionSchema = object({
7679
7730
  maxSizeGb: number().min(0).optional()
7680
7731
  });
7681
7732
  /**
7733
+ * Scrub-thumbnail fidelity preset — the single per-camera selector bundling the
7734
+ * sprite tile RESOLUTION + JPEG QUALITY the recorder packs timeline-scrub
7735
+ * previews at. Five graduated steps; absent on a config = `standard` (the
7736
+ * shipped default, matching `sheet-geometry`/`sheet-composer`).
7737
+ *
7738
+ * Existing sheets are IMMUTABLE — a changed preset applies to NEW windows only.
7739
+ * Each window's index sidecar carries its own tile dims, so a camera whose
7740
+ * preset changed over time renders every historical window at the dims it was
7741
+ * written with.
7742
+ */
7743
+ var ScrubThumbnailPresetSchema = _enum([
7744
+ "minimal",
7745
+ "low",
7746
+ "standard",
7747
+ "high",
7748
+ "max"
7749
+ ]);
7750
+ /**
7682
7751
  * The full per-camera recording intent — the wire shape of a RecordingTarget.
7683
7752
  *
7684
7753
  * `mode` is the authoritative storage choice; `schedule`/`triggers`/`pre`/`post`
@@ -7715,7 +7784,14 @@ var RecordingConfigSchema = object({
7715
7784
  * derived into bands once via `migrateConfigToBands`.
7716
7785
  */
7717
7786
  bands: array(RecordingBandSchema).optional(),
7718
- retention: RecordingRetentionSchema.optional()
7787
+ retention: RecordingRetentionSchema.optional(),
7788
+ /**
7789
+ * Per-camera scrub-thumbnail fidelity preset (resolution + JPEG quality for
7790
+ * timeline-scrub sprite previews). Absent = `standard`. Applies to NEW
7791
+ * windows only — existing sheets are immutable, and each window's index
7792
+ * carries its own tile dims so mixed-preset history renders correctly.
7793
+ */
7794
+ scrubThumbnails: ScrubThumbnailPresetSchema.optional()
7719
7795
  });
7720
7796
  /**
7721
7797
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -30518,6 +30594,27 @@ var PIPELINE_EXECUTOR_CAP = "pipeline-executor";
30518
30594
  var PipelineSettingsStore = class PipelineSettingsStore {
30519
30595
  deps;
30520
30596
  static CATALOG_CACHE_TTL_MS = 3e4;
30597
+ /**
30598
+ * One reconcile round for {@link awaitExecutorCatalog}: the BOUNDED
30599
+ * registry wait between two authoritative provider probes. Matches the
30600
+ * registry's own "still awaiting" diagnostic cadence.
30601
+ */
30602
+ static EXECUTOR_RECONCILE_ROUND_MS = 3e4;
30603
+ /**
30604
+ * Pacing between provider probes when the registry claims `ready` but
30605
+ * the provider is not answering yet (stale registry record) — without
30606
+ * it that combination would spin hot.
30607
+ */
30608
+ static EXECUTOR_READY_PROBE_PACE_MS = 2e3;
30609
+ /**
30610
+ * Round bound for {@link seedAgentSettingsFromCatalog}: seeding is
30611
+ * invoked from event handlers (`handleDetectionPipelineReadiness`) that
30612
+ * must not accumulate unbounded loops across provider flaps — on
30613
+ * exhaustion it returns `null` and the periodic pending-retry sweep /
30614
+ * the next readiness epoch retries. `waitForAgentAndCatalog` keeps the
30615
+ * UNBOUNDED reconcile (cameras are never dispatched with empty steps).
30616
+ */
30617
+ static SEED_MAX_RECONCILE_ROUNDS = 4;
30521
30618
  constructor(deps) {
30522
30619
  this.deps = deps;
30523
30620
  }
@@ -30784,11 +30881,7 @@ var PipelineSettingsStore = class PipelineSettingsStore {
30784
30881
  * absent.
30785
30882
  */
30786
30883
  async seedAgentSettingsFromCatalog(nodeId) {
30787
- await this.deps.acquireCapability(PIPELINE_EXECUTOR_CAP, {
30788
- type: "node",
30789
- nodeId
30790
- });
30791
- const catalog = await this.getCatalogForAgent(nodeId);
30884
+ const catalog = await this.awaitExecutorCatalog(nodeId, { maxRounds: PipelineSettingsStore.SEED_MAX_RECONCILE_ROUNDS });
30792
30885
  if (!catalog) return null;
30793
30886
  const existing = (await this.readAgentSettingsMap())[nodeId];
30794
30887
  const nextAddonDefaults = seedAgentAddonDefaults(existing?.addonDefaults ?? {}, catalog);
@@ -30892,15 +30985,64 @@ var PipelineSettingsStore = class PipelineSettingsStore {
30892
30985
  return resolved;
30893
30986
  }
30894
30987
  /**
30895
- * Block until `pipeline-executor` is ready on `nodeId` AND
30988
+ * Loss-proof `pipeline-executor` gate (D8 reconcile against the
30989
+ * authority, never wait solely on an event).
30990
+ *
30991
+ * Readiness events are telemetry and MAY be lost across process/node
30992
+ * hops (2026-07-17 incident: the agent's executor came back callable
30993
+ * after an update, its `ready` delta never reached the hub registry,
30994
+ * and the former `acquireCapability(…, Infinity)` gate wedged every
30995
+ * dispatch forever). Each round of this loop therefore:
30996
+ *
30997
+ * 1. Probes the PROVIDER itself — `getCatalogForAgent` is a live
30998
+ * `pipelineExecutor.getSchema` RPC routed to `nodeId` (30s success
30999
+ * cache). The provider answering IS readiness, whatever the local
31000
+ * registry believes.
31001
+ * 2. On a miss, falls back to a BOUNDED registry wait
31002
+ * (`EXECUTOR_RECONCILE_ROUND_MS`) — the event-driven fast path that
31003
+ * keeps the healthy cold-boot case latency-free (the wait resolves
31004
+ * the instant the `ready` delta lands). A lost event costs at most
31005
+ * one round, never forever.
31006
+ *
31007
+ * If the registry claims `ready` but the probe still misses (stale
31008
+ * record for a dead provider), rounds pace at
31009
+ * `EXECUTOR_READY_PROBE_PACE_MS` instead of spinning hot.
31010
+ *
31011
+ * Returns `null` only when `maxRounds` is exhausted (bounded callers)
31012
+ * or the store was disposed mid-wait.
31013
+ */
31014
+ async awaitExecutorCatalog(nodeId, opts = {}) {
31015
+ const maxRounds = opts.maxRounds ?? Number.POSITIVE_INFINITY;
31016
+ const startedAt = Date.now();
31017
+ for (let round = 1; !this.disposed; round++) {
31018
+ const catalog = await this.getCatalogForAgent(nodeId);
31019
+ if (catalog) return catalog;
31020
+ if (round >= maxRounds) return null;
31021
+ if (round > 1) this.deps.logger.warn("executor reconcile: provider not answering yet — waiting one more round", {
31022
+ tags: { nodeId },
31023
+ meta: {
31024
+ round,
31025
+ elapsedMs: Date.now() - startedAt
31026
+ }
31027
+ });
31028
+ const readyPerRegistry = await this.deps.acquireCapability(PIPELINE_EXECUTOR_CAP, {
31029
+ type: "node",
31030
+ nodeId
31031
+ }, { timeoutMs: PipelineSettingsStore.EXECUTOR_RECONCILE_ROUND_MS }).then(() => true, () => false);
31032
+ if (this.disposed) break;
31033
+ if (readyPerRegistry) await sleep$1(PipelineSettingsStore.EXECUTOR_READY_PROBE_PACE_MS);
31034
+ }
31035
+ return null;
31036
+ }
31037
+ /**
31038
+ * Block until `pipeline-executor` answers on `nodeId` AND
30896
31039
  * `getCatalogForAgent` returns a non-null catalog AND `agentSettings`
30897
31040
  * for that node has populated `addonDefaults`.
30898
31041
  *
30899
- * `acquireCapability` defaults to infinite wait nowa single call
30900
- * carries the readiness gate. The thin retry below only handles
30901
- * the secondary case where the cap is "ready" but a derived call
30902
- * (getSchema) still returns null due to Moleculer service-registry
30903
- * propagation lag.
31042
+ * The executor gate is {@link awaitExecutorCatalog}reconcile-driven
31043
+ * and UNBOUNDED here (cameras must never be dispatched with empty
31044
+ * steps), but it converges as soon as the provider answers even when
31045
+ * every readiness event was lost.
30904
31046
  *
30905
31047
  * Smell #20 fix: the retry loop used to be `while (true)` with no exit
30906
31048
  * — a resolve in flight at addon shutdown would spin against a torn-
@@ -30910,16 +31052,9 @@ var PipelineSettingsStore = class PipelineSettingsStore {
30910
31052
  * timing (2s backoff, same retry conditions) is unchanged.
30911
31053
  */
30912
31054
  async waitForAgentAndCatalog(nodeId) {
30913
- await this.deps.acquireCapability(PIPELINE_EXECUTOR_CAP, {
30914
- type: "node",
30915
- nodeId
30916
- });
30917
31055
  while (!this.disposed) {
30918
- const catalog = await this.getCatalogForAgent(nodeId);
30919
- if (!catalog) {
30920
- await sleep$1(2e3);
30921
- continue;
30922
- }
31056
+ const catalog = await this.awaitExecutorCatalog(nodeId);
31057
+ if (!catalog) break;
30923
31058
  let agent = (await this.readAgentSettingsMap())[nodeId];
30924
31059
  if (!agent || Object.keys(agent.addonDefaults ?? {}).length === 0) {
30925
31060
  if (!await this.seedAgentSettingsFromCatalog(nodeId)) {