@camstack/addon-post-analysis 1.2.662 → 1.2.663
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/{clip-model-registry-ELaSS9jq.mjs → clip-model-registry-CwXJyrLg.mjs} +34002 -33152
- package/dist/{clip-model-registry-C3N1NpST.js → clip-model-registry-Cz8LWYwU.js} +34002 -33152
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BvOlyiL9.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-jPBj20ez.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Be6bZvOS.mjs +26 -0
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B5Bw-VHt.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-BjZchMMh.mjs → hostInit-DOdK6KJ5.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +215 -27
- package/dist/pipeline-analytics/index.mjs +215 -27
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D4zkNcgf.mjs +0 -26
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-vaatUWY6.mjs +0 -26
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as MAX_TRACK_RELATIONS, $i as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, $n as bundledCamstack, $r as normalizeNcAction, $t as NcTemplateVarDescriptorSchema, A as DETECTION_MACRO_CLASSES, Aa as strictObject, Ai as sceneMonitorCapability, An as TrackPuritySchema, Ar as isAlertEpisodeOpen, At as NcAlarmConfigSchema, B as EXPORT_DENSE_MAX_RANGES, Bi as sunTimes, Bn as alertEpisodeKind, Br as isLabelSupplyStepId, Bt as NcRuleSchema, C as COCO_TO_MACRO, Ca as discriminatedUnion, Ci as retrainRevisionConflictMessage, Cn as SetTrackRelationInputSchema, Cr as eventKindLabel, Ct as NC_GROUPING_MIN_SEC, D as DEFAULT_DETAIL_CROP_CONVENTION, Da as object, Di as ruleDeviceCompatCapQueries, Dn as TimelapseRulePatchSchema, Dr as gifDeriveSpeed, Dt as NC_SYSTEM_EVENT_KIND_GROUP_SPECS, E as CoverStateSchema, Ea as number, Ei as ruleBelongsToAlarm$1, En as TimelapseRuleInputSchema, Er as failureContributionCapability, Et as NC_STATE_SUMMARY_SECTION_IDS, F as EMBEDDING_REQUIREMENTS_FAILED, Fa as unknown, Fi as storageOccupancyCapability, Fn as activateAlarmProfile, Fr as isDetectionMacroClass, Ft as NcConditionDescriptorSchema, G as LabelAttributionSchema, Gi as systemEventSummaryScheduleOf, Gn as applySecureOnArmEdit, Gr as isSystemDelivery, Gt as NcSnoozeInputSchema, H as FULL_IMAGE_BBOX, Hi as systemEventDeliveryProblems, Hn as applyBlockingEdit, Hr as isRetiredClearKey, Ht as NcRuleUpdateInputSchema, I as EMBEDDING_REQUIREMENTS_UNAVAILABLE, Ia as DeviceType, Ii as subKindsOf, In as addonWidgetsSourceCapability, Ir as isDrawableSubjectPath, It as NcConditionsSchema, J as LockStateSchema, Ji as templateVarsFor, Jn as audioMetricsCapability, Jr as kebabToCamel, Jt as NcStateSummarySectionIdSchema, K as ListTrackRelationsInputSchema, Ki as systemEventSummarySplitOf, Kn as armRemovalReconcile, Kr as isSystemEventSummaryRule, Kt as NcSnoozeSchema, L as EVENT_DENSITY_BATCH_MAX, La as errMsg, Li as subjectPathSampleFromBox, Ln as alarmDeviceSecureOnArm, Lr as isEventKindLabelKey, Lt as NcRuleActionSchema, M as DeclaredDevices, Ma as templateLiteral, Mi as sensorRaisedOf, Mn as TrackRelationSchema, Mr as isAppLinkBase, Mt as NcAlarmSensorsInputSchema, N as DetectionSourceSchema, Na as tuple, Ni as servedTemplateVars, Nn as TrackSideSchema, Nr as isAudioClassName, Nt as NcAlarmSensorsSchema, O as DEFAULT_EVENT_COLOR, Oa as partialRecord, Oi as ruleGroupingApplies, On as TimelapseRuleSchema, Or as gifFromMp4Args, Ot as NC_TAXONOMY, P as EMBEDDING_MODEL_FAILED, Pa as union, Pi as startMoverUnderClearance, Pn as TrackSourceSchema, Pr as isDefaultAlarmProfileId, Pt as NcAlarmSettingsPatchSchema, Q as MAX_TRACK_PURITIES, Qi as zoneAnalyticsCapability, Qn as buildViewerLink, Qr as ncMediaPolicyError, Qt as NcTemplatePreviewSchema, R as EVENT_KIND_BY_CAP, Ra as EventCategory, Ri as subjectPathSvgPoints, Rn as alarmPanelCapability, Rr as isEventOwnerType, Rt as NcRuleInputSchema, S as BucketAccumulator, Sa as boolean, Sn as SetTrackPurityResultSchema, Sr as ensureAlarmProfiles, St as NC_GROUPING_MAX_SEC, T as ClearTrackRelationResultSchema, Ta as looseObject, Ti as ruleAutoTriggersAlarm, Tn as TRACK_RELATIONS_DEFAULT_LIMIT, Tr as faceGalleryCapability, Tt as NC_SNOOZE_MAX_MINUTES, U as FailureCounters, Ui as systemEventFamilyProblems, Un as applyModeDelaysEdits, Ur as isRootSuppliableStepId, Ut as NcScheduleSchema, V as FIRST_LEVEL_MACRO_CLASSES, Vi as syncActiveAlarmProfileSettings, Vn as alertEpisodePayload, Vr as isMediaOwnerType, Vt as NcRuleTargetSchema, W as LABEL_SUPPLY_MACRO, Wi as systemEventFilterApplies, Wn as applyNonBlockingEdit, Wr as isScheduleActive, Wt as NcSharedSequenceSchema, X as MAX_BIRTH_DECISION_RECORDS, Xi as viewerLinkBaseOf, Xn as buildEventKindDescriptor, Xr as mayWriteToLocation, Xt as NcTaxonomySchema, Y as MAX_ARCHIVED_DEBUG_NOTES, Yi as vectorDimFromBase64, Yn as audioModeOf, Yr as linkedStepOf, Yt as NcSystemEventKindSchema, Z as MAX_BIRTH_LATENCY_PROXY_MS, Zi as withSystemEventClasses, Zn as buildSubjectPath, Zr as memoizePinnedFfmpeg, Zt as NcTemplatePreviewInputSchema, _ as AlarmArmModeSchema, _i as resolveDeliveryParams, _n as SCENE_DEFAULT_UNCOVERED_POLICY, _t as NC_CONFIRM_DEFAULT_TIMEOUT_MS, a as CLIP_EMBEDDING_STEP_ID, aa as CamProfileSchema, ai as paletteResultSchema, an as RECORDING_SOURCE_CAMSTACK_ADDON, ar as coreBlockIdFromAddonId, at as NC_ALARM_DELAY_FIELDS, b as BaseDevice, ba as _enum, bi as resolveModeNotifyPolicy, bn as SceneMonitorSchema, bt as NC_DEFAULT_SNOOZE_MINUTES, c as readClusterModelPinStrict, ca as RECORD_QUERY_MAX, ci as pickFaceRescoreIntervalMinutes, cn as RetrainOriginSchema, cr as deleteAlarmProfile, ct as NC_ALARM_SYSTEM_EVENT_KINDS, d as APPEARANCE_BIN_COUNT, da as defineAddonMigrations, di as projectSubjectPath, dn as SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, dr as deriveRecordingMode, dt as NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, ea as canonicalHash, ei as normalizeNcCapTarget, en as OPS_LOG_DEFAULT_LIMIT, er as calendarEventLocalSpan, et as MOTION_CLOSE_AFTER_MS, f as APPEARANCE_BLOCKS, fa as defineCustomActions, fi as readDeviceStateFrom, fn as SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, fr as describeSystemEventDeliveryProblem, ft as NC_CLIP_POST_ROLL_DEFAULT_SEC, g as ActionTargetResolver, ga as nodePin, gi as resolveClipSearchMinScore, gn as SCENE_DEFAULT_QUIET_SECONDS, gt as NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, h as AUDIO_MACRO_LABELS, ha as isDeviceScopedCap, hi as renameAlarmProfile, hn as SCENE_DEFAULT_OBSERVATION_SPACING_SEC, hr as deviceRemovalHookCapability, ht as NC_CONDITION_CATALOG, ia as CAP_ADVANCE_FIELDS, ii as paintHex, in as RECORDING_EXPORT_MAX_READ_BYTES, ir as consumableLowPercentOf, it as NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, j as DETECTION_PIPELINE_CAP_NAME, ja as string, ji as secureActuationFor, jn as TrackRelationKindSchema, jr as isAlertEpisodeSeverity, jt as NcAlarmPostTriggeredActionSchema, k as DEFAULT_TIMELAPSE_PREVIEW_TEXT, ka as record, ki as ruleKindOf, kn as TrackPlacementSchema, kr as isAlarmControllableCap, kt as NC_TEMPLATE_VARS, l as resolveClusterModelPin, la as createEvent, li as pipelineAnalyticsCapability, ln as RetrainStatusSchema, lr as deriveDetailCropRect, lt as NC_ALARM_TRIGGERED_MAX_SEC, m as ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, ma as hydrateSchema, mi as readTimelapseGeneratedAt, mn as SCENE_DEFAULT_CHECK_INTERVAL_SEC, mr as deviceAttentionKind, mt as NC_CLIP_RETENTION_MAX_SEC, na as isSourceCap, ni as notificationRulesCapability, nn as PackageLlmVerdictSchema, nr as cloneAlarmSettings, nt as MotionTriggeredBySchema, o as CLUSTER_MODEL_OWNER_ADDON_ID, oa as InvalidRecordError, oi as parseAlertEpisodePayload, on as RebuildObjectEmbeddingsRefusalSchema, or as cosineSimilarity$1, ot as NC_ALARM_DELAY_MAX_SEC, p as APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, pa as defineRecordKinds, pi as readMotionTriggeredBy, pn as SCENE_DEFAULT_ANCHOR_THRESHOLD, pr as describeSystemEventFamilyProblem, pt as NC_CLIP_PRE_ROLL_DEFAULT_SEC, q as ListTrackRelationsResultSchema, qi as templateCarriesSummary, qn as assertTimelapseCadences, qr as isVectorIndexDimConflict, qt as NcSnoozeSuppressedSchema, ra as BaseAddon, ri as occupancyScope, rr as consumableFormOf, rt as NC_ALARM_DEFAULT_PROFILE_ID, s as FACE_EMBEDDING_STEP_ID, sa as RECORD_MAX_DATA_BYTES, sn as RetrainDismissedSchema, sr as createAlarmProfile, st as NC_ALARM_NOTIFY_FIELDS, t as BUILTIN_CLIP_MODELS, ta as evaluateSensorEdge, ti as normalizeNcMediaPolicy, tn as OpsLogEntrySchema, tr as classifyRetrainReview, tt as MediaFileKindEnum, u as ACTION_TARGET_INVALIDATION_EVENTS, ua as customAction, ui as plateGalleryCapability, un as RetrainVerdictSubjectSchema, ur as derivePostTriggeredAction, ut as NC_AUDIO_CONFIRM_HITS_DEFAULT, v as ArchivedDebugNoteSchema, va as sleep$1, vi as resolveLocationMode, vn as SCENE_DIVERGED, vr as embeddingRefusalOf, vt as NC_CONSUMABLE_LOW_PERCENT_DEFAULT, w as ClearTrackRelationInputSchema, wa as literal, wi as rootSupplyServes, wn as TIMELAPSE_DENSE_FLOOR_SEC, wr as evictionPolicyOfLocation, wt as NC_SENSOR_TRANSITION_KINDS, x as BirthDecisionRecordSchema, xa as array, xi as resolveNcMediaImage, xn as SetTrackPurityInputSchema, xr as encodeVectorBase64, xt as NC_GROUPING_DEFAULT_SEC, y as BIRTH_DECISION_DEFAULT_LIMIT, ya as ZodObject, yi as resolveModeDelays, yn as SCENE_RESET_RECAPTURES, yt as NC_CONSUMABLE_SYSTEM_EVENT_KINDS, z as EVENT_OWNER_TYPES, zi as summarizeReview, zn as alertEpisodeId, zr as isKnownTemplateVar, zt as NcRulePatchSchema } from "../clip-model-registry-
|
|
1
|
+
import { $ as MAX_TRACK_RELATIONS, $i as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, $n as bundledCamstack, $r as normalizeNcAction, $t as NcTemplateVarDescriptorSchema, A as DETECTION_MACRO_CLASSES, Aa as strictObject, Ai as sceneMonitorCapability, An as TrackPuritySchema, Ar as isAlertEpisodeOpen, At as NcAlarmConfigSchema, B as EXPORT_DENSE_MAX_RANGES, Bi as sunTimes, Bn as alertEpisodeKind, Br as isLabelSupplyStepId, Bt as NcRuleSchema, C as COCO_TO_MACRO, Ca as discriminatedUnion, Ci as retrainRevisionConflictMessage, Cn as SetTrackRelationInputSchema, Cr as eventKindLabel, Ct as NC_GROUPING_MIN_SEC, D as DEFAULT_DETAIL_CROP_CONVENTION, Da as object, Di as ruleDeviceCompatCapQueries, Dn as TimelapseRulePatchSchema, Dr as gifDeriveSpeed, Dt as NC_SYSTEM_EVENT_KIND_GROUP_SPECS, E as CoverStateSchema, Ea as number, Ei as ruleBelongsToAlarm$1, En as TimelapseRuleInputSchema, Er as failureContributionCapability, Et as NC_STATE_SUMMARY_SECTION_IDS, F as EMBEDDING_REQUIREMENTS_FAILED, Fa as unknown, Fi as storageOccupancyCapability, Fn as activateAlarmProfile, Fr as isDetectionMacroClass, Ft as NcConditionDescriptorSchema, G as LabelAttributionSchema, Gi as systemEventSummaryScheduleOf, Gn as applySecureOnArmEdit, Gr as isSystemDelivery, Gt as NcSnoozeInputSchema, H as FULL_IMAGE_BBOX, Hi as systemEventDeliveryProblems, Hn as applyBlockingEdit, Hr as isRetiredClearKey, Ht as NcRuleUpdateInputSchema, I as EMBEDDING_REQUIREMENTS_UNAVAILABLE, Ia as DeviceType, Ii as subKindsOf, In as addonWidgetsSourceCapability, Ir as isDrawableSubjectPath, It as NcConditionsSchema, J as LockStateSchema, Ji as templateVarsFor, Jn as audioMetricsCapability, Jr as kebabToCamel, Jt as NcStateSummarySectionIdSchema, K as ListTrackRelationsInputSchema, Ki as systemEventSummarySplitOf, Kn as armRemovalReconcile, Kr as isSystemEventSummaryRule, Kt as NcSnoozeSchema, L as EVENT_DENSITY_BATCH_MAX, La as errMsg, Li as subjectPathSampleFromBox, Ln as alarmDeviceSecureOnArm, Lr as isEventKindLabelKey, Lt as NcRuleActionSchema, M as DeclaredDevices, Ma as templateLiteral, Mi as sensorRaisedOf, Mn as TrackRelationSchema, Mr as isAppLinkBase, Mt as NcAlarmSensorsInputSchema, N as DetectionSourceSchema, Na as tuple, Ni as servedTemplateVars, Nn as TrackSideSchema, Nr as isAudioClassName, Nt as NcAlarmSensorsSchema, O as DEFAULT_EVENT_COLOR, Oa as partialRecord, Oi as ruleGroupingApplies, On as TimelapseRuleSchema, Or as gifFromMp4Args, Ot as NC_TAXONOMY, P as EMBEDDING_MODEL_FAILED, Pa as union, Pi as startMoverUnderClearance, Pn as TrackSourceSchema, Pr as isDefaultAlarmProfileId, Pt as NcAlarmSettingsPatchSchema, Q as MAX_TRACK_PURITIES, Qi as zoneAnalyticsCapability, Qn as buildViewerLink, Qr as ncMediaPolicyError, Qt as NcTemplatePreviewSchema, R as EVENT_KIND_BY_CAP, Ra as EventCategory, Ri as subjectPathSvgPoints, Rn as alarmPanelCapability, Rr as isEventOwnerType, Rt as NcRuleInputSchema, S as BucketAccumulator, Sa as boolean, Sn as SetTrackPurityResultSchema, Sr as ensureAlarmProfiles, St as NC_GROUPING_MAX_SEC, T as ClearTrackRelationResultSchema, Ta as looseObject, Ti as ruleAutoTriggersAlarm, Tn as TRACK_RELATIONS_DEFAULT_LIMIT, Tr as faceGalleryCapability, Tt as NC_SNOOZE_MAX_MINUTES, U as FailureCounters, Ui as systemEventFamilyProblems, Un as applyModeDelaysEdits, Ur as isRootSuppliableStepId, Ut as NcScheduleSchema, V as FIRST_LEVEL_MACRO_CLASSES, Vi as syncActiveAlarmProfileSettings, Vn as alertEpisodePayload, Vr as isMediaOwnerType, Vt as NcRuleTargetSchema, W as LABEL_SUPPLY_MACRO, Wi as systemEventFilterApplies, Wn as applyNonBlockingEdit, Wr as isScheduleActive, Wt as NcSharedSequenceSchema, X as MAX_BIRTH_DECISION_RECORDS, Xi as viewerLinkBaseOf, Xn as buildEventKindDescriptor, Xr as mayWriteToLocation, Xt as NcTaxonomySchema, Y as MAX_ARCHIVED_DEBUG_NOTES, Yi as vectorDimFromBase64, Yn as audioModeOf, Yr as linkedStepOf, Yt as NcSystemEventKindSchema, Z as MAX_BIRTH_LATENCY_PROXY_MS, Zi as withSystemEventClasses, Zn as buildSubjectPath, Zr as memoizePinnedFfmpeg, Zt as NcTemplatePreviewInputSchema, _ as AlarmArmModeSchema, _i as resolveDeliveryParams, _n as SCENE_DEFAULT_UNCOVERED_POLICY, _t as NC_CONFIRM_DEFAULT_TIMEOUT_MS, a as CLIP_EMBEDDING_STEP_ID, aa as CamProfileSchema, ai as paletteResultSchema, an as RECORDING_SOURCE_CAMSTACK_ADDON, ar as coreBlockIdFromAddonId, at as NC_ALARM_DELAY_FIELDS, b as BaseDevice, ba as _enum, bi as resolveModeNotifyPolicy, bn as SceneMonitorSchema, bt as NC_DEFAULT_SNOOZE_MINUTES, c as readClusterModelPinStrict, ca as RECORD_QUERY_MAX, ci as pickFaceRescoreIntervalMinutes, cn as RetrainOriginSchema, cr as deleteAlarmProfile, ct as NC_ALARM_SYSTEM_EVENT_KINDS, d as APPEARANCE_BIN_COUNT, da as defineAddonMigrations, di as projectSubjectPath, dn as SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, dr as deriveRecordingMode, dt as NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, ea as canonicalHash, ei as normalizeNcCapTarget, en as OPS_LOG_DEFAULT_LIMIT, er as calendarEventLocalSpan, et as MOTION_CLOSE_AFTER_MS, f as APPEARANCE_BLOCKS, fa as defineCustomActions, fi as readDeviceStateFrom, fn as SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, fr as describeSystemEventDeliveryProblem, ft as NC_CLIP_POST_ROLL_DEFAULT_SEC, g as ActionTargetResolver, ga as nodePin, gi as resolveClipSearchMinScore, gn as SCENE_DEFAULT_QUIET_SECONDS, gt as NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, h as AUDIO_MACRO_LABELS, ha as isDeviceScopedCap, hi as renameAlarmProfile, hn as SCENE_DEFAULT_OBSERVATION_SPACING_SEC, hr as deviceRemovalHookCapability, ht as NC_CONDITION_CATALOG, ia as CAP_ADVANCE_FIELDS, ii as paintHex, in as RECORDING_EXPORT_MAX_READ_BYTES, ir as consumableLowPercentOf, it as NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, j as DETECTION_PIPELINE_CAP_NAME, ja as string, ji as secureActuationFor, jn as TrackRelationKindSchema, jr as isAlertEpisodeSeverity, jt as NcAlarmPostTriggeredActionSchema, k as DEFAULT_TIMELAPSE_PREVIEW_TEXT, ka as record, ki as ruleKindOf, kn as TrackPlacementSchema, kr as isAlarmControllableCap, kt as NC_TEMPLATE_VARS, l as resolveClusterModelPin, la as createEvent, li as pipelineAnalyticsCapability, ln as RetrainStatusSchema, lr as deriveDetailCropRect, lt as NC_ALARM_TRIGGERED_MAX_SEC, m as ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, ma as hydrateSchema, mi as readTimelapseGeneratedAt, mn as SCENE_DEFAULT_CHECK_INTERVAL_SEC, mr as deviceAttentionKind, mt as NC_CLIP_RETENTION_MAX_SEC, na as isSourceCap, ni as notificationRulesCapability, nn as PackageLlmVerdictSchema, nr as cloneAlarmSettings, nt as MotionTriggeredBySchema, o as CLUSTER_MODEL_OWNER_ADDON_ID, oa as InvalidRecordError, oi as parseAlertEpisodePayload, on as RebuildObjectEmbeddingsRefusalSchema, or as cosineSimilarity$1, ot as NC_ALARM_DELAY_MAX_SEC, p as APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, pa as defineRecordKinds, pi as readMotionTriggeredBy, pn as SCENE_DEFAULT_ANCHOR_THRESHOLD, pr as describeSystemEventFamilyProblem, pt as NC_CLIP_PRE_ROLL_DEFAULT_SEC, q as ListTrackRelationsResultSchema, qi as templateCarriesSummary, qn as assertTimelapseCadences, qr as isVectorIndexDimConflict, qt as NcSnoozeSuppressedSchema, ra as BaseAddon, ri as occupancyScope, rr as consumableFormOf, rt as NC_ALARM_DEFAULT_PROFILE_ID, s as FACE_EMBEDDING_STEP_ID, sa as RECORD_MAX_DATA_BYTES, sn as RetrainDismissedSchema, sr as createAlarmProfile, st as NC_ALARM_NOTIFY_FIELDS, t as BUILTIN_CLIP_MODELS, ta as evaluateSensorEdge, ti as normalizeNcMediaPolicy, tn as OpsLogEntrySchema, tr as classifyRetrainReview, tt as MediaFileKindEnum, u as ACTION_TARGET_INVALIDATION_EVENTS, ua as customAction, ui as plateGalleryCapability, un as RetrainVerdictSubjectSchema, ur as derivePostTriggeredAction, ut as NC_AUDIO_CONFIRM_HITS_DEFAULT, v as ArchivedDebugNoteSchema, va as sleep$1, vi as resolveLocationMode, vn as SCENE_DIVERGED, vr as embeddingRefusalOf, vt as NC_CONSUMABLE_LOW_PERCENT_DEFAULT, w as ClearTrackRelationInputSchema, wa as literal, wi as rootSupplyServes, wn as TIMELAPSE_DENSE_FLOOR_SEC, wr as evictionPolicyOfLocation, wt as NC_SENSOR_TRANSITION_KINDS, x as BirthDecisionRecordSchema, xa as array, xi as resolveNcMediaImage, xn as SetTrackPurityInputSchema, xr as encodeVectorBase64, xt as NC_GROUPING_DEFAULT_SEC, y as BIRTH_DECISION_DEFAULT_LIMIT, ya as ZodObject, yi as resolveModeDelays, yn as SCENE_RESET_RECAPTURES, yt as NC_CONSUMABLE_SYSTEM_EVENT_KINDS, z as EVENT_OWNER_TYPES, zi as summarizeReview, zn as alertEpisodeId, zr as isKnownTemplateVar, zt as NcRulePatchSchema } from "../clip-model-registry-CwXJyrLg.mjs";
|
|
2
2
|
import { t as __exportAll } from "../embedding-encoder/index.mjs";
|
|
3
3
|
import * as fs$1 from "node:fs";
|
|
4
4
|
import { createWriteStream, promises } from "node:fs";
|
|
@@ -70695,6 +70695,7 @@ Object.freeze({
|
|
|
70695
70695
|
"pageSize": 50
|
|
70696
70696
|
} },
|
|
70697
70697
|
"device-runs": { "listRuns": { "limit": 50 } },
|
|
70698
|
+
"fan-presets": { "capturePreset": { "steps": [] } },
|
|
70698
70699
|
"llm": { "upsertProfile": { "profile": { "__nested__": {
|
|
70699
70700
|
"timeoutMs": 6e4,
|
|
70700
70701
|
"connectTimeoutMs": 1e4,
|
|
@@ -70935,6 +70936,10 @@ Object.freeze({
|
|
|
70935
70936
|
"speed": 2
|
|
70936
70937
|
}
|
|
70937
70938
|
},
|
|
70939
|
+
"system": { "debugWatch": {
|
|
70940
|
+
"channels": [],
|
|
70941
|
+
"deviceIds": []
|
|
70942
|
+
} },
|
|
70938
70943
|
"terminal-session": { "pullOutput": { "waitMs": 0 } },
|
|
70939
70944
|
"training": {
|
|
70940
70945
|
"planJob": { "selection": { "__nested__": { "workState": "complete" } } },
|
|
@@ -70981,6 +70986,7 @@ Object.freeze({
|
|
|
70981
70986
|
],
|
|
70982
70987
|
"device-removal-hook": ["listDeviceData"],
|
|
70983
70988
|
"failure-contribution": ["list"],
|
|
70989
|
+
"integration-instances": ["listInstances"],
|
|
70984
70990
|
"llm": [
|
|
70985
70991
|
"getDefaults",
|
|
70986
70992
|
"getUsage",
|
|
@@ -71022,6 +71028,7 @@ Object.freeze({
|
|
|
71022
71028
|
"listSupportedEntityKinds",
|
|
71023
71029
|
"unexposeEntity"
|
|
71024
71030
|
],
|
|
71031
|
+
"integration-instances": ["testInstance"],
|
|
71025
71032
|
"log-destination": [
|
|
71026
71033
|
"cancelRead",
|
|
71027
71034
|
"describeRead",
|
|
@@ -85120,6 +85127,9 @@ async function renderMosaic(request, logger) {
|
|
|
85120
85127
|
* one composition are decisions about the set, and none of them belongs in a
|
|
85121
85128
|
* shelf that photographs one camera for an absence.
|
|
85122
85129
|
*
|
|
85130
|
+
* A SLEEPING battery camera is woken by one forced capture when the rule leaves
|
|
85131
|
+
* it allowed (D998) — bounded, once per gap per camera, never by a poll.
|
|
85132
|
+
*
|
|
85123
85133
|
* Two reads can only ever ADD a camera back, never take one away on their own
|
|
85124
85134
|
* failure (D49): a wrapper-state read (run in parallel with the capture) that
|
|
85125
85135
|
* misses or throws keeps the tile, and a freshness read that misses or throws
|
|
@@ -85133,6 +85143,15 @@ var NC_LINKED_CAMERA_PREFIX = "nc-linked:";
|
|
|
85133
85143
|
function isLinkedStillId(id) {
|
|
85134
85144
|
return id.startsWith(NC_LINKED_MOSAIC_PREFIX) || id.startsWith(NC_LINKED_CAMERA_PREFIX);
|
|
85135
85145
|
}
|
|
85146
|
+
/**
|
|
85147
|
+
* D998 — the one forced capture that wakes a sleeping battery camera for a
|
|
85148
|
+
* sensor notification: the bound it may take, the pause between re-polls of a
|
|
85149
|
+
* camera another wake already started, and the gap per camera before it is
|
|
85150
|
+
* woken again (a flapping contact must not drain a battery).
|
|
85151
|
+
*/
|
|
85152
|
+
var NC_LINKED_WAKE_CAPTURE_TIMEOUT_MS = 15e3;
|
|
85153
|
+
var NC_LINKED_WAKE_POLL_MS = 1e3;
|
|
85154
|
+
var NC_LINKED_WAKE_MIN_GAP_MS = 6e4;
|
|
85136
85155
|
/** Per camera — the marker's own bound (`SENSOR_MARKER_SNAPSHOT_TIMEOUT_MS`). */
|
|
85137
85156
|
var SENSOR_LINKED_CAPTURE_TIMEOUT_MS = 2500;
|
|
85138
85157
|
/** The capture-free wrapper-state read, per camera. It runs IN PARALLEL with
|
|
@@ -85165,11 +85184,14 @@ var NcLinkedStillShelf = class {
|
|
|
85165
85184
|
deps;
|
|
85166
85185
|
sets = /* @__PURE__ */ new Map();
|
|
85167
85186
|
owners = /* @__PURE__ */ new Map();
|
|
85187
|
+
/** setId → when its in-flight wake gives up (the dispatcher waits that long). */
|
|
85188
|
+
pendingWakes = /* @__PURE__ */ new Map();
|
|
85189
|
+
lastWakeAt = /* @__PURE__ */ new Map();
|
|
85168
85190
|
constructor(deps) {
|
|
85169
85191
|
this.deps = deps;
|
|
85170
85192
|
}
|
|
85171
85193
|
/** SYNCHRONOUS: the evaluation that follows names these owners. */
|
|
85172
|
-
captureSet(sensorId, cameraIds, atMs) {
|
|
85194
|
+
captureSet(sensorId, cameraIds, atMs, options = { wakeSleeping: false }) {
|
|
85173
85195
|
const now = this.deps.now();
|
|
85174
85196
|
this.prune(now);
|
|
85175
85197
|
const setId = randomUUID();
|
|
@@ -85197,7 +85219,7 @@ var NcLinkedStillShelf = class {
|
|
|
85197
85219
|
camera: cameraId
|
|
85198
85220
|
});
|
|
85199
85221
|
});
|
|
85200
|
-
this.run(setId, stills, atMs, now).catch((err) => {
|
|
85222
|
+
this.run(setId, stills, atMs, now, options).catch((err) => {
|
|
85201
85223
|
this.deps.logger.warn("sensor notification pictures failed — it ships text-only", {
|
|
85202
85224
|
tags: { deviceId: sensorId },
|
|
85203
85225
|
meta: { error: String(err) }
|
|
@@ -85205,6 +85227,15 @@ var NcLinkedStillShelf = class {
|
|
|
85205
85227
|
});
|
|
85206
85228
|
return stills;
|
|
85207
85229
|
}
|
|
85230
|
+
/**
|
|
85231
|
+
* While a wake of one of this owner's cameras is in flight: the instant it
|
|
85232
|
+
* gives up (its bound plus one poll). `undefined` otherwise — the dispatcher
|
|
85233
|
+
* then keeps its ordinary still-wait.
|
|
85234
|
+
*/
|
|
85235
|
+
pendingUntil(ownerId) {
|
|
85236
|
+
const ref = this.owners.get(ownerId);
|
|
85237
|
+
return ref === void 0 ? void 0 : this.pendingWakes.get(ref.setId);
|
|
85238
|
+
}
|
|
85208
85239
|
/** `undefined` = not an owner this shelf minted (or pruned); `[]` = nothing (yet). */
|
|
85209
85240
|
get(ownerId) {
|
|
85210
85241
|
const ref = this.owners.get(ownerId);
|
|
@@ -85226,20 +85257,37 @@ var NcLinkedStillShelf = class {
|
|
|
85226
85257
|
clear() {
|
|
85227
85258
|
this.sets.clear();
|
|
85228
85259
|
this.owners.clear();
|
|
85260
|
+
this.pendingWakes.clear();
|
|
85229
85261
|
}
|
|
85230
|
-
async run(setId, stills, atMs, startedAt) {
|
|
85231
|
-
const
|
|
85262
|
+
async run(setId, stills, atMs, startedAt, options) {
|
|
85263
|
+
const ctx = {
|
|
85264
|
+
setId,
|
|
85265
|
+
sensorId: stills.sensorId,
|
|
85266
|
+
startedAt,
|
|
85267
|
+
options
|
|
85268
|
+
};
|
|
85269
|
+
let results;
|
|
85270
|
+
try {
|
|
85271
|
+
results = await Promise.all(stills.cameraIds.map((id) => this.captureOne(id, ctx)));
|
|
85272
|
+
} finally {
|
|
85273
|
+
this.pendingWakes.delete(setId);
|
|
85274
|
+
}
|
|
85232
85275
|
const judged = await this.judgeFreshness(stills.sensorId, results, atMs);
|
|
85233
85276
|
for (const r of judged) this.logTile(stills.sensorId, r);
|
|
85234
85277
|
const landed = judged.filter(isLandedTile);
|
|
85235
85278
|
const composed = await this.compose(stills.sensorId, landed, atMs);
|
|
85236
85279
|
const undrawable = landed.length - composed.drawn;
|
|
85280
|
+
const woken = judged.filter((r) => r.woken === true).map((r) => r.cameraId);
|
|
85237
85281
|
this.deps.logger.info(composed.mosaic.length === 0 ? "sensor notification has no linked picture — it ships text-only" : "sensor notification pictures ready", {
|
|
85238
85282
|
tags: { deviceId: stills.sensorId },
|
|
85239
85283
|
meta: {
|
|
85240
85284
|
cameras: stills.cameraIds.length,
|
|
85241
85285
|
landed: composed.drawn,
|
|
85242
85286
|
...undrawable > 0 ? { undrawable } : {},
|
|
85287
|
+
...woken.length > 0 ? {
|
|
85288
|
+
woken,
|
|
85289
|
+
waitedMs: this.deps.now() - startedAt
|
|
85290
|
+
} : {},
|
|
85243
85291
|
dropped: Object.fromEntries(judged.filter((r) => r.outcome !== "landed").map((r) => [String(r.cameraId), r.outcome])),
|
|
85244
85292
|
tookMs: this.deps.now() - startedAt
|
|
85245
85293
|
}
|
|
@@ -85252,21 +85300,25 @@ var NcLinkedStillShelf = class {
|
|
|
85252
85300
|
mosaic: composed.mosaic
|
|
85253
85301
|
});
|
|
85254
85302
|
}
|
|
85255
|
-
async captureOne(cameraId,
|
|
85256
|
-
const took = () => this.deps.now() - startedAt;
|
|
85303
|
+
async captureOne(cameraId, ctx) {
|
|
85304
|
+
const took = () => this.deps.now() - ctx.startedAt;
|
|
85257
85305
|
if (this.deps.isOnline(cameraId) === false) return {
|
|
85258
85306
|
cameraId,
|
|
85259
85307
|
outcome: "excluded",
|
|
85260
85308
|
reason: "offline",
|
|
85261
85309
|
tookMs: took()
|
|
85262
85310
|
};
|
|
85263
|
-
const [verdict, capture] = await Promise.all([this.wrapperVerdict(cameraId), this.captureStill(cameraId)]);
|
|
85264
|
-
|
|
85311
|
+
const [verdict, capture] = await Promise.all([this.wrapperVerdict(cameraId), this.captureStill(cameraId, false, SENSOR_LINKED_CAPTURE_TIMEOUT_MS)]);
|
|
85312
|
+
const excluded = (reason) => ({
|
|
85265
85313
|
cameraId,
|
|
85266
85314
|
outcome: "excluded",
|
|
85267
|
-
reason
|
|
85315
|
+
reason,
|
|
85268
85316
|
tookMs: took()
|
|
85269
|
-
};
|
|
85317
|
+
});
|
|
85318
|
+
if (verdict.reason === "sleeping") return this.wakeOne(cameraId, ctx);
|
|
85319
|
+
if (verdict.reason === "waking" && ctx.options.wakeSleeping) return this.awaitWaking(cameraId, ctx);
|
|
85320
|
+
if (verdict.reason === "unreachable" && ctx.options.wakeSleeping) return excluded("wake-skipped:unreachable");
|
|
85321
|
+
if (verdict.reason !== null) return excluded(verdict.reason);
|
|
85270
85322
|
return {
|
|
85271
85323
|
cameraId,
|
|
85272
85324
|
...capture,
|
|
@@ -85274,9 +85326,84 @@ var NcLinkedStillShelf = class {
|
|
|
85274
85326
|
tookMs: took()
|
|
85275
85327
|
};
|
|
85276
85328
|
}
|
|
85277
|
-
|
|
85329
|
+
/** D998: one forced capture, by the rule's leave, at most once per gap per camera. */
|
|
85330
|
+
async wakeOne(cameraId, ctx) {
|
|
85331
|
+
const took = () => this.deps.now() - ctx.startedAt;
|
|
85332
|
+
const skipped = (reason) => ({
|
|
85333
|
+
cameraId,
|
|
85334
|
+
outcome: "excluded",
|
|
85335
|
+
reason,
|
|
85336
|
+
tookMs: took()
|
|
85337
|
+
});
|
|
85338
|
+
if (!ctx.options.wakeSleeping) return skipped("wake-skipped:policy");
|
|
85339
|
+
const last = this.lastWakeAt.get(cameraId);
|
|
85340
|
+
if (last !== void 0 && ctx.startedAt - last < NC_LINKED_WAKE_MIN_GAP_MS) return skipped("wake-skipped:recent-wake");
|
|
85341
|
+
this.lastWakeAt.set(cameraId, ctx.startedAt);
|
|
85342
|
+
this.markPending(ctx);
|
|
85343
|
+
this.deps.logger.info("linked battery camera woken for the sensor notification", {
|
|
85344
|
+
tags: { deviceId: cameraId },
|
|
85345
|
+
meta: {
|
|
85346
|
+
sensorId: ctx.sensorId,
|
|
85347
|
+
ruleIds: ctx.options.ruleIds ?? [],
|
|
85348
|
+
boundMs: NC_LINKED_WAKE_CAPTURE_TIMEOUT_MS
|
|
85349
|
+
}
|
|
85350
|
+
});
|
|
85351
|
+
const capture = await this.captureStill(cameraId, true, NC_LINKED_WAKE_CAPTURE_TIMEOUT_MS);
|
|
85352
|
+
return {
|
|
85353
|
+
cameraId,
|
|
85354
|
+
...this.asWakeResult(capture),
|
|
85355
|
+
woken: true,
|
|
85356
|
+
tookMs: took()
|
|
85357
|
+
};
|
|
85358
|
+
}
|
|
85359
|
+
/** A camera another wake already started: never forced, re-polled within the bound. */
|
|
85360
|
+
async awaitWaking(cameraId, ctx) {
|
|
85361
|
+
const took = () => this.deps.now() - ctx.startedAt;
|
|
85362
|
+
this.markPending(ctx);
|
|
85363
|
+
const polls = Math.floor(NC_LINKED_WAKE_CAPTURE_TIMEOUT_MS / NC_LINKED_WAKE_POLL_MS);
|
|
85364
|
+
for (let i = 0; i < polls; i++) {
|
|
85365
|
+
await new Promise((resolve) => setTimeout(resolve, NC_LINKED_WAKE_POLL_MS));
|
|
85366
|
+
const verdict = await this.wrapperVerdict(cameraId);
|
|
85367
|
+
if (verdict.reason === "waking") continue;
|
|
85368
|
+
if (verdict.reason !== null) return {
|
|
85369
|
+
cameraId,
|
|
85370
|
+
outcome: "excluded",
|
|
85371
|
+
reason: verdict.reason,
|
|
85372
|
+
tookMs: took()
|
|
85373
|
+
};
|
|
85374
|
+
const capture = await this.captureStill(cameraId, false, SENSOR_LINKED_CAPTURE_TIMEOUT_MS);
|
|
85375
|
+
return {
|
|
85376
|
+
cameraId,
|
|
85377
|
+
...this.asWakeResult(capture),
|
|
85378
|
+
woken: true,
|
|
85379
|
+
tookMs: took()
|
|
85380
|
+
};
|
|
85381
|
+
}
|
|
85382
|
+
return {
|
|
85383
|
+
cameraId,
|
|
85384
|
+
outcome: "wake-timeout",
|
|
85385
|
+
woken: true,
|
|
85386
|
+
tookMs: took()
|
|
85387
|
+
};
|
|
85388
|
+
}
|
|
85389
|
+
markPending(ctx) {
|
|
85390
|
+
const until = ctx.startedAt + NC_LINKED_WAKE_CAPTURE_TIMEOUT_MS + NC_LINKED_WAKE_POLL_MS;
|
|
85391
|
+
this.pendingWakes.set(ctx.setId, Math.max(this.pendingWakes.get(ctx.setId) ?? 0, until));
|
|
85392
|
+
}
|
|
85393
|
+
/** A wake that brought nothing back names itself, not the generic `empty`. */
|
|
85394
|
+
asWakeResult(capture) {
|
|
85395
|
+
if (capture.outcome === "timeout") return {
|
|
85396
|
+
...capture,
|
|
85397
|
+
outcome: "wake-timeout"
|
|
85398
|
+
};
|
|
85399
|
+
return capture.outcome === "empty" || capture.outcome === "error" && capture.reason !== "undecodable" ? {
|
|
85400
|
+
...capture,
|
|
85401
|
+
outcome: "wake-refused"
|
|
85402
|
+
} : capture;
|
|
85403
|
+
}
|
|
85404
|
+
async captureStill(cameraId, force, timeoutMs) {
|
|
85278
85405
|
try {
|
|
85279
|
-
const shot = await withTimeout$2(this.deps.getSnapshot(cameraId),
|
|
85406
|
+
const shot = await withTimeout$2(force ? this.deps.getSnapshot(cameraId, { force: true }) : this.deps.getSnapshot(cameraId), timeoutMs, "snapshot cap");
|
|
85280
85407
|
if (shot === null || shot.base64.length === 0) return { outcome: "empty" };
|
|
85281
85408
|
const jpeg = await this.decodableStill(Buffer.from(shot.base64, "base64"));
|
|
85282
85409
|
if (jpeg === null) return {
|
|
@@ -86835,6 +86962,13 @@ var NC_RECORDED_FOOTAGE_WAIT_MS = 3e4;
|
|
|
86835
86962
|
var NC_STILL_WAIT_MS = 3e3;
|
|
86836
86963
|
var NC_STILL_WAIT_INTERVAL_MS = 500;
|
|
86837
86964
|
/**
|
|
86965
|
+
* D998 — the longest a sensor notification holds for a linked battery camera
|
|
86966
|
+
* that is being woken (`stillDeadline`). A `sent` row is final, so the picture
|
|
86967
|
+
* cannot follow the push: it is waited for here, bounded, or never attached.
|
|
86968
|
+
* Owners with no wake in flight keep {@link NC_STILL_WAIT_MS}.
|
|
86969
|
+
*/
|
|
86970
|
+
var NC_LINKED_WAKE_WAIT_MS = 15e3;
|
|
86971
|
+
/**
|
|
86838
86972
|
* How far a still's OWN instant may sit from the trigger and still count as
|
|
86839
86973
|
* being ABOUT the trigger, for a `delivery: 'immediate'` rule.
|
|
86840
86974
|
*
|
|
@@ -88051,7 +88185,15 @@ var NcDispatcher = class {
|
|
|
88051
88185
|
const firstLook = groupTiles !== null ? null : await this.resolveAttachment(entry, canStillGainMedia(entry) ? "trigger-only" : "any");
|
|
88052
88186
|
const footagePending = this.renderFootage(entry);
|
|
88053
88187
|
const mosaic = groupView !== void 0 && groupTiles !== null ? await this.groupedMosaic(entry, groupView, groupTiles) : null;
|
|
88054
|
-
|
|
88188
|
+
let waitedMs = 0;
|
|
88189
|
+
let still;
|
|
88190
|
+
if (mosaic !== null) still = mosaic.attachment;
|
|
88191
|
+
else if (firstLook !== null || entry.payload.media === "none") still = firstLook;
|
|
88192
|
+
else {
|
|
88193
|
+
const waited = await this.waitForStill(entry);
|
|
88194
|
+
still = waited.still;
|
|
88195
|
+
waitedMs = waited.waitedMs;
|
|
88196
|
+
}
|
|
88055
88197
|
const grouped = groupView !== void 0 && groupMembers !== null ? {
|
|
88056
88198
|
windowKey: groupView.key,
|
|
88057
88199
|
members: groupView.members.length,
|
|
@@ -88076,6 +88218,7 @@ var NcDispatcher = class {
|
|
|
88076
88218
|
recordKind: entry.recordKind,
|
|
88077
88219
|
recordId: entry.recordId,
|
|
88078
88220
|
policy: entry.payload.media,
|
|
88221
|
+
waitedMs,
|
|
88079
88222
|
...entry.payload.mediaImage !== void 0 ? { image: entry.payload.mediaImage } : {},
|
|
88080
88223
|
...memberTrackIds.length > 1 ? { memberTrackIds } : {},
|
|
88081
88224
|
owners: [...entry.payload.subject.eventId !== void 0 ? [`object:${entry.payload.subject.eventId}`] : [], ...entry.payload.subject.trackId !== void 0 ? [`track:${entry.payload.subject.trackId}`] : []]
|
|
@@ -88102,7 +88245,13 @@ var NcDispatcher = class {
|
|
|
88102
88245
|
const subject = entry.payload.subject;
|
|
88103
88246
|
const out = [];
|
|
88104
88247
|
for (const { ownerId, cameraId } of subject.extraStills ?? []) {
|
|
88105
|
-
|
|
88248
|
+
let file = await this.linkedStillFile(entry, ownerId, cameraId);
|
|
88249
|
+
for (let polls = 0; file === void 0 && polls < NC_LINKED_WAKE_WAIT_MS / NC_STILL_WAIT_INTERVAL_MS; polls += 1) {
|
|
88250
|
+
const deadline = this.deps.stillDeadline?.(ownerId);
|
|
88251
|
+
if (deadline === void 0 || this.now() >= deadline) break;
|
|
88252
|
+
await this.sleep(NC_STILL_WAIT_INTERVAL_MS);
|
|
88253
|
+
file = await this.linkedStillFile(entry, ownerId, cameraId);
|
|
88254
|
+
}
|
|
88106
88255
|
const bytes = file === void 0 ? null : decodeStillBytes(file.base64);
|
|
88107
88256
|
if (file === void 0 || bytes === null) {
|
|
88108
88257
|
this.deps.logger.info("linked camera picture missing at send — skipped", {
|
|
@@ -88589,11 +88738,19 @@ var NcDispatcher = class {
|
|
|
88589
88738
|
*/
|
|
88590
88739
|
async waitForStill(entry) {
|
|
88591
88740
|
const subject = entry.payload.subject;
|
|
88592
|
-
if (this.now() - subject.timestamp > NC_STILL_WAIT_MAX_AGE_MS) return
|
|
88593
|
-
|
|
88594
|
-
|
|
88595
|
-
|
|
88741
|
+
if (this.now() - subject.timestamp > NC_STILL_WAIT_MAX_AGE_MS) return {
|
|
88742
|
+
still: await this.resolveAttachment(entry, "any"),
|
|
88743
|
+
waitedMs: 0
|
|
88744
|
+
};
|
|
88745
|
+
if (subject.eventId === void 0 && subject.trackId === void 0) return {
|
|
88746
|
+
still: null,
|
|
88747
|
+
waitedMs: 0
|
|
88748
|
+
};
|
|
88749
|
+
const startedAt = this.now();
|
|
88750
|
+
let waitedMs = 0;
|
|
88751
|
+
for (let i = 0; waitedMs < this.stillWaitBoundMs(entry, startedAt); i += 1) {
|
|
88596
88752
|
await this.sleep(NC_STILL_WAIT_INTERVAL_MS);
|
|
88753
|
+
waitedMs += NC_STILL_WAIT_INTERVAL_MS;
|
|
88597
88754
|
const still = await this.resolveAttachment(entry, "trigger-only");
|
|
88598
88755
|
if (still !== null) {
|
|
88599
88756
|
this.deps.logger.info("the still landed during the bounded wait", {
|
|
@@ -88605,10 +88762,32 @@ var NcDispatcher = class {
|
|
|
88605
88762
|
kind: still.name
|
|
88606
88763
|
}
|
|
88607
88764
|
});
|
|
88608
|
-
return
|
|
88765
|
+
return {
|
|
88766
|
+
still,
|
|
88767
|
+
waitedMs
|
|
88768
|
+
};
|
|
88609
88769
|
}
|
|
88610
88770
|
}
|
|
88611
|
-
return
|
|
88771
|
+
return {
|
|
88772
|
+
still: await this.resolveAttachment(entry, "any"),
|
|
88773
|
+
waitedMs
|
|
88774
|
+
};
|
|
88775
|
+
}
|
|
88776
|
+
/**
|
|
88777
|
+
* How long this row's still poll may run: {@link NC_STILL_WAIT_MS}, or — while
|
|
88778
|
+
* the shelf says a linked camera of this row is being woken — until that
|
|
88779
|
+
* wake gives up, at most {@link NC_LINKED_WAKE_WAIT_MS} (D998).
|
|
88780
|
+
*/
|
|
88781
|
+
stillWaitBoundMs(entry, startedAt) {
|
|
88782
|
+
const subject = entry.payload.subject;
|
|
88783
|
+
const owners = [...subject.trackId !== void 0 ? [subject.trackId] : [], ...(subject.extraStills ?? []).map((extra) => extra.ownerId)];
|
|
88784
|
+
let deadline;
|
|
88785
|
+
for (const ownerId of owners) {
|
|
88786
|
+
const until = this.deps.stillDeadline?.(ownerId);
|
|
88787
|
+
if (until !== void 0 && (deadline === void 0 || until > deadline)) deadline = until;
|
|
88788
|
+
}
|
|
88789
|
+
if (deadline === void 0) return NC_STILL_WAIT_MS;
|
|
88790
|
+
return Math.max(NC_STILL_WAIT_MS, Math.min(NC_LINKED_WAKE_WAIT_MS, deadline - startedAt));
|
|
88612
88791
|
}
|
|
88613
88792
|
/**
|
|
88614
88793
|
* The grouped MOSAIC (D692 §6.2): one tile per member, at most
|
|
@@ -88756,8 +88935,8 @@ var NcDispatcher = class {
|
|
|
88756
88935
|
return ts !== void 0 && this.now() - ts <= NC_STILL_WAIT_MAX_AGE_MS;
|
|
88757
88936
|
});
|
|
88758
88937
|
await look("trigger-only", pollable());
|
|
88759
|
-
const
|
|
88760
|
-
for (let
|
|
88938
|
+
const startedAt = this.now();
|
|
88939
|
+
for (let waited = 0; waited < this.stillWaitBoundMs(entry, startedAt) && pollable().length > 0; waited += NC_STILL_WAIT_INTERVAL_MS) {
|
|
88761
88940
|
await this.sleep(NC_STILL_WAIT_INTERVAL_MS);
|
|
88762
88941
|
await look("trigger-only", pollable());
|
|
88763
88942
|
}
|
|
@@ -104277,7 +104456,7 @@ function beginLinkedStills(host, request) {
|
|
|
104277
104456
|
if (rowCameraIds.length > 0 && rowShown.length === 0) return void 0;
|
|
104278
104457
|
const shown = host.unmutedCameras(cameraIds);
|
|
104279
104458
|
const involved = [sensorId, ...rowShown];
|
|
104280
|
-
|
|
104459
|
+
const wanting = host.rules.listEnabled("device-event").filter((rule) => {
|
|
104281
104460
|
if (ruleShipsNoStill(rule)) return false;
|
|
104282
104461
|
if (!deviceEventRuleMayFireOnKind(rule, sensorKind, sensorRaised)) return false;
|
|
104283
104462
|
const excluded = rule.conditions.devicesExclude;
|
|
@@ -104288,9 +104467,14 @@ function beginLinkedStills(host, request) {
|
|
|
104288
104467
|
})) return false;
|
|
104289
104468
|
const devices = rule.conditions.devices;
|
|
104290
104469
|
return devices === void 0 || devices.length === 0 || devices.some((id) => involved.includes(id));
|
|
104291
|
-
})
|
|
104470
|
+
});
|
|
104471
|
+
if (wanting.length === 0) return void 0;
|
|
104472
|
+
const wakeSleeping = wanting.some((rule) => rule.media?.wakeSleepingCamera !== false);
|
|
104292
104473
|
for (const cameraId of cameraIds) if (!shown.includes(cameraId)) host.reportLinkedCameraMuted(cameraId, sensorId);
|
|
104293
|
-
return shown.length > 0 ? shelf.captureSet(sensorId, shown, atMs
|
|
104474
|
+
return shown.length > 0 ? shelf.captureSet(sensorId, shown, atMs, {
|
|
104475
|
+
wakeSleeping,
|
|
104476
|
+
ruleIds: wanting.map((rule) => rule.id)
|
|
104477
|
+
}) : void 0;
|
|
104294
104478
|
}
|
|
104295
104479
|
/**
|
|
104296
104480
|
* A muted camera left out of a linked set — one INFO line per camera per
|
|
@@ -107013,6 +107197,7 @@ var NotificationCenter = class {
|
|
|
107013
107197
|
...deps.dispatcher,
|
|
107014
107198
|
logger: this.logger.child("dispatch"),
|
|
107015
107199
|
texts: this.texts,
|
|
107200
|
+
stillDeadline: (ownerId) => isLinkedStillId(ownerId) ? this.linkedStills?.pendingUntil(ownerId) : void 0,
|
|
107016
107201
|
getMediaForOwner: async (ownerKind, ownerId, eventScope) => {
|
|
107017
107202
|
const held = isSyntheticId(ownerId) ? this.syntheticMedia.get(ownerId) : void 0;
|
|
107018
107203
|
if (held !== void 0) return held.files;
|
|
@@ -109596,7 +109781,10 @@ var BuildNotificationCenter = class extends BuildNotificationCenterBase {
|
|
|
109596
109781
|
},
|
|
109597
109782
|
readAlerts: () => api.alerts.list.query({ limit: 5e3 }),
|
|
109598
109783
|
emitBusEvent: (event) => this.ctx.eventBus.emit(event),
|
|
109599
|
-
getSnapshot: (deviceId) => api.snapshot.getSnapshot.query(
|
|
109784
|
+
getSnapshot: (deviceId, opts) => api.snapshot.getSnapshot.query(opts?.force === true ? {
|
|
109785
|
+
deviceId,
|
|
109786
|
+
force: true
|
|
109787
|
+
} : { deviceId }),
|
|
109600
109788
|
recognitionOutlook: ({ deviceId, trackId, className, labelKind, now }) => recognitionOutlook({
|
|
109601
109789
|
className,
|
|
109602
109790
|
...labelKind !== void 0 ? { labelKind } : {},
|
|
@@ -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_pipeline_analytics_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-jPBj20ez.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-post-analysis",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.663",
|
|
4
4
|
"description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
}
|
|
139
139
|
],
|
|
140
140
|
"requires": {
|
|
141
|
-
"server": ">=1.2.
|
|
141
|
+
"server": ">=1.2.740"
|
|
142
142
|
}
|
|
143
143
|
},
|
|
144
144
|
"scripts": {
|