@camstack/addon-pipeline 1.2.270 → 1.2.271

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.
Files changed (33) hide show
  1. package/dist/audio-analyzer/index.js +2 -2
  2. package/dist/audio-analyzer/index.mjs +2 -2
  3. package/dist/{default-detection-model-BfMsW_XK.js → default-detection-model-CnHXu0T5.js} +1 -1
  4. package/dist/{default-detection-model-pXamampo.mjs → default-detection-model-DMz2NcwC.mjs} +1 -1
  5. package/dist/detection-pipeline/index.js +4 -4
  6. package/dist/detection-pipeline/index.mjs +4 -4
  7. package/dist/{dist-Cqf-U6EN.mjs → dist-D6TktSdc.mjs} +21 -0
  8. package/dist/{dist-CkNVb7Zh.js → dist-omV46PMG.js} +21 -0
  9. package/dist/motion-wasm/index.js +1 -1
  10. package/dist/motion-wasm/index.mjs +1 -1
  11. package/dist/{node-CqC8R84-.js → node-1Ai8jl-y.js} +53 -1
  12. package/dist/{node-jLmcbaar.mjs → node-BR1TKkR_.mjs} +53 -1
  13. package/dist/pipeline-runner/index.js +3 -3
  14. package/dist/pipeline-runner/index.mjs +3 -3
  15. package/dist/{process-memory-D7LlWXty.js → process-memory-CzAXrCOa.js} +1 -1
  16. package/dist/{process-memory-B1YHg1_g.mjs → process-memory-DL3690gA.mjs} +1 -1
  17. package/dist/recorder/index.js +24 -7
  18. package/dist/recorder/index.mjs +24 -7
  19. package/dist/{segment-demux-js-Bu-_Q7Um.js → segment-demux-js-D8bD_LBq.js} +1 -1
  20. package/dist/{segment-demux-js-B2TLcR_g.mjs → segment-demux-js-Zm-FyEl6.mjs} +1 -1
  21. package/dist/stream-broker/_stub.js +1 -1
  22. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DZlxPoTV.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-MI6wy_av.mjs} +2 -2
  23. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-GublMTFG.mjs +26 -0
  24. package/dist/stream-broker/demux-worker-child.js +1 -1
  25. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  26. package/dist/stream-broker/{hostInit-DFerKhvZ.mjs → hostInit-D51BPmpl.mjs} +2 -2
  27. package/dist/stream-broker/index.js +3 -3
  28. package/dist/stream-broker/index.mjs +3 -3
  29. package/dist/stream-broker/remoteEntry.js +1 -1
  30. package/package.json +1 -1
  31. package/python/inference_pool.py +163 -34
  32. package/python/test_inference_pool_cache_lock.py +185 -0
  33. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DJVznXRG.mjs +0 -26
