@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.
- package/assets/viewer/.viewer-version +1 -1
- package/assets/viewer/_expo/static/js/web/Haptics-46503cea14b9857c70d67ef803f14a29.js +3 -0
- package/assets/viewer/_expo/static/js/web/index-864eb219c6810859b34768e62dd81a03.js +15997 -0
- package/assets/viewer/index.html +1 -1
- package/dist/_stub.js +1 -1
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BEIKqOjC.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-DV91ueig.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CZrkMtyG.mjs +26 -0
- package/dist/{hostInit-CCmoLG4T.mjs → hostInit-BfznU-zL.mjs} +3 -3
- package/dist/index.js +171 -36
- package/dist/index.mjs +171 -36
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/assets/viewer/_expo/static/js/web/index-5b6b7a6f9c54fd4f38efb799e5f75952.js +0 -1544
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D0br6Ap8.mjs +0 -26
package/assets/viewer/index.html
CHANGED
|
@@ -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-
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
6548
|
-
*
|
|
6549
|
-
*
|
|
6550
|
-
*
|
|
6551
|
-
*
|
|
6552
|
-
*
|
|
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
|
-
*
|
|
6555
|
-
* derived from
|
|
6556
|
-
*
|
|
6557
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
|
6619
|
+
epoch,
|
|
6580
6620
|
generation: record.generation,
|
|
6581
6621
|
sourceNodeId: "hydrated",
|
|
6582
6622
|
ts: now,
|
|
6583
|
-
durationInPrevState
|
|
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.
|
|
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
|
-
*
|
|
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
|
-
*
|
|
30900
|
-
*
|
|
30901
|
-
*
|
|
30902
|
-
*
|
|
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.
|
|
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)) {
|