@camstack/addon-post-analysis 1.2.311 → 1.2.312

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.
@@ -15662,7 +15662,17 @@ var SiteZoneSchema = object({
15662
15662
  var ProviderStatusSchema = object({
15663
15663
  connected: boolean(),
15664
15664
  deviceCount: number(),
15665
- error: string().optional()
15665
+ error: string().optional(),
15666
+ /**
15667
+ * `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
15668
+ * — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
15669
+ * which every provider bundles, so only a provider BUILT from D696-amended
15670
+ * code says it. ABSENT means an older provider that may still write it (raw
15671
+ * VMD writes, a boot seed), and the orchestrator's provider gate keeps that
15672
+ * provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
15673
+ * — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
15674
+ */
15675
+ motionSliceWriter: literal("orchestrator").optional()
15666
15676
  });
15667
15677
  object({
15668
15678
  externalId: string(),
@@ -15631,7 +15631,17 @@ var SiteZoneSchema = object({
15631
15631
  var ProviderStatusSchema = object({
15632
15632
  connected: boolean(),
15633
15633
  deviceCount: number(),
15634
- error: string().optional()
15634
+ error: string().optional(),
15635
+ /**
15636
+ * `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
15637
+ * — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
15638
+ * which every provider bundles, so only a provider BUILT from D696-amended
15639
+ * code says it. ABSENT means an older provider that may still write it (raw
15640
+ * VMD writes, a boot seed), and the orchestrator's provider gate keeps that
15641
+ * provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
15642
+ * — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
15643
+ */
15644
+ motionSliceWriter: literal("orchestrator").optional()
15635
15645
  });
15636
15646
  object({
15637
15647
  externalId: string(),
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_clip_model_registry = require("../clip-model-registry-X457TLXn.js");
5
+ const require_clip_model_registry = require("../clip-model-registry-CRkjjUyj.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_clip_model_registry.__toESM(node_fs);
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { En as embeddingModelFailedError, Lr as normalizeNodeId, On as embeddingRequirementsFailedError, Rt as PoolMemoryWatchdog, Tn as embeddingEncoderCapability, Xn as parseProcStatus, a as CLIP_EMBEDDING_STEP_ID, ar as resolvePoolMemoryPolicy, c as resolveClusterModelPin, i as CLIP_TEXT_MODELS, kn as embeddingRequirementsUnavailableError, kr as BaseAddon, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS } from "../clip-model-registry-DPqDIZrG.mjs";
1
+ import { En as embeddingModelFailedError, Lr as normalizeNodeId, On as embeddingRequirementsFailedError, Rt as PoolMemoryWatchdog, Tn as embeddingEncoderCapability, Xn as parseProcStatus, a as CLIP_EMBEDDING_STEP_ID, ar as resolvePoolMemoryPolicy, c as resolveClusterModelPin, i as CLIP_TEXT_MODELS, kn as embeddingRequirementsUnavailableError, kr as BaseAddon, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS } from "../clip-model-registry-ivwvxxex.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.285",
21
+ version: "1.2.286",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_analytics_widgets",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.285",
39
+ version: "1.2.286",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  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_clip_model_registry = require("../clip-model-registry-X457TLXn.js");
5
+ const require_clip_model_registry = require("../clip-model-registry-CRkjjUyj.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_clip_model_registry.__toESM(node_fs, 1);
8
8
  let node_path = require("node:path");
@@ -11664,6 +11664,18 @@ function streamHealthAccepted(category, reason) {
11664
11664
  function discardedSystemEvent(event, lookup) {
11665
11665
  const accessory = discardedAccessoryLiveness(event, lookup);
11666
11666
  if (accessory !== null) return accessory;
11667
+ if (event.category === "worker.online" || event.category === "worker.offline") {
11668
+ const workerId = stringField(event.data, "workerId");
11669
+ return {
11670
+ category: event.category,
11671
+ reason: "a runner is not a node",
11672
+ tags: {},
11673
+ meta: {
11674
+ reason: "a runner is not a node",
11675
+ ...workerId !== void 0 ? { workerId } : {}
11676
+ }
11677
+ };
11678
+ }
11667
11679
  if (event.category !== "stream.online" && event.category !== "stream.offline") return null;
11668
11680
  const data = event.data;
11669
11681
  const reason = stringField(data, "reason");
@@ -11990,12 +12002,11 @@ function incomingFromSystemEvent(event, lookup) {
11990
12002
  deviceId
11991
12003
  });
11992
12004
  }
11993
- case "agent.online":
11994
- case "agent.offline":
11995
12005
  case "worker.online":
11996
- case "worker.offline": {
11997
- const agent = event.category.startsWith("agent.");
11998
- const nodeId = stringField(data, agent ? "agentId" : "workerId");
12006
+ case "worker.offline": return null;
12007
+ case "agent.online":
12008
+ case "agent.offline": {
12009
+ const nodeId = stringField(data, "agentId");
11999
12010
  if (nodeId === void 0) return null;
12000
12011
  const kind = event.category.endsWith(".online") ? "node-online" : "node-offline";
12001
12012
  return systemSubject({
@@ -12003,7 +12014,7 @@ function incomingFromSystemEvent(event, lookup) {
12003
12014
  kind,
12004
12015
  subject: `node:${nodeId}`,
12005
12016
  titleKey: `system.${kind}.title`,
12006
- bodyKey: agent ? `system.${kind}.body.agent` : `system.${kind}.body.worker`,
12017
+ bodyKey: `system.${kind}.body.agent`,
12007
12018
  textParams: { nodeId },
12008
12019
  nodeId
12009
12020
  });
@@ -13620,10 +13631,8 @@ var en_default = {
13620
13631
  "system.stream-offline.body.profiled": "{{profile}} stream for camera {{deviceName}} is offline",
13621
13632
  "system.node-online.title": "Node online",
13622
13633
  "system.node-online.body.agent": "Agent {{nodeId}} is online",
13623
- "system.node-online.body.worker": "Worker {{nodeId}} is online",
13624
13634
  "system.node-offline.title": "Node offline",
13625
13635
  "system.node-offline.body.agent": "Agent {{nodeId}} is offline",
13626
- "system.node-offline.body.worker": "Worker {{nodeId}} is offline",
13627
13636
  "system.node-inference-unavailable.title": "Node has no usable inference device",
13628
13637
  "system.node-inference-unavailable.body": "Node {{nodeId}} can no longer run inference — every enabled device is unavailable ({{devices}}). It will not receive cameras until one returns.",
13629
13638
  "system.addon-crash-loop.title": "Addon stopped after repeated crashes",
@@ -13950,10 +13959,8 @@ var it_default = {
13950
13959
  "system.stream-offline.body.profiled": "Lo stream {{profile}} della camera {{deviceName}} è offline",
13951
13960
  "system.node-online.title": "Nodo online",
13952
13961
  "system.node-online.body.agent": "L'agent {{nodeId}} è online",
13953
- "system.node-online.body.worker": "Il worker {{nodeId}} è online",
13954
13962
  "system.node-offline.title": "Nodo offline",
13955
13963
  "system.node-offline.body.agent": "L'agent {{nodeId}} è offline",
13956
- "system.node-offline.body.worker": "Il worker {{nodeId}} è offline",
13957
13964
  "system.node-inference-unavailable.title": "Nodo senza dispositivi di inferenza utilizzabili",
13958
13965
  "system.node-inference-unavailable.body": "Il nodo {{nodeId}} non può più eseguire inferenza — tutti i dispositivi abilitati non sono disponibili ({{devices}}). Non riceverà camere finché uno non torna disponibile.",
13959
13966
  "system.addon-crash-loop.title": "Addon fermato dopo ripetuti crash",
@@ -1,4 +1,4 @@
1
- import { $ as NC_ALARM_SYSTEM_EVENT_KINDS, $n as readDeviceStateFrom, $r as union, $t as SetTrackPurityInputSchema, A as EMBEDDING_REQUIREMENTS_FAILED, An as encodeVectorBase64, Ar as CamProfileSchema, At as NcSnoozeSuppressedSchema, B as ListTrackRelationsInputSchema, Bn as isMediaOwnerType, Br as _enum, Bt as RECORDING_SOURCE_CAMSTACK_ADDON, C as DEFAULT_EVENT_COLOR, Cn as describeSystemEventDeliveryProblem, Cr as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, Ct as NcRulePatchSchema, D as DeclaredDevices, Dn as embeddingRefusalOf, Dr as DeviceType, Dt as NcScheduleSchema, E as DETECTION_PIPELINE_CAP_NAME, Er as isSourceCap, Et as NcRuleUpdateInputSchema, F as EXPORT_DENSE_MAX_RANGES, Fn as gifFromMp4Args, Fr as isDeviceScopedCap, Ft as NcTemplateVarDescriptorSchema, G as MAX_BIRTH_LATENCY_PROXY_MS, Gn as kebabToCamel, Gr as looseObject, Gt as SCENE_DEFAULT_ANCHOR_THRESHOLD, H as LockStateSchema, Hn as isSystemDelivery, Hr as boolean, Ht as RetrainStatusSchema, I as FIRST_LEVEL_MACRO_CLASSES, In as isAudioClassName, Ir as nodePin, It as OPS_LOG_DEFAULT_LIMIT, J as MOTION_CLOSE_AFTER_MS, Jn as notificationRulesCapability, Jr as partialRecord, Jt as SCENE_DEFAULT_QUIET_SECONDS, K as MAX_TRACK_PURITIES, Kn as mayWriteToLocation, Kr as number, Kt as SCENE_DEFAULT_CHECK_INTERVAL_SEC, L as FULL_IMAGE_BBOX, Ln as isDetectionMacroClass, Lt as OpsLogEntrySchema, M as EVENT_DENSITY_BATCH_MAX, Mn as faceGalleryCapability, Mr as customAction, Mt as NcTaxonomySchema, N as EVENT_KIND_BY_CAP, Nn as failureContributionCapability, Nr as defineCustomActions, Nt as NcTemplatePreviewInputSchema, O as DetectionSourceSchema, Or as errMsg, Ot as NcSnoozeInputSchema, P as EVENT_OWNER_TYPES, Pn as gifDeriveSpeed, Pr as hydrateSchema, Pt as NcTemplatePreviewSchema, Q as NC_ALARM_DELAY_MAX_SEC, Qn as plateGalleryCapability, Qr as tuple, Qt as SceneMonitorSchema, R as FailureCounters, Rn as isEventOwnerType, Rr as sleep$1, S as CoverStateSchema, Sn as deriveRecordingMode, Sr as zoneAnalyticsCapability, St as NcRuleInputSchema, T as DETECTION_MACRO_CLASSES, Tr as evaluateSensorEdge, Tt as NcRuleTargetSchema, U as MAX_ARCHIVED_DEBUG_NOTES, Un as isSystemEventSummaryRule, Ur as discriminatedUnion, Ut as SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, V as ListTrackRelationsResultSchema, Vn as isScheduleActive, Vr as array, Vt as RebuildObjectEmbeddingsRefusalSchema, W as MAX_BIRTH_DECISION_RECORDS, Wn as isVectorIndexDimConflict, Wr as literal, Wt as SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, X as MotionTriggeredBySchema, Xr as strictObject, Xt as SCENE_DIVERGED, Y as MediaFileKindEnum, Yn as occupancyScope, Yr as record, Yt as SCENE_DEFAULT_UNCOVERED_POLICY, Z as NC_ALARM_DELAY_FIELDS, Zn as pipelineAnalyticsCapability, Zr as string, Zt as SCENE_RESET_RECAPTURES, _ as BaseDevice, _n as audioMetricsCapability, _r as systemEventSummaryScheduleOf, _t as NcAlarmSensorsInputSchema, a as CLIP_EMBEDDING_STEP_ID, an as TimelapseRulePatchSchema, at as NC_CLIP_RETENTION_MAX_SEC, b as ClearTrackRelationInputSchema, bn as consumableLowPercentOf, br as templateVarsFor, bt as NcConditionDescriptorSchema, c as resolveClusterModelPin, cn as TrackRelationKindSchema, cr as ruleKindOf, ct as NC_CONSUMABLE_SYSTEM_EVENT_KINDS, d as APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, dn as TrackSourceSchema, dr as servedTemplateVars, dt as NC_SNOOZE_MAX_MINUTES, ei as unknown, en as SetTrackPurityResultSchema, er as readMotionTriggeredBy, et as NC_ALARM_TRIGGERED_MAX_SEC, f as ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, fn as addonWidgetsSourceCapability, fr as storageOccupancyCapability, ft as NC_SYSTEM_EVENT_KIND_GROUP_SPECS, g as BIRTH_DECISION_DEFAULT_LIMIT, gn as assertTimelapseCadences, gr as systemEventFilterApplies, gt as NcAlarmConfigSchema, h as ArchivedDebugNoteSchema, hn as applyNonBlockingEdit, hr as systemEventFamilyProblems, ht as NC_TEMPLATE_VARS, in as TimelapseRuleInputSchema, ir as resolveModeDelays, it as NC_CLIP_PRE_ROLL_DEFAULT_SEC, j as EMBEDDING_REQUIREMENTS_UNAVAILABLE, jn as evictionPolicyOfLocation, jr as createEvent, jt as NcSystemEventKindSchema, k as EMBEDDING_MODEL_FAILED, kr as BaseAddon, kt as NcSnoozeSchema, l as APPEARANCE_BIN_COUNT, ln as TrackRelationSchema, lr as sceneMonitorCapability, lt as NC_DEFAULT_SNOOZE_MINUTES, m as AlarmArmModeSchema, mn as applyModeDelaysEdits, mr as systemEventDeliveryProblems, mt as NC_TAXONOMY, nn as TIMELAPSE_DENSE_FLOOR_SEC, nr as resolveClipSearchMinScore, nt as NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, o as FACE_EMBEDDING_STEP_ID, on as TimelapseRuleSchema, or as ruleBelongsToAlarm$1, ot as NC_CONDITION_CATALOG, p as AUDIO_MACRO_LABELS, pn as alarmPanelCapability, pr as subKindsOf, pt as NC_TANK_SYSTEM_EVENT_KINDS, q as MAX_TRACK_RELATIONS, qn as memoizePinnedFfmpeg, qr as object, qt as SCENE_DEFAULT_OBSERVATION_SPACING_SEC, rn as TRACK_RELATIONS_DEFAULT_LIMIT, rr as resolveLocationMode, rt as NC_CLIP_POST_ROLL_DEFAULT_SEC, s as readClusterModelPinStrict, sn as TrackPuritySchema, sr as ruleDeviceCompatCapQueries, st as NC_CONSUMABLE_LOW_PERCENT_DEFAULT, t as BUILTIN_CLIP_MODELS, ti as EventCategory, tn as SetTrackRelationInputSchema, tr as readTimelapseGeneratedAt, tt as NC_AUDIO_CONFIRM_HITS_DEFAULT, u as APPEARANCE_BLOCKS, un as TrackSideSchema, ur as sensorRaisedOf, ut as NC_SENSOR_TRANSITION_KINDS, v as BirthDecisionRecordSchema, vn as audioModeOf, vr as systemEventSummarySplitOf, vt as NcAlarmSensorsSchema, w as DEFAULT_TIMELAPSE_PREVIEW_TEXT, wn as describeSystemEventFamilyProblem, wr as canonicalHash, wt as NcRuleSchema, x as ClearTrackRelationResultSchema, xn as cosineSimilarity$1, xr as vectorDimFromBase64, xt as NcConditionsSchema, y as COCO_TO_MACRO, yn as buildEventKindDescriptor, yr as templateCarriesSummary, yt as NcAlarmSettingsPatchSchema, z as LabelAttributionSchema, zn as isKnownTemplateVar, zr as ZodObject, zt as RECORDING_EXPORT_MAX_READ_BYTES } from "../clip-model-registry-DPqDIZrG.mjs";
1
+ import { $ as NC_ALARM_SYSTEM_EVENT_KINDS, $n as readDeviceStateFrom, $r as union, $t as SetTrackPurityInputSchema, A as EMBEDDING_REQUIREMENTS_FAILED, An as encodeVectorBase64, Ar as CamProfileSchema, At as NcSnoozeSuppressedSchema, B as ListTrackRelationsInputSchema, Bn as isMediaOwnerType, Br as _enum, Bt as RECORDING_SOURCE_CAMSTACK_ADDON, C as DEFAULT_EVENT_COLOR, Cn as describeSystemEventDeliveryProblem, Cr as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, Ct as NcRulePatchSchema, D as DeclaredDevices, Dn as embeddingRefusalOf, Dr as DeviceType, Dt as NcScheduleSchema, E as DETECTION_PIPELINE_CAP_NAME, Er as isSourceCap, Et as NcRuleUpdateInputSchema, F as EXPORT_DENSE_MAX_RANGES, Fn as gifFromMp4Args, Fr as isDeviceScopedCap, Ft as NcTemplateVarDescriptorSchema, G as MAX_BIRTH_LATENCY_PROXY_MS, Gn as kebabToCamel, Gr as looseObject, Gt as SCENE_DEFAULT_ANCHOR_THRESHOLD, H as LockStateSchema, Hn as isSystemDelivery, Hr as boolean, Ht as RetrainStatusSchema, I as FIRST_LEVEL_MACRO_CLASSES, In as isAudioClassName, Ir as nodePin, It as OPS_LOG_DEFAULT_LIMIT, J as MOTION_CLOSE_AFTER_MS, Jn as notificationRulesCapability, Jr as partialRecord, Jt as SCENE_DEFAULT_QUIET_SECONDS, K as MAX_TRACK_PURITIES, Kn as mayWriteToLocation, Kr as number, Kt as SCENE_DEFAULT_CHECK_INTERVAL_SEC, L as FULL_IMAGE_BBOX, Ln as isDetectionMacroClass, Lt as OpsLogEntrySchema, M as EVENT_DENSITY_BATCH_MAX, Mn as faceGalleryCapability, Mr as customAction, Mt as NcTaxonomySchema, N as EVENT_KIND_BY_CAP, Nn as failureContributionCapability, Nr as defineCustomActions, Nt as NcTemplatePreviewInputSchema, O as DetectionSourceSchema, Or as errMsg, Ot as NcSnoozeInputSchema, P as EVENT_OWNER_TYPES, Pn as gifDeriveSpeed, Pr as hydrateSchema, Pt as NcTemplatePreviewSchema, Q as NC_ALARM_DELAY_MAX_SEC, Qn as plateGalleryCapability, Qr as tuple, Qt as SceneMonitorSchema, R as FailureCounters, Rn as isEventOwnerType, Rr as sleep$1, S as CoverStateSchema, Sn as deriveRecordingMode, Sr as zoneAnalyticsCapability, St as NcRuleInputSchema, T as DETECTION_MACRO_CLASSES, Tr as evaluateSensorEdge, Tt as NcRuleTargetSchema, U as MAX_ARCHIVED_DEBUG_NOTES, Un as isSystemEventSummaryRule, Ur as discriminatedUnion, Ut as SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, V as ListTrackRelationsResultSchema, Vn as isScheduleActive, Vr as array, Vt as RebuildObjectEmbeddingsRefusalSchema, W as MAX_BIRTH_DECISION_RECORDS, Wn as isVectorIndexDimConflict, Wr as literal, Wt as SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, X as MotionTriggeredBySchema, Xr as strictObject, Xt as SCENE_DIVERGED, Y as MediaFileKindEnum, Yn as occupancyScope, Yr as record, Yt as SCENE_DEFAULT_UNCOVERED_POLICY, Z as NC_ALARM_DELAY_FIELDS, Zn as pipelineAnalyticsCapability, Zr as string, Zt as SCENE_RESET_RECAPTURES, _ as BaseDevice, _n as audioMetricsCapability, _r as systemEventSummaryScheduleOf, _t as NcAlarmSensorsInputSchema, a as CLIP_EMBEDDING_STEP_ID, an as TimelapseRulePatchSchema, at as NC_CLIP_RETENTION_MAX_SEC, b as ClearTrackRelationInputSchema, bn as consumableLowPercentOf, br as templateVarsFor, bt as NcConditionDescriptorSchema, c as resolveClusterModelPin, cn as TrackRelationKindSchema, cr as ruleKindOf, ct as NC_CONSUMABLE_SYSTEM_EVENT_KINDS, d as APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, dn as TrackSourceSchema, dr as servedTemplateVars, dt as NC_SNOOZE_MAX_MINUTES, ei as unknown, en as SetTrackPurityResultSchema, er as readMotionTriggeredBy, et as NC_ALARM_TRIGGERED_MAX_SEC, f as ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, fn as addonWidgetsSourceCapability, fr as storageOccupancyCapability, ft as NC_SYSTEM_EVENT_KIND_GROUP_SPECS, g as BIRTH_DECISION_DEFAULT_LIMIT, gn as assertTimelapseCadences, gr as systemEventFilterApplies, gt as NcAlarmConfigSchema, h as ArchivedDebugNoteSchema, hn as applyNonBlockingEdit, hr as systemEventFamilyProblems, ht as NC_TEMPLATE_VARS, in as TimelapseRuleInputSchema, ir as resolveModeDelays, it as NC_CLIP_PRE_ROLL_DEFAULT_SEC, j as EMBEDDING_REQUIREMENTS_UNAVAILABLE, jn as evictionPolicyOfLocation, jr as createEvent, jt as NcSystemEventKindSchema, k as EMBEDDING_MODEL_FAILED, kr as BaseAddon, kt as NcSnoozeSchema, l as APPEARANCE_BIN_COUNT, ln as TrackRelationSchema, lr as sceneMonitorCapability, lt as NC_DEFAULT_SNOOZE_MINUTES, m as AlarmArmModeSchema, mn as applyModeDelaysEdits, mr as systemEventDeliveryProblems, mt as NC_TAXONOMY, nn as TIMELAPSE_DENSE_FLOOR_SEC, nr as resolveClipSearchMinScore, nt as NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, o as FACE_EMBEDDING_STEP_ID, on as TimelapseRuleSchema, or as ruleBelongsToAlarm$1, ot as NC_CONDITION_CATALOG, p as AUDIO_MACRO_LABELS, pn as alarmPanelCapability, pr as subKindsOf, pt as NC_TANK_SYSTEM_EVENT_KINDS, q as MAX_TRACK_RELATIONS, qn as memoizePinnedFfmpeg, qr as object, qt as SCENE_DEFAULT_OBSERVATION_SPACING_SEC, rn as TRACK_RELATIONS_DEFAULT_LIMIT, rr as resolveLocationMode, rt as NC_CLIP_POST_ROLL_DEFAULT_SEC, s as readClusterModelPinStrict, sn as TrackPuritySchema, sr as ruleDeviceCompatCapQueries, st as NC_CONSUMABLE_LOW_PERCENT_DEFAULT, t as BUILTIN_CLIP_MODELS, ti as EventCategory, tn as SetTrackRelationInputSchema, tr as readTimelapseGeneratedAt, tt as NC_AUDIO_CONFIRM_HITS_DEFAULT, u as APPEARANCE_BLOCKS, un as TrackSideSchema, ur as sensorRaisedOf, ut as NC_SENSOR_TRANSITION_KINDS, v as BirthDecisionRecordSchema, vn as audioModeOf, vr as systemEventSummarySplitOf, vt as NcAlarmSensorsSchema, w as DEFAULT_TIMELAPSE_PREVIEW_TEXT, wn as describeSystemEventFamilyProblem, wr as canonicalHash, wt as NcRuleSchema, x as ClearTrackRelationResultSchema, xn as cosineSimilarity$1, xr as vectorDimFromBase64, xt as NcConditionsSchema, y as COCO_TO_MACRO, yn as buildEventKindDescriptor, yr as templateCarriesSummary, yt as NcAlarmSettingsPatchSchema, z as LabelAttributionSchema, zn as isKnownTemplateVar, zr as ZodObject, zt as RECORDING_EXPORT_MAX_READ_BYTES } from "../clip-model-registry-ivwvxxex.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";
@@ -11656,6 +11656,18 @@ function streamHealthAccepted(category, reason) {
11656
11656
  function discardedSystemEvent(event, lookup) {
11657
11657
  const accessory = discardedAccessoryLiveness(event, lookup);
11658
11658
  if (accessory !== null) return accessory;
11659
+ if (event.category === "worker.online" || event.category === "worker.offline") {
11660
+ const workerId = stringField(event.data, "workerId");
11661
+ return {
11662
+ category: event.category,
11663
+ reason: "a runner is not a node",
11664
+ tags: {},
11665
+ meta: {
11666
+ reason: "a runner is not a node",
11667
+ ...workerId !== void 0 ? { workerId } : {}
11668
+ }
11669
+ };
11670
+ }
11659
11671
  if (event.category !== "stream.online" && event.category !== "stream.offline") return null;
11660
11672
  const data = event.data;
11661
11673
  const reason = stringField(data, "reason");
@@ -11982,12 +11994,11 @@ function incomingFromSystemEvent(event, lookup) {
11982
11994
  deviceId
11983
11995
  });
11984
11996
  }
11985
- case "agent.online":
11986
- case "agent.offline":
11987
11997
  case "worker.online":
11988
- case "worker.offline": {
11989
- const agent = event.category.startsWith("agent.");
11990
- const nodeId = stringField(data, agent ? "agentId" : "workerId");
11998
+ case "worker.offline": return null;
11999
+ case "agent.online":
12000
+ case "agent.offline": {
12001
+ const nodeId = stringField(data, "agentId");
11991
12002
  if (nodeId === void 0) return null;
11992
12003
  const kind = event.category.endsWith(".online") ? "node-online" : "node-offline";
11993
12004
  return systemSubject({
@@ -11995,7 +12006,7 @@ function incomingFromSystemEvent(event, lookup) {
11995
12006
  kind,
11996
12007
  subject: `node:${nodeId}`,
11997
12008
  titleKey: `system.${kind}.title`,
11998
- bodyKey: agent ? `system.${kind}.body.agent` : `system.${kind}.body.worker`,
12009
+ bodyKey: `system.${kind}.body.agent`,
11999
12010
  textParams: { nodeId },
12000
12011
  nodeId
12001
12012
  });
@@ -13612,10 +13623,8 @@ var en_default = {
13612
13623
  "system.stream-offline.body.profiled": "{{profile}} stream for camera {{deviceName}} is offline",
13613
13624
  "system.node-online.title": "Node online",
13614
13625
  "system.node-online.body.agent": "Agent {{nodeId}} is online",
13615
- "system.node-online.body.worker": "Worker {{nodeId}} is online",
13616
13626
  "system.node-offline.title": "Node offline",
13617
13627
  "system.node-offline.body.agent": "Agent {{nodeId}} is offline",
13618
- "system.node-offline.body.worker": "Worker {{nodeId}} is offline",
13619
13628
  "system.node-inference-unavailable.title": "Node has no usable inference device",
13620
13629
  "system.node-inference-unavailable.body": "Node {{nodeId}} can no longer run inference — every enabled device is unavailable ({{devices}}). It will not receive cameras until one returns.",
13621
13630
  "system.addon-crash-loop.title": "Addon stopped after repeated crashes",
@@ -13942,10 +13951,8 @@ var it_default = {
13942
13951
  "system.stream-offline.body.profiled": "Lo stream {{profile}} della camera {{deviceName}} è offline",
13943
13952
  "system.node-online.title": "Nodo online",
13944
13953
  "system.node-online.body.agent": "L'agent {{nodeId}} è online",
13945
- "system.node-online.body.worker": "Il worker {{nodeId}} è online",
13946
13954
  "system.node-offline.title": "Nodo offline",
13947
13955
  "system.node-offline.body.agent": "L'agent {{nodeId}} è offline",
13948
- "system.node-offline.body.worker": "Il worker {{nodeId}} è offline",
13949
13956
  "system.node-inference-unavailable.title": "Nodo senza dispositivi di inferenza utilizzabili",
13950
13957
  "system.node-inference-unavailable.body": "Il nodo {{nodeId}} non può più eseguire inferenza — tutti i dispositivi abilitati non sono disponibili ({{devices}}). Non riceverà camere finché uno non torna disponibile.",
13951
13958
  "system.addon-crash-loop.title": "Addon fermato dopo ripetuti crash",
@@ -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-D0JVXXRd.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BocOElW2.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.311",
3
+ "version": "1.2.312",
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",