@@ -0,0 +1,26 @@
1
+ //#region \0virtual:mf:__mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
2
+ var e = "__mf_init__virtual:mf:__mfe_internal__addon_stream_broker_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 = (e) => {
19
+ e.ACCESSORY_LABEL, e.ACCESS_ROLES, e.ALEXA_EGRESS_PROFILE, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, e.AUDIO_ANALYSIS_CAP_NAME, e.AUDIO_BACKEND_CHOICES, e.AUDIO_CHUNK_FORMATS, e.AUDIO_MACRO_LABELS, e.AUDIO_PRESETS, e.AUDIO_SCALE_EPOCH_ISO, e.AUDIO_SCALE_EPOCH_MS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionCandidateResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionJobSchema, e.AdoptionJobStateSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionOutcomeSchema, 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.AnalyticsLtsSeriesSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.ArchivedDebugNoteQueryInputSchema, e.ArchivedDebugNoteSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioAttachDeviceInputSchema, e.AudioAttachDeviceResultSchema, e.AudioChunkFormatSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioDetachDeviceResultSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AudioStreamPickSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationActionSchema, e.AutomationConditionOperatorSchema, e.AutomationConditionSchema, e.AutomationControlStatusSchema, e.AutomationRecipeSchema, e.AutomationTriggerSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BASE_LIVE_EGRESS_PROFILE, e.BATTERY_DEVICE_PROFILE, e.BATTERY_UNREACHABLE_AFTER_MS, e.BIRTH_DECISION_DEFAULT_LIMIT, e.BOOT_RECOVERY_BACKOFF_MS, e.BacklightModeSchema, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BackupRunPhaseSchema, e.BackupRunSchema, e.BackupRunStateSchema, e.BackupTriggerResultSchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BirthDecisionQueryInputSchema, e.BirthDecisionRecordSchema, e.BirthDecisionVerdictSchema, 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.BulkRecordSchema, e.CAMERA_SWITCH_CATALOG, e.CAMERA_SWITCH_ORDER, 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.CLASS_MAP_MACRO_TARGETS, e.CLUSTER_MODEL_SCOPED_STEPS, e.CLUSTER_MODEL_SECTION_ID, e.CLUSTER_STEP_SETTING_FIELDS, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CONNECTION_TEST_TIMEOUT_MS, e.CONTAINER_CHILD_PRIORITY, e.CORE_BLOCKS_ADDON_ID, e.CORE_BLOCK_ADDON_PREFIX, 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.CameraOccupancySnapshotForDeviceSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusDegradationReasonSchema, e.CameraStatusDegradationSchema, e.CameraStatusSchema, e.CameraStatusStageSchema, e.CameraStreamSchema, e.CameraSwitchAuthoritySchema, e.CameraSwitchGroupSchema, e.CameraSwitchIdSchema, e.CameraSwitchSchema, e.CameraSwitchUnavailableReasonSchema, 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.ConnectionTestDescriptorSchema, e.ConnectionTestInputSchema, e.ConnectionTestOutcomeSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoreBlockCompileResultSchema, e.CoreBlockInputSchema, e.CoreBlockPlacementSchema, e.CoreBlockSchema, e.CoreBlockStatusSchema, 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.DECLARED_DEVICE_SWEEP_LIMIT, e.DECLARED_INTEGRATION_FIXED_KEY, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_CLUSTER_STEP_MODELS, e.DEFAULT_CLUSTER_STEP_SETTINGS, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_DETAIL_CROP_CONVENTION, e.DEFAULT_EVENTS_BAND_BUFFER_SEC, e.DEFAULT_EVENT_COLOR, e.DEFAULT_FEATURES, e.DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, e.DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, e.DEFAULT_NATIVE_LEASE_SETTINGS, e.DEFAULT_OVERLAY_LAYERS, e.DEFAULT_POOL_MEMORY_POLICY, e.DEFAULT_RECORDING_PROFILES, e.DEFAULT_RETENTION, e.DEFAULT_RUNTIME_STATE_DURABILITY, e.DEFAULT_TIMELAPSE_PREVIEW_TEXT, e.DEFAULT_TOKEN_EXPIRY, e.DERIVED_CAMERA_SILENCED_CAP_NAMES, e.DETAIL_CROP_PADDING_FIELD, e.DETAIL_CROP_PADDING_KEY, e.DETAIL_CROP_SECTION_ID, e.DETAIL_CROP_SQUARE_KEY, e.DETECTION_MACRO_CLASSES, e.DETECTION_PIPELINE_CAP_NAME, e.DEVICE_BACKEND_TO_FORMAT, e.DEVICE_CAP_NAMES, e.DEVICE_CHILDREN_BATCH_MAX, e.DEVICE_PROFILES, e.DEVICE_RESTORE_RETRY_CONCURRENCY, e.DEVICE_RESTORE_RETRY_DELAYS_MS, e.DEVICE_SCOPED_CAPS, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATE_READERS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_CONTROL_KIND, e.DEVICE_TYPE_INFO, e.DataStoreEngineInfoSchema, e.DayNightModeSchema, e.DayNightOptionsSchema, e.DayNightSettingsPatchSchema, e.DayNightStatusSchema, e.DeclaredDevices, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetailCropConventionSchema, e.DetectionCatalogClassMapSchema, e.DetectionSourceSchema, e.DetectionSourcesSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRestoreRetryScheduler, e.DeviceRole, e.DeviceRuntimeState, e.DeviceSelectorSchema, e.DeviceStatusSchema, e.DeviceType, e.DiagnosticIdSchema, e.DiagnosticWindowPatchSchema, e.DiagnosticWindowSchema, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DiskReconcileJobSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENTFUL_CAP_NAMES, e.EVENT_DENSITY_BATCH_MAX, e.EVENT_KIND_BY_CAP, e.EVENT_OWNER_TYPES, e.EVENT_PAD_MS, e.EVENT_TAXONOMY, e.EXPORT_DENSE_MAX_RANGES, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.EgressEncodeSchema, e.EgressRateControlSchema, e.EgressTranscodeRequestSchema, e.EgressTranscodeSchema, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventDensityBucketSchema, e.EventDensityForDeviceSchema, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, e.EventKindSchema, e.EventKindsForDeviceSchema, e.EventMediaArtifactSchema, e.EventMediaCoverageSchema, e.EventMediaKindSchema, e.EventMediaProductionSchema, e.EventOwnerTypeSchema, e.EventSourceType, e.ExportBytesSchema, e.ExportDenseRangeSchema, e.ExportDenseSchema, e.ExportDownloadSchema, e.ExportOptionsSchema, e.ExportRecordSchema, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExportSpeedSchema, e.ExportStateSchema, e.ExportTimelapseSchema, e.ExposedDeviceSchema, e.ExposureModeSchema, e.ExpressionBindingSourceSchema, e.ExpressionEvalError, e.ExpressionFieldBindingSchema, e.ExpressionGlobalBindingSchema, e.ExpressionLiteralBindingSchema, e.ExpressionParseError, e.ExpressionSourceSchema, e.FIRST_LEVEL_MACRO_CLASSES, e.FULL_IMAGE_BBOX, e.FailureContributionSchema, e.FailureCounters, e.FailureReasonCountSchema, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.Fmp4BoxSplitter, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.FrameLazyCountersSchema, e.FrameLazyMetricsSchema, e.G711_SCALE_CORRECTION_DB, e.GasStatusSchema, e.GetLoggingSettingsInputSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.GridLayoutPatchSchema, e.GridLayoutViewSchema, e.HAP_AUDIO_BASE, e.HAP_AUDIO_BITRATE_KBPS, e.HAP_AUDIO_VBV_KBITS, e.HAP_KEYFRAME_INTERVAL_SEC, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HfModelResolutionSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.INFERENCE_DEVICE_EXCLUSION_REASONS, e.ImageContractSchema, e.ImageContractStateSchema, e.ImageRotateSchema, e.ImageSettingsOptionsSchema, e.ImageSettingsPatchSchema, e.ImageSettingsStatusSchema, e.ImageStatusSchema, e.InferenceDeviceExclusionReasonSchema, e.IngestOwnerSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.KeyEventSchema, e.LEGACY_READ_ONLY_CONFIG_KEY, e.LOAD_CONTRIBUTION_ATTRIBUTIONS, e.LOAD_CONTRIBUTION_ROLES, e.LOCATION_DESCRIPTION_MAX, e.LOCATION_ICON_FALLBACK, e.LOCATION_ICON_IDS, e.LOG_CHANNEL_TICK_MS, e.LOG_LEVEL_RANK, e.LTS_SCOPE_CLASS_SEPARATOR, e.LabelAttributionSchema, e.LabelDefinitionSchema, e.LabelTierSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LedgerWalkDeviceReportSchema, e.LedgerWalkInputSchema, e.LedgerWalkRefusalSchema, e.LedgerWalkReportSchema, e.LedgerWalkSkipCountsSchema, e.LedgerWalkSkipReasonSchema, e.LegacyStorageLocationDefaultSchema, e.LinkedDeviceSchema, e.LinkedDevicesModeSchema, e.LlmDefaultSchema, e.LlmDefaultSelectorSchema, e.LlmDownloadProgressSchema, e.LlmErrorCodeSchema, e.LlmGenerateBaseInputSchema, e.LlmGenerateErrSchema, e.LlmGenerateOkSchema, e.LlmGenerateResultSchema, e.LlmImageSchema, e.LlmNodeModelSchema, e.LlmProfileKindDescriptorSchema, e.LlmProfileKindSchema, e.LlmProfileSchema, e.LlmRetryPolicySchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmTimeoutDefaults, e.LlmUsageRollupSchema, e.LlmUsageSchema, e.LoadContributionSchema, e.LocateSegmentResultSchema, e.LocationDescriptionAssignmentSchema, e.LocationIconAssignmentSchema, e.LocationIconIdSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogChannelApplyResultSchema, e.LogChannelDescriptorSchema, e.LogChannelGate, e.LogChannelLevelSchema, e.LogChannelRegistry, e.LogChannelWindowPatchSchema, e.LogChannelWindowSchema, e.LogChannelWindowStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoggingEffectiveSchema, e.LoggingExplicitSchema, e.LoggingLevelLayerSchema, e.LoggingLevelSourceSchema, e.LoggingScopeKindSchema, e.LoggingSettingsPatchSchema, e.LoggingSettingsStateSchema, e.LoginMethodContributionSchema, e.LoginStageEnum, e.LtsBucketSchema, e.MACRO_LABELS, e.MAX_ARCHIVED_DEBUG_NOTES, e.MAX_BIRTH_DECISION_RECORDS, e.MAX_BIRTH_LATENCY_PROXY_MS, e.MAX_CLIP_EVENT_IDS, e.MAX_CLIP_LABELS, e.MAX_CONDITION_DEPTH, e.MAX_CONDITION_LEAVES, 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.MAX_KEYS, e.MAX_REASONS_PER_KEY, e.MAX_SENSOR_TRIGGER_DEVICES, e.MAX_TRACK_DEBUG_NOTE_LEN, e.MEDIA_OWNER_TYPES, e.METHOD_ACCESS_MAP, e.METHOD_DEVICE_SELECTORS, e.MODEL_FORMATS, e.MODEL_PROVIDER_IDS, e.MOTION_CLOSE_AFTER_MS, e.MOTION_TRIGGER_FEATURE, e.ManagedModelCatalogEntrySchema, e.ManagedModelExtraFileSchema, e.ManagedModelRefSchema, e.ManagedRuntimeConfigSchema, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileInfoSchema, e.MediaFileKindEnum, e.MediaFileRefSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MediaRelocateModeSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.MigrateDeviceResultSchema, e.MigrateSwitchOutcomeSchema, e.MigrateSwitchReportSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.ModelProviderIdSchema, 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.MutationFilterSchema, e.NATIVE_LEASE_ACTIVITY_FIELD, e.NATIVE_LEASE_ACTIVITY_KEY, e.NATIVE_LEASE_ADMISSION_FIELD, e.NATIVE_LEASE_ADMISSION_KEY, e.NATIVE_LEASE_BUDGET_FIELD, e.NATIVE_LEASE_BUDGET_KEY, e.NATIVE_LEASE_HOLD_FIELD, e.NATIVE_LEASE_HOLD_KEY, e.NATIVE_LEASE_SCENE_BUDGET_FIELD, e.NATIVE_LEASE_SCENE_BUDGET_KEY, e.NATIVE_LEASE_SECTION_ID, e.NATIVE_LEASE_TILE_BUDGET_FIELD, e.NATIVE_LEASE_TILE_BUDGET_KEY, e.NAVIGATION_ACTION_CATALOG, e.NAVIGATION_LIGHT_LEVEL_MAX, e.NAVIGATION_LIGHT_LEVEL_MIN, e.NC_ALARM_SYSTEM_EVENT_KINDS, e.NC_AUDIO_CONFIRM_HITS_DEFAULT, e.NC_AUDIO_CONFIRM_HITS_MAX, e.NC_AUDIO_CONFIRM_HITS_MIN, e.NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, e.NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, e.NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, e.NC_AUDIO_DBFS_FLOOR, e.NC_AUDIO_DB_MAX, e.NC_AUDIO_DB_MIN, e.NC_AUDIO_DB_OFFERED, e.NC_AUDIO_DB_STEP, e.NC_AUDIO_DEFAULTS, e.NC_AUDIO_HIT_PERCENT_MAX, e.NC_AUDIO_HIT_PERCENT_MIN, e.NC_AUDIO_SAMPLING_MAX_SEC, e.NC_AUDIO_SAMPLING_MIN_SEC, e.NC_AUDIO_SEED, e.NC_AUTHORABLE_SYSTEM_EVENT_KINDS, e.NC_BASE_CONDITION_KEYS, e.NC_CLIP_RETENTION_MAX_SEC, e.NC_CONDITION_CATALOG, e.NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, e.NC_CONFIRM_DEFAULT_TIMEOUT_MS, e.NC_CONFIRM_MAX_TIMEOUT_MS, e.NC_CONFIRM_MIN_TIMEOUT_MS, e.NC_DEFAULT_SNOOZE_MINUTES, e.NC_HISTORY_LIMIT_DEFAULT, e.NC_HISTORY_LIMIT_MAX, e.NC_MAX_PER_TRACK_IMMEDIATE, e.NC_OCCUPANCY_DEFAULTS, e.NC_RULE_EDITOR_SECTION_ORDER, e.NC_RULE_KIND_SPECS, e.NC_RULE_SECTIONS, e.NC_SNOOZE_MAX_MINUTES, e.NC_SYSTEM_DELIVERY, e.NC_SYSTEM_EVENT_FILTER_KEYS, e.NC_TAXONOMY, e.NETWORK_LINK_TYPES, e.NETWORK_LINK_UNKNOWN, e.NativeCropBboxSchema, e.NativeCropRefSchema, e.NativeCropResultSchema, e.NativeDetectionSchema, e.NativeLeaseAdmissionSchema, e.NativeLeaseSettingsSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionOptionsSchema, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionSettingsPatchSchema, e.NativeObjectDetectionStatusSchema, e.NativeObjectGeometryEnum, e.NavigationActionEntrySchema, e.NavigationActionIdSchema, e.NavigationEntryKindSchema, e.NavigationFeaturesSchema, e.NavigationLightModeSchema, e.NavigationModeSchema, e.NavigationMoveCommandSchema, e.NavigationPointSchema, e.NavigationRuntimeStateSchema, e.NavigationStatusSchema, e.NcAlarmConfigSchema, e.NcAlarmModeCoverageSchema, e.NcAlarmSettingsPatchSchema, e.NcAlarmSettingsSchema, e.NcAlarmSkipReasonSchema, e.NcAlarmSkippedDeviceSchema, e.NcAudioConditionSchema, e.NcClipRetentionAskSchema, e.NcClipRetentionPlanSchema, e.NcConditionDescriptorSchema, e.NcConditionsSchema, e.NcConfirmExpectSchema, e.NcConfirmSchema, e.NcCrossingSchema, e.NcDeliverySchema, e.NcDeviceStateConditionSchema, e.NcHistoryEntrySchema, e.NcHistoryFilterSchema, e.NcHistoryRecordKindSchema, e.NcHistoryStatusSchema, e.NcHistorySubjectSchema, e.NcMediaFrameSchema, e.NcMediaPolicySchema, e.NcOccupancyConditionSchema, e.NcPlateMatcherSchema, e.NcRuleActionSchema, e.NcRuleActionSequenceSchema, e.NcRuleActionsSchema, e.NcRuleInputSchema, e.NcRuleNotificationButtonSchema, e.NcRulePatchSchema, e.NcRuleSchema, e.NcRuleTargetSchema, e.NcSceneConditionSchema, e.NcScheduleSchema, e.NcScheduleWindowSchema, e.NcSnoozeInputSchema, e.NcSnoozeSchema, e.NcSnoozeScopeSchema, e.NcSnoozeSuppressedSchema, e.NcSystemEventConditionSchema, e.NcSystemEventKindSchema, e.NcTaxonomyEntrySchema, e.NcTaxonomySchema, e.NcTestResultSchema, e.NcThrottleGranularitySchema, e.NcThrottleSchema, e.NcZoneConditionSchema, e.NetworkAccessStatusSchema, e.NetworkAddressSchema, e.NetworkEndpointSchema, e.NetworkLinkStatusSchema, e.NotificationActionIconSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OPERATOR_WRITTEN_STALE_MS, e.OPS_LOG_DEFAULT_LIMIT, e.OPS_LOG_RING_DEFAULT_MAX, e.OVERFLOW_REASON, e.OVERLAY_LAYERS, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, e.OccupancyBurstRefusalSchema, e.OpsLogDomainSchema, e.OpsLogEntrySchema, e.OpsLogOpSchema, e.OpsLogQueryInputSchema, e.OpsLogReasonSchema, e.OrchestratorMetricsSchema, e.OsdOverlayKindEnum, e.OsdOverlayPatchSchema, e.OsdOverlaySchema, e.OsdPositionEnum, e.OsdRenderOutcomeEnum, e.OsdRenderResultSchema, e.OsdSlotBindingSchema, e.OsdSlotViewSchema, e.OsdSourceOptionSchema, e.OsdSourceSchema, e.OsdSourceValueTypeEnum, e.OsdStatusSchema, e.PET_FEEDER_MANUAL_FEED_MAX, e.PET_FEEDER_MANUAL_FEED_MIN, e.PIPELINE_ANALYTICS_CAP_NAME, e.PIPELINE_FLOW_CAPABILITY_NAMES, e.PIPELINE_OWNER_CAPABILITY_NAMES, e.PRIVACY_MASK_CAP_NAME, e.PROVIDER_KIND_CAP_NAMES, e.PYTHON_SCRIPT, e.PackageUpdateSchema, e.PackageVersionInfoSchema, e.ParkRefusalSchema, e.ParkTrackFrameResultSchema, e.ParkedFrameKindSchema, e.ParkedTrackFrameSchema, 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.PoolMemoryWatchdog, 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.PtzHomePresetSchema, e.PtzHomeReturnSchema, e.PtzMoveCommandSchema, e.PtzOptionsSchema, e.PtzPositionSchema, e.PtzPresetFunctionSchema, e.PtzPresetSchema, e.PtzStatusSchema, e.QueryFilterSchema, e.RATE_CONTROL_RELAXED, e.RATE_CONTROL_TIGHT, e.REACHABILITY_FAILURES_TO_OFFLINE, e.REACHABILITY_POLL_INTERVAL_MS, e.REACHABILITY_PROBE_TIMEOUT_MS, e.RECOGNITION_TYPES, e.RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, e.RECORDING_EXPORT_MAX_READ_BYTES, e.RECORDING_TIMELINE_BATCH_MAX, e.REDACTED_SECRET, e.RESERVED_BINDING_NAMES, e.RESTORED_CAP_NAMES, e.ROOT_BUCKET_KEY, e.RUNTIME_DEFAULTS, e.RUNTIME_STATE_POLICY, e.RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadGopBytesResultSchema, e.ReadSegmentBytesResultSchema, e.ReadWindowBytesResultSchema, e.ReadinessRegistry, e.ReadinessTimeoutError, e.RecentTracksPageSchema, e.RecentTracksQueryInput, e.RecordingAvailabilityForDeviceSchema, e.RecordingAvailabilitySchema, e.RecordingBandAudioSchema, e.RecordingBandModeSchema, e.RecordingBandSchema, e.RecordingBandTriggersSchema, e.RecordingConfigSchema, e.RecordingDaysForDeviceSchema, e.RecordingDaysSchema, e.RecordingDeviceUsageSchema, e.RecordingLocationUsageSchema, e.RecordingManifestSchema, e.RecordingObjectTriggerClassSchema, e.RecordingRangeSchema, e.RecordingRebalanceInputSchema, e.RecordingRebalanceMoveSchema, e.RecordingRebalancePlanSchema, e.RecordingRebalanceSkipReasonSchema, e.RecordingRebalanceSkipSchema, e.RecordingRetentionSchema, e.RecordingSignalRuntimeStateSchema, e.RecordingSignalStatusSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RedirectLoginMethodSchema, e.RelocatableMediaCountInputSchema, e.RelocatableMediaCountSchema, e.RelocateFootageClassSchema, e.RelocateFootageInputSchema, e.RelocateJobSchema, e.RelocateJobStateSchema, e.RelocateMediaInputSchema, e.RelocateResidueInputSchema, e.RelocateResidueSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, e.ReportedFailureContributionSchema, e.ReportedLoadContributionSchema, e.RequestCensusGroupSchema, e.RequestCensusProcedureSchema, e.RequestCensusSnapshotSchema, e.RequestCensusStatusSchema, e.RetrainAnnotationDraftSchema, e.RetrainAnnotationKindSchema, e.RetrainAnnotationSchema, e.RetrainAnnotationSourceSchema, e.RetrainAssistResultSchema, e.RetrainAssistSubjectSchema, e.RetrainCopyRefusalSchema, e.RetrainFrameCandidateSchema, e.RetrainFrameListSchema, e.RetrainFrameSchema, e.RetrainFrameSelectionSchema, e.RetrainMacroClassSchema, e.RetrainStatusSchema, e.RetrainTrackSchema, e.RetrainTransitionResultSchema, e.RingBuffer, e.RtpSourceSchema, e.RtspRestreamEntrySchema, e.RunnerCameraConfigSchema, e.RunnerCameraDeviceUIFields, e.RunnerFrameSourceSchema, e.RunnerInferenceDeviceSchema, e.RunnerLocalLoadSchema, e.RunnerLocalMetricsSchema, e.SCENE_CONDITIONS, e.SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, e.SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, e.SCENE_DEFAULT_ANCHOR_THRESHOLD, e.SCENE_DEFAULT_CHECK_INTERVAL_SEC, e.SCENE_DEFAULT_OBSERVATION_SPACING_SEC, e.SCENE_DEFAULT_QUIET_SECONDS, e.SCENE_DEFAULT_UNCOVERED_POLICY, e.SCENE_DIVERGED, e.SCENE_RESET_RECAPTURES, e.SCOPE_PRESETS, e.SENSOR_FEATURES, e.SENSOR_MAP, e.SHARE_VIEW_KINDS, e.SOURCE_CAPS, e.SOURCE_CAP_ACTIVE_FIELD, e.SOURCE_CAP_CHANGED_AT_FIELD, e.SOURCE_DEVICE_TYPES, e.SOURCE_INFO_METADATA_KEY, e.STATIONARY_OVERLAY_STYLE, e.STORAGE_ACCESS_FALLBACK, e.STORAGE_BYTES_PER_GB, e.STORAGE_LOCATION_MODES, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SUMMARIES_DEFAULT_LIMIT, e.SUMMARIES_MAX_LIMIT, e.SYSTEM_CAP_NAMES, e.SYSTEM_SCOPE_DEVICE_METHODS, e.SceneCheckSchema, e.SceneConditionSchema, e.SceneConfirmSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusForDeviceSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.SceneUnavailableSchema, e.SceneUncoveredPolicySchema, e.SceneVerdictSchema, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.SensorEventSchema, e.ServerBootModeSchema, e.ServerPackageStatusSchema, e.ServerRollbackInfoSchema, e.ServerUpdateActionResultSchema, e.ServerUpdateCheckResultSchema, e.ServerUpdateStateSchema, e.SetLoggingSettingsInputSchema, e.SetSiteLocationInputSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SiteLocationSchema, e.SiteLocationSourceSchema, e.SiteLocationStatusSchema, e.SiteZoneSchema, e.SmokeStatusSchema, e.SmtpStatusSchema, e.SnapshotImageSchema, e.SourceInfoSchema, e.SpatialDetectionSchema, e.SsoBridgeClaimsSchema, e.StartEmbeddedInputSchema, e.StationaryObjectSchema, e.StorageAbortUploadInputSchema, e.StorageAccessSchema, e.StorageBeginDownloadInputSchema, e.StorageBeginDownloadResultSchema, e.StorageBeginUploadInputSchema, e.StorageBeginUploadResultSchema, e.StorageCleanupInputSchema, e.StorageCleanupJobSchema, e.StorageCleanupPhaseSchema, e.StorageCleanupStatusInputSchema, e.StorageDrainProgressSchema, e.StorageEndDownloadInputSchema, e.StorageEvictionPolicySchema, e.StorageFinalizeUploadInputSchema, e.StorageLocationDeclarationSchema, e.StorageLocationModeSchema, e.StorageLocationRefSchema, e.StorageLocationSchema, e.StorageLocationTypeSchema, e.StorageMigrationClassSchema, e.StorageMigrationDestinationsSchema, e.StorageMigrationDrainInputSchema, e.StorageMigrationFindingCodeSchema, e.StorageMigrationFindingSchema, e.StorageMigrationFootageMoveInputSchema, e.StorageMigrationInputSchema, e.StorageMigrationJobSchema, e.StorageMigrationLaneSchema, e.StorageMigrationLeaseInputSchema, e.StorageMigrationMediaMoveInputSchema, e.StorageMigrationModeSchema, e.StorageMigrationMoveProgressSchema, e.StorageMigrationMoveSchema, e.StorageMigrationMoverSchema, e.StorageMigrationParticipantSchema, e.StorageMigrationPhaseSchema, e.StorageMigrationPlanSchema, e.StorageMigrationResidueSchema, e.StorageMigrationSourcesSchema, e.StorageOccupancyReportSchema, 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.StreamSignalSchema, e.StreamSignalsStatusSchema, e.StreamSourceEntrySchema, e.StreamSourceSchema, e.SubscribeAudioChunksInputSchema, e.SubscribeAudioChunksResultSchema, e.SubscribeFramesInputSchema, e.SubscribeFramesResultSchema, e.SummarySchema, e.SwitchStatusSchema, e.SystemMetricsSchema, e.SystemMirror, e.TAXONOMY_COLORS, e.TIMELAPSE_DENSE_FLOOR_SEC, e.TIMEZONES, e.TRANSCODE_DOWN_MAX_BITRATE_KBPS, e.TRANSCODE_DOWN_MAX_HEIGHT, e.TamperStatusSchema, e.TankStatusSchema, e.TargetKindCapsSchema, e.TargetKindLevelSchema, e.TargetKindSchema, e.TargetSchema, e.TemperatureSensorStatusSchema, e.TerminalInstanceInfoSchema, e.TerminalLegacyCameraSchema, e.TerminalOutputBatchSchema, e.TerminalOutputEventSchema, e.TerminalProfileInfoSchema, e.TerminalSessionInfoSchema, e.TestConnectionResultSchema, e.TestConnectionStatusEnum, e.TestResultSchema, e.TimelapseRuleInputSchema, e.TimelapseRulePatchSchema, e.TimelapseRuleSchema, e.TimelapseTemplateSchema, e.ToastSchema, e.TokenScopeSchema, e.TopologyNodeSchema, e.TopologyProcessSchema, e.TopologyServiceSchema, e.TrackCascadeCountsSchema, e.TrackEnvelopeSchema, e.TrackFlagsPatchSchema, e.TrackFlagsSchema, e.TrackProjectionSchema, e.TrackSchema, e.TrackSourceSchema, e.TrackStateSchema, e.TrackZoneFilterSchema, e.TrackedDetectionSchema, e.TrainingExportDeviceTotalsSchema, e.TrainingExportSummarySchema, e.TransportPlaneCountsSchema, e.TransportPlaneSchema, e.TurnServerSchema, e.UNATTRIBUTED_BUCKET_KEY, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, e.UnstampedEventMediaCountSchema, e.UnstampedRowsSchema, e.UpdateIntegrationInputSchema, e.UpdateStatusSchema, e.UpdateUserInputSchema, e.UserRecordSchema, e.UserSummarySchema, e.VISIT_MERGE_GAP_MS, e.VacuumControlStatusSchema, e.VacuumStateSchema, e.ValveStateSchema, e.ValveStatusSchema, e.VectorDeclareIndexInputSchema, e.VectorDeleteByFilterInputSchema, e.VectorDeleteInputSchema, e.VectorDeleteResultSchema, e.VectorFilterSchema, e.VectorGetInputSchema, e.VectorGetResultSchema, e.VectorItemSchema, e.VectorMatchSchema, e.VectorMetadataSchema, e.VectorMetricSchema, e.VectorQueryInputSchema, e.VectorQueryResultSchema, e.VectorStatsInputSchema, e.VectorStatsResultSchema, e.VectorUpsertInputSchema, e.VectorUpsertResultSchema, e.VibrationStatusSchema, e.VideoEncodeSchema, e.WEBRTC_EGRESS_PROFILE, e.WELL_KNOWN_TABS, e.WELL_KNOWN_TAB_MAP, e.WaterHeaterStatusSchema, e.WeatherStatusSchema, e.WebrtcLadderDecisionSchema, e.WebrtcSessionDebugSchema, e.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WebrtcTierFailureSchema, e.WhiteBalanceModeSchema, e.WidgetHostEnum, e.WidgetLoginMethodSchema, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.WrapperEvidenceSchema, e.WrapperIdentitySchema, e.WrapperKindSchema, e.YAMNET_TO_MACRO, e.ZoneCrossingDirectionSchema, e.ZoneCrossingSchema, e.ZoneKindEnum, e.ZoneRuleModeEnum, e.ZoneRuleSchema, e.ZoneRuleStageEnum, e.ZoneRulesArraySchema, e.ZoneSchema, e.ZoneScopeBreakdownSchema, e.__resetLogChannelRegistryForTests, e.accessoriesCapability, e.accessoryStableId, e.addonPagesCapability, e.addonPagesSourceCapability, e.addonRoutesCapability, e.addonSettingsCapability, e.addonWidgetsCapability, e.addonWidgetsSourceCapability, e.addonsCapability, e.adminUiCapability, e.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.assertTimelapseCadences, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioChunkBytesPerSample, e.audioCodecCapability, e.audioIsFailClosed, e.audioKindId, e.audioLabelChoices, e.audioMetricsCapability, e.audioModeOf, e.audioOrDefaults, e.audioPlanFromEncodeProfile, e.audioScaleEraOf, e.authProviderCapability, e.autoAssignProfiles, e.automationControlCapability, e.backupCapability, e.bareAddonId, e.batteryCapability, e.bestLocationMatch, e.binaryCapability, e.bindAddonActions, e.brightnessCapability, e.brokerCapability, e.buildAddonRouteProvider, e.buildAudioArgs, e.buildEventKindDescriptor, e.buildFfmpegArgs, e.buildInputArgs, e.buildModelVariantGroups, e.buildNcTaxonomy, e.buildRoleScopes, e.buildStreamParamsConfigSchema, e.buildVideoArgs, e.buttonCapability, e.cameraCredentialsCapability, e.cameraGridLayoutCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.canonicalEgressPlan, e.carbonMonoxideCapability, e.cellsToRects, e.classifyBearerPrincipal, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.clusterModelSettingKey, e.clusterStepSettingFieldsFor, e.clusterStepSettingKey, e.codecIsAccepted, e.collectHydratedFieldEntries, e.collectHydratedFieldValues, e.collectSecretConfigKeys, e.colorCapability, e.colorForKind, e.commitWatchdogRestart, e.compareToTarget, e.compileExpression, e.compileExpressionSafe, e.composeSwitchedOff, e.conditionDepth, e.conditionExclusionReason, e.conditionVisibleForKind, e.connectionTestCapability, e.connectivityCapability, e.consumablesCapability, e.contactCapability, e.controlCapability, e.convertUnit, e.coreBlockAddonId, e.coreBlockIdFromAddonId, e.coreBlocksCapability, e.cosineSimilarity, e.countConditionLeaves, e.coverCapability, e.createDeviceProxy, e.createDurableState, e.createEvent, e.createEventBusSliceSource, e.createExpressionScope, e.createHwAccelCache, e.createLazyTrpcSource, e.createLogChannelsProvider, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.dataStoreProviderCapability, e.dayNightCapability, e.declarationOwnerNodeId, e.declareLogChannel, e.decodeVectorBase64, e.decoderCapability, e.defaultDeliveryForSection, e.defaultDeviceFor, e.defineCustomActions, e.deriveBatteryPresence, e.deriveCameraSwitches, e.deriveDetailCropRect, e.deriveRecordingMode, e.describeCustomActions, e.describeModelVariant, e.detectAccessRole, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceBackendToFormat, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceSelectorMatches, e.deviceStateCapability, e.deviceStatusCapability, e.doorbellCapability, e.droppedConditionsForKind, e.egressTranscodeSharingKey, e.egressTransportFromRequest, e.embeddingEncoderCapability, e.emitDownForOwnedCaps, e.emitReadiness, e.encodeProfileFromStreamShape, e.encodeVectorBase64, e.enumSensorCapability, e.enumerateInferenceDevices, e.enumerateItemArrayFields, e.enumerateSchemaFields, e.errMsg, e.evaluateAst, e.evaluateExpressionSource, e.evaluatePoolMemory, e.evaluateSensorEdge, e.evaluateZoneRules, e.event, e.eventEmitterCapability, e.eventsCapability, e.evictionPolicyForMode, e.evictionPolicyOfLocation, e.expandAudioChunkToF32le, e.expandCapMethods, e.extractNestedAddonId, e.extractSourceInfoFromMetadata, e.faceGalleryCapability, e.failureContributionCapability, e.failureRate, e.fanControlCapability, e.featureProbeCapability, e.filesystemBrowseCapability, e.findTimezone, e.floodCapability, e.foldSnapshotByFunction, e.formatForBackend, e.formatForRuntime, e.formatMediaOwnerKey, e.formatParkedFor, e.gasCapability, e.gbToBytes, e.generateAutomationBlock, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.getLogChannelRegistry, e.getTaxonomyEntry, e.hasMotionTrigger, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.imageSettingsCapability, e.inferModelProvider, e.initialPoolMemoryState, e.integrationsCapability, e.intercomCapability, e.invocationFromEncodeProfile, e.isAgentOnlyPlacement, e.isArrayOutputSchema, e.isAudioChunkFormat, e.isAudioLabelSelected, e.isAudioRule, e.isBaseConditionKey, e.isBatteryPresenceFault, e.isClusterScopedStep, e.isCollectionArrayMethod, e.isDeployableToAgent, e.isDetectionMacroClass, e.isDeviceConfigCap, e.isDeviceScopedCap, e.isEvent, e.isEventOwnerType, e.isFirstLevelMacroClass, e.isIsolatedBuiltin, e.isLocationEnabled, e.isMediaOwnerType, e.isNode, e.isObjectInput, e.isOccupancyRule, e.isRestoredCap, e.isSameAddonId, e.isScheduleActive, e.isSecretConfigField, e.isSoftwareDecode, e.isSourceCap, e.isStorageLocationMode, e.isSystemDelivery, e.isVoidInput, e.ituDbfsFromPreEpoch, e.jobKindSchema, e.kebabToCamel, e.knownValues, e.lawnMowerControlCapability, e.legacyModeOf, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.llmCapability, e.llmRuntimeCapability, e.loadContributionCapability, e.localNetworkCapability, e.locationIconKey, e.locationSimilarity, e.lockControlCapability, e.logBannerArgs, e.logChannelsCapability, e.logDestinationCapability, e.logLevelAtMost, e.loginMethodCapability, e.looseSchema, e.makeProfileBrokerId, a = e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mayReadLocation, e.mayWriteToLocation, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.methodAccessForHttpMethod, e.metricsProviderCapability, e.migrateLegacyDeviceSignalConfig, e.modeMayRead, e.modeMayWrite, e.modelConvertCapability, e.modelDistributorCapability, e.modelFormatForRuntime, e.motionCapability, e.motionDetectionCapability, e.motionTriggerCapability, e.motionZonesCapability, e.mqttBrokerCapability, e.nativeObjectDetectionCapability, e.navigationCapability, e.networkAccessCapability, e.networkLinkCapability, e.networkQualityCapability, e.nodePin, e.nodesCapability, e.normalizeAddonInitResult, e.normalizeAudioLabel, e.normalizeTokenScopes, e.normalizeUnit, e.notificationOutputCapability, e.notificationRulesCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.objectInputDeclaresAddonId, e.occupancyScope, e.osdCapability, e.osdManagerCapability, e.overlayClusterStepSettings, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseMediaOwnerKey, e.parseOccupancyScope, e.parseProcStatus, e.parseProfileBrokerId, e.parseRuleSection, e.parseStreamParamsFormPatch, e.patchAudio, e.petFeederCapability, e.pickAccessoryControl, e.pickClusterStepModels, e.pickClusterStepSettings, e.pickDetailCropConvention, e.pickNativeLeaseOverride, e.pickPreferredRtspEntry, e.pickRestartCandidate, e.pickVideoEncoder, e.pickerForCondition, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.poolMemoryThreshold, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.principalMayReachAddon, e.privacyMaskCapability, e.procedureAuthKey, e.ptzAutotrackCapability, e.ptzCapability, e.pythonScriptForBackend, e.rankStreams, e.readClusterStepModels, e.readClusterStepSettings, e.readDetailCropConvention, e.readDeviceStateFrom, e.readNativeLeaseOverride, e.readNodePin, e.readTimelapseGeneratedAt, e.readinessKey, e.rebootCapability, e.recordingCapability, e.recordingExportCapability, e.recordingSignalCapability, e.rectsToCells, e.reducePoints, e.requiresPython, e.resetPoolBaseline, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveBucketMs, e.resolveCapMount, e.resolveClusterStepModelId, e.resolveContainerPrimaryChild, e.resolveDetectionRuntime, e.resolveDeviceControlKind, e.resolveDeviceProfile, e.resolveEgressDecodeHwAccel, e.resolveFormat, e.resolveHydratedFieldValue, e.resolveLocationIcon, e.resolveLocationMode, e.resolveMethodAuth, e.resolveModelFormat, e.resolveMutate, e.resolvePoolMemoryPolicy, e.resolveRecordingProfiles, e.resolveRunnerId, e.resolveStreamMaps, e.resolveVariantModelId, e.resolveViewableDeviceIds, e.roleSpec, e.ruleEditorSectionsForKind, e.ruleKindOf, e.ruleKindSpec, e.ruleMatchesSection, e.ruleSection, e.ruleSectionOf, e.ruleSeedForSection, e.runInferenceStep, e.runtimeDevices, e.runtimeStatePolicyFor, e.sceneMonitorCapability, e.schemaDeclaresAnyField, e.scopeInherits, e.scopeKey, e.scopesAllowAddon, e.scopesAllowDeviceCap, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.serverManagementCapability, e.setByPath, e.settingsStoreCapability, e.signalPercentFromBars, e.signalPercentFromRssi, e.siteZoneKey, e.sleep, e.sleepCancellable, e.sliceActiveValue, e.sliceChangedAt, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.ssoBridgeCapability, e.startReachabilityPoll, e.stateVocabularyFor, e.storageCapability, e.storageEvictableCapability, e.storageMigrationCapability, e.storageOccupancyCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.streamSignalsCapability, e.stripRetiredBandPreBufferSec, e.strippedOfLegacyReadOnly, e.subKindsOf, e.summarisePrivacyAudio, e.summarizeEffectiveScope, e.supportedRuntimes, e.switchCapability, e.switchedOffIds, e.synthesizeSourceInfo, e.systemCapability, e.systemEventFilterApplies, e.systemEventFilterAppliesToAnyKind, e.tamperCapability, e.taskLogEntrySchema, e.taskPhaseSchema, e.taskTargetSchema, e.temperatureSensorCapability, e.terminalSessionCapability, e.textToHtml, e.toDeviceSummary, e.toExpressionValue, e.toNodeId, e.toStreamSourceEntry, e.toastCapability, e.toggleAudioLabel, e.tokenize, e.transcodeBody, e.tryConvertUnit, e.turnProviderCapability, e.unitDimension, e.unitsForDimension, e.updateCapability, e.userManagementCapability, e.userPasskeysCapability, e.vacuumControlCapability, e.validateExpressionSource, e.validateRecipeBounds, e.valveCapability, e.vectorDimFromBase64, e.vectorStoreCapability, 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.withLocationMode, e.zodEntriesToConfigUI, e.zoneAnalyticsCapability, e.zoneRulesCapability, e.zonesCapability, e.default;
20
+ }, s = i.share["default:@camstack/types"];
21
+ s === void 0 ? n.then(() => {
22
+ if (s = i.share["default:@camstack/types"], s === void 0) throw Error("[Module Federation] Shared module @camstack/types was imported before federation bootstrap finished.");
23
+ o(s);
24
+ }) : o(s);
25
+ //#endregion
26
+ export { a as t };
@@ -1,4 +1,4 @@
1
- const require_segment_demux_js = require("../segment-demux-js-Bu-_Q7Um.js");
1
+ const require_segment_demux_js = require("../segment-demux-js-D8bD_LBq.js");
2
2
  let node_worker_threads = require("node:worker_threads");
