@camstack/addon-pipeline 1.2.94 → 1.2.95

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 (36) hide show
  1. package/dist/{addon-utils-DnUCCZVx.js → addon-utils-UMWiMAxR.js} +1 -1
  2. package/dist/audio-analyzer/index.js +58 -4
  3. package/dist/audio-analyzer/index.mjs +56 -2
  4. package/dist/detection-pipeline/index.js +194 -6
  5. package/dist/detection-pipeline/index.mjs +191 -3
  6. package/dist/{dist-XbrYiMV3.mjs → dist-C49o1k7u.mjs} +316 -2
  7. package/dist/{dist-BbRv3bM2.js → dist-hyryByiw.js} +333 -1
  8. package/dist/{event-loop-stall-monitor-CFWrOZ6G.mjs → event-loop-stall-monitor-CfxZBgNi.mjs} +1 -1
  9. package/dist/{event-loop-stall-monitor-D9hqbc68.js → event-loop-stall-monitor-DPNTzGOT.js} +1 -1
  10. package/dist/{lazy-sharp-U0EtN7_C.js → lazy-sharp-Dxg6UeW-.js} +1 -1
  11. package/dist/motion-wasm/index.js +2 -2
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/pipeline-runner/index.js +4 -4
  14. package/dist/pipeline-runner/index.mjs +3 -3
  15. package/dist/process-memory-B9-UD7Rp.js +78 -0
  16. package/dist/process-memory-DXOB6eHX.mjs +66 -0
  17. package/dist/recorder/index.js +423 -47
  18. package/dist/recorder/index.mjs +422 -46
  19. package/dist/session-decode/decode-worker-child.js +2 -2
  20. package/dist/session-decode/decode-worker-child.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-BNOPhQ-y.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CF-c0cDZ.mjs} +3 -3
  23. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BjvmJK_d.mjs +26 -0
  24. package/dist/stream-broker/{hostInit-DCV2-mSi.mjs → hostInit-Cpcf2hDB.mjs} +3 -3
  25. package/dist/stream-broker/index.js +25 -7
  26. package/dist/stream-broker/index.mjs +25 -7
  27. package/dist/stream-broker/remoteEntry.js +1 -1
  28. package/dist/{worker-protocol-CNC-ZcU3.js → worker-protocol-DR_a77D5.js} +1 -1
  29. package/dist/{worker-protocol-D0ewr67U.mjs → worker-protocol-DqQ2GI4M.mjs} +1 -1
  30. package/package.json +12 -7
  31. package/python/inference_pool.py +178 -3
  32. package/python/test_inference_pool_backpressure.py +7 -1
  33. package/python/test_inference_pool_memstats.py +146 -0
  34. package/dist/node-topology-platform-BkR_k6WT.mjs +0 -15
  35. package/dist/node-topology-platform-CFZ7F4xW.js +0 -20
  36. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DMyOrQHq.mjs +0 -26
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.22",
6
+ version: "1.2.23",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_stream_broker_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.86",
21
+ version: "1.2.87",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_stream_broker_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.58",
36
+ version: "1.2.59",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_stream_broker_widgets",
@@ -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.AUDIO_ANALYSIS_CAP_NAME, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AUDIO_PRESETS, 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.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.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.BOOT_RECOVERY_BACKOFF_MS, 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.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.COCO_80_LABELS, e.COCO_TO_MACRO, e.CONNECTION_TEST_TIMEOUT_MS, 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.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_DECODER_HWACCEL_CONFIG, e.DEFAULT_DETAIL_CROP_CONVENTION, e.DEFAULT_EVENTS_BAND_BUFFER_SEC, e.DEFAULT_EVENT_COLOR, e.DEFAULT_FEATURES, e.DEFAULT_NATIVE_LEASE_SETTINGS, e.DEFAULT_POOL_MEMORY_POLICY, e.DEFAULT_RECORDING_PROFILES, e.DEFAULT_RETENTION, e.DEFAULT_RUNTIME_STATE_DURABILITY, e.DEFAULT_SCRUB_THUMBNAIL_PRESET, e.DEFAULT_TIMELAPSE_PREVIEW_TEXT, 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_PROFILES, 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.DetectionSourceSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceSelectorSchema, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DiskReconcileJobSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENTFUL_CAP_NAMES, e.EVENT_KIND_BY_CAP, 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.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, e.EventKindSchema, e.EventKindsForDeviceSchema, e.EventMediaArtifactSchema, e.EventMediaCoverageSchema, e.EventMediaKindSchema, e.EventMediaProductionSchema, 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.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.Fmp4BoxSplitter, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, 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.ImageContractSchema, e.ImageContractStateSchema, 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.LOG_LEVEL_RANK, e.LabelAttributionSchema, e.LabelDefinitionSchema, e.LabelTierSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, 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.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoginMethodContributionSchema, e.LoginStageEnum, e.MACRO_LABELS, e.MAX_CLIP_EVENT_IDS, 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.METHOD_ACCESS_MAP, e.METHOD_DEVICE_SELECTORS, e.MODEL_FORMATS, 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.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.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_SECTION_ID, e.NATIVE_LEASE_TILE_BUDGET_FIELD, e.NATIVE_LEASE_TILE_BUDGET_KEY, e.NC_ALARM_SYSTEM_EVENT_KINDS, 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_AUTHORABLE_SYSTEM_EVENT_KINDS, e.NC_BASE_CONDITION_KEYS, 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_SNOOZE_MAX_MINUTES, e.NC_SYSTEM_EVENT_FILTER_KEYS, e.NC_TAXONOMY, e.NativeCropBboxSchema, e.NativeCropRefSchema, e.NativeCropResultSchema, e.NativeDetectionSchema, e.NativeLeaseAdmissionSchema, e.NativeLeaseSettingsSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NcAlarmConfigSchema, e.NcAlarmModeCoverageSchema, e.NcAlarmSettingsPatchSchema, e.NcAlarmSettingsSchema, e.NcAlarmSkipReasonSchema, e.NcAlarmSkippedDeviceSchema, e.NcAudioConditionSchema, 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.NotificationActionIconSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OPS_LOG_DEFAULT_LIMIT, e.OPS_LOG_RING_DEFAULT_MAX, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, 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_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.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.PtzMoveCommandSchema, e.PtzOptionsSchema, e.PtzPositionSchema, 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_EXPORT_MAX_READ_BYTES, e.RESERVED_BINDING_NAMES, e.RESTORED_CAP_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_STATE_POLICY, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadGopBytesResultSchema, 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.RecordingRangeSchema, e.RecordingRebalanceInputSchema, e.RecordingRebalanceMoveSchema, e.RecordingRebalancePlanSchema, e.RecordingRebalanceSkipReasonSchema, e.RecordingRebalanceSkipSchema, e.RecordingRetentionSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RedirectLoginMethodSchema, e.RelocateFootageClassSchema, e.RelocateFootageInputSchema, e.RelocateJobSchema, e.RelocateJobStateSchema, e.RelocateMediaInputSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, 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.SCRUB_THUMBNAIL_PRESETS, e.SCRUB_THUMBNAIL_PRESET_LABELS, e.SCRUB_THUMBNAIL_PRESET_ORDER, e.SENSOR_FEATURES, e.SENSOR_MAP, e.SOURCE_INFO_METADATA_KEY, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SYSTEM_CAP_NAMES, e.SYSTEM_SCOPE_DEVICE_METHODS, e.SceneCheckSchema, e.SceneConditionSchema, e.SceneConfirmSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.SceneUnavailableSchema, e.SceneUncoveredPolicySchema, e.SceneVerdictSchema, 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.SetSiteLocationInputSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SiteLocationSchema, e.SiteLocationSourceSchema, e.SiteLocationStatusSchema, 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.StorageMigrationClassSchema, e.StorageMigrationDestinationsSchema, e.StorageMigrationFootageMoveInputSchema, e.StorageMigrationInputSchema, e.StorageMigrationJobSchema, e.StorageMigrationLeaseInputSchema, e.StorageMigrationMediaMoveInputSchema, e.StorageMigrationMoveSchema, e.StorageMigrationParticipantSchema, e.StorageMigrationPhaseSchema, e.StorageMigrationPlanSchema, 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.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.TurnServerSchema, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, 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.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WhiteBalanceModeSchema, e.WidgetHostEnum, e.WidgetLoginMethodSchema, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.YAMNET_TO_MACRO, e.ZoneCrossingDirectionSchema, e.ZoneCrossingSchema, 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.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.assertTimelapseCadences, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioIsFailClosed, e.audioLabelChoices, e.audioMetricsCapability, e.audioModeOf, e.audioOrDefaults, e.audioPlanFromEncodeProfile, 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.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.canonicalEgressPlan, e.carbonMonoxideCapability, e.cellsToRects, e.classifyBearerPrincipal, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.collectHydratedFieldEntries, e.collectHydratedFieldValues, e.colorCapability, e.colorForKind, e.commitWatchdogRestart, e.compileExpression, e.compileExpressionSafe, e.composeSwitchedOff, e.conditionDepth, 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.createExpressionScope, e.createHwAccelCache, e.createLazyTrpcSource, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.dataStoreProviderCapability, e.dayNightCapability, e.declarationOwnerNodeId, e.decodeVectorBase64, e.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, e.deriveBatteryPresence, e.deriveCameraSwitches, e.deriveDetailCropRect, e.deriveRecordingMode, 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.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.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.gasCapability, e.generateAutomationBlock, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.getTaxonomyEntry, e.hasMotionTrigger, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.imageSettingsCapability, e.initialPoolMemoryState, e.integrationsCapability, e.intercomCapability, e.invocationFromEncodeProfile, e.isAgentOnlyPlacement, e.isArrayOutputSchema, e.isAudioLabelSelected, e.isBaseConditionKey, e.isBatteryPresenceFault, e.isCollectionArrayMethod, e.isDeployableToAgent, e.isDetectionMacroClass, e.isDeviceConfigCap, e.isDeviceScopedCap, e.isEvent, e.isIsolatedBuiltin, e.isNode, e.isObjectInput, e.isRestoredCap, e.isSameAddonId, e.isScheduleActive, e.isSoftwareDecode, e.isVoidInput, e.jobKindSchema, e.kebabToCamel, e.knownValues, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.llmCapability, e.llmRuntimeCapability, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logBannerArgs, e.logDestinationCapability, e.logLevelAtMost, e.loginMethodCapability, e.looseSchema, e.makeProfileBrokerId, a = e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.methodAccessForHttpMethod, e.metricsProviderCapability, 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.normalizeAudioLabel, e.normalizeTokenScopes, e.normalizeUnit, e.notificationOutputCapability, e.notificationRulesCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.objectInputDeclaresAddonId, e.osdCapability, e.osdManagerCapability, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseProcStatus, e.parseProfileBrokerId, e.parseStreamParamsFormPatch, e.patchAudio, e.petFeederCapability, e.pickAccessoryControl, 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.readDetailCropConvention, e.readDeviceStateFrom, e.readNativeLeaseOverride, e.readNodePin, e.readTimelapseGeneratedAt, e.readinessKey, e.rebootCapability, e.recordingCapability, e.recordingExportCapability, e.rectsToCells, e.requiresPython, e.resetPoolBaseline, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveCapMount, e.resolveDetectionRuntime, e.resolveDeviceControlKind, e.resolveDeviceProfile, e.resolveEgressDecodeHwAccel, e.resolveFormat, e.resolveHydratedFieldValue, e.resolveModelFormat, e.resolveMutate, e.resolvePoolMemoryPolicy, e.resolveRecordingProfiles, e.resolveRunnerId, e.resolveScrubThumbnailGeometry, e.resolveVariantModelId, e.resolveViewableDeviceIds, e.roleSpec, e.runInferenceStep, e.runtimeDevices, e.runtimeStatePolicyFor, e.sceneMonitorCapability, e.scopeInherits, e.scopeKey, e.scopesAllowAddon, e.scopesAllowDeviceCap, 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.stateVocabularyFor, e.storageCapability, e.storageEvictableCapability, e.storageMigrationCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, 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.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 };
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.86",
39
+ version: "1.2.87",
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.2.22",
48
+ version: "1.2.23",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.58",
84
+ version: "1.2.59",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-BbRv3bM2.js");
5
+ const require_dist = require("../dist-hyryByiw.js");
6
6
  const require_remote_restream = require("../remote-restream-BYbAsgUf.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_dist.__toESM(node_crypto, 1);
@@ -25236,15 +25236,33 @@ var TimelineSession = class {
25236
25236
  if (opts) await feeder.seek(epochMs, opts);
25237
25237
  else await feeder.seek(epochMs);
25238
25238
  }
25239
+ /**
25240
+ * The profile this session will actually play, given the one asked for.
25241
+ *
25242
+ * A segment covering `epochMs` wins outright. Failing that the answer is the
25243
+ * first profile the camera DEMONSTRABLY records — a gap carrying a
25244
+ * `nearestEdgeMs` means "footage exists on this tier, just not here", which is
25245
+ * exactly what the feeder's snap-to-nearest needs. Falling back to `requested`
25246
+ * when nothing has footage is only correct as a last resort: the session
25247
+ * default is `mid`, and no camera on this cluster records `mid`, so returning
25248
+ * it for a tap into a gap left the feeder with nothing to snap to and turned a
25249
+ * recoverable crack into `seek-no-footage` — the operator sees "no recording"
25250
+ * on a camera that recorded seconds either side.
25251
+ */
25239
25252
  async resolveProfile(requested, epochMs) {
25240
25253
  const locate = this.deps.locate;
25241
25254
  if (!locate) return requested;
25242
- for (const profile of profileSearchOrder(requested)) if ((await locate({
25243
- deviceId: this.deps.deviceId,
25244
- profile,
25245
- epochMs
25246
- })).kind === "segment") return profile;
25247
- return requested;
25255
+ let withFootage = null;
25256
+ for (const profile of profileSearchOrder(requested)) {
25257
+ const loc = await locate({
25258
+ deviceId: this.deps.deviceId,
25259
+ profile,
25260
+ epochMs
25261
+ });
25262
+ if (loc.kind === "segment") return profile;
25263
+ if (withFootage === null && loc.nearestEdgeMs !== null) withFootage = profile;
25264
+ }
25265
+ return withFootage ?? requested;
25248
25266
  }
25249
25267
  goLive() {
25250
25268
  this.feeder?.dispose();
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../chunk-DnnnRqeS.mjs";
2
- import { A as createHwAccelCache, At as literal, C as RingBuffer, Dt as boolean, Et as array, Ft as union, It as EventCategory, Mt as object, Nt as record, O as batteryCapability, Ot as discriminatedUnion, P as deriveBatteryPresence, Pt as string, Q as resolveEgressDecodeHwAccel, R as egressTranscodeSharingKey, St as parseProfileBrokerId, T as addonWidgetsSourceCapability, Tt as _enum, W as maskUrlCredentials, _t as isEvent, at as errMsg, b as RATE_CONTROL_TIGHT, bt as nodePin, ct as buildFfmpegArgs$1, dt as BaseAddon, ft as CAM_PROFILE_ORDER, ht as createEvent, i as BatteryStatusSchema, it as webrtcSessionCapability, jt as number, k as cameraStreamsCapability, lt as invocationFromEncodeProfile, mt as DeviceType, nt as streamBrokerCapability, ot as AUDIO_PRESETS, p as EncodeProfileSchema, pt as DeviceFeature, st as Fmp4BoxSplitter, ut as isSoftwareDecode, vt as makeProfileBrokerId, y as RATE_CONTROL_RELAXED, yt as makeSourceBrokerId, z as egressTransportFromRequest } from "../dist-XbrYiMV3.mjs";
2
+ import { A as cameraStreamsCapability, At as boolean, B as egressTransportFromRequest, Ct as nodePin, E as addonWidgetsSourceCapability, F as deriveBatteryPresence, Ft as object, G as maskUrlCredentials, It as record, Lt as string, Nt as literal, Ot as _enum, Pt as number, Rt as union, St as makeSourceBrokerId, Tt as parseProfileBrokerId, _t as DeviceType, at as streamBrokerCapability, b as RATE_CONTROL_RELAXED, bt as isEvent, ct as errMsg, dt as buildFfmpegArgs$1, et as resolveEgressDecodeHwAccel, ft as invocationFromEncodeProfile, gt as DeviceFeature, ht as CAM_PROFILE_ORDER, i as BatteryStatusSchema, j as createHwAccelCache, jt as discriminatedUnion, k as batteryCapability, kt as array, lt as AUDIO_PRESETS, mt as BaseAddon, p as EncodeProfileSchema, pt as isSoftwareDecode, st as webrtcSessionCapability, ut as Fmp4BoxSplitter, vt as createEvent, w as RingBuffer, x as RATE_CONTROL_TIGHT, xt as makeProfileBrokerId, z as egressTranscodeSharingKey, zt as EventCategory } from "../dist-C49o1k7u.mjs";
3
3
  import { n as profileForStreamId, r as parseRestreamPath } from "../remote-restream-Ci7RXNGb.mjs";
4
4
  import { createRequire } from "node:module";
5
5
  import * as crypto$1 from "node:crypto";
@@ -25231,15 +25231,33 @@ var TimelineSession = class {
25231
25231
  if (opts) await feeder.seek(epochMs, opts);
25232
25232
  else await feeder.seek(epochMs);
25233
25233
  }
25234
+ /**
25235
+ * The profile this session will actually play, given the one asked for.
25236
+ *
25237
+ * A segment covering `epochMs` wins outright. Failing that the answer is the
25238
+ * first profile the camera DEMONSTRABLY records — a gap carrying a
25239
+ * `nearestEdgeMs` means "footage exists on this tier, just not here", which is
25240
+ * exactly what the feeder's snap-to-nearest needs. Falling back to `requested`
25241
+ * when nothing has footage is only correct as a last resort: the session
25242
+ * default is `mid`, and no camera on this cluster records `mid`, so returning
25243
+ * it for a tap into a gap left the feeder with nothing to snap to and turned a
25244
+ * recoverable crack into `seek-no-footage` — the operator sees "no recording"
25245
+ * on a camera that recorded seconds either side.
25246
+ */
25234
25247
  async resolveProfile(requested, epochMs) {
25235
25248
  const locate = this.deps.locate;
25236
25249
  if (!locate) return requested;
25237
- for (const profile of profileSearchOrder(requested)) if ((await locate({
25238
- deviceId: this.deps.deviceId,
25239
- profile,
25240
- epochMs
25241
- })).kind === "segment") return profile;
25242
- return requested;
25250
+ let withFootage = null;
25251
+ for (const profile of profileSearchOrder(requested)) {
25252
+ const loc = await locate({
25253
+ deviceId: this.deps.deviceId,
25254
+ profile,
25255
+ epochMs
25256
+ });
25257
+ if (loc.kind === "segment") return profile;
25258
+ if (withFootage === null && loc.nearestEdgeMs !== null) withFootage = profile;
25259
+ }
25260
+ return withFootage ?? requested;
25243
25261
  }
25244
25262
  goLive() {
25245
25263
  this.feeder?.dispose();
@@ -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-BNOPhQ-y.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CF-c0cDZ.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-BbRv3bM2.js");
1
+ const require_dist = require("./dist-hyryByiw.js");
2
2
  //#region src/session-decode/native-lease-config.ts
3
3
  /**
4
4
  * Resolution of the native-frame hold / tile knobs for one decode worker.
@@ -1,4 +1,4 @@
1
- import { _ as NativeLeaseSettingsSchema, g as NativeLeaseAdmissionSchema, u as DEFAULT_NATIVE_LEASE_SETTINGS } from "./dist-XbrYiMV3.mjs";
1
+ import { _ as NativeLeaseSettingsSchema, g as NativeLeaseAdmissionSchema, u as DEFAULT_NATIVE_LEASE_SETTINGS } from "./dist-C49o1k7u.mjs";
2
2
  //#region src/session-decode/native-lease-config.ts
3
3
  /**
4
4
  * Resolution of the native-frame hold / tile knobs for one decode worker.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-pipeline",
3
- "version": "1.2.94",
3
+ "version": "1.2.95",
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",
@@ -70,7 +70,8 @@
70
70
  "execution": {
71
71
  "placement": "any-node",
72
72
  "heapProfile": "heavy",
73
- "group": "detection"
73
+ "group": "detection",
74
+ "maxOldSpaceMb": 0
74
75
  },
75
76
  "capabilities": [
76
77
  {
@@ -103,7 +104,8 @@
103
104
  "execution": {
104
105
  "placement": "any-node",
105
106
  "heapProfile": "heavy",
106
- "group": "detection"
107
+ "group": "detection",
108
+ "maxOldSpaceMb": 0
107
109
  },
108
110
  "protected": true,
109
111
  "icon": "assets/icon.svg",
@@ -119,7 +121,8 @@
119
121
  "execution": {
120
122
  "placement": "any-node",
121
123
  "heapProfile": "heavy",
122
- "group": "detection"
124
+ "group": "detection",
125
+ "maxOldSpaceMb": 0
123
126
  },
124
127
  "capabilities": [
125
128
  {
@@ -146,7 +149,8 @@
146
149
  "entry": "./dist/audio-analyzer/index.js",
147
150
  "execution": {
148
151
  "placement": "any-node",
149
- "heapProfile": "heavy"
152
+ "heapProfile": "heavy",
153
+ "maxOldSpaceMb": 0
150
154
  },
151
155
  "capabilities": [
152
156
  {
@@ -169,7 +173,7 @@
169
173
  "execution": {
170
174
  "placement": "any-node",
171
175
  "heapProfile": "heavy",
172
- "maxOldSpaceMb": 2048
176
+ "maxOldSpaceMb": 0
173
177
  },
174
178
  "capabilities": [
175
179
  {
@@ -198,7 +202,8 @@
198
202
  "entry": "./dist/recorder/index.js",
199
203
  "execution": {
200
204
  "placement": "any-node",
201
- "heapProfile": "heavy"
205
+ "heapProfile": "heavy",
206
+ "maxOldSpaceMb": 0
202
207
  },
203
208
  "capabilities": [
204
209
  {
@@ -36,16 +36,18 @@ Runtime protocol:
36
36
  0x02 — infer_raw payload = [1B model_idx][4B width][4B height]
37
37
  [1B fmt 0=RGB,1=BGR,2=GRAY][pixels]
38
38
 
39
- Commands: load, unload, replace, status.
39
+ Commands: load, unload, replace, status, uncache_frame, mem_stats.
40
40
  """
41
41
  from __future__ import annotations
42
42
 
43
43
  import asyncio
44
44
  import concurrent.futures
45
+ import gc
45
46
  import io
46
47
  import json
47
48
  import os
48
49
  import platform
50
+ import re
49
51
  import shutil
50
52
  import struct
51
53
  import sys
@@ -1659,6 +1661,157 @@ class ModelBackpressure:
1659
1661
  return [state.pending.popleft()]
1660
1662
  return []
1661
1663
 
1664
+ def snapshot(self) -> dict:
1665
+ """Per-model {running, pending} — queue depth for the mem_stats line.
1666
+
1667
+ A leak shows RSS climbing while these stay flat; a genuinely growing
1668
+ working set shows them climbing together. Pure read, no mutation.
1669
+ """
1670
+ return {
1671
+ str(idx): {"running": st.running, "pending": len(st.pending)}
1672
+ for idx, st in self._states.items()
1673
+ }
1674
+
1675
+
1676
+ # ---------------------------------------------------------------------------
1677
+ # Memory diagnostics (mem_stats command)
1678
+ #
1679
+ # The pools leak over hours and get OOM-killed (2026-08-18: anon-rss 3.8 GB /
1680
+ # 8.8 GB, twice in six hours) — the Node-side watchdog samples RSS from
1681
+ # /proc/<pid>/status, and asks THIS process once per sweep for the internals
1682
+ # /proc cannot see: what the pool has been asked to do (request counters),
1683
+ # what it is holding (caches, queue depths) and what the allocator is doing
1684
+ # (arena count — the lead on total-vm 47.5 GB vs 11.3 GB at similar RSS).
1685
+ # Everything here is a cheap O(1)-ish read; nothing walks the heap.
1686
+ # ---------------------------------------------------------------------------
1687
+
1688
+
1689
+ @dataclass
1690
+ class PoolCounters:
1691
+ """Requests served since spawn, by opcode. Monotonic, wraps never."""
1692
+
1693
+ infer_jpeg: int = 0
1694
+ infer_raw: int = 0
1695
+ infer_batch: int = 0
1696
+ infer_cached: int = 0
1697
+ commands: int = 0
1698
+ frames_cached: int = 0
1699
+
1700
+ def as_dict(self) -> dict:
1701
+ return {
1702
+ "inferJpeg": self.infer_jpeg,
1703
+ "inferRaw": self.infer_raw,
1704
+ "inferBatch": self.infer_batch,
1705
+ "inferCached": self.infer_cached,
1706
+ "commands": self.commands,
1707
+ "framesCached": self.frames_cached,
1708
+ "totalInference": (
1709
+ self.infer_jpeg + self.infer_raw + self.infer_batch + self.infer_cached
1710
+ ),
1711
+ }
1712
+
1713
+
1714
+ def _read_self_memory() -> dict:
1715
+ """RSS / VmSize / peak-RSS / swap / thread count for THIS process.
1716
+
1717
+ /proc on Linux (one 4 KB read); getrusage maxrss everywhere as backstop.
1718
+ Partial results are fine — an empty dict means the read failed entirely.
1719
+ """
1720
+ out: dict = {}
1721
+ try:
1722
+ import resource
1723
+
1724
+ ru = resource.getrusage(resource.RUSAGE_SELF)
1725
+ # ru_maxrss is kilobytes on Linux, BYTES on macOS.
1726
+ out["maxRssKb"] = (
1727
+ int(ru.ru_maxrss // 1024) if sys.platform == "darwin" else int(ru.ru_maxrss)
1728
+ )
1729
+ except Exception:
1730
+ pass
1731
+ try:
1732
+ with open("/proc/self/status", "r") as fh:
1733
+ text = fh.read()
1734
+ for label, key in (
1735
+ ("VmRSS", "rssKb"),
1736
+ ("VmSize", "vmKb"),
1737
+ ("VmHWM", "hwmKb"),
1738
+ ("VmSwap", "swapKb"),
1739
+ ):
1740
+ match = re.search(rf"^{label}:\s+(\d+)\s*kB", text, re.M)
1741
+ if match:
1742
+ out[key] = int(match.group(1))
1743
+ match = re.search(r"^Threads:\s+(\d+)", text, re.M)
1744
+ if match:
1745
+ out["threads"] = int(match.group(1))
1746
+ except Exception:
1747
+ pass
1748
+ return out
1749
+
1750
+
1751
+ def _malloc_arena_count() -> Optional[int]:
1752
+ """Count glibc malloc arenas via malloc_info(3) into an in-memory stream.
1753
+
1754
+ Each arena reserves up to 64 MB of VIRTUAL space — the count is the direct
1755
+ test of the "total-vm 47.5 GB is allocator arenas" hypothesis from the
1756
+ 2026-08-18 OOM audit. glibc/Linux only; None elsewhere or on any failure
1757
+ (never raises — this rides the mem_stats reply and must not kill it).
1758
+ """
1759
+ if not sys.platform.startswith("linux"):
1760
+ return None
1761
+ try:
1762
+ import ctypes
1763
+
1764
+ libc = ctypes.CDLL(None, use_errno=True)
1765
+ libc.open_memstream.restype = ctypes.c_void_p
1766
+ libc.open_memstream.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
1767
+ libc.malloc_info.argtypes = [ctypes.c_int, ctypes.c_void_p]
1768
+ libc.fclose.argtypes = [ctypes.c_void_p]
1769
+ libc.free.argtypes = [ctypes.c_void_p]
1770
+
1771
+ buf = ctypes.c_char_p()
1772
+ size = ctypes.c_size_t()
1773
+ stream = libc.open_memstream(ctypes.byref(buf), ctypes.byref(size))
1774
+ if not stream:
1775
+ return None
1776
+ rc = libc.malloc_info(0, stream)
1777
+ libc.fclose(stream) # flushes and finalises buf/size
1778
+ try:
1779
+ if rc != 0 or not buf.value:
1780
+ return None
1781
+ xml = ctypes.string_at(buf, size.value)
1782
+ return xml.count(b"<heap nr=")
1783
+ finally:
1784
+ libc.free(buf)
1785
+ except Exception:
1786
+ return None
1787
+
1788
+
1789
+ def _mem_stats_payload(
1790
+ models: list,
1791
+ counters: PoolCounters,
1792
+ backpressure: "ModelBackpressure",
1793
+ frame_cache_len: int,
1794
+ preprocess_cache_len: int,
1795
+ bench_cache_len: int,
1796
+ uptime_sec: int,
1797
+ ) -> dict:
1798
+ """Assemble the mem_stats reply. Pure given its inputs except the two
1799
+ process-wide reads (memory + arenas), so the shape is unit-testable."""
1800
+ return {
1801
+ "cmd": "mem_stats",
1802
+ "status": "ok",
1803
+ "memory": _read_self_memory(),
1804
+ "mallocArenas": _malloc_arena_count(),
1805
+ "gcCounts": list(gc.get_count()),
1806
+ "counters": counters.as_dict(),
1807
+ "backpressure": backpressure.snapshot(),
1808
+ "modelsLoaded": sum(1 for s in models if getattr(s, "loaded", False)),
1809
+ "frameCacheEntries": frame_cache_len,
1810
+ "preprocessCacheEntries": preprocess_cache_len,
1811
+ "benchPreprocessCacheEntries": bench_cache_len,
1812
+ "uptimeSec": uptime_sec,
1813
+ }
1814
+
1662
1815
 
1663
1816
  # ---------------------------------------------------------------------------
1664
1817
  # IPC — binary framing with request_id multiplexing
@@ -1854,6 +2007,11 @@ async def _run() -> None:
1854
2007
  max_running=dispatcher.workers,
1855
2008
  max_pending=MAX_PENDING_PER_MODEL,
1856
2009
  )
2010
+ # Served-request counters + spawn time for the mem_stats command — the
2011
+ # denominator that lets the watchdog tell "RSS grew because it worked"
2012
+ # from "RSS grew per unit of work" (a leak).
2013
+ counters = PoolCounters()
2014
+ pool_started_monotonic = time.monotonic()
1857
2015
  startup_ms = round((time.perf_counter() - t_start) * 1000)
1858
2016
  loaded_count = sum(1 for s in models if s.loaded)
1859
2017
  sys.stderr.write(
@@ -2063,10 +2221,22 @@ async def _run() -> None:
2063
2221
  return
2064
2222
 
2065
2223
  if msg_type == MSG_COMMAND:
2224
+ counters.commands += 1
2066
2225
  try:
2067
2226
  cmd = json.loads(payload)
2068
- # Handle uncache_frame inline (needs access to frame_cache)
2069
- if cmd.get("cmd") == "uncache_frame":
2227
+ # Handled inline (needs the loop's own state: caches,
2228
+ # backpressure, counters) _handle_command only sees models.
2229
+ if cmd.get("cmd") == "mem_stats":
2230
+ response = _mem_stats_payload(
2231
+ models,
2232
+ counters,
2233
+ backpressure,
2234
+ len(frame_cache),
2235
+ len(_preprocess_cache),
2236
+ len(_bench_preprocess_cache),
2237
+ round(time.monotonic() - pool_started_monotonic),
2238
+ )
2239
+ elif cmd.get("cmd") == "uncache_frame":
2070
2240
  fid = cmd.get("frameId", -1)
2071
2241
  removed_img = frame_cache.pop(fid, None)
2072
2242
  # Purge preprocessed tensor caches for this frame
@@ -2085,6 +2255,7 @@ async def _run() -> None:
2085
2255
  await writer.send(req_id, response)
2086
2256
 
2087
2257
  elif msg_type == MSG_INFER_JPEG:
2258
+ counters.infer_jpeg += 1
2088
2259
  if len(payload) < 1:
2089
2260
  await writer.send(req_id, {"error": "empty infer_jpeg payload"})
2090
2261
  continue
@@ -2098,6 +2269,7 @@ async def _run() -> None:
2098
2269
  _dispatch_inference(req_id, img, model_idx)
2099
2270
 
2100
2271
  elif msg_type == MSG_INFER_RAW:
2272
+ counters.infer_raw += 1
2101
2273
  if len(payload) < 10:
2102
2274
  await writer.send(req_id, {"error": "truncated infer_raw header"})
2103
2275
  continue
@@ -2121,6 +2293,7 @@ async def _run() -> None:
2121
2293
  # (first miss) and every later inference is a pure-inference cache
2122
2294
  # hit. Historically the batch path shipped no frame_id and re-ran the
2123
2295
  # full preprocess on every inference (the ~78fps ceiling).
2296
+ counters.infer_batch += 1
2124
2297
  if len(payload) < 6:
2125
2298
  await writer.send(req_id, {"error": "truncated infer_batch header"})
2126
2299
  continue
@@ -2158,6 +2331,7 @@ async def _run() -> None:
2158
2331
  asyncio.create_task(handle_batch(req_id, model_idx, items))
2159
2332
 
2160
2333
  elif msg_type == MSG_CACHE_FRAME:
2334
+ counters.frames_cached += 1
2161
2335
  # Wire: [4B frame_id][4B width][4B height][1B fmt][raw bytes]
2162
2336
  if len(payload) < 13:
2163
2337
  await writer.send(req_id, {"error": "truncated cache_frame header"})
@@ -2179,6 +2353,7 @@ async def _run() -> None:
2179
2353
  # Routes through handle_inference → window accumulator for
2180
2354
  # batching. The preprocess runs each time (~4ms) but batch=4
2181
2355
  # predict saves much more (8ms vs 4×9ms=36ms).
2356
+ counters.infer_cached += 1
2182
2357
  if len(payload) < 5:
2183
2358
  await writer.send(req_id, {"error": "truncated infer_cached header"})
2184
2359
  continue
@@ -17,7 +17,13 @@ import unittest
17
17
  # ---------------------------------------------------------------------------
18
18
 
19
19
  if "numpy" not in sys.modules:
20
- sys.modules["numpy"] = types.ModuleType("numpy")
20
+ # The stub must satisfy inference_pool's MODULE-LEVEL numpy usage
21
+ # (_IMAGENET_MEAN/_IMAGENET_STD = np.array([...], dtype=np.float32));
22
+ # a bare ModuleType broke this harness when those constants were added.
23
+ _np = types.ModuleType("numpy")
24
+ _np.float32 = float
25
+ _np.array = lambda values, dtype=None: values
26
+ sys.modules["numpy"] = _np
21
27
 
22
28
  if "PIL" not in sys.modules:
23
29
  _pil = types.ModuleType("PIL")