@camstack/addon-post-analysis 1.2.299 → 1.2.300

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.
@@ -7629,7 +7629,7 @@ function errMsg(err) {
7629
7629
  return String(err);
7630
7630
  }
7631
7631
  //#endregion
7632
- //#region ../types/dist/composition-BK-GTFYb.mjs
7632
+ //#region ../types/dist/composition-Dq42XWp0.mjs
7633
7633
  /**
7634
7634
  * Deterministic SHA-256 hash of an arbitrary serialisable value. The
7635
7635
  * canonical form sorts object keys alphabetically at every depth so two
@@ -7662,6 +7662,58 @@ function replaceWithSortedKeys(_key, value) {
7662
7662
  return value;
7663
7663
  }
7664
7664
  /**
7665
+ * The ffmpeg build every CamStack node downloads, per platform and arch.
7666
+ *
7667
+ * ## Why a download, on every node, including the container
7668
+ *
7669
+ * The version of ffmpeg used to be CODE: baked into the image, changeable only
7670
+ * by rebuilding and rolling it. Now it is DATA — this file states the release,
7671
+ * and a node that boots with a different one downloads it. Changing ffmpeg is a
7672
+ * framework bump, not an image rebuild.
7673
+ *
7674
+ * It also settles the licence question by removing it. FFmpeg's licence is
7675
+ * chosen at compile time: the core is LGPL 2.1+, `--enable-gpl` makes it GPL
7676
+ * (for x264/x265), `--enable-version3` makes that v3, and `--enable-nonfree`
7677
+ * makes the result undistributable. These are GPL v3 builds, and we do not
7678
+ * distribute them: the user's own node fetches the archive from the project
7679
+ * that publishes it, so we convey no GPL work and inherit none of the
7680
+ * obligations that come with conveying one. That is the whole reason the image
7681
+ * no longer installs ffmpeg at all — not a technical preference.
7682
+ *
7683
+ * ## Why jellyfin-ffmpeg
7684
+ *
7685
+ * One vendor covering linux-amd64, linux-arm64, darwin-arm64 and darwin-x64
7686
+ * from one release, with the widest hardware surface of anything maintained:
7687
+ * VAAPI, QSV, NVENC/NVDEC, AMF, Vulkan, OpenCL and DRM on amd64, plus Rockchip
7688
+ * MPP on arm64. It reaches the vendor libraries through dlopen trampolines,
7689
+ * so the binary is not linked against a driver stack it may not find.
7690
+ *
7691
+ * **What it still needs from the host, measured 2026-09-19.** On the Unraid
7692
+ * HOST, which has no libva, `-vaapi_device` aborts the process outright —
7693
+ * `implib-gen: libva-drm.so.2: failed to load library ... Assertion '0 &&
7694
+ * "Assertion in generated code"' failed`. Inside our container, which installs
7695
+ * libva plus the iHD driver, the same command encodes: verified end to end with
7696
+ * `testsrc → format=nv12,hwupload → h264_vaapi`. So the image drops ffmpeg and
7697
+ * KEEPS the Intel media stack; the drivers are the part a binary cannot bring.
7698
+ *
7699
+ * ## Why each artifact carries a checksum and a claim
7700
+ *
7701
+ * The download is now the only source, so `sha256` is verified before anything
7702
+ * is extracted — jellyfin publishes no checksums on its release assets, so
7703
+ * these are ours, taken at the version bump. And `expectedHwaccels` is what the
7704
+ * build is supposed to be able to do: a binary that probes short of its own
7705
+ * claim is a source that changed under us, which is precisely what went
7706
+ * unnoticed for months when a static build turned out to carry no VAAPI at all
7707
+ * (D536).
7708
+ */
7709
+ /** The pinned jellyfin-ffmpeg release. Changing this is the version change. */
7710
+ var FFMPEG_RELEASE = "8.1.2-5";
7711
+ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFMPEG_RELEASE}`;
7712
+ function portable(target) {
7713
+ return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
7714
+ }
7715
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
7716
+ /**
7665
7717
  * LA tabella "quale booleano di questo tipo di device conta come ALTO", e il
7666
7718
  * valutatore puro del suo FRONTE.
7667
7719
  *
@@ -8834,6 +8886,26 @@ function gifFromMp4Args(input) {
8834
8886
  ];
8835
8887
  }
8836
8888
  /**
8889
+ * Memoize `ensure` on SUCCESS only.
8890
+ *
8891
+ * A failure is not remembered: the next caller asks again, so a node whose
8892
+ * first download failed (no network at boot) recovers on the next spawn that
8893
+ * needs it — with no timer and no retry loop, because the ask is driven by
8894
+ * work that actually wants the binary.
8895
+ */
8896
+ function memoizePinnedFfmpeg(ensure) {
8897
+ let pending = null;
8898
+ return () => {
8899
+ if (pending !== null) return pending;
8900
+ const attempt = ensure();
8901
+ pending = attempt;
8902
+ attempt.catch(() => {
8903
+ if (pending === attempt) pending = null;
8904
+ });
8905
+ return attempt;
8906
+ };
8907
+ }
8908
+ /**
8837
8909
  * Deep wiring healthcheck — snapshot of active reachability probes across
8838
8910
  * every declared capability + widget of every installed plugin, on every
8839
8911
  * node. Produced by the backend `WiringHealthService` and surfaced via
@@ -9248,6 +9320,8 @@ var DETECTION_PIPELINE_CAP_NAME = "detection-pipeline";
9248
9320
  * oldest-first on append.
9249
9321
  */
9250
9322
  var MAX_BIRTH_DECISION_RECORDS = 3e4;
9323
+ /** Default page size for `listBirthDecisions` when the caller omits one. */
9324
+ var BIRTH_DECISION_DEFAULT_LIMIT = 500;
9251
9325
  /**
9252
9326
  * How stale a motion onset may be and still be offered as the birth-latency
9253
9327
  * proxy. Beyond this the row records `null`, never a large number.
@@ -9460,6 +9534,8 @@ var BirthDecisionQueryInputSchema = object({
9460
9534
  * `tracks` table measured at 4.6 MB for a single 501-row page.
9461
9535
  */
9462
9536
  var MAX_ARCHIVED_DEBUG_NOTES = 5e3;
9537
+ /** Default page size for `listArchivedDebugNotes` when the caller omits one. */
9538
+ var ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT = 200;
9463
9539
  /** One archived note — the operator's words plus enough context to find what
9464
9540
  * they were looking at, after the track itself is gone. */
9465
9541
  var ArchivedDebugNoteSchema = object({
@@ -9549,6 +9625,8 @@ var OpsLogQueryInputSchema = object({
9549
9625
  /** Max rows returned, newest-first. */
9550
9626
  limit: number().int().min(1).max(1e3).optional()
9551
9627
  });
9628
+ /** Default page size for a `listOpsLog` query when the caller omits `limit`. */
9629
+ var OPS_LOG_DEFAULT_LIMIT = 200;
9552
9630
  var LabelDefinitionSchema = object({
9553
9631
  id: string(),
9554
9632
  name: string(),
@@ -19164,6 +19242,12 @@ var NC_TANK_SYSTEM_EVENT_KINDS = [
19164
19242
  "device-tank-normal"
19165
19243
  ];
19166
19244
  /**
19245
+ * The consumable threshold a rule that does not state one judges at (D642).
19246
+ * The operator's number ("default 15 %, configurable on the rule"), and the
19247
+ * value the cluster-wide setting it replaces shipped with.
19248
+ */
19249
+ var NC_CONSUMABLE_LOW_PERCENT_DEFAULT = 15;
19250
+ /**
19167
19251
  * One coherent system-event condition. `kinds` is the required opt-in safety
19168
19252
  * gate; the remaining lists are optional narrowing filters relevant to the
19169
19253
  * selected kinds.
@@ -19856,6 +19940,24 @@ var NcMediaFrameSchema = _enum([
19856
19940
  * sensor linked to one camera ships that camera's plain snapshot either way.
19857
19941
  */
19858
19942
  var NcLinkedCameraModeSchema = _enum(["mosaic", "each"]);
19943
+ /**
19944
+ * The clip window a rule gets when it stores no `clipPreRollSec` /
19945
+ * `clipPostRollSec` (D654): 4 s before the moment, 6 s after.
19946
+ *
19947
+ * THE one owner. The Notification Center resolves an absent roll to these at
19948
+ * dispatch and sizes the broker's clip ring from them (`clip-retention-ask`).
19949
+ * The admin editor does not author the roll; the viewer editor still keeps its
19950
+ * own 3 / 7 until it imports these (viewer follow-up). A second copy is how the
19951
+ * viewer came to display 3 / 7 — copied from a stale comment on the schema
19952
+ * below — while the hub cut 4 / 6, and to prune a typed 3 back to "absent",
19953
+ * which the hub then read as 4.
19954
+ *
19955
+ * A product decision of the notification, not the broker's history window
19956
+ * (D381/D382): the clip is cut from the broker's per-camera clip ring, which
19957
+ * the rules size, not from a pre-roll dial.
19958
+ */
19959
+ var NC_CLIP_PRE_ROLL_DEFAULT_SEC = 4;
19960
+ var NC_CLIP_POST_ROLL_DEFAULT_SEC = 6;
19859
19961
  var NcMediaPolicySchema = object({
19860
19962
  attach: _enum([
19861
19963
  "best",
@@ -21388,6 +21490,24 @@ var NcAlarmConfigSchema = object({
21388
21490
  live: NcAlarmLiveSchema.optional()
21389
21491
  });
21390
21492
  /**
21493
+ * The most seconds of footage any notification rule may ask a camera to retain.
21494
+ *
21495
+ * Sixty, and it is the OCCUPANCY number. An occupancy edge is confirmed by an
21496
+ * independent read that lands long after the fact (D279) plus the condition's
21497
+ * own `sustainSeconds` (29 s on this hub), so its clip is anchored well in the
21498
+ * past — and the other source, the recordings, cannot cover a recent moment:
21499
+ * measured against `recording.getAvailability` for a 10 s window at several
21500
+ * anchors, full coverage arrived at −18 s on device 590 and −26 s on 615 and
21501
+ * 617. That edge is a PHASE of the 10-second segment cycle, not a number. The
21502
+ * ring therefore has to hold the moment until the recordings can take it over:
21503
+ * the worst measured phase (26 s) plus the confirmation lag (29 s) is 55 s, and
21504
+ * 60 is the round number above it.
21505
+ *
21506
+ * It is a ceiling, not a default. Every other rule kind asks for its own window
21507
+ * plus the dispatch margin, which is roughly a third of this.
21508
+ */
21509
+ var NC_CLIP_RETENTION_MAX_SEC = 60;
21510
+ /**
21391
21511
  * ONE rule's demand on ONE camera's clip ring.
21392
21512
  *
21393
21513
  * A rule, not a camera: the broker takes the MAX over the asks that reach a
@@ -23495,6 +23615,21 @@ var EventDensityBucketSchema = object({
23495
23615
  audioDbfs: number().optional()
23496
23616
  });
23497
23617
  /**
23618
+ * Most cameras one `getEventDensityBatch` may name.
23619
+ *
23620
+ * The same ceiling the sibling batches on this cap already carry
23621
+ * (`listEventKindsBatch`, `getKeyEventsBatch`): a tablet grid is tens of
23622
+ * cameras, never hundreds, and one call's answer is N × (window / bucketMs)
23623
+ * buckets crossing a process boundary.
23624
+ *
23625
+ * The ceiling is on the SCHEMA, not only on the caller. An over-eager ask is
23626
+ * REFUSED — never truncated to the first {@link EVENT_DENSITY_BATCH_MAX} ids,
23627
+ * because that answer is indistinguishable from a complete one and the caller
23628
+ * would never learn it asked too much. A caller with more cameras sends
23629
+ * ⌈n/max⌉ calls.
23630
+ */
23631
+ var EVENT_DENSITY_BATCH_MAX = 200;
23632
+ /**
23498
23633
  * One camera's row in a `getEventDensityBatch` answer.
23499
23634
  *
23500
23635
  * TWO facts, and the timeline draws them differently:
@@ -37643,6 +37778,16 @@ var ExportDenseRangeSchema = object({
37643
37778
  toSec: number().nonnegative()
37644
37779
  }).refine((r) => r.toSec > r.fromSec, { message: "dense range must have toSec > fromSec" });
37645
37780
  /**
37781
+ * Hard ceiling on dense ranges in ONE render.
37782
+ *
37783
+ * The ranges become terms of a single ffmpeg `select` expression, so the count
37784
+ * is the length of a command-line argument. The producer (the timelapse
37785
+ * scheduler) coalesces and then falls back to the base cadence alone rather
37786
+ * than trimming — a truncated range list is a video that quietly omits the
37787
+ * evening.
37788
+ */
37789
+ var EXPORT_DENSE_MAX_RANGES = 200;
37790
+ /**
37646
37791
  * Dense-interval overlay for a timelapse: sample at `dense.everyMs` INSIDE the
37647
37792
  * listed ranges and at the base `everyMs` everywhere else.
37648
37793
  *
@@ -38464,11 +38609,23 @@ var SceneCheckSchema = discriminatedUnion("mode", [object({
38464
38609
  profileId: string().optional(),
38465
38610
  hysteresisCount: number().int().positive()
38466
38611
  })]);
38612
+ /** Defaults, as CONSTANTS rather than only as Zod `.default()`. A Zod default
38613
+ * does NOT run on the addon→addon cap path, so every runtime seam reads these
38614
+ * as absent-with-a-constant (the `NcConfirmSchema` lesson, three production
38615
+ * failures in one day). The schema defaults and these values are the same
38616
+ * numbers on purpose. */
38617
+ var SCENE_DEFAULT_QUIET_SECONDS = 60;
38618
+ var SCENE_DEFAULT_OBSERVATION_SPACING_SEC = 120;
38619
+ var SCENE_DEFAULT_CHECK_INTERVAL_SEC = 60;
38467
38620
  var SCENE_DEFAULT_ANCHOR_THRESHOLD = .85;
38468
38621
  /** Night is OPTIONAL. A scene with only a daylight reference sits the IR hours
38469
38622
  * out in silence rather than reporting a fault every night. */
38470
38623
  var SCENE_DEFAULT_UNCOVERED_POLICY = "skip";
38471
38624
  var SCENE_CONFIRM_DEFAULT_TIMEOUT_MS = 8e3;
38625
+ var SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX = 448;
38626
+ /** `resetScene({ recapture })` absent means TRUE — the operator decision. Read
38627
+ * at the seam, because a Zod `.optional()` carries no default at all. */
38628
+ var SCENE_RESET_RECAPTURES = true;
38472
38629
  /**
38473
38630
  * Vision-model adjudication of a candidate flip. Field names deliberately
38474
38631
  * mirror `NcConfirmSchema` so an operator meets one vocabulary, not two.
@@ -52544,6 +52701,15 @@ function ituDbfsFromPreEpoch(law, authoredDbfs) {
52544
52701
  return authoredDbfs + G711_SCALE_CORRECTION_DB[law];
52545
52702
  }
52546
52703
  Math.round(ituDbfsFromPreEpoch("PCMU", -55));
52704
+ /**
52705
+ * LABEL-mode confirm-count defaults. Chosen against the live "Pianti" rule
52706
+ * (2026-08-23): 15 notifies in 12 h, each a single YAMNet `crying` frame,
52707
+ * nobody actually crying. Two labelled frames in 5 s drops the single-frame
52708
+ * false positives and still catches a real episode (YAMNet labels 2–3
52709
+ * frames of a genuine cry).
52710
+ */
52711
+ var NC_AUDIO_CONFIRM_HITS_DEFAULT = 2;
52712
+ var NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT = 5;
52547
52713
  /** Schema defaults — an untouched sub-field must author exactly these. */
52548
52714
  var NC_AUDIO_DEFAULTS = {
52549
52715
  hitPercent: 60,
@@ -55351,4 +55517,4 @@ function buildClipModelRegistry(entries) {
55351
55517
  /** The built-in catalog's registry. */
55352
55518
  var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
55353
55519
  //#endregion
55354
- export { NcRuleSchema as $, partialRecord as $n, isScheduleActive as $t, LockStateSchema as A, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as An, audioMetricsCapability as At, NC_DEFAULT_SNOOZE_MINUTES as B, defineCustomActions as Bn, embeddingRefusalOf as Bt, EMBEDDING_REQUIREMENTS_UNAVAILABLE as C, systemEventFamilyProblems as Cn, TimelapseRuleInputSchema as Ct, FULL_IMAGE_BBOX as D, templateVarsFor as Dn, addonWidgetsSourceCapability as Dt, FIRST_LEVEL_MACRO_CLASSES as E, templateCarriesSummary as En, TrackSourceSchema as Et, MediaFileKindEnum as F, errMsg as Fn, deriveRecordingMode as Ft, NC_TAXONOMY as G, sleep as Gn, faceGalleryCapability as Gt, NC_SNOOZE_MAX_MINUTES as H, isDeviceScopedCap as Hn, embeddingRequirementsUnavailableError as Ht, MotionTriggeredBySchema as I, BaseAddon as In, describeSystemEventDeliveryProblem as It, NcAlarmSettingsPatchSchema as J, boolean as Jn, gifFromMp4Args as Jt, NC_TEMPLATE_VARS as K, _enum as Kn, failureContributionCapability as Kt, NC_ALARM_SYSTEM_EVENT_KINDS as L, CamProfileSchema as Ln, describeSystemEventFamilyProblem as Lt, MAX_BIRTH_DECISION_RECORDS as M, evaluateSensorEdge as Mn, buildEventKindDescriptor as Mt, MAX_BIRTH_LATENCY_PROXY_MS as N, isSourceCap as Nn, consumableLowPercentOf as Nt, FailureCounters as O, vectorDimFromBase64 as On, alarmPanelCapability as Ot, MOTION_CLOSE_AFTER_MS as P, DeviceType as Pn, cosineSimilarity as Pt, NcRulePatchSchema as Q, object as Qn, isMediaOwnerType as Qt, NC_CONDITION_CATALOG as R, createEvent as Rn, embeddingEncoderCapability as Rt, EMBEDDING_REQUIREMENTS_FAILED as S, systemEventDeliveryProblems as Sn, TIMELAPSE_DENSE_FLOOR_SEC as St, EVENT_OWNER_TYPES as T, systemEventSummaryScheduleOf as Tn, TimelapseRuleSchema as Tt, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as U, nodePin as Un, encodeVectorBase64 as Ut, NC_SENSOR_TRANSITION_KINDS as V, hydrateSchema as Vn, embeddingRequirementsFailedError as Vt, NC_TANK_SYSTEM_EVENT_KINDS as W, normalizeNodeId as Wn, evictionPolicyOfLocation as Wt, NcConditionsSchema as X, literal as Xn, isEventOwnerType as Xt, NcConditionDescriptorSchema as Y, discriminatedUnion as Yn, isDetectionMacroClass as Yt, NcRuleInputSchema as Z, number as Zn, isKnownTemplateVar as Zt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as _, sceneMonitorCapability as _n, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as _t, CLIP_EMBEDDING_STEP_ID as a, notificationRulesCapability as an, NcSnoozeSuppressedSchema as at, DeclaredDevices as b, storageOccupancyCapability as bn, SCENE_DIVERGED as bt, resolveClusterModelPin as c, pipelineAnalyticsCapability as cn, NcTemplatePreviewInputSchema as ct, ArchivedDebugNoteSchema as d, readMotionTriggeredBy as dn, OpsLogEntrySchema as dt, isSystemDelivery as en, record as er, NcRuleTargetSchema as et, BaseDevice as f, readTimelapseGeneratedAt as fn, PoolMemoryWatchdog as ft, DEFAULT_EVENT_COLOR as g, ruleBelongsToAlarm as gn, RetrainStatusSchema as gt, CoverStateSchema as h, resolvePoolMemoryPolicy as hn, RebuildObjectEmbeddingsRefusalSchema as ht, CLIP_TEXT_MODELS as i, mayWriteToLocation as in, NcSnoozeSchema as it, MAX_ARCHIVED_DEBUG_NOTES as j, canonicalHash as jn, audioModeOf as jt, LabelAttributionSchema as k, zoneAnalyticsCapability as kn, assertTimelapseCadences as kt, AUDIO_MACRO_LABELS as l, plateGalleryCapability as ln, NcTemplatePreviewSchema as lt, COCO_TO_MACRO as m, resolveLocationMode as mn, RECORDING_SOURCE_CAMSTACK_ADDON as mt, DEFAULT_CLIP_MODEL as n, isVectorIndexDimConflict as nn, unknown as nr, NcScheduleSchema as nt, FACE_EMBEDDING_STEP_ID as o, occupancyScope as on, NcSystemEventKindSchema as ot, BirthDecisionRecordSchema as p, resolveClipSearchMinScore as pn, RECORDING_EXPORT_MAX_READ_BYTES as pt, NcAlarmConfigSchema as q, array as qn, gifDeriveSpeed as qt, CLIP_IMAGE_MODELS as r, kebabToCamel as rn, EventCategory as rr, NcSnoozeInputSchema as rt, readClusterModelPinStrict as s, parseProcStatus as sn, NcTaxonomySchema as st, BUILTIN_CLIP_MODELS as t, isSystemEventSummaryRule as tn, string as tr, NcRuleUpdateInputSchema as tt, AlarmArmModeSchema as u, readDeviceStateFrom as un, NcTemplateVarDescriptorSchema as ut, DETECTION_MACRO_CLASSES as v, sensorRaisedOf as vn, SCENE_DEFAULT_ANCHOR_THRESHOLD as vt, EVENT_KIND_BY_CAP as w, systemEventFilterApplies as wn, TimelapseRulePatchSchema as wt, EMBEDDING_MODEL_FAILED as x, subKindsOf as xn, SceneMonitorSchema as xt, DETECTION_PIPELINE_CAP_NAME as y, servedTemplateVars as yn, SCENE_DEFAULT_UNCOVERED_POLICY as yt, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as z, customAction as zn, embeddingModelFailedError as zt };
55520
+ export { NC_SYSTEM_EVENT_KIND_GROUP_SPECS as $, BaseAddon as $n, describeSystemEventFamilyProblem as $t, FIRST_LEVEL_MACRO_CLASSES as A, resolveClipSearchMinScore as An, SCENE_DEFAULT_ANCHOR_THRESHOLD as At, MotionTriggeredBySchema as B, systemEventFamilyProblems as Bn, TimelapseRulePatchSchema as Bt, EMBEDDING_MODEL_FAILED as C, occupancyScope as Cn, PoolMemoryWatchdog as Ct, EVENT_KIND_BY_CAP as D, readDeviceStateFrom as Dn, RetrainStatusSchema as Dt, EVENT_DENSITY_BATCH_MAX as E, plateGalleryCapability as En, RebuildObjectEmbeddingsRefusalSchema as Et, MAX_ARCHIVED_DEBUG_NOTES as F, sensorRaisedOf as Fn, SCENE_DIVERGED as Ft, NC_CLIP_PRE_ROLL_DEFAULT_SEC as G, vectorDimFromBase64 as Gn, assertTimelapseCadences as Gt, NC_AUDIO_CONFIRM_HITS_DEFAULT as H, systemEventSummaryScheduleOf as Hn, TrackSourceSchema as Ht, MAX_BIRTH_DECISION_RECORDS as I, servedTemplateVars as In, SCENE_RESET_RECAPTURES as It, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as J, canonicalHash as Jn, buildEventKindDescriptor as Jt, NC_CLIP_RETENTION_MAX_SEC as K, zoneAnalyticsCapability as Kn, audioMetricsCapability as Kt, MAX_BIRTH_LATENCY_PROXY_MS as L, storageOccupancyCapability as Ln, SceneMonitorSchema as Lt, FailureCounters as M, resolvePoolMemoryPolicy as Mn, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as Mt, LabelAttributionSchema as N, ruleBelongsToAlarm as Nn, SCENE_DEFAULT_QUIET_SECONDS as Nt, EVENT_OWNER_TYPES as O, readMotionTriggeredBy as On, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as Ot, LockStateSchema as P, sceneMonitorCapability as Pn, SCENE_DEFAULT_UNCOVERED_POLICY as Pt, NC_SNOOZE_MAX_MINUTES as Q, errMsg as Qn, describeSystemEventDeliveryProblem as Qt, MOTION_CLOSE_AFTER_MS as R, subKindsOf as Rn, TIMELAPSE_DENSE_FLOOR_SEC as Rt, DeclaredDevices as S, notificationRulesCapability as Sn, OpsLogEntrySchema as St, EMBEDDING_REQUIREMENTS_UNAVAILABLE as T, pipelineAnalyticsCapability as Tn, RECORDING_SOURCE_CAMSTACK_ADDON as Tt, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as U, templateCarriesSummary as Un, addonWidgetsSourceCapability as Ut, NC_ALARM_SYSTEM_EVENT_KINDS as V, systemEventFilterApplies as Vn, TimelapseRuleSchema as Vt, NC_CLIP_POST_ROLL_DEFAULT_SEC as W, templateVarsFor as Wn, alarmPanelCapability as Wt, NC_DEFAULT_SNOOZE_MINUTES as X, isSourceCap as Xn, cosineSimilarity as Xt, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as Y, evaluateSensorEdge as Yn, consumableLowPercentOf as Yt, NC_SENSOR_TRANSITION_KINDS as Z, DeviceType as Zn, deriveRecordingMode as Zt, CoverStateSchema as _, isSystemEventSummaryRule as _n, record as _r, NcTaxonomySchema as _t, CLIP_EMBEDDING_STEP_ID as a, encodeVectorBase64 as an, isDeviceScopedCap as ar, NcConditionDescriptorSchema as at, DETECTION_MACRO_CLASSES as b, mayWriteToLocation as bn, EventCategory as br, NcTemplateVarDescriptorSchema as bt, resolveClusterModelPin as c, failureContributionCapability as cn, sleep as cr, NcRulePatchSchema as ct, AlarmArmModeSchema as d, isDetectionMacroClass as dn, boolean as dr, NcRuleUpdateInputSchema as dt, embeddingEncoderCapability as en, CamProfileSchema as er, NC_TANK_SYSTEM_EVENT_KINDS as et, ArchivedDebugNoteSchema as f, isEventOwnerType as fn, discriminatedUnion as fr, NcScheduleSchema as ft, COCO_TO_MACRO as g, isSystemDelivery as gn, partialRecord as gr, NcSystemEventKindSchema as gt, BirthDecisionRecordSchema as h, isScheduleActive as hn, object as hr, NcSnoozeSuppressedSchema as ht, CLIP_TEXT_MODELS as i, embeddingRequirementsUnavailableError as in, hydrateSchema as ir, NcAlarmSettingsPatchSchema as it, FULL_IMAGE_BBOX as j, resolveLocationMode as jn, SCENE_DEFAULT_CHECK_INTERVAL_SEC as jt, EXPORT_DENSE_MAX_RANGES as k, readTimelapseGeneratedAt as kn, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as kt, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as l, gifDeriveSpeed as ln, _enum as lr, NcRuleSchema as lt, BaseDevice as m, isMediaOwnerType as mn, number as mr, NcSnoozeSchema as mt, DEFAULT_CLIP_MODEL as n, embeddingRefusalOf as nn, customAction as nr, NC_TEMPLATE_VARS as nt, FACE_EMBEDDING_STEP_ID as o, evictionPolicyOfLocation as on, nodePin as or, NcConditionsSchema as ot, BIRTH_DECISION_DEFAULT_LIMIT as p, isKnownTemplateVar as pn, literal as pr, NcSnoozeInputSchema as pt, NC_CONDITION_CATALOG as q, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as qn, audioModeOf as qt, CLIP_IMAGE_MODELS as r, embeddingRequirementsFailedError as rn, defineCustomActions as rr, NcAlarmConfigSchema as rt, readClusterModelPinStrict as s, faceGalleryCapability as sn, normalizeNodeId as sr, NcRuleInputSchema as st, BUILTIN_CLIP_MODELS as t, embeddingModelFailedError as tn, createEvent as tr, NC_TAXONOMY as tt, AUDIO_MACRO_LABELS as u, gifFromMp4Args as un, array as ur, NcRuleTargetSchema as ut, DEFAULT_EVENT_COLOR as v, isVectorIndexDimConflict as vn, string as vr, NcTemplatePreviewInputSchema as vt, EMBEDDING_REQUIREMENTS_FAILED as w, parseProcStatus as wn, RECORDING_EXPORT_MAX_READ_BYTES as wt, DETECTION_PIPELINE_CAP_NAME as x, memoizePinnedFfmpeg as xn, OPS_LOG_DEFAULT_LIMIT as xt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as y, kebabToCamel as yn, unknown as yr, NcTemplatePreviewSchema as yt, MediaFileKindEnum as z, systemEventDeliveryProblems as zn, TimelapseRuleInputSchema as zt };