3
3
  //#region src/stream-broker/recorded/demux-worker-child.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { t as demuxSegmentFullJs } from "../segment-demux-js-B2TLcR_g.mjs";
1
+ import { t as demuxSegmentFullJs } from "../segment-demux-js-Zm-FyEl6.mjs";
2
2
  import { parentPort } from "node:worker_threads";
3
3
  //#region src/stream-broker/recorded/demux-worker-child.ts
4
4
  /**
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.227",
39
+ version: "1.2.231",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.182",
84
+ version: "1.2.189",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -3,12 +3,12 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-CkNVb7Zh.js");
7
- const require_node = require("../node-CqC8R84-.js");
6
+ const require_dist = require("../dist-omV46PMG.js");
7
+ const require_node = require("../node-1Ai8jl-y.js");
8
8
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
9
9
  const require_remote_restream = require("../remote-restream-CO36Sr30.js");
10
10
  const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
11
- const require_segment_demux_js = require("../segment-demux-js-Bu-_Q7Um.js");
11
+ const require_segment_demux_js = require("../segment-demux-js-D8bD_LBq.js");
12
12
  let node_os = require("node:os");
13
13
  node_os = require_chunk.__toESM(node_os);
14
14
  let node_crypto = require("node:crypto");
@@ -1,10 +1,10 @@
1
1
  import { r as __toESM } from "../chunk-DnnnRqeS.mjs";
2
- import { A as RingBuffer, B as declareLogChannel, Bt as buildFfmpegArgs$1, E as RATE_CONTROL_TIGHT, Et as resolveEgressDecodeHwAccel, Gt as CAM_PROFILE_ORDER, H as deriveBatteryPresence, Ht as isSoftwareDecode, I as batteryCapability, It as webrtcSessionCapability, K as egressTranscodeSharingKey, Kt as DeviceFeature, L as cameraStreamsCapability, Lt as errMsg, M as addonWidgetsSourceCapability, Nt as streamBrokerCapability, Qt as expandAudioChunkToF32le, R as createHwAccelCache, Rt as AUDIO_PRESETS, T as RATE_CONTROL_RELAXED, Ut as BOOT_RECOVERY_BACKOFF_MS, Vt as invocationFromEncodeProfile, Wt as BaseAddon, Yt as createEvent, _n as record, an as parseProfileBrokerId, at as logChannelsCapability, bn as EventCategory, cn as _enum, dn as discriminatedUnion, en as isEvent, h as EncodeProfileSchema, hn as object, i as BatteryStatusSchema, it as loadContributionCapability, ln as array, mn as number, nn as makeSourceBrokerId, pn as literal, q as egressTransportFromRequest, qt as DeviceType, rn as nodePin, st as maskUrlCredentials, tn as makeProfileBrokerId, un as boolean, v as G711_SCALE_CORRECTION_DB, vn as string, xt as rankStreams, yn as union, z as createLogChannelsProvider } from "../dist-Cqf-U6EN.mjs";
3
- import { i as NO_COST_CLAIM, n as Fmp4FragmentChild, o as probeFfmpegBinary, r as Fmp4FragmentPlane, t as ChildCostRegistry } from "../node-jLmcbaar.mjs";
2
+ import { A as RingBuffer, B as declareLogChannel, Bt as buildFfmpegArgs$1, E as RATE_CONTROL_TIGHT, Et as resolveEgressDecodeHwAccel, Gt as CAM_PROFILE_ORDER, H as deriveBatteryPresence, Ht as isSoftwareDecode, I as batteryCapability, It as webrtcSessionCapability, K as egressTranscodeSharingKey, Kt as DeviceFeature, L as cameraStreamsCapability, Lt as errMsg, M as addonWidgetsSourceCapability, Nt as streamBrokerCapability, Qt as expandAudioChunkToF32le, R as createHwAccelCache, Rt as AUDIO_PRESETS, T as RATE_CONTROL_RELAXED, Ut as BOOT_RECOVERY_BACKOFF_MS, Vt as invocationFromEncodeProfile, Wt as BaseAddon, Yt as createEvent, _n as record, an as parseProfileBrokerId, at as logChannelsCapability, bn as EventCategory, cn as _enum, dn as discriminatedUnion, en as isEvent, h as EncodeProfileSchema, hn as object, i as BatteryStatusSchema, it as loadContributionCapability, ln as array, mn as number, nn as makeSourceBrokerId, pn as literal, q as egressTransportFromRequest, qt as DeviceType, rn as nodePin, st as maskUrlCredentials, tn as makeProfileBrokerId, un as boolean, v as G711_SCALE_CORRECTION_DB, vn as string, xt as rankStreams, yn as union, z as createLogChannelsProvider } from "../dist-D6TktSdc.mjs";
3
+ import { i as NO_COST_CLAIM, n as Fmp4FragmentChild, o as probeFfmpegBinary, r as Fmp4FragmentPlane, t as ChildCostRegistry } from "../node-BR1TKkR_.mjs";
4
4
  import { a as parseRestreamPath, d as PREBUFFER_MAX_MS, f as capPreRollRequestMs, i as isLiveEdgeOnlyDial, m as resolvePrebuffer, n as NO_DECLARATION, p as prebufferRetentionMs, s as sdpVariantFor, u as withSentryIntent } from "../restream-intent-DyGmLAU9.mjs";
5
5
  import { n as profileForStreamId } from "../remote-restream-BeHi78PZ.mjs";
6
6
  import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
7
- import { i as require_mp4box_all, n as demuxSegmentPreferJs, r as runFfmpegOnce, t as demuxSegmentFullJs } from "../segment-demux-js-B2TLcR_g.mjs";
7
+ import { i as require_mp4box_all, n as demuxSegmentPreferJs, r as runFfmpegOnce, t as demuxSegmentFullJs } from "../segment-demux-js-Zm-FyEl6.mjs";
8
8
  import { createRequire } from "node:module";
9
9
  import * as os from "node:os";
10
10
  import { networkInterfaces, tmpdir } from "node:os";
@@ -30,7 +30,7 @@ async function d(e) {
30
30
  }
31
31
  }
32
32
  async function f() {
33
- return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DZlxPoTV.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-MI6wy_av.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-pipeline",
3
- "version": "1.2.270",
3
+ "version": "1.2.271",
4
4
  "description": "Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",
@@ -57,6 +57,8 @@ from __future__ import annotations
57
57
 
58
58
  import asyncio
59
59
  import concurrent.futures
60
+ import contextlib
61
+ import fcntl
60
62
  import gc
61
63
  import io
62
64
  import json
@@ -494,6 +496,82 @@ def _resolve_onnx_providers(
494
496
  # HARD RULE: every failure in this machinery falls back to the plain
495
497
  # `ct.models.MLModel(path)` load — exactly the pre-cache behavior.
496
498
 
499
+ # ---------------------------------------------------------------------------
500
+ # Compile-cache lock — one worker compiles a model, the rest wait and HIT
501
+ # ---------------------------------------------------------------------------
502
+ #
503
+ # A pool is several python PROCESSES. They start together, all miss the
504
+ # compiled-model cache because nobody has written it yet, all pay the compile,
505
+ # and then all try to replace the same directory. Measured on the operator's
506
+ # Mac on 2026-09-19 over three hours: **59 cache HITs, 55 MISSes, 5 persist
507
+ # failures** — half the loads recompiling a model that was already on disk.
508
+ #
509
+ # The failures name a path INSIDE the bundle:
510
+ #
511
+ # CoreML: could not persist compiled-model cache
512
+ # ([Errno 2] No such file or directory: '.../yolov9m-320.mlmodelc/weights')
513
+ #
514
+ # which is `_persist_coreml_compiled` removing the old cache while another
515
+ # worker swaps its own copy into the same place: `rmtree` walks a directory and
516
+ # a child ceases to exist under it.
517
+ #
518
+ # So this lock is not belt-and-braces. It is what turns N compiles of one model
519
+ # into one, and what makes "replace the cache" single-writer.
520
+ #
521
+ # It is deliberately NOT fatal in any direction: an unusable lock directory, a
522
+ # platform without `flock`, or a holder that died mid-compile all end the same
523
+ # way — the caller compiles without the cache, which is exactly what it did
524
+ # before the cache existed. A cache is an optimisation, and an optimisation
525
+ # that can refuse to serve a camera is worse than every miss it prevents.
526
+
527
+ # How long a waiter gives the compiling worker before compiling itself.
528
+ COMPILE_CACHE_LOCK_TIMEOUT_SEC = 180.0
529
+ _COMPILE_CACHE_LOCK_POLL_SEC = 0.05
530
+
531
+
532
+ @contextlib.contextmanager
533
+ def compile_cache_lock(
534
+ cache_root: str,
535
+ stem: str,
536
+ timeout_sec: float = COMPILE_CACHE_LOCK_TIMEOUT_SEC,
537
+ ):
538
+ """Hold the per-MODEL compile lock, or yield False having failed to.
539
+
540
+ Per model, not per cache: compiling the detector must not serialise behind
541
+ the embedder, which is a different file and a different compile.
542
+ """
543
+ handle = None
544
+ held = False
545
+ try:
546
+ os.makedirs(cache_root, exist_ok=True)
547
+ handle = open(os.path.join(cache_root, f"{stem}.lock"), "a+")
548
+ deadline = time.monotonic() + max(0.0, timeout_sec)
549
+ while True:
550
+ try:
551
+ fcntl.flock(handle.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
552
+ held = True
553
+ break
554
+ except OSError:
555
+ if time.monotonic() >= deadline:
556
+ break
557
+ time.sleep(_COMPILE_CACHE_LOCK_POLL_SEC)
558
+ except (OSError, AttributeError, NameError):
559
+ held = False
560
+ try:
561
+ yield held
562
+ finally:
563
+ if handle is not None:
564
+ try:
565
+ if held:
566
+ fcntl.flock(handle.fileno(), fcntl.LOCK_UN)
567
+ except OSError:
568
+ pass
569
+ try:
570
+ handle.close()
571
+ except OSError:
572
+ pass
573
+
574
+
497
575
  COREML_CACHE_DIR_NAME = ".coreml-cache"
498
576
  COREML_CACHE_STAMP_VERSION = 1
499
577
 
@@ -566,10 +644,17 @@ def _persist_coreml_compiled(
566
644
  # Drop any stale previous cache: its stamp first (so nothing validates
567
645
  # the old dir), then the dir itself — POSIX rename cannot replace a
568
646
  # non-empty directory.
569
- if os.path.exists(stamp_path):
647
+ # Both removals tolerate "already gone". `compile_cache_lock` makes a
648
+ # concurrent swap rare, not impossible — a worker killed between taking
649
+ # the lock and the replace leaves precisely this state — and a previous
650
+ # cache that has ALREADY disappeared is the outcome we wanted anyway.
651
+ # Not tolerating it is what produced five
652
+ # `[Errno 2] ... .mlmodelc/weights` failures in three hours.
653
+ try:
570
654
  os.remove(stamp_path)
571
- if os.path.exists(cache_path):
572
- shutil.rmtree(cache_path)
655
+ except FileNotFoundError:
656
+ pass
657
+ shutil.rmtree(cache_path, ignore_errors=True)
573
658
  os.replace(tmp_dir, cache_path)
574
659
  except BaseException:
575
660
  shutil.rmtree(tmp_dir, ignore_errors=True)
@@ -587,19 +672,19 @@ def _persist_coreml_compiled(
587
672
  raise
588
673
 
589
674
 
590
- def _acquire_coreml_model(ct: Any, path: str, compute_units: Any) -> tuple[Any, Any]:
591
- """Return (model, spec) for the CoreML branch via the persistent cache.
675
+ def _try_coreml_cache_hit(
676
+ ct: Any, path: str, compute_units: Any,
677
+ ) -> tuple[Any, Any] | None:
678
+ """(model, spec) from the persistent cache, or None for "compile it".
592
679
 
593
- Cache HIT → `CompiledMLModel(cache)` — loads the already-compiled
594
- `.mlmodelc`, no recompile. It has NO `get_spec()`, so the
595
- spec is read straight from the source .mlpackage with
596
- `ct.utils.load_spec` (cheap — parses the protobuf, does not
597
- compile). Spec-derived metadata is therefore identical to
598
- what `MLModel.get_spec()` returned before.
599
- Cache MISS → plain `MLModel(path)` (compiles — pre-cache behavior), then
600
- best-effort persist of the compiled dir for the next spawn.
601
- ANY failure in the cache machinery → the plain MLModel path, exactly as
602
- before this cache existed. Never raises differently from pre-cache code.
680
+ Separate from the compile because it is asked TWICE: once before queueing
681
+ for the compile lock, and again once the lock is held — the second ask is
682
+ what turns every waiter's miss into a hit.
683
+
684
+ `CompiledMLModel` has no `get_spec()`, so the spec is read straight from
685
+ the source .mlpackage with `ct.utils.load_spec` (cheap — parses the
686
+ protobuf, does not compile). Any failure answers None, which is the
687
+ pre-cache behaviour exactly.
603
688
  """
604
689
  try:
605
690
  cache_path, stamp_path = _coreml_cache_paths(path)
@@ -620,26 +705,70 @@ def _acquire_coreml_model(ct: Any, path: str, compute_units: Any) -> tuple[Any,
620
705
  f"falling back to plain compile of {os.path.basename(path)}\n"
621
706
  )
622
707
  sys.stderr.flush()
708
+ return None
623
709
 
624
- # Cache MISS / invalid / lookup failure — identical to pre-cache behavior.
625
- model = ct.models.MLModel(path, compute_units=compute_units)
626
- spec = model.get_spec()
627
- try:
628
- cache_path, stamp_path = _coreml_cache_paths(path)
629
- fingerprint = _coreml_model_fingerprint(path)
630
- compiled_src = model.get_compiled_model_path()
631
- _persist_coreml_compiled(compiled_src, cache_path, stamp_path, fingerprint)
632
- sys.stderr.write(
633
- f"CoreML: compiled-model cache MISS — compiled and persisted {cache_path}\n"
634
- )
635
- sys.stderr.flush()
636
- except Exception as exc:
637
- sys.stderr.write(
638
- f"CoreML: could not persist compiled-model cache ({exc}); "
639
- f"continuing without cache\n"
640
- )
641
- sys.stderr.flush()
642
- return model, spec
710
+
711
+ def _acquire_coreml_model(ct: Any, path: str, compute_units: Any) -> tuple[Any, Any]:
712
+ """Return (model, spec) for the CoreML branch via the persistent cache.
713
+
714
+ Cache HIT → `CompiledMLModel(cache)`, no recompile (`_try_coreml_cache_hit`).
715
+ Cache MISS → take the per-model compile lock, ask AGAIN (the winner may
716
+ have finished while we queued), then `MLModel(path)` — the
717
+ pre-cache behaviour — and persist it for the next spawn.
718
+ LOCK LOST → compile anyway, serve the model, write nothing.
719
+ ANY failure in the cache machinery → the plain MLModel path, exactly as
720
+ before this cache existed. Never raises differently from pre-cache code.
721
+ """
722
+ hit = _try_coreml_cache_hit(ct, path, compute_units)
723
+ if hit is not None:
724
+ return hit
725
+
726
+ # A MISS here is not yet a compile. The pool starts its workers together,
727
+ # so every one of them arrives at this line at the same instant with the
728
+ # same answer — measured 55 misses against 59 hits on the Mac, which is
729
+ # not a cold cache, it is N workers each compiling what the others are
730
+ # compiling. One of them takes the lock; the rest wait and then find the
731
+ # HIT the winner just wrote.
732
+ cache_root = os.path.dirname(_coreml_cache_paths(path)[0])
733
+ stem = os.path.splitext(os.path.basename(path))[0]
734
+ with compile_cache_lock(cache_root, stem) as held:
735
+ if held:
736
+ hit = _try_coreml_cache_hit(ct, path, compute_units)
737
+ if hit is not None:
738
+ return hit
739
+
740
+ model = ct.models.MLModel(path, compute_units=compute_units)
741
+ spec = model.get_spec()
742
+
743
+ # Only the lock HOLDER writes the cache. A worker that compiled
744
+ # because it could not get the lock has a perfectly good model and no
745
+ # business replacing a directory somebody else owns — that swap is the
746
+ # race, and skipping it costs nothing: the holder is writing the same
747
+ # bytes.
748
+ if not held:
749
+ sys.stderr.write(
750
+ f"CoreML: compiled without the cache lock — compiled "
751
+ f"{os.path.basename(path)} and left the cache to its holder\n"
752
+ )
753
+ sys.stderr.flush()
754
+ return model, spec
755
+
756
+ try:
757
+ cache_path, stamp_path = _coreml_cache_paths(path)
758
+ fingerprint = _coreml_model_fingerprint(path)
759
+ compiled_src = model.get_compiled_model_path()
760
+ _persist_coreml_compiled(compiled_src, cache_path, stamp_path, fingerprint)
761
+ sys.stderr.write(
762
+ f"CoreML: compiled-model cache MISS — compiled and persisted {cache_path}\n"
763
+ )
764
+ sys.stderr.flush()
765
+ except Exception as exc:
766
+ sys.stderr.write(
767
+ f"CoreML: could not persist compiled-model cache ({exc}); "
768
+ f"continuing without cache\n"
769
+ )
770
+ sys.stderr.flush()
771
+ return model, spec
643
772
 
644
773
 
645
774
  def _init_runtime(runtime: str, device: str = "") -> None:
@@ -0,0 +1,185 @@
1
+ """The compile-cache lock: one worker compiles, the others wait and HIT.
2
+
3
+ Measured on the operator's Mac on 2026-09-19, over three hours: **59 cache
4
+ HITs, 55 MISSes and 5 persist failures**. Half the loads were recompiling a
5
+ model that was already on disk, and the failures all named a path INSIDE the
6
+ cache bundle:
7
+
8
+ CoreML: could not persist compiled-model cache
9
+ ([Errno 2] No such file or directory: '.../camstack-yolov9m-320.mlmodelc/weights')
10
+
11
+ Both come from the same place. A pool is several python PROCESSES; they start
12
+ together, all miss the cache because nobody has written it yet, all compile,
13
+ and then all try to replace the same directory. `_persist_coreml_compiled`
14
+ removes the old cache and renames its temp copy into place, so one worker
15
+ walks a directory that another is swapping under it — and `rmtree` fails on a
16
+ child that has just ceased to exist. `weights` is a subdirectory of the
17
+ `.mlmodelc` bundle.
18
+
19
+ So the lock is not belt-and-braces: it is what stops N workers paying N
20
+ compiles for one model, and the only thing that makes "replace the cache" a
21
+ single-writer operation.
22
+
23
+ Run: python3 -m unittest test_inference_pool_cache_lock -v
24
+ """
25
+ from __future__ import annotations
26
+
27
+ import multiprocessing
28
+ import os
29
+ import shutil
30
+ import sys
31
+ import tempfile
32
+ import time
33
+ import types
34
+ import unittest
35
+
36
+ # Stub the heavy third-party imports BEFORE importing inference_pool — the
37
+ # same shape as `test_inference_pool_coreml_cache.py`: the REAL module when the
38
+ # sandbox has it, because a blind stub poisons every sibling test in the
39
+ # session.
40
+ try:
41
+ import numpy # noqa: F401
42
+ except ImportError:
43
+ _np = types.ModuleType("numpy")
44
+ _np.array = lambda seq, dtype=None: list(seq) # noqa: E731
45
+ _np.float32 = "float32"
46
+ sys.modules["numpy"] = _np
47
+
48
+ try:
49
+ import PIL.Image # noqa: F401
50
+ except ImportError:
51
+ _pil = types.ModuleType("PIL")
52
+ _pil_image = types.ModuleType("PIL.Image")
53
+ _pil.Image = _pil_image
54
+ sys.modules["PIL"] = _pil
55
+ sys.modules["PIL.Image"] = _pil_image
56
+
57
+ if "postprocessors" not in sys.modules:
58
+ _pp = types.ModuleType("postprocessors")
59
+ _pp.POSTPROCESSORS = {}
60
+ sys.modules["postprocessors"] = _pp
61
+
62
+ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
63
+ import inference_pool # noqa: E402
64
+
65
+
66
+ def _hold_lock(root: str, stem: str, hold_sec: float, started, done) -> None:
67
+ """Child process: take the lock, signal, hold it, release."""
68
+ with inference_pool.compile_cache_lock(root, stem):
69
+ started.set()
70
+ time.sleep(hold_sec)
71
+ done.set()
72
+
73
+
74
+ class TestCompileCacheLock(unittest.TestCase):
75
+ def test_lock_is_exclusive_across_processes(self) -> None:
76
+ # The pool is processes, not threads: a lock that only worked in-process
77
+ # would leave the very race it exists to remove.
78
+ with tempfile.TemporaryDirectory() as root:
79
+ ctx = multiprocessing.get_context("spawn")
80
+ started = ctx.Event()
81
+ done = ctx.Event()
82
+ child = ctx.Process(target=_hold_lock, args=(root, "model", 1.0, started, done))
83
+ child.start()
84
+ try:
85
+ self.assertTrue(started.wait(10), "child never took the lock")
86
+ began = time.monotonic()
87
+ with inference_pool.compile_cache_lock(root, "model"):
88
+ waited = time.monotonic() - began
89
+ # It had to WAIT for the holder rather than proceeding beside it.
90
+ self.assertGreater(waited, 0.5)
91
+ finally:
92
+ child.join(15)
93
+
94
+ def test_two_models_do_not_block_each_other(self) -> None:
95
+ # The lock is per model: compiling the detector must not serialise
96
+ # behind the embedder, which is a different file entirely.
97
+ with tempfile.TemporaryDirectory() as root:
98
+ with inference_pool.compile_cache_lock(root, "detector"):
99
+ began = time.monotonic()
100
+ with inference_pool.compile_cache_lock(root, "embedder"):
101
+ pass
102
+ self.assertLess(time.monotonic() - began, 0.5)
103
+
104
+ def test_it_gives_up_rather_than_hanging_the_pool(self) -> None:
105
+ # A holder that died mid-compile must not take the pool with it: the
106
+ # wait is bounded and a timeout COMPILES, which is the pre-lock
107
+ # behaviour — slower, never stuck.
108
+ with tempfile.TemporaryDirectory() as root:
109
+ ctx = multiprocessing.get_context("spawn")
110
+ started = ctx.Event()
111
+ done = ctx.Event()
112
+ child = ctx.Process(target=_hold_lock, args=(root, "model", 3.0, started, done))
113
+ child.start()
114
+ try:
115
+ self.assertTrue(started.wait(10), "child never took the lock")
116
+ began = time.monotonic()
117
+ with inference_pool.compile_cache_lock(root, "model", timeout_sec=0.3) as held:
118
+ waited = time.monotonic() - began
119
+ self.assertFalse(held, "it should report that it did NOT get the lock")
120
+ self.assertLess(waited, 2.0)
121
+ finally:
122
+ child.join(15)
123
+
124
+ def test_an_unusable_lock_directory_does_not_stop_a_compile(self) -> None:
125
+ # The cache is an optimisation. If the lock cannot even be created the
126
+ # model still has to load — a cache failure that refused to serve a
127
+ # camera would be worse than every miss it prevents.
128
+ with inference_pool.compile_cache_lock("/proc/nonexistent-cache-root", "model") as held:
129
+ self.assertFalse(held)
130
+
131
+
132
+ if __name__ == "__main__":
133
+ unittest.main()
134
+
135
+
136
+ class TestPersistToleratesAConcurrentSwap(unittest.TestCase):
137
+ """The persist step is the OTHER half of the same race.
138
+
139
+ Measured on the Mac, 2026-09-19: five `could not persist compiled-model
140
+ cache ([Errno 2] ... /yolov9m-320.mlmodelc/weights)` in three hours. The
141
+ path is INSIDE the old cache bundle, which is `shutil.rmtree` walking a
142
+ directory another worker is swapping out from under it. The lock makes
143
+ that rare; it must also be harmless, because a worker that dies between
144
+ taking the lock and replacing the cache leaves exactly this state behind.
145
+ """
146
+
147
+ def setUp(self) -> None:
148
+ self.root = tempfile.mkdtemp(prefix="cs-persist-race-")
149
+ self.addCleanup(shutil.rmtree, self.root, True)
150
+
151
+ def test_a_vanishing_previous_cache_does_not_fail_the_persist(self) -> None:
152
+ compiled_src = os.path.join(self.root, "fresh.mlmodelc")
153
+ os.makedirs(compiled_src)
154
+ with open(os.path.join(compiled_src, "weights"), "w", encoding="utf-8") as fh:
155
+ fh.write("new")
156
+
157
+ cache_path = os.path.join(self.root, "cache", "model.mlmodelc")
158
+ stamp_path = os.path.join(self.root, "cache", "model.stamp.json")
159
+ os.makedirs(cache_path)
160
+ with open(os.path.join(cache_path, "weights"), "w", encoding="utf-8") as fh:
161
+ fh.write("old")
162
+
163
+ real_rmtree = shutil.rmtree
164
+ vanished: list[str] = []
165
+
166
+ def rmtree_after_someone_else_won(path, *args, **kwargs):
167
+ # Another worker replaced the cache between our exists() and our
168
+ # rmtree — the directory we are about to walk is already gone.
169
+ if path == cache_path and not vanished:
170
+ vanished.append(path)
171
+ real_rmtree(path)
172
+ return real_rmtree(path, *args, **kwargs)
173
+
174
+ inference_pool.shutil.rmtree = rmtree_after_someone_else_won
175
+ try:
176
+ inference_pool._persist_coreml_compiled(
177
+ compiled_src, cache_path, stamp_path, {"kind": "file"}
178
+ )
179
+ finally:
180
+ inference_pool.shutil.rmtree = real_rmtree
181
+
182
+ self.assertTrue(vanished, "the test did not exercise the race it describes")
183
+ with open(os.path.join(cache_path, "weights"), encoding="utf-8") as fh:
184
+ self.assertEqual(fh.read(), "new")
185
+ self.assertTrue(os.path.isfile(stamp_path))