@camstack/addon-post-analysis 1.2.359 → 1.2.361

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (14) hide show
  1. package/dist/{clip-model-registry-LnBofk4d.mjs → clip-model-registry-B69Mktce.mjs} +4016 -9779
  2. package/dist/{clip-model-registry-DyP97b8e.js → clip-model-registry-D8XeJhT4.js} +4015 -9784
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-C3Xtsu5Z.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-CUQTWug8.mjs} +2 -2
  7. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B3Ko_8Ah.mjs +26 -0
  8. package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-X_26tehC.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DOcfQnib.mjs} +1 -1
  9. package/dist/pipeline-analytics/{hostInit-8DkDqLAZ.mjs → hostInit-Be7_ixng.mjs} +2 -2
  10. package/dist/pipeline-analytics/index.js +2088 -14
  11. package/dist/pipeline-analytics/index.mjs +2089 -15
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-eO5a6KRc.mjs +0 -26
@@ -1,4 +1,4 @@
1
- import { $ as MotionTriggeredBySchema, $n as embeddingRefusalOf, $r as servedTemplateVars, A as DetectionSourceSchema, Ai as _enum, An as alarmPanelCapability, Ar as notificationRulesCapability, At as NcConditionDescriptorSchema, B as FailureCounters, Bi as strictObject, Bn as cloneAlarmSettings, Br as resolveLocationMode, Bt as NcScheduleSchema, C as CoverStateSchema, Ci as defineCustomActions, Cn as TrackRelationKindSchema, Cr as isSystemDelivery, Ct as NC_TAXONOMY, D as DETECTION_MACRO_CLASSES, Dn as activateAlarmProfile, Dr as linkedStepOf, Dt as NcAlarmSensorsInputSchema, E as DEFAULT_TIMELAPSE_PREVIEW_TEXT, Ei as nodePin, En as TrackSourceSchema, Er as kebabToCamel, Et as NcAlarmPostTriggeredActionSchema, F as EVENT_KIND_BY_CAP, Fi as looseObject, Fn as assertTimelapseCadences, Fr as readDeviceStateFrom, Ft as NcRuleInputSchema, G as LockStateSchema, Gi as unknown, Gn as deleteAlarmProfile, Gr as ruleAutoTriggersAlarm, Gt as NcStateSummarySectionIdSchema, H as LabelAttributionSchema, Hi as templateLiteral, Hn as coreBlockIdFromAddonId, Hr as resolveModeNotifyPolicy, Ht as NcSnoozeInputSchema, I as EVENT_OWNER_TYPES, Ii as number, In as audioMetricsCapability, Ir as readMotionTriggeredBy, It as NcRulePatchSchema, J as MAX_BIRTH_LATENCY_PROXY_MS, Jn as deriveRecordingMode, Jr as ruleGroupingApplies, Jt as NcTemplatePreviewInputSchema, K as MAX_ARCHIVED_DEBUG_NOTES, Ki as EventCategory, Kn as deriveDetailCropRect, Kr as ruleBelongsToAlarm$1, Kt as NcSystemEventKindSchema, L as EXPORT_DENSE_MAX_RANGES, Li as object, Ln as audioModeOf, Lr as readTimelapseGeneratedAt, Lt as NcRuleSchema, M as EMBEDDING_REQUIREMENTS_FAILED, Mi as boolean, Mn as applyModeDelaysEdits, Mt as NcLegacyRuleActionSequenceSchema, N as EMBEDDING_REQUIREMENTS_UNAVAILABLE, Ni as discriminatedUnion, Nn as applyNonBlockingEdit, Nr as pipelineAnalyticsCapability, Nt as NcRuleActionSchema, O as DETECTION_PIPELINE_CAP_NAME, Oi as sleep$1, On as addonWidgetsSourceCapability, Or as mayWriteToLocation, Ot as NcAlarmSensorsSchema, P as EVENT_DENSITY_BATCH_MAX, Pi as literal, Pn as applySecureOnArmEdit, Pr as plateGalleryCapability, Pt as NcRuleActionsSchema, Q as MediaFileKindEnum, Qr as sensorRaisedOf, Qt as OpsLogEntrySchema, R as FIRST_LEVEL_MACRO_CLASSES, Ri as partialRecord, Rn as buildEventKindDescriptor, Rr as renameAlarmProfile, Rt as NcRuleTargetSchema, S as ClearTrackRelationResultSchema, Si as customAction, Sn as TrackPuritySchema, Sr as isScheduleActive, St as NC_TANK_SYSTEM_EVENT_KINDS, T as DEFAULT_EVENT_COLOR, Ti as isDeviceScopedCap, Tn as TrackSideSchema, Tr as isVectorIndexDimConflict, Tt as NcAlarmConfigSchema, U as ListTrackRelationsInputSchema, Ui as tuple, Un as cosineSimilarity$1, Ut as NcSnoozeSchema, V as LABEL_SUPPLY_MACRO, Vi as string, Vn as consumableLowPercentOf, Vr as resolveModeDelays, Vt as NcSharedSequenceSchema, W as ListTrackRelationsResultSchema, Wi as union, Wn as createAlarmProfile, Wr as rootSupplyServes, Wt as NcSnoozeSuppressedSchema, X as MAX_TRACK_RELATIONS, Xn as describeSystemEventFamilyProblem, Xr as sceneMonitorCapability, Xt as NcTemplateVarDescriptorSchema, Y as MAX_TRACK_PURITIES, Yn as describeSystemEventDeliveryProblem, Yr as ruleKindOf, Yt as NcTemplatePreviewSchema, Z as MOTION_CLOSE_AFTER_MS, Zr as secureActuationFor, Zt as OPS_LOG_DEFAULT_LIMIT, _ as BIRTH_DECISION_DEFAULT_LIMIT, _i as DeviceType, _n as TIMELAPSE_DENSE_FLOOR_SEC, _r as isKnownTemplateVar, _t as NC_GROUPING_MAX_SEC, a as CLIP_EMBEDDING_STEP_ID, ai as systemEventFilterApplies, an as SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, ar as evictionPolicyOfLocation, at as NC_ALARM_SYSTEM_EVENT_KINDS, b as COCO_TO_MACRO, bi as CamProfileSchema, bn as TimelapseRulePatchSchema, br as isRetiredClearKey, bt as NC_SNOOZE_MAX_MINUTES, c as resolveClusterModelPin, ci as templateCarriesSummary, cn as SCENE_DEFAULT_OBSERVATION_SPACING_SEC, cr as gifDeriveSpeed, ct as NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, d as APPEARANCE_BLOCKS, di as viewerLinkBaseOf, dn as SCENE_DIVERGED, dr as isAppLinkBase, dt as NC_CLIP_RETENTION_MAX_SEC, ei as storageOccupancyCapability, en as RECORDING_EXPORT_MAX_READ_BYTES, et as NC_ALARM_DEFAULT_PROFILE_ID, f as APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, fi as zoneAnalyticsCapability, fn as SCENE_RESET_RECAPTURES, fr as isAudioClassName, ft as NC_CONDITION_CATALOG, g as ArchivedDebugNoteSchema, gi as isSourceCap, gn as SetTrackRelationInputSchema, gr as isEventOwnerType, gt as NC_GROUPING_DEFAULT_SEC, h as AlarmArmModeSchema, hi as evaluateSensorEdge, hn as SetTrackPurityResultSchema, hr as isEventKindLabelKey, ht as NC_DEFAULT_SNOOZE_MINUTES, ii as systemEventFamilyProblems, in as SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, ir as eventKindLabel, it as NC_ALARM_NOTIFY_FIELDS, j as EMBEDDING_MODEL_FAILED, ji as array, jn as applyBlockingEdit, jr as occupancyScope, jt as NcConditionsSchema, k as DeclaredDevices, ki as ZodObject, kn as alarmDeviceSecureOnArm, kr as memoizePinnedFfmpeg, kt as NcAlarmSettingsPatchSchema, l as ALL_CAPABILITY_DEFINITIONS, li as templateVarsFor, ln as SCENE_DEFAULT_QUIET_SECONDS, lr as gifFromMp4Args, lt as NC_CLIP_POST_ROLL_DEFAULT_SEC, m as AUDIO_MACRO_LABELS, mi as canonicalHash, mn as SetTrackPurityInputSchema, mr as isDetectionMacroClass, mt as NC_CONSUMABLE_SYSTEM_EVENT_KINDS, ni as syncActiveAlarmProfileSettings, nn as RebuildObjectEmbeddingsRefusalSchema, nr as encodeVectorBase64, nt as NC_ALARM_DELAY_FIELDS, o as FACE_EMBEDDING_STEP_ID, oi as systemEventSummaryScheduleOf, on as SCENE_DEFAULT_ANCHOR_THRESHOLD, or as faceGalleryCapability, ot as NC_ALARM_TRIGGERED_MAX_SEC, p as ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, pi as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, pn as SceneMonitorSchema, pr as isDefaultAlarmProfileId, pt as NC_CONSUMABLE_LOW_PERCENT_DEFAULT, q as MAX_BIRTH_DECISION_RECORDS, qn as derivePostTriggeredAction, qr as ruleDeviceCompatCapQueries, qt as NcTaxonomySchema, ri as systemEventDeliveryProblems, rn as RetrainStatusSchema, rr as ensureAlarmProfiles, rt as NC_ALARM_DELAY_MAX_SEC, s as readClusterModelPinStrict, si as systemEventSummarySplitOf, sn as SCENE_DEFAULT_CHECK_INTERVAL_SEC, sr as failureContributionCapability, st as NC_AUDIO_CONFIRM_HITS_DEFAULT, t as BUILTIN_CLIP_MODELS, ti as subKindsOf, tn as RECORDING_SOURCE_CAMSTACK_ADDON, tt as NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, u as APPEARANCE_BIN_COUNT, ui as vectorDimFromBase64, un as SCENE_DEFAULT_UNCOVERED_POLICY, ur as isAlarmControllableCap, ut as NC_CLIP_PRE_ROLL_DEFAULT_SEC, v as BaseDevice, vi as errMsg, vn as TRACK_RELATIONS_DEFAULT_LIMIT, vr as isLabelSupplyStepId, vt as NC_GROUPING_MIN_SEC, w as DEFAULT_DETAIL_CROP_CONVENTION, wi as hydrateSchema, wn as TrackRelationSchema, wr as isSystemEventSummaryRule, wt as NC_TEMPLATE_VARS, x as ClearTrackRelationInputSchema, xi as createEvent, xn as TimelapseRuleSchema, xr as isRootSuppliableStepId, xt as NC_SYSTEM_EVENT_KIND_GROUP_SPECS, y as BirthDecisionRecordSchema, yi as BaseAddon, yn as TimelapseRuleInputSchema, yr as isMediaOwnerType, yt as NC_SENSOR_TRANSITION_KINDS, z as FULL_IMAGE_BBOX, zi as record, zn as buildViewerLink, zr as resolveClipSearchMinScore, zt as NcRuleUpdateInputSchema } from "../clip-model-registry-LnBofk4d.mjs";
1
+ import { $ as NC_ALARM_DEFAULT_PROFILE_ID, $r as storageOccupancyCapability, $t as RECORDING_EXPORT_MAX_READ_BYTES, A as EMBEDDING_MODEL_FAILED, Ai as array, An as applyBlockingEdit, Ar as occupancyScope, At as NcConditionsSchema, B as LABEL_SUPPLY_MACRO, Bi as string, Bn as consumableLowPercentOf, Br as resolveModeDelays, Bt as NcSharedSequenceSchema, C as DEFAULT_DETAIL_CROP_CONVENTION, Ci as hydrateSchema, Cn as TrackRelationSchema, Cr as isSystemEventSummaryRule, Ct as NC_TEMPLATE_VARS, D as DETECTION_PIPELINE_CAP_NAME, Di as sleep$1, Dn as addonWidgetsSourceCapability, Dr as mayWriteToLocation, Dt as NcAlarmSensorsSchema, E as DETECTION_MACRO_CLASSES, En as activateAlarmProfile, Er as linkedStepOf, Et as NcAlarmSensorsInputSchema, F as EVENT_OWNER_TYPES, Fi as number, Fn as audioMetricsCapability, Fr as readMotionTriggeredBy, Ft as NcRulePatchSchema, G as MAX_ARCHIVED_DEBUG_NOTES, Gi as EventCategory, Gn as deriveDetailCropRect, Gr as ruleBelongsToAlarm$1, Gt as NcSystemEventKindSchema, H as ListTrackRelationsInputSchema, Hi as tuple, Hn as cosineSimilarity$1, Ht as NcSnoozeSchema, I as EXPORT_DENSE_MAX_RANGES, Ii as object, In as audioModeOf, Ir as readTimelapseGeneratedAt, It as NcRuleSchema, J as MAX_TRACK_PURITIES, Jn as describeSystemEventDeliveryProblem, Jr as ruleKindOf, Jt as NcTemplatePreviewSchema, K as MAX_BIRTH_DECISION_RECORDS, Kn as derivePostTriggeredAction, Kr as ruleDeviceCompatCapQueries, Kt as NcTaxonomySchema, L as FIRST_LEVEL_MACRO_CLASSES, Li as partialRecord, Ln as buildEventKindDescriptor, Lr as renameAlarmProfile, Lt as NcRuleTargetSchema, M as EMBEDDING_REQUIREMENTS_UNAVAILABLE, Mi as discriminatedUnion, Mn as applyNonBlockingEdit, Mr as pipelineAnalyticsCapability, Mt as NcRuleActionSchema, N as EVENT_DENSITY_BATCH_MAX, Ni as literal, Nn as applySecureOnArmEdit, Nr as plateGalleryCapability, Nt as NcRuleActionsSchema, O as DeclaredDevices, Oi as ZodObject, On as alarmDeviceSecureOnArm, Or as memoizePinnedFfmpeg, Ot as NcAlarmSettingsPatchSchema, P as EVENT_KIND_BY_CAP, Pi as looseObject, Pn as assertTimelapseCadences, Pr as readDeviceStateFrom, Pt as NcRuleInputSchema, Q as MotionTriggeredBySchema, Qn as embeddingRefusalOf, Qr as servedTemplateVars, R as FULL_IMAGE_BBOX, Ri as record, Rn as buildViewerLink, Rr as resolveClipSearchMinScore, Rt as NcRuleUpdateInputSchema, S as CoverStateSchema, Si as defineCustomActions, Sn as TrackRelationKindSchema, Sr as isSystemDelivery, St as NC_TAXONOMY, T as DEFAULT_TIMELAPSE_PREVIEW_TEXT, Ti as nodePin, Tn as TrackSourceSchema, Tr as kebabToCamel, Tt as NcAlarmPostTriggeredActionSchema, U as ListTrackRelationsResultSchema, Ui as union, Un as createAlarmProfile, Ur as rootSupplyServes, Ut as NcSnoozeSuppressedSchema, V as LabelAttributionSchema, Vi as templateLiteral, Vn as coreBlockIdFromAddonId, Vr as resolveModeNotifyPolicy, Vt as NcSnoozeInputSchema, W as LockStateSchema, Wi as unknown, Wn as deleteAlarmProfile, Wr as ruleAutoTriggersAlarm, Wt as NcStateSummarySectionIdSchema, X as MOTION_CLOSE_AFTER_MS, Xr as secureActuationFor, Xt as OPS_LOG_DEFAULT_LIMIT, Y as MAX_TRACK_RELATIONS, Yn as describeSystemEventFamilyProblem, Yr as sceneMonitorCapability, Yt as NcTemplateVarDescriptorSchema, Z as MediaFileKindEnum, Zr as sensorRaisedOf, Zt as OpsLogEntrySchema, _ as BaseDevice, _i as errMsg, _n as TRACK_RELATIONS_DEFAULT_LIMIT, _r as isLabelSupplyStepId, _t as NC_GROUPING_MIN_SEC, a as CLIP_EMBEDDING_STEP_ID, ai as systemEventSummaryScheduleOf, an as SCENE_DEFAULT_ANCHOR_THRESHOLD, ar as faceGalleryCapability, at as NC_ALARM_TRIGGERED_MAX_SEC, b as ClearTrackRelationInputSchema, bi as createEvent, bn as TimelapseRuleSchema, br as isRootSuppliableStepId, bt as NC_SYSTEM_EVENT_KIND_GROUP_SPECS, c as resolveClusterModelPin, ci as templateVarsFor, cn as SCENE_DEFAULT_QUIET_SECONDS, cr as gifFromMp4Args, ct as NC_CLIP_POST_ROLL_DEFAULT_SEC, d as APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, di as zoneAnalyticsCapability, dn as SCENE_RESET_RECAPTURES, dr as isAudioClassName, dt as NC_CONDITION_CATALOG, ei as subKindsOf, en as RECORDING_SOURCE_CAMSTACK_ADDON, et as NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, f as ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, fi as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, fn as SceneMonitorSchema, fr as isDefaultAlarmProfileId, ft as NC_CONSUMABLE_LOW_PERCENT_DEFAULT, g as BIRTH_DECISION_DEFAULT_LIMIT, gi as DeviceType, gn as TIMELAPSE_DENSE_FLOOR_SEC, gr as isKnownTemplateVar, gt as NC_GROUPING_MAX_SEC, h as ArchivedDebugNoteSchema, hi as isSourceCap, hn as SetTrackRelationInputSchema, hr as isEventOwnerType, ht as NC_GROUPING_DEFAULT_SEC, ii as systemEventFilterApplies, in as SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, ir as evictionPolicyOfLocation, it as NC_ALARM_SYSTEM_EVENT_KINDS, j as EMBEDDING_REQUIREMENTS_FAILED, ji as boolean, jn as applyModeDelaysEdits, jt as NcLegacyRuleActionSequenceSchema, k as DetectionSourceSchema, ki as _enum, kn as alarmPanelCapability, kr as notificationRulesCapability, kt as NcConditionDescriptorSchema, l as APPEARANCE_BIN_COUNT, li as vectorDimFromBase64, ln as SCENE_DEFAULT_UNCOVERED_POLICY, lr as isAlarmControllableCap, lt as NC_CLIP_PRE_ROLL_DEFAULT_SEC, m as AlarmArmModeSchema, mi as evaluateSensorEdge, mn as SetTrackPurityResultSchema, mr as isEventKindLabelKey, mt as NC_DEFAULT_SNOOZE_MINUTES, ni as systemEventDeliveryProblems, nn as RetrainStatusSchema, nr as ensureAlarmProfiles, nt as NC_ALARM_DELAY_MAX_SEC, o as FACE_EMBEDDING_STEP_ID, oi as systemEventSummarySplitOf, on as SCENE_DEFAULT_CHECK_INTERVAL_SEC, or as failureContributionCapability, ot as NC_AUDIO_CONFIRM_HITS_DEFAULT, p as AUDIO_MACRO_LABELS, pi as canonicalHash, pn as SetTrackPurityInputSchema, pr as isDetectionMacroClass, pt as NC_CONSUMABLE_SYSTEM_EVENT_KINDS, q as MAX_BIRTH_LATENCY_PROXY_MS, qn as deriveRecordingMode, qr as ruleGroupingApplies, qt as NcTemplatePreviewInputSchema, ri as systemEventFamilyProblems, rn as SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, rr as eventKindLabel, rt as NC_ALARM_NOTIFY_FIELDS, s as readClusterModelPinStrict, si as templateCarriesSummary, sn as SCENE_DEFAULT_OBSERVATION_SPACING_SEC, sr as gifDeriveSpeed, st as NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, t as BUILTIN_CLIP_MODELS, ti as syncActiveAlarmProfileSettings, tn as RebuildObjectEmbeddingsRefusalSchema, tr as encodeVectorBase64, tt as NC_ALARM_DELAY_FIELDS, u as APPEARANCE_BLOCKS, ui as viewerLinkBaseOf, un as SCENE_DIVERGED, ur as isAppLinkBase, ut as NC_CLIP_RETENTION_MAX_SEC, v as BirthDecisionRecordSchema, vi as BaseAddon, vn as TimelapseRuleInputSchema, vr as isMediaOwnerType, vt as NC_SENSOR_TRANSITION_KINDS, w as DEFAULT_EVENT_COLOR, wi as isDeviceScopedCap, wn as TrackSideSchema, wr as isVectorIndexDimConflict, wt as NcAlarmConfigSchema, x as ClearTrackRelationResultSchema, xi as customAction, xn as TrackPuritySchema, xr as isScheduleActive, xt as NC_TANK_SYSTEM_EVENT_KINDS, y as COCO_TO_MACRO, yi as CamProfileSchema, yn as TimelapseRulePatchSchema, yr as isRetiredClearKey, yt as NC_SNOOZE_MAX_MINUTES, z as FailureCounters, zi as strictObject, zn as cloneAlarmSettings, zr as resolveLocationMode, zt as NcScheduleSchema } from "../clip-model-registry-B69Mktce.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";
@@ -9,13 +9,13 @@ import { execFile } from "node:child_process";
9
9
  import { startEventLoopStallMonitor } from "@camstack/system/addon-utils";
10
10
  import { pipeline } from "node:stream/promises";
11
11
  import { Readable } from "node:stream";
12
+ import { createGzip, gunzip, gunzipSync, gzip, gzipSync } from "node:zlib";
13
+ import os from "node:os";
12
14
  import fs, { readFile } from "node:fs/promises";
13
15
  import sharp from "sharp";
14
- import os from "node:os";
15
16
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
16
17
  import { isDeepStrictEqual, promisify } from "node:util";
17
18
  import { Buffer as Buffer$1 } from "node:buffer";
18
- import { createGzip, gunzip, gunzipSync, gzip, gzipSync } from "node:zlib";
19
19
  import { request } from "node:http";
20
20
  import { request as request$1 } from "node:https";
21
21
  //#region src/pipeline-analytics/media-occupancy.ts
@@ -4337,6 +4337,7 @@ var node_exports = /* @__PURE__ */ __exportAll({
4337
4337
  verifyExpiringUrl: () => verifyExpiringUrl,
4338
4338
  writeFileAtomic: () => writeFileAtomic
4339
4339
  });
4340
+ process.platform, process.env["SystemRoot"];
4340
4341
  /**
4341
4342
  * Download portable Python (headless) from bjia56/portable-python.
4342
4343
  *
@@ -4351,7 +4352,9 @@ var node_exports = /* @__PURE__ */ __exportAll({
4351
4352
  * The zip's top-level dir is platform-specific (e.g.
4352
4353
  * `python-headless-3.12.12-darwin-universal2/`); after extraction
4353
4354
  * we rename it to a stable `python/` so consumers can rely on
4354
- * `<dataDir>/deps/python/bin/python3`.
4355
+ * `<dataDir>/deps/python/bin/python3` (`bin/python.exe` on Windows: that build
4356
+ * keeps its launcher in `bin/` beside the DLLs, with `Lib/` at the root, so
4357
+ * `<root>/bin/<interpreter>` holds on every platform).
4355
4358
  */
4356
4359
  var PYTHON_VERSION = "3.12.12";
4357
4360
  `${PYTHON_VERSION}`;
@@ -49022,7 +49025,7 @@ function toAsciiZipName(name) {
49022
49025
  return name.replace(/[^A-Za-z0-9._/-]/g, "_");
49023
49026
  }
49024
49027
  /** CRC-32 (IEEE 802.3), the checksum every ZIP entry header carries. */
49025
- function crc32(buf) {
49028
+ function crc32$1(buf) {
49026
49029
  let c = 4294967295;
49027
49030
  for (const byte of buf) c = CRC_TABLE[(c ^ byte) & 255] ^ c >>> 8;
49028
49031
  return (c ^ 4294967295) >>> 0;
@@ -49152,7 +49155,7 @@ var ZipStreamWriter = class {
49152
49155
  async add(entry) {
49153
49156
  if (!this.fits(entry)) return false;
49154
49157
  const nameBytes = Buffer.from(toAsciiZipName(entry.name), "ascii");
49155
- const crc = crc32(entry.body);
49158
+ const crc = crc32$1(entry.body);
49156
49159
  const { time, date } = dosDateTime(entry.mtimeMs);
49157
49160
  const header = zipLocalHeader(entry, crc, nameBytes);
49158
49161
  this.entries.push({
@@ -79820,6 +79823,67 @@ var DeviceSettingsCacheHub = class {
79820
79823
  }
79821
79824
  };
79822
79825
  //#endregion
79826
+ //#region src/pipeline-analytics/inherited-device-values.ts
79827
+ /**
79828
+ * What a camera's Analytics form SHOWS for a field this camera never saved.
79829
+ *
79830
+ * The runtime resolves every per-device analytics setting from
79831
+ * `{ ...globalRaw, ...deviceRaw }` (`readDeviceSettings`): the cluster value
79832
+ * stands until the camera writes its own. The form used to hydrate from
79833
+ * `deviceRaw` alone, so a never-saved field rendered the SCHEMA default — a
79834
+ * number the runtime was not using whenever the cluster had set its own. An
79835
+ * operator who read "5" there and saved another field changed nothing, but had
79836
+ * every reason to believe the camera ran at 5.
79837
+ *
79838
+ * Two rules, both pinned by `inherited-device-values.spec.ts`:
79839
+ * - the displayed value is the EFFECTIVE one (`{ ...globalRaw, ...deviceRaw }`),
79840
+ * the same merge the resolvers use;
79841
+ * - a field showing the cluster value says so in its description, and the
79842
+ * form still saves only what the operator edits, so showing an inherited
79843
+ * value never freezes it onto the camera.
79844
+ */
79845
+ /** Appended to the description of a field whose value comes from the cluster. */
79846
+ var INHERITED_FROM_GLOBAL_NOTE = "Shown value is the cluster-wide setting. Change it here to override it for this camera only.";
79847
+ function hasOwn(bag, key) {
79848
+ return Object.prototype.hasOwnProperty.call(bag, key);
79849
+ }
79850
+ function markInherited(field, globalRaw, deviceRaw) {
79851
+ if (field.type === "group") return {
79852
+ ...field,
79853
+ fields: field.fields.map((f) => markInherited(f, globalRaw, deviceRaw))
79854
+ };
79855
+ if (field.type === "sub-tabs") return {
79856
+ ...field,
79857
+ tabs: field.tabs.map((tab) => ({
79858
+ ...tab,
79859
+ fields: tab.fields.map((f) => markInherited(f, globalRaw, deviceRaw))
79860
+ }))
79861
+ };
79862
+ if (!("value" in field)) return field;
79863
+ if (!hasOwn(globalRaw, field.key) || hasOwn(deviceRaw, field.key)) return field;
79864
+ const description = field.description === void 0 ? INHERITED_FROM_GLOBAL_NOTE : `${field.description} ${INHERITED_FROM_GLOBAL_NOTE}`;
79865
+ return {
79866
+ ...field,
79867
+ description
79868
+ };
79869
+ }
79870
+ /**
79871
+ * Hydrate per-camera sections with the effective value of each field.
79872
+ *
79873
+ * @param schema the per-device schema (global schema, already re-tabbed)
79874
+ * @param deviceRaw the camera's own blob — only what it saved
79875
+ * @param globalRaw the cluster store
79876
+ */
79877
+ function hydrateWithInheritedGlobals(schema, deviceRaw, globalRaw) {
79878
+ return hydrateSchema(schema, {
79879
+ ...globalRaw,
79880
+ ...deviceRaw
79881
+ }).sections.map((section) => ({
79882
+ ...section,
79883
+ fields: section.fields.map((f) => markInherited(f, globalRaw, deviceRaw))
79884
+ }));
79885
+ }
79886
+ //#endregion
79823
79887
  //#region src/pipeline-analytics/device-zone-resolver.ts
79824
79888
  /**
79825
79889
  * How long a catalogue read from the capability is trusted. Only consulted when
@@ -104135,6 +104199,1998 @@ async function projectSensorMarkers(deps, data, timestamp) {
104135
104199
  });
104136
104200
  return landed;
104137
104201
  }
104202
+ Object.freeze({
104203
+ "addons": { "getLogs": { "limit": 100 } },
104204
+ "audio-analyzer": {
104205
+ "analyseChunk": { "settings": { "__nested__": {
104206
+ "minConfidence": .3,
104207
+ "allowedClasses": []
104208
+ } } },
104209
+ "attachDevice": { "settings": { "__nested__": {
104210
+ "minConfidence": .3,
104211
+ "allowedClasses": []
104212
+ } } }
104213
+ },
104214
+ "audio-codec": {
104215
+ "pullEncoded": { "maxCount": 8 },
104216
+ "pullPcm": { "maxCount": 8 }
104217
+ },
104218
+ "battery": { "wakeForStream": { "timeoutMs": 8e3 } },
104219
+ "device-adoption": { "listCandidates": {
104220
+ "page": 1,
104221
+ "pageSize": 50
104222
+ } },
104223
+ "device-manager": { "adoptionListCandidates": {
104224
+ "page": 1,
104225
+ "pageSize": 50
104226
+ } },
104227
+ "llm": { "upsertProfile": { "profile": { "__nested__": {
104228
+ "timeoutMs": 6e4,
104229
+ "connectTimeoutMs": 1e4,
104230
+ "firstTokenTimeoutMs": 12e4,
104231
+ "idleTimeoutMs": 6e4,
104232
+ "retry": {
104233
+ "enabled": false,
104234
+ "maxAttempts": 1
104235
+ },
104236
+ "toolsEnabled": false
104237
+ } } } },
104238
+ "llm-runtime": {
104239
+ "complete": { "runtime": { "__nested__": {
104240
+ "contextSize": 4096,
104241
+ "gpuLayers": 0,
104242
+ "parallel": 1,
104243
+ "flashAttention": false,
104244
+ "mlock": false,
104245
+ "noMmap": false,
104246
+ "extraArgs": [],
104247
+ "autoStart": false,
104248
+ "idleStopMinutes": 30
104249
+ } } },
104250
+ "ensureStarted": { "runtime": { "__nested__": {
104251
+ "contextSize": 4096,
104252
+ "gpuLayers": 0,
104253
+ "parallel": 1,
104254
+ "flashAttention": false,
104255
+ "mlock": false,
104256
+ "noMmap": false,
104257
+ "extraArgs": [],
104258
+ "autoStart": false,
104259
+ "idleStopMinutes": 30
104260
+ } } }
104261
+ },
104262
+ "mqtt-broker": { "startEmbeddedBroker": {
104263
+ "port": 1883,
104264
+ "allowAnonymous": false
104265
+ } },
104266
+ "nodes": { "getCapUsageGraph": { "windowSeconds": 60 } },
104267
+ "notification-output": { "send": { "notification": { "__nested__": {
104268
+ "format": "text",
104269
+ "priority": 3
104270
+ } } } },
104271
+ "notification-rules": {
104272
+ "createRule": { "rule": { "__nested__": {
104273
+ "enabled": true,
104274
+ "conditions": {},
104275
+ "media": { "attach": "best" },
104276
+ "throttle": {
104277
+ "cooldownSec": 60,
104278
+ "scope": "rule-device"
104279
+ },
104280
+ "priority": 3
104281
+ } } },
104282
+ "getHistory": { "filter": { "limit": 100 } },
104283
+ "previewStateSummary": { "rule": { "__nested__": {
104284
+ "enabled": true,
104285
+ "conditions": {},
104286
+ "media": { "attach": "best" },
104287
+ "throttle": {
104288
+ "cooldownSec": 60,
104289
+ "scope": "rule-device"
104290
+ },
104291
+ "priority": 3
104292
+ } } },
104293
+ "testRule": {
104294
+ "rule": { "__nested__": {
104295
+ "enabled": true,
104296
+ "conditions": {},
104297
+ "media": { "attach": "best" },
104298
+ "throttle": {
104299
+ "cooldownSec": 60,
104300
+ "scope": "rule-device"
104301
+ },
104302
+ "priority": 3
104303
+ } },
104304
+ "lookbackMinutes": 60
104305
+ }
104306
+ },
104307
+ "osd-manager": {
104308
+ "setSlotBinding": { "binding": { "__nested__": {
104309
+ "enabled": true,
104310
+ "template": "${value}",
104311
+ "maxDecimals": 1
104312
+ } } },
104313
+ "upsertTemplate": { "template": { "__nested__": {
104314
+ "bindings": [],
104315
+ "parser": ""
104316
+ } } }
104317
+ },
104318
+ "pipeline-analytics": {
104319
+ "getAudioEvents": { "limit": 1e3 },
104320
+ "getKeyEvents": { "limit": 50 },
104321
+ "getKeyEventsBatch": { "limit": 50 },
104322
+ "getMotionEvents": { "limit": 1e3 },
104323
+ "getObjectEvents": { "limit": 1e3 },
104324
+ "getSensorEvents": { "limit": 1e3 },
104325
+ "listRecentTracks": { "limit": 200 },
104326
+ "listRetrainCorpusPage": {
104327
+ "page": 1,
104328
+ "pageSize": 50
104329
+ },
104330
+ "reclaimDebugMedia": { "mode": "report" },
104331
+ "resolveRetrainTrainingCorpus": { "workState": "complete" },
104332
+ "searchObjectEvents": { "limit": 50 }
104333
+ },
104334
+ "pipeline-orchestrator": {
104335
+ "applyAutoTune": {
104336
+ "headroom": .4,
104337
+ "minSessionsPerDevice": 2
104338
+ },
104339
+ "getNodeBenchmarkPreflight": {
104340
+ "phases": ["device", "pipeline"],
104341
+ "steps": [],
104342
+ "fpsPerStream": 10,
104343
+ "budgetMinutes": 45,
104344
+ "keepDownloadedModels": false,
104345
+ "acceptInsufficientHeadroom": false
104346
+ },
104347
+ "getPlacementStats": { "windowMs": 36e5 },
104348
+ "planAutoTune": {
104349
+ "headroom": .4,
104350
+ "minSessionsPerDevice": 2
104351
+ },
104352
+ "setLoadBalancingShares": {
104353
+ "nodes": {},
104354
+ "devices": {}
104355
+ },
104356
+ "startNodeBenchmark": {
104357
+ "phases": ["device", "pipeline"],
104358
+ "steps": [],
104359
+ "fpsPerStream": 10,
104360
+ "budgetMinutes": 45,
104361
+ "keepDownloadedModels": false,
104362
+ "acceptInsufficientHeadroom": false
104363
+ },
104364
+ "suggestShares": {
104365
+ "headroom": .4,
104366
+ "source": "hardware"
104367
+ }
104368
+ },
104369
+ "pipeline-runner": {
104370
+ "attachCamera": {
104371
+ "detectionMode": "on-motion",
104372
+ "audioMode": "always-on",
104373
+ "motionCooldownMs": 3e4,
104374
+ "motionFps": 4,
104375
+ "detectionFps": 10,
104376
+ "motionSources": ["analyzer"],
104377
+ "detectionSources": ["pipeline"],
104378
+ "pipelineEnabled": true,
104379
+ "zones": [],
104380
+ "onboardMotionDrivesAnalyzer": true,
104381
+ "preRollInferenceEnabled": true,
104382
+ "preRollInferenceFrames": 12,
104383
+ "occupancyRecheckEnabled": true,
104384
+ "occupancyRecheckSec": 300,
104385
+ "occupancyRecheckFrames": 4,
104386
+ "frameSource": { "kind": "local-broker" }
104387
+ },
104388
+ "reportMotion": { "source": "analyzer" },
104389
+ "startNodeBench": {
104390
+ "steps": [],
104391
+ "settleSec": 5,
104392
+ "measureSec": 20,
104393
+ "keepDownloadedModels": false
104394
+ }
104395
+ },
104396
+ "recording-archive": {
104397
+ "renderClip": {
104398
+ "preRollSec": 3,
104399
+ "postRollSec": 7,
104400
+ "maxWidth": 640
104401
+ },
104402
+ "renderGif": {
104403
+ "preRollSec": 2,
104404
+ "postRollSec": 5,
104405
+ "maxWidth": 480,
104406
+ "fps": 5
104407
+ },
104408
+ "setDeviceConfig": { "config": { "__nested__": { "bands": [] } } }
104409
+ },
104410
+ "storage": { "upsertLocation": { "isSystem": false } },
104411
+ "storage-provider": {
104412
+ "beginDownload": { "location": { "__nested__": { "isSystem": false } } },
104413
+ "beginUpload": { "location": { "__nested__": { "isSystem": false } } },
104414
+ "delete": { "location": { "__nested__": { "isSystem": false } } },
104415
+ "exists": { "location": { "__nested__": { "isSystem": false } } },
104416
+ "getAvailableSpace": { "location": { "__nested__": { "isSystem": false } } },
104417
+ "list": { "location": { "__nested__": { "isSystem": false } } },
104418
+ "read": { "location": { "__nested__": { "isSystem": false } } },
104419
+ "resolve": { "location": { "__nested__": { "isSystem": false } } },
104420
+ "write": { "location": { "__nested__": { "isSystem": false } } }
104421
+ },
104422
+ "stream-broker": {
104423
+ "produceEventMedia": {
104424
+ "preSeconds": 4,
104425
+ "postSeconds": 6,
104426
+ "kinds": ["mp4"],
104427
+ "gifMaxWidth": 640,
104428
+ "gifFps": 12,
104429
+ "gifSpeed": 4,
104430
+ "speed": 4
104431
+ },
104432
+ "pullAudioChunks": { "maxCount": 8 },
104433
+ "renderPreBufferClip": {
104434
+ "preRollSec": 3,
104435
+ "postRollSec": 5,
104436
+ "format": "gif",
104437
+ "maxWidth": 480,
104438
+ "fps": 5,
104439
+ "speed": 2
104440
+ }
104441
+ },
104442
+ "terminal-session": { "pullOutput": { "waitMs": 0 } },
104443
+ "training": {
104444
+ "planJob": { "selection": { "__nested__": { "workState": "complete" } } },
104445
+ "startJob": { "selection": { "__nested__": { "workState": "complete" } } },
104446
+ "startJobBatch": { "selection": { "__nested__": { "workState": "complete" } } }
104447
+ },
104448
+ "user-management": { "createUser": { "isAdmin": false } },
104449
+ "vector-store": {
104450
+ "declareIndex": { "metric": "cosine" },
104451
+ "scan": { "cursor": 0 }
104452
+ },
104453
+ "zones": {
104454
+ "addZone": { "zone": { "__nested__": {
104455
+ "kind": "polygon",
104456
+ "color": "#3b82f6"
104457
+ } } },
104458
+ "updateZone": { "zone": { "__nested__": {
104459
+ "kind": "polygon",
104460
+ "color": "#3b82f6"
104461
+ } } }
104462
+ }
104463
+ });
104464
+ Object.freeze({
104465
+ "addon-pages-source": ["listPages"],
104466
+ "addon-routes": ["getRoutes"],
104467
+ "addon-widgets-source": ["listWidgets"],
104468
+ "broker": ["list", "listProviders"],
104469
+ "calendar-source": ["listCalendars", "listEvents"],
104470
+ "custom-model-registry": ["listModels"],
104471
+ "data-store-provider": ["histogram", "query"],
104472
+ "device-export": ["listExposedDevices", "listSupportedDeviceKinds"],
104473
+ "device-extension": ["listSlots", "listSources"],
104474
+ "device-provider": ["discoverDevices", "getDevices"],
104475
+ "failure-contribution": ["list"],
104476
+ "llm": [
104477
+ "getDefaults",
104478
+ "getUsage",
104479
+ "listModelCatalog",
104480
+ "listModels",
104481
+ "listNodeModels",
104482
+ "listProfileKinds",
104483
+ "listProfiles",
104484
+ "listRuntimeNodes"
104485
+ ],
104486
+ "load-contribution": ["list"],
104487
+ "log-channels": ["list"],
104488
+ "log-destination": ["query"],
104489
+ "login-method": ["getLoginMethods"],
104490
+ "mqtt-broker": ["listBrokers"],
104491
+ "network-access": ["listEndpoints"],
104492
+ "notification-output": [
104493
+ "discoverTargets",
104494
+ "listTargetKinds",
104495
+ "listTargets"
104496
+ ],
104497
+ "recording": ["listSources"],
104498
+ "storage-occupancy": ["getOccupancy"],
104499
+ "storage-provider": ["list"],
104500
+ "training-provider": [
104501
+ "describe",
104502
+ "describeTypes",
104503
+ "listEntries",
104504
+ "listJobs"
104505
+ ],
104506
+ "turn-provider": ["getTurnServers"],
104507
+ "user-passkeys": ["listPasskeys"],
104508
+ "videoclips": ["listClips", "listSources"]
104509
+ });
104510
+ Object.freeze({ "videoclips": [
104511
+ "dialClipStream",
104512
+ "getPlaybackOptions",
104513
+ "offerClipBytes",
104514
+ "readClipBytes"
104515
+ ] });
104516
+ /** cap name -> the numeric state field whose strict advance IS the cap's one-shot event. */
104517
+ var CAP_ADVANCE_FIELDS = Object.freeze({ "doorbell": "lastPressedAt" });
104518
+ Object.freeze({
104519
+ "air-quality-sensor": [
104520
+ {
104521
+ "path": "co2Ppm",
104522
+ "valueType": "number"
104523
+ },
104524
+ {
104525
+ "path": "vocPpb",
104526
+ "valueType": "number"
104527
+ },
104528
+ {
104529
+ "path": "pm25",
104530
+ "valueType": "number"
104531
+ },
104532
+ {
104533
+ "path": "pm10",
104534
+ "valueType": "number"
104535
+ },
104536
+ {
104537
+ "path": "aqi",
104538
+ "valueType": "number"
104539
+ },
104540
+ {
104541
+ "path": "unit",
104542
+ "valueType": "string"
104543
+ },
104544
+ {
104545
+ "path": "precision",
104546
+ "valueType": "number"
104547
+ }
104548
+ ],
104549
+ "alarm-panel": [
104550
+ {
104551
+ "path": "state",
104552
+ "valueType": "enum",
104553
+ "enumValues": [
104554
+ "disarmed",
104555
+ "armed_home",
104556
+ "armed_away",
104557
+ "armed_night",
104558
+ "armed_vacation",
104559
+ "armed_custom_bypass",
104560
+ "arming",
104561
+ "disarming",
104562
+ "pending",
104563
+ "triggered"
104564
+ ]
104565
+ },
104566
+ {
104567
+ "path": "targetMode",
104568
+ "valueType": "enum",
104569
+ "enumValues": [
104570
+ "home",
104571
+ "away",
104572
+ "night",
104573
+ "vacation",
104574
+ "custom_bypass"
104575
+ ]
104576
+ },
104577
+ {
104578
+ "path": "requiresCode",
104579
+ "valueType": "boolean"
104580
+ }
104581
+ ],
104582
+ "ambient-light-sensor": [
104583
+ {
104584
+ "path": "lux",
104585
+ "valueType": "number"
104586
+ },
104587
+ {
104588
+ "path": "unit",
104589
+ "valueType": "string"
104590
+ },
104591
+ {
104592
+ "path": "precision",
104593
+ "valueType": "number"
104594
+ }
104595
+ ],
104596
+ "audio-metrics": [
104597
+ {
104598
+ "path": "ts",
104599
+ "valueType": "number"
104600
+ },
104601
+ {
104602
+ "path": "windowSec",
104603
+ "valueType": "number"
104604
+ },
104605
+ {
104606
+ "path": "level.rms",
104607
+ "valueType": "number"
104608
+ },
104609
+ {
104610
+ "path": "level.dbfs",
104611
+ "valueType": "number"
104612
+ },
104613
+ {
104614
+ "path": "peakDbfs",
104615
+ "valueType": "number"
104616
+ },
104617
+ {
104618
+ "path": "avgDbfs",
104619
+ "valueType": "number"
104620
+ },
104621
+ {
104622
+ "path": "current.className",
104623
+ "valueType": "string"
104624
+ },
104625
+ {
104626
+ "path": "current.score",
104627
+ "valueType": "number"
104628
+ },
104629
+ {
104630
+ "path": "current.timestamp",
104631
+ "valueType": "number"
104632
+ }
104633
+ ],
104634
+ "automation-control": [
104635
+ {
104636
+ "path": "enabled",
104637
+ "valueType": "boolean"
104638
+ },
104639
+ {
104640
+ "path": "isRunning",
104641
+ "valueType": "boolean"
104642
+ },
104643
+ {
104644
+ "path": "lastTriggeredAt",
104645
+ "valueType": "number"
104646
+ },
104647
+ {
104648
+ "path": "lastError",
104649
+ "valueType": "string"
104650
+ }
104651
+ ],
104652
+ "battery": [
104653
+ {
104654
+ "path": "percentage",
104655
+ "valueType": "number"
104656
+ },
104657
+ {
104658
+ "path": "charging",
104659
+ "valueType": "enum",
104660
+ "enumValues": [
104661
+ "dc",
104662
+ "solar",
104663
+ "none",
104664
+ "unknown"
104665
+ ]
104666
+ },
104667
+ {
104668
+ "path": "sleeping",
104669
+ "valueType": "boolean"
104670
+ },
104671
+ {
104672
+ "path": "lastUpdated",
104673
+ "valueType": "number"
104674
+ },
104675
+ {
104676
+ "path": "lastContactAt",
104677
+ "valueType": "number"
104678
+ },
104679
+ {
104680
+ "path": "lastFullRefreshAt",
104681
+ "valueType": "number"
104682
+ },
104683
+ {
104684
+ "path": "binary",
104685
+ "valueType": "boolean"
104686
+ }
104687
+ ],
104688
+ "binary": [{
104689
+ "path": "on",
104690
+ "valueType": "boolean"
104691
+ }],
104692
+ "brightness": [{
104693
+ "path": "percentage",
104694
+ "valueType": "number"
104695
+ }],
104696
+ "broker": [{
104697
+ "path": "brokerCount",
104698
+ "valueType": "number"
104699
+ }, {
104700
+ "path": "connectedCount",
104701
+ "valueType": "number"
104702
+ }],
104703
+ "camera-credentials": [
104704
+ {
104705
+ "path": "host",
104706
+ "valueType": "string"
104707
+ },
104708
+ {
104709
+ "path": "port",
104710
+ "valueType": "number"
104711
+ },
104712
+ {
104713
+ "path": "onvifPort",
104714
+ "valueType": "number"
104715
+ },
104716
+ {
104717
+ "path": "rtspPort",
104718
+ "valueType": "number"
104719
+ },
104720
+ {
104721
+ "path": "https",
104722
+ "valueType": "boolean"
104723
+ },
104724
+ {
104725
+ "path": "hasUsername",
104726
+ "valueType": "boolean"
104727
+ },
104728
+ {
104729
+ "path": "hasPassword",
104730
+ "valueType": "boolean"
104731
+ },
104732
+ {
104733
+ "path": "onvifProfile",
104734
+ "valueType": "string"
104735
+ }
104736
+ ],
104737
+ "camera-streams": [
104738
+ {
104739
+ "path": "online",
104740
+ "valueType": "boolean"
104741
+ },
104742
+ {
104743
+ "path": "slotStatuses.high",
104744
+ "valueType": "enum",
104745
+ "enumValues": [
104746
+ "unassigned",
104747
+ "idle",
104748
+ "connecting",
104749
+ "streaming",
104750
+ "error"
104751
+ ]
104752
+ },
104753
+ {
104754
+ "path": "slotStatuses.mid",
104755
+ "valueType": "enum",
104756
+ "enumValues": [
104757
+ "unassigned",
104758
+ "idle",
104759
+ "connecting",
104760
+ "streaming",
104761
+ "error"
104762
+ ]
104763
+ },
104764
+ {
104765
+ "path": "slotStatuses.low",
104766
+ "valueType": "enum",
104767
+ "enumValues": [
104768
+ "unassigned",
104769
+ "idle",
104770
+ "connecting",
104771
+ "streaming",
104772
+ "error"
104773
+ ]
104774
+ },
104775
+ {
104776
+ "path": "slotErrors.high",
104777
+ "valueType": "string"
104778
+ },
104779
+ {
104780
+ "path": "slotErrors.mid",
104781
+ "valueType": "string"
104782
+ },
104783
+ {
104784
+ "path": "slotErrors.low",
104785
+ "valueType": "string"
104786
+ }
104787
+ ],
104788
+ "carbon-monoxide": [{
104789
+ "path": "detected",
104790
+ "valueType": "boolean"
104791
+ }],
104792
+ "climate-control": [
104793
+ {
104794
+ "path": "mode",
104795
+ "valueType": "enum",
104796
+ "enumValues": [
104797
+ "off",
104798
+ "heat",
104799
+ "cool",
104800
+ "auto",
104801
+ "heat_cool",
104802
+ "fan_only",
104803
+ "dry"
104804
+ ]
104805
+ },
104806
+ {
104807
+ "path": "fanMode",
104808
+ "valueType": "string"
104809
+ },
104810
+ {
104811
+ "path": "preset",
104812
+ "valueType": "string"
104813
+ },
104814
+ {
104815
+ "path": "target",
104816
+ "valueType": "number"
104817
+ },
104818
+ {
104819
+ "path": "targetHigh",
104820
+ "valueType": "number"
104821
+ },
104822
+ {
104823
+ "path": "targetLow",
104824
+ "valueType": "number"
104825
+ },
104826
+ {
104827
+ "path": "targetHumidity",
104828
+ "valueType": "number"
104829
+ },
104830
+ {
104831
+ "path": "currentTemp",
104832
+ "valueType": "number"
104833
+ },
104834
+ {
104835
+ "path": "currentHumidity",
104836
+ "valueType": "number"
104837
+ },
104838
+ {
104839
+ "path": "swingVertical",
104840
+ "valueType": "boolean"
104841
+ },
104842
+ {
104843
+ "path": "swingHorizontal",
104844
+ "valueType": "boolean"
104845
+ }
104846
+ ],
104847
+ "color": [
104848
+ {
104849
+ "path": "mode",
104850
+ "valueType": "enum",
104851
+ "enumValues": [
104852
+ "rgb",
104853
+ "hsv",
104854
+ "mired"
104855
+ ]
104856
+ },
104857
+ {
104858
+ "path": "rgb.r",
104859
+ "valueType": "number"
104860
+ },
104861
+ {
104862
+ "path": "rgb.g",
104863
+ "valueType": "number"
104864
+ },
104865
+ {
104866
+ "path": "rgb.b",
104867
+ "valueType": "number"
104868
+ },
104869
+ {
104870
+ "path": "hsv.h",
104871
+ "valueType": "number"
104872
+ },
104873
+ {
104874
+ "path": "hsv.s",
104875
+ "valueType": "number"
104876
+ },
104877
+ {
104878
+ "path": "hsv.v",
104879
+ "valueType": "number"
104880
+ },
104881
+ {
104882
+ "path": "mireds",
104883
+ "valueType": "number"
104884
+ }
104885
+ ],
104886
+ "connectivity": [{
104887
+ "path": "connected",
104888
+ "valueType": "boolean"
104889
+ }],
104890
+ "contact": [{
104891
+ "path": "entryOpen",
104892
+ "valueType": "boolean"
104893
+ }],
104894
+ "control": [
104895
+ {
104896
+ "path": "kind",
104897
+ "valueType": "enum",
104898
+ "enumValues": [
104899
+ "numeric",
104900
+ "select",
104901
+ "text",
104902
+ "datetime"
104903
+ ]
104904
+ },
104905
+ {
104906
+ "path": "unit",
104907
+ "valueType": "string"
104908
+ },
104909
+ {
104910
+ "path": "min",
104911
+ "valueType": "number"
104912
+ },
104913
+ {
104914
+ "path": "max",
104915
+ "valueType": "number"
104916
+ },
104917
+ {
104918
+ "path": "step",
104919
+ "valueType": "number"
104920
+ },
104921
+ {
104922
+ "path": "precision",
104923
+ "valueType": "number"
104924
+ },
104925
+ {
104926
+ "path": "format",
104927
+ "valueType": "enum",
104928
+ "enumValues": [
104929
+ "date",
104930
+ "time",
104931
+ "datetime"
104932
+ ]
104933
+ }
104934
+ ],
104935
+ "cover": [
104936
+ {
104937
+ "path": "state",
104938
+ "valueType": "enum",
104939
+ "enumValues": [
104940
+ "open",
104941
+ "opening",
104942
+ "closing",
104943
+ "closed",
104944
+ "stopped"
104945
+ ]
104946
+ },
104947
+ {
104948
+ "path": "position",
104949
+ "valueType": "number"
104950
+ },
104951
+ {
104952
+ "path": "tiltPosition",
104953
+ "valueType": "number"
104954
+ }
104955
+ ],
104956
+ "day-night": [
104957
+ {
104958
+ "path": "mode",
104959
+ "valueType": "enum",
104960
+ "enumValues": [
104961
+ "auto",
104962
+ "day",
104963
+ "night",
104964
+ "schedule"
104965
+ ]
104966
+ },
104967
+ {
104968
+ "path": "sensitivity",
104969
+ "valueType": "number"
104970
+ },
104971
+ {
104972
+ "path": "switchDelaySec",
104973
+ "valueType": "number"
104974
+ }
104975
+ ],
104976
+ "device-adoption": [
104977
+ {
104978
+ "path": "lastDiscoveryAt",
104979
+ "valueType": "number"
104980
+ },
104981
+ {
104982
+ "path": "candidateCount",
104983
+ "valueType": "number"
104984
+ },
104985
+ {
104986
+ "path": "adoptedCount",
104987
+ "valueType": "number"
104988
+ },
104989
+ {
104990
+ "path": "lastError",
104991
+ "valueType": "string"
104992
+ }
104993
+ ],
104994
+ "device-discovery": [{
104995
+ "path": "lastDiscoveryAt",
104996
+ "valueType": "number"
104997
+ }, {
104998
+ "path": "lastError",
104999
+ "valueType": "string"
105000
+ }],
105001
+ "device-export": [
105002
+ {
105003
+ "path": "linkState",
105004
+ "valueType": "enum",
105005
+ "enumValues": [
105006
+ "unlinked",
105007
+ "linked",
105008
+ "error"
105009
+ ]
105010
+ },
105011
+ {
105012
+ "path": "exposedDeviceCount",
105013
+ "valueType": "number"
105014
+ },
105015
+ {
105016
+ "path": "error",
105017
+ "valueType": "string"
105018
+ },
105019
+ {
105020
+ "path": "setup.qr",
105021
+ "valueType": "string"
105022
+ },
105023
+ {
105024
+ "path": "setup.note",
105025
+ "valueType": "string"
105026
+ }
105027
+ ],
105028
+ "device-status": [{
105029
+ "path": "online",
105030
+ "valueType": "boolean"
105031
+ }],
105032
+ "doorbell": [{
105033
+ "path": "lastPressedAt",
105034
+ "valueType": "number"
105035
+ }, {
105036
+ "path": "pressCountSinceStart",
105037
+ "valueType": "number"
105038
+ }],
105039
+ "enum-sensor": [{
105040
+ "path": "value",
105041
+ "valueType": "string"
105042
+ }, {
105043
+ "path": "format",
105044
+ "valueType": "enum",
105045
+ "enumValues": [
105046
+ "date",
105047
+ "time",
105048
+ "datetime"
105049
+ ]
105050
+ }],
105051
+ "event-emitter": [
105052
+ {
105053
+ "path": "lastEvent.deviceId",
105054
+ "valueType": "number"
105055
+ },
105056
+ {
105057
+ "path": "lastEvent.eventType",
105058
+ "valueType": "string"
105059
+ },
105060
+ {
105061
+ "path": "lastEvent.timestamp",
105062
+ "valueType": "number"
105063
+ },
105064
+ {
105065
+ "path": "lastEvent.seq",
105066
+ "valueType": "number"
105067
+ },
105068
+ {
105069
+ "path": "eventCountSinceStart",
105070
+ "valueType": "number"
105071
+ }
105072
+ ],
105073
+ "fan-control": [
105074
+ {
105075
+ "path": "percentage",
105076
+ "valueType": "number"
105077
+ },
105078
+ {
105079
+ "path": "percentageStep",
105080
+ "valueType": "number"
105081
+ },
105082
+ {
105083
+ "path": "preset",
105084
+ "valueType": "string"
105085
+ },
105086
+ {
105087
+ "path": "direction",
105088
+ "valueType": "enum",
105089
+ "enumValues": ["forward", "reverse"]
105090
+ },
105091
+ {
105092
+ "path": "oscillating",
105093
+ "valueType": "boolean"
105094
+ }
105095
+ ],
105096
+ "feature-probe": [
105097
+ {
105098
+ "path": "deviceType",
105099
+ "valueType": "string"
105100
+ },
105101
+ {
105102
+ "path": "model",
105103
+ "valueType": "string"
105104
+ },
105105
+ {
105106
+ "path": "channelCount",
105107
+ "valueType": "number"
105108
+ },
105109
+ {
105110
+ "path": "lastProbedAt",
105111
+ "valueType": "number"
105112
+ }
105113
+ ],
105114
+ "flood": [{
105115
+ "path": "flooded",
105116
+ "valueType": "boolean"
105117
+ }],
105118
+ "gas": [{
105119
+ "path": "detected",
105120
+ "valueType": "boolean"
105121
+ }],
105122
+ "humidifier": [
105123
+ {
105124
+ "path": "on",
105125
+ "valueType": "boolean"
105126
+ },
105127
+ {
105128
+ "path": "currentHumidity",
105129
+ "valueType": "number"
105130
+ },
105131
+ {
105132
+ "path": "targetHumidity",
105133
+ "valueType": "number"
105134
+ },
105135
+ {
105136
+ "path": "mode",
105137
+ "valueType": "string"
105138
+ },
105139
+ {
105140
+ "path": "action",
105141
+ "valueType": "string"
105142
+ },
105143
+ {
105144
+ "path": "minHumidity",
105145
+ "valueType": "number"
105146
+ },
105147
+ {
105148
+ "path": "maxHumidity",
105149
+ "valueType": "number"
105150
+ }
105151
+ ],
105152
+ "humidity-sensor": [
105153
+ {
105154
+ "path": "percent",
105155
+ "valueType": "number"
105156
+ },
105157
+ {
105158
+ "path": "unit",
105159
+ "valueType": "string"
105160
+ },
105161
+ {
105162
+ "path": "precision",
105163
+ "valueType": "number"
105164
+ }
105165
+ ],
105166
+ "image": [{
105167
+ "path": "url",
105168
+ "valueType": "string"
105169
+ }, {
105170
+ "path": "lastUpdated",
105171
+ "valueType": "number"
105172
+ }],
105173
+ "image-settings": [
105174
+ {
105175
+ "path": "brightness",
105176
+ "valueType": "number"
105177
+ },
105178
+ {
105179
+ "path": "contrast",
105180
+ "valueType": "number"
105181
+ },
105182
+ {
105183
+ "path": "saturation",
105184
+ "valueType": "number"
105185
+ },
105186
+ {
105187
+ "path": "sharpness",
105188
+ "valueType": "number"
105189
+ },
105190
+ {
105191
+ "path": "mirror",
105192
+ "valueType": "boolean"
105193
+ },
105194
+ {
105195
+ "path": "flip",
105196
+ "valueType": "boolean"
105197
+ },
105198
+ {
105199
+ "path": "rotate",
105200
+ "valueType": "enum",
105201
+ "enumValues": [
105202
+ "0",
105203
+ "90",
105204
+ "180",
105205
+ "270"
105206
+ ]
105207
+ },
105208
+ {
105209
+ "path": "whiteBalance",
105210
+ "valueType": "enum",
105211
+ "enumValues": ["auto", "manual"]
105212
+ },
105213
+ {
105214
+ "path": "warmth",
105215
+ "valueType": "number"
105216
+ },
105217
+ {
105218
+ "path": "exposureMode",
105219
+ "valueType": "enum",
105220
+ "enumValues": ["auto", "manual"]
105221
+ },
105222
+ {
105223
+ "path": "backlightMode",
105224
+ "valueType": "enum",
105225
+ "enumValues": [
105226
+ "off",
105227
+ "blc",
105228
+ "wdr",
105229
+ "hlc"
105230
+ ]
105231
+ }
105232
+ ],
105233
+ "intercom": [
105234
+ {
105235
+ "path": "talking",
105236
+ "valueType": "boolean"
105237
+ },
105238
+ {
105239
+ "path": "lastSessionAt",
105240
+ "valueType": "number"
105241
+ },
105242
+ {
105243
+ "path": "ability.sampleRate",
105244
+ "valueType": "number"
105245
+ },
105246
+ {
105247
+ "path": "ability.duplex",
105248
+ "valueType": "enum",
105249
+ "enumValues": ["half", "full"]
105250
+ },
105251
+ {
105252
+ "path": "ability.maxBacklogMs",
105253
+ "valueType": "number"
105254
+ }
105255
+ ],
105256
+ "lawn-mower-control": [
105257
+ {
105258
+ "path": "activity",
105259
+ "valueType": "enum",
105260
+ "enumValues": [
105261
+ "idle",
105262
+ "mowing",
105263
+ "paused",
105264
+ "docked",
105265
+ "error"
105266
+ ]
105267
+ },
105268
+ {
105269
+ "path": "batteryLevel",
105270
+ "valueType": "number"
105271
+ },
105272
+ {
105273
+ "path": "progressPercent",
105274
+ "valueType": "number"
105275
+ },
105276
+ {
105277
+ "path": "currentCode",
105278
+ "valueType": "number"
105279
+ },
105280
+ {
105281
+ "path": "currentCodeLabel",
105282
+ "valueType": "string"
105283
+ },
105284
+ {
105285
+ "path": "severity",
105286
+ "valueType": "enum",
105287
+ "enumValues": [
105288
+ "info",
105289
+ "warning",
105290
+ "error"
105291
+ ]
105292
+ }
105293
+ ],
105294
+ "lock-control": [{
105295
+ "path": "state",
105296
+ "valueType": "enum",
105297
+ "enumValues": [
105298
+ "locked",
105299
+ "unlocked",
105300
+ "locking",
105301
+ "unlocking",
105302
+ "jammed"
105303
+ ]
105304
+ }],
105305
+ "media-player": [
105306
+ {
105307
+ "path": "state",
105308
+ "valueType": "enum",
105309
+ "enumValues": [
105310
+ "off",
105311
+ "on",
105312
+ "idle",
105313
+ "playing",
105314
+ "paused",
105315
+ "buffering",
105316
+ "standby"
105317
+ ]
105318
+ },
105319
+ {
105320
+ "path": "volumeLevel",
105321
+ "valueType": "number"
105322
+ },
105323
+ {
105324
+ "path": "isMuted",
105325
+ "valueType": "boolean"
105326
+ },
105327
+ {
105328
+ "path": "source",
105329
+ "valueType": "string"
105330
+ },
105331
+ {
105332
+ "path": "currentMedia.type",
105333
+ "valueType": "string"
105334
+ },
105335
+ {
105336
+ "path": "currentMedia.title",
105337
+ "valueType": "string"
105338
+ },
105339
+ {
105340
+ "path": "currentMedia.artist",
105341
+ "valueType": "string"
105342
+ },
105343
+ {
105344
+ "path": "currentMedia.album",
105345
+ "valueType": "string"
105346
+ },
105347
+ {
105348
+ "path": "currentMedia.imageUrl",
105349
+ "valueType": "string"
105350
+ },
105351
+ {
105352
+ "path": "positionMs",
105353
+ "valueType": "number"
105354
+ },
105355
+ {
105356
+ "path": "durationMs",
105357
+ "valueType": "number"
105358
+ },
105359
+ {
105360
+ "path": "shuffle",
105361
+ "valueType": "boolean"
105362
+ },
105363
+ {
105364
+ "path": "repeat",
105365
+ "valueType": "enum",
105366
+ "enumValues": [
105367
+ "off",
105368
+ "all",
105369
+ "one"
105370
+ ]
105371
+ }
105372
+ ],
105373
+ "motion": [
105374
+ {
105375
+ "path": "detected",
105376
+ "valueType": "boolean"
105377
+ },
105378
+ {
105379
+ "path": "lastDetectedAt",
105380
+ "valueType": "number"
105381
+ },
105382
+ {
105383
+ "path": "autoClearAfterMs",
105384
+ "valueType": "number"
105385
+ }
105386
+ ],
105387
+ "motion-trigger": [{
105388
+ "path": "enabled",
105389
+ "valueType": "boolean"
105390
+ }],
105391
+ "motion-zones": [{
105392
+ "path": "enabled",
105393
+ "valueType": "boolean"
105394
+ }, {
105395
+ "path": "sensitivity",
105396
+ "valueType": "number"
105397
+ }],
105398
+ "mqtt-broker": [{
105399
+ "path": "brokerCount",
105400
+ "valueType": "number"
105401
+ }, {
105402
+ "path": "embeddedRunning",
105403
+ "valueType": "boolean"
105404
+ }],
105405
+ "native-object-detection": [{
105406
+ "path": "enabled",
105407
+ "valueType": "boolean"
105408
+ }],
105409
+ "navigation": [
105410
+ {
105411
+ "path": "mode",
105412
+ "valueType": "enum",
105413
+ "enumValues": [
105414
+ "idle",
105415
+ "cleaning",
105416
+ "spot",
105417
+ "following",
105418
+ "goto",
105419
+ "returning",
105420
+ "paused",
105421
+ "unknown"
105422
+ ]
105423
+ },
105424
+ {
105425
+ "path": "following",
105426
+ "valueType": "boolean"
105427
+ },
105428
+ {
105429
+ "path": "flash",
105430
+ "valueType": "boolean"
105431
+ },
105432
+ {
105433
+ "path": "lightMode",
105434
+ "valueType": "enum",
105435
+ "enumValues": ["auto", "manual"]
105436
+ },
105437
+ {
105438
+ "path": "lightLevel",
105439
+ "valueType": "number"
105440
+ }
105441
+ ],
105442
+ "network-link": [
105443
+ {
105444
+ "path": "type",
105445
+ "valueType": "enum",
105446
+ "enumValues": [
105447
+ "wifi",
105448
+ "ethernet",
105449
+ "cellular",
105450
+ "unknown"
105451
+ ]
105452
+ },
105453
+ {
105454
+ "path": "signalPercent",
105455
+ "valueType": "number"
105456
+ },
105457
+ {
105458
+ "path": "rssiDbm",
105459
+ "valueType": "number"
105460
+ },
105461
+ {
105462
+ "path": "ssid",
105463
+ "valueType": "string"
105464
+ },
105465
+ {
105466
+ "path": "lastUpdated",
105467
+ "valueType": "number"
105468
+ }
105469
+ ],
105470
+ "notifier": [
105471
+ {
105472
+ "path": "lastSentAt",
105473
+ "valueType": "number"
105474
+ },
105475
+ {
105476
+ "path": "lastError",
105477
+ "valueType": "string"
105478
+ },
105479
+ {
105480
+ "path": "queueDepth",
105481
+ "valueType": "number"
105482
+ },
105483
+ {
105484
+ "path": "supports.image",
105485
+ "valueType": "boolean"
105486
+ },
105487
+ {
105488
+ "path": "supports.priority",
105489
+ "valueType": "boolean"
105490
+ },
105491
+ {
105492
+ "path": "supports.data",
105493
+ "valueType": "boolean"
105494
+ },
105495
+ {
105496
+ "path": "supports.actions",
105497
+ "valueType": "boolean"
105498
+ },
105499
+ {
105500
+ "path": "supports.recipients",
105501
+ "valueType": "boolean"
105502
+ }
105503
+ ],
105504
+ "numeric-sensor": [
105505
+ {
105506
+ "path": "value",
105507
+ "valueType": "number"
105508
+ },
105509
+ {
105510
+ "path": "unit",
105511
+ "valueType": "string"
105512
+ },
105513
+ {
105514
+ "path": "precision",
105515
+ "valueType": "number"
105516
+ }
105517
+ ],
105518
+ "pet-feeder": [
105519
+ {
105520
+ "path": "foodLevel",
105521
+ "valueType": "number"
105522
+ },
105523
+ {
105524
+ "path": "food1",
105525
+ "valueType": "number"
105526
+ },
105527
+ {
105528
+ "path": "food2",
105529
+ "valueType": "number"
105530
+ },
105531
+ {
105532
+ "path": "lowFood",
105533
+ "valueType": "boolean"
105534
+ },
105535
+ {
105536
+ "path": "batteryPower",
105537
+ "valueType": "number"
105538
+ },
105539
+ {
105540
+ "path": "desiccantLeftDays",
105541
+ "valueType": "number"
105542
+ },
105543
+ {
105544
+ "path": "feeding",
105545
+ "valueType": "boolean"
105546
+ },
105547
+ {
105548
+ "path": "status",
105549
+ "valueType": "enum",
105550
+ "enumValues": [
105551
+ "normal",
105552
+ "offline",
105553
+ "on_batteries"
105554
+ ]
105555
+ },
105556
+ {
105557
+ "path": "error",
105558
+ "valueType": "string"
105559
+ },
105560
+ {
105561
+ "path": "errorCode",
105562
+ "valueType": "number"
105563
+ },
105564
+ {
105565
+ "path": "isDualHopper",
105566
+ "valueType": "boolean"
105567
+ },
105568
+ {
105569
+ "path": "childLock",
105570
+ "valueType": "boolean"
105571
+ },
105572
+ {
105573
+ "path": "indicatorLight",
105574
+ "valueType": "boolean"
105575
+ },
105576
+ {
105577
+ "path": "feedSound",
105578
+ "valueType": "boolean"
105579
+ },
105580
+ {
105581
+ "path": "volume",
105582
+ "valueType": "number"
105583
+ }
105584
+ ],
105585
+ "power-meter": [
105586
+ {
105587
+ "path": "watts",
105588
+ "valueType": "number"
105589
+ },
105590
+ {
105591
+ "path": "kwhTotal",
105592
+ "valueType": "number"
105593
+ },
105594
+ {
105595
+ "path": "volts",
105596
+ "valueType": "number"
105597
+ },
105598
+ {
105599
+ "path": "amps",
105600
+ "valueType": "number"
105601
+ },
105602
+ {
105603
+ "path": "va",
105604
+ "valueType": "number"
105605
+ },
105606
+ {
105607
+ "path": "powerFactor",
105608
+ "valueType": "number"
105609
+ },
105610
+ {
105611
+ "path": "unit",
105612
+ "valueType": "string"
105613
+ },
105614
+ {
105615
+ "path": "precision",
105616
+ "valueType": "number"
105617
+ }
105618
+ ],
105619
+ "presence": [
105620
+ {
105621
+ "path": "state",
105622
+ "valueType": "string"
105623
+ },
105624
+ {
105625
+ "path": "location",
105626
+ "valueType": "string"
105627
+ },
105628
+ {
105629
+ "path": "gps.latitude",
105630
+ "valueType": "number"
105631
+ },
105632
+ {
105633
+ "path": "gps.longitude",
105634
+ "valueType": "number"
105635
+ },
105636
+ {
105637
+ "path": "gps.accuracyMeters",
105638
+ "valueType": "number"
105639
+ },
105640
+ {
105641
+ "path": "batteryPercent",
105642
+ "valueType": "number"
105643
+ }
105644
+ ],
105645
+ "pressure-sensor": [
105646
+ {
105647
+ "path": "hpa",
105648
+ "valueType": "number"
105649
+ },
105650
+ {
105651
+ "path": "unit",
105652
+ "valueType": "string"
105653
+ },
105654
+ {
105655
+ "path": "precision",
105656
+ "valueType": "number"
105657
+ }
105658
+ ],
105659
+ "privacy-mask": [{
105660
+ "path": "enabled",
105661
+ "valueType": "boolean"
105662
+ }, {
105663
+ "path": "audioEnabled",
105664
+ "valueType": "boolean"
105665
+ }],
105666
+ "ptz": [
105667
+ {
105668
+ "path": "pan",
105669
+ "valueType": "number"
105670
+ },
105671
+ {
105672
+ "path": "tilt",
105673
+ "valueType": "number"
105674
+ },
105675
+ {
105676
+ "path": "zoom",
105677
+ "valueType": "number"
105678
+ },
105679
+ {
105680
+ "path": "autofocus",
105681
+ "valueType": "boolean"
105682
+ }
105683
+ ],
105684
+ "ptz-autotrack": [
105685
+ {
105686
+ "path": "enabled",
105687
+ "valueType": "boolean"
105688
+ },
105689
+ {
105690
+ "path": "currentSettings.targetType",
105691
+ "valueType": "string"
105692
+ },
105693
+ {
105694
+ "path": "currentSettings.stopDelaySeconds",
105695
+ "valueType": "number"
105696
+ },
105697
+ {
105698
+ "path": "currentSettings.disappearDelaySeconds",
105699
+ "valueType": "number"
105700
+ }
105701
+ ],
105702
+ "recording-archive": [
105703
+ {
105704
+ "path": "deviceId",
105705
+ "valueType": "number"
105706
+ },
105707
+ {
105708
+ "path": "enabled",
105709
+ "valueType": "boolean"
105710
+ },
105711
+ {
105712
+ "path": "activeMode",
105713
+ "valueType": "enum",
105714
+ "enumValues": [
105715
+ "off",
105716
+ "events",
105717
+ "continuous",
105718
+ "on-device-decision"
105719
+ ]
105720
+ },
105721
+ {
105722
+ "path": "nodeId",
105723
+ "valueType": "string"
105724
+ },
105725
+ {
105726
+ "path": "storageBytes",
105727
+ "valueType": "number"
105728
+ }
105729
+ ],
105730
+ "recording-onboard": [
105731
+ {
105732
+ "path": "primaryTrackId",
105733
+ "valueType": "string"
105734
+ },
105735
+ {
105736
+ "path": "enabled",
105737
+ "valueType": "boolean"
105738
+ },
105739
+ {
105740
+ "path": "overwriteWhenFull",
105741
+ "valueType": "boolean"
105742
+ },
105743
+ {
105744
+ "path": "preRecordSec",
105745
+ "valueType": "number"
105746
+ },
105747
+ {
105748
+ "path": "postRecordSec",
105749
+ "valueType": "number"
105750
+ },
105751
+ {
105752
+ "path": "segmentMinutes",
105753
+ "valueType": "number"
105754
+ },
105755
+ {
105756
+ "path": "unreadableWindows",
105757
+ "valueType": "number"
105758
+ },
105759
+ {
105760
+ "path": "recordingToNowhere",
105761
+ "valueType": "boolean"
105762
+ }
105763
+ ],
105764
+ "recording-signal": [{
105765
+ "path": "active",
105766
+ "valueType": "boolean"
105767
+ }, {
105768
+ "path": "reason",
105769
+ "valueType": "string"
105770
+ }],
105771
+ "script-runner": [
105772
+ {
105773
+ "path": "isRunning",
105774
+ "valueType": "boolean"
105775
+ },
105776
+ {
105777
+ "path": "lastRunAt",
105778
+ "valueType": "number"
105779
+ },
105780
+ {
105781
+ "path": "lastRunSuccess",
105782
+ "valueType": "boolean"
105783
+ },
105784
+ {
105785
+ "path": "lastError",
105786
+ "valueType": "string"
105787
+ }
105788
+ ],
105789
+ "smoke": [{
105790
+ "path": "detected",
105791
+ "valueType": "boolean"
105792
+ }],
105793
+ "snapshot": [
105794
+ {
105795
+ "path": "lastCapturedAt",
105796
+ "valueType": "number"
105797
+ },
105798
+ {
105799
+ "path": "cacheAgeMs",
105800
+ "valueType": "number"
105801
+ },
105802
+ {
105803
+ "path": "lastBytes",
105804
+ "valueType": "number"
105805
+ },
105806
+ {
105807
+ "path": "lastStreamId",
105808
+ "valueType": "string"
105809
+ }
105810
+ ],
105811
+ "stream-params": [
105812
+ {
105813
+ "path": "main.width",
105814
+ "valueType": "number"
105815
+ },
105816
+ {
105817
+ "path": "main.height",
105818
+ "valueType": "number"
105819
+ },
105820
+ {
105821
+ "path": "main.codec",
105822
+ "valueType": "enum",
105823
+ "enumValues": ["h264", "h265"]
105824
+ },
105825
+ {
105826
+ "path": "main.framerate",
105827
+ "valueType": "number"
105828
+ },
105829
+ {
105830
+ "path": "main.bitrate",
105831
+ "valueType": "number"
105832
+ },
105833
+ {
105834
+ "path": "main.bitrateMode",
105835
+ "valueType": "enum",
105836
+ "enumValues": ["vbr", "cbr"]
105837
+ },
105838
+ {
105839
+ "path": "main.encoderProfile",
105840
+ "valueType": "enum",
105841
+ "enumValues": [
105842
+ "high",
105843
+ "main",
105844
+ "baseline"
105845
+ ]
105846
+ },
105847
+ {
105848
+ "path": "main.gop",
105849
+ "valueType": "number"
105850
+ },
105851
+ {
105852
+ "path": "main.audio",
105853
+ "valueType": "boolean"
105854
+ },
105855
+ {
105856
+ "path": "sub.width",
105857
+ "valueType": "number"
105858
+ },
105859
+ {
105860
+ "path": "sub.height",
105861
+ "valueType": "number"
105862
+ },
105863
+ {
105864
+ "path": "sub.codec",
105865
+ "valueType": "enum",
105866
+ "enumValues": ["h264", "h265"]
105867
+ },
105868
+ {
105869
+ "path": "sub.framerate",
105870
+ "valueType": "number"
105871
+ },
105872
+ {
105873
+ "path": "sub.bitrate",
105874
+ "valueType": "number"
105875
+ },
105876
+ {
105877
+ "path": "sub.bitrateMode",
105878
+ "valueType": "enum",
105879
+ "enumValues": ["vbr", "cbr"]
105880
+ },
105881
+ {
105882
+ "path": "sub.encoderProfile",
105883
+ "valueType": "enum",
105884
+ "enumValues": [
105885
+ "high",
105886
+ "main",
105887
+ "baseline"
105888
+ ]
105889
+ },
105890
+ {
105891
+ "path": "sub.gop",
105892
+ "valueType": "number"
105893
+ },
105894
+ {
105895
+ "path": "sub.audio",
105896
+ "valueType": "boolean"
105897
+ },
105898
+ {
105899
+ "path": "ext.width",
105900
+ "valueType": "number"
105901
+ },
105902
+ {
105903
+ "path": "ext.height",
105904
+ "valueType": "number"
105905
+ },
105906
+ {
105907
+ "path": "ext.codec",
105908
+ "valueType": "enum",
105909
+ "enumValues": ["h264", "h265"]
105910
+ },
105911
+ {
105912
+ "path": "ext.framerate",
105913
+ "valueType": "number"
105914
+ },
105915
+ {
105916
+ "path": "ext.bitrate",
105917
+ "valueType": "number"
105918
+ },
105919
+ {
105920
+ "path": "ext.bitrateMode",
105921
+ "valueType": "enum",
105922
+ "enumValues": ["vbr", "cbr"]
105923
+ },
105924
+ {
105925
+ "path": "ext.encoderProfile",
105926
+ "valueType": "enum",
105927
+ "enumValues": [
105928
+ "high",
105929
+ "main",
105930
+ "baseline"
105931
+ ]
105932
+ },
105933
+ {
105934
+ "path": "ext.gop",
105935
+ "valueType": "number"
105936
+ },
105937
+ {
105938
+ "path": "ext.audio",
105939
+ "valueType": "boolean"
105940
+ }
105941
+ ],
105942
+ "switch": [{
105943
+ "path": "on",
105944
+ "valueType": "boolean"
105945
+ }],
105946
+ "tamper": [{
105947
+ "path": "tampered",
105948
+ "valueType": "boolean"
105949
+ }],
105950
+ "temperature-sensor": [
105951
+ {
105952
+ "path": "celsius",
105953
+ "valueType": "number"
105954
+ },
105955
+ {
105956
+ "path": "unit",
105957
+ "valueType": "string"
105958
+ },
105959
+ {
105960
+ "path": "precision",
105961
+ "valueType": "number"
105962
+ }
105963
+ ],
105964
+ "update": [
105965
+ {
105966
+ "path": "currentVersion",
105967
+ "valueType": "string"
105968
+ },
105969
+ {
105970
+ "path": "availableVersion",
105971
+ "valueType": "string"
105972
+ },
105973
+ {
105974
+ "path": "updatable",
105975
+ "valueType": "boolean"
105976
+ },
105977
+ {
105978
+ "path": "state",
105979
+ "valueType": "string"
105980
+ },
105981
+ {
105982
+ "path": "inProgress",
105983
+ "valueType": "boolean"
105984
+ }
105985
+ ],
105986
+ "vacuum-control": [
105987
+ {
105988
+ "path": "state",
105989
+ "valueType": "enum",
105990
+ "enumValues": [
105991
+ "idle",
105992
+ "cleaning",
105993
+ "paused",
105994
+ "returning",
105995
+ "docked",
105996
+ "drying",
105997
+ "error"
105998
+ ]
105999
+ },
106000
+ {
106001
+ "path": "batteryLevel",
106002
+ "valueType": "number"
106003
+ },
106004
+ {
106005
+ "path": "fanSpeed",
106006
+ "valueType": "string"
106007
+ },
106008
+ {
106009
+ "path": "cleanWater.level",
106010
+ "valueType": "number"
106011
+ },
106012
+ {
106013
+ "path": "cleanWater.status",
106014
+ "valueType": "enum",
106015
+ "enumValues": [
106016
+ "ok",
106017
+ "low",
106018
+ "full"
106019
+ ]
106020
+ },
106021
+ {
106022
+ "path": "dirtyWater.level",
106023
+ "valueType": "number"
106024
+ },
106025
+ {
106026
+ "path": "dirtyWater.status",
106027
+ "valueType": "enum",
106028
+ "enumValues": [
106029
+ "ok",
106030
+ "low",
106031
+ "full"
106032
+ ]
106033
+ },
106034
+ {
106035
+ "path": "detergent.level",
106036
+ "valueType": "number"
106037
+ },
106038
+ {
106039
+ "path": "detergent.status",
106040
+ "valueType": "enum",
106041
+ "enumValues": [
106042
+ "ok",
106043
+ "low",
106044
+ "full"
106045
+ ]
106046
+ },
106047
+ {
106048
+ "path": "dustBin.level",
106049
+ "valueType": "number"
106050
+ },
106051
+ {
106052
+ "path": "dustBin.status",
106053
+ "valueType": "enum",
106054
+ "enumValues": [
106055
+ "ok",
106056
+ "low",
106057
+ "full"
106058
+ ]
106059
+ },
106060
+ {
106061
+ "path": "progressPercent",
106062
+ "valueType": "number"
106063
+ },
106064
+ {
106065
+ "path": "errorCode",
106066
+ "valueType": "number"
106067
+ },
106068
+ {
106069
+ "path": "errorLabel",
106070
+ "valueType": "string"
106071
+ }
106072
+ ],
106073
+ "valve": [{
106074
+ "path": "state",
106075
+ "valueType": "enum",
106076
+ "enumValues": [
106077
+ "open",
106078
+ "opening",
106079
+ "closing",
106080
+ "closed",
106081
+ "stopped"
106082
+ ]
106083
+ }, {
106084
+ "path": "position",
106085
+ "valueType": "number"
106086
+ }],
106087
+ "vibration": [{
106088
+ "path": "detected",
106089
+ "valueType": "boolean"
106090
+ }],
106091
+ "water-heater": [
106092
+ {
106093
+ "path": "currentTemp",
106094
+ "valueType": "number"
106095
+ },
106096
+ {
106097
+ "path": "targetTemp",
106098
+ "valueType": "number"
106099
+ },
106100
+ {
106101
+ "path": "operationMode",
106102
+ "valueType": "string"
106103
+ },
106104
+ {
106105
+ "path": "away",
106106
+ "valueType": "boolean"
106107
+ },
106108
+ {
106109
+ "path": "minTemp",
106110
+ "valueType": "number"
106111
+ },
106112
+ {
106113
+ "path": "maxTemp",
106114
+ "valueType": "number"
106115
+ }
106116
+ ],
106117
+ "weather": [
106118
+ {
106119
+ "path": "condition",
106120
+ "valueType": "string"
106121
+ },
106122
+ {
106123
+ "path": "temperature",
106124
+ "valueType": "number"
106125
+ },
106126
+ {
106127
+ "path": "temperatureUnit",
106128
+ "valueType": "string"
106129
+ },
106130
+ {
106131
+ "path": "humidity",
106132
+ "valueType": "number"
106133
+ },
106134
+ {
106135
+ "path": "pressure",
106136
+ "valueType": "number"
106137
+ },
106138
+ {
106139
+ "path": "pressureUnit",
106140
+ "valueType": "string"
106141
+ },
106142
+ {
106143
+ "path": "windSpeed",
106144
+ "valueType": "number"
106145
+ },
106146
+ {
106147
+ "path": "windSpeedUnit",
106148
+ "valueType": "string"
106149
+ },
106150
+ {
106151
+ "path": "windBearing",
106152
+ "valueType": "number"
106153
+ }
106154
+ ],
106155
+ "zone-analytics": [
106156
+ {
106157
+ "path": "ts",
106158
+ "valueType": "number"
106159
+ },
106160
+ {
106161
+ "path": "frameWidth",
106162
+ "valueType": "number"
106163
+ },
106164
+ {
106165
+ "path": "frameHeight",
106166
+ "valueType": "number"
106167
+ },
106168
+ {
106169
+ "path": "frame.totalObjects",
106170
+ "valueType": "number"
106171
+ },
106172
+ {
106173
+ "path": "frame.standingObjects",
106174
+ "valueType": "number"
106175
+ },
106176
+ {
106177
+ "path": "frame.transientObjects",
106178
+ "valueType": "number"
106179
+ },
106180
+ {
106181
+ "path": "unzoned.totalObjects",
106182
+ "valueType": "number"
106183
+ },
106184
+ {
106185
+ "path": "unzoned.standingObjects",
106186
+ "valueType": "number"
106187
+ },
106188
+ {
106189
+ "path": "unzoned.transientObjects",
106190
+ "valueType": "number"
106191
+ }
106192
+ ]
106193
+ });
104138
106194
  //#endregion
104139
106195
  //#region src/pipeline-analytics/services/sensor-transition-gate.ts
104140
106196
  /**
@@ -104319,11 +106375,13 @@ var WORD_LEVEL_INACTIVE = {
104319
106375
  * `events[*].fromState: { field, on: 'advance' }` — the declaration the
104320
106376
  * composer already emits from — never listed by hand here. See "A press is a
104321
106377
  * stamp that ADVANCES" above.
106378
+ *
106379
+ * The table is codegen'd (`CAP_ADVANCE_FIELDS`, `npm run codegen`) and
106380
+ * schema-free: this file used to derive it from `ALL_CAPABILITY_DEFINITIONS`,
106381
+ * which inlined every cap's Zod schema into the addon (~+100 MB heap per
106382
+ * post-analysis runner, D28).
104322
106383
  */
104323
- var ADVANCE_FIELD = Object.fromEntries(ALL_CAPABILITY_DEFINITIONS.flatMap((def) => {
104324
- const fromState = Object.values(def.events ?? {}).find((event) => event.fromState?.on === "advance")?.fromState;
104325
- return fromState === void 0 ? [] : [[def.name, fromState.field]];
104326
- }));
106384
+ var ADVANCE_FIELD = CAP_ADVANCE_FIELDS;
104327
106385
  /** Default drop-summary window: one line per device per ten minutes, at most. */
104328
106386
  var DEFAULT_DROP_SUMMARY_WINDOW_MS = 6e5;
104329
106387
  var SensorTransitionGate = class {
@@ -105392,9 +107450,24 @@ function formatSuggestionThresholdReadout(similarityThreshold) {
105392
107450
  * misleading. Keyed by section id → set of field keys to drop.
105393
107451
  */
105394
107452
  var GLOBAL_ONLY_FIELDS = { "face-recognition": new Set(["enabled", SUGGESTION_THRESHOLD_READOUT_KEY]) };
105395
- /** Whole sections that are cluster-wide (global page only) and must NOT appear
105396
- * in a per-device contribution. */
105397
- var GLOBAL_ONLY_SECTIONS = new Set(["cluster-post-processing"]);
107453
+ /**
107454
+ * Whole sections that are cluster-wide (global page only) and must NOT appear
107455
+ * in a per-device contribution (D62: a per-camera field whose reader only ever
107456
+ * consults the global addon store is a knob that writes a store nobody reads).
107457
+ *
107458
+ * - `cluster-post-processing` — which node runs post-analysis.
107459
+ * - `embedding-index` — rebuild / wipe buttons that act on the whole index.
107460
+ * - `device-alerts` — battery / offline thresholds; read from the global
107461
+ * store into `deviceAlertSettingsMirror`, one value for the installation.
107462
+ * - `prune-windows` — outbox / timelapse / artefact shelf / digest mosaic
107463
+ * windows; `pruneWindows()` resolves them from the global store only.
107464
+ */
107465
+ var GLOBAL_ONLY_SECTIONS = new Set([
107466
+ "cluster-post-processing",
107467
+ "embedding-index",
107468
+ "device-alerts",
107469
+ "prune-windows"
107470
+ ]);
105398
107471
  /** Drop global-only sections + global-only fields from per-device sections. */
105399
107472
  function stripGlobalOnlyFields(sections) {
105400
107473
  return sections.filter((s) => !(s.id && GLOBAL_ONLY_SECTIONS.has(s.id))).map((s) => {
@@ -121718,10 +123791,11 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends BaseAddon {
121718
123791
  if (!await this.isCameraDevice(input.deviceId)) return null;
121719
123792
  const schema = this.globalSettingsSchema();
121720
123793
  const raw = await this.readDeviceBlob(input.deviceId);
121721
- const baseSections = schema ? hydrateSchema({
123794
+ const globalRaw = await this.rawGlobalStoreMirror.resolve();
123795
+ const baseSections = schema ? hydrateWithInheritedGlobals({
121722
123796
  ...schema,
121723
123797
  sections: retagRetentionSection(retagDetectionSections(stripGlobalOnlyFields(toAnalyticsDeviceSections(schema.sections))))
121724
- }, raw).sections : [];
123798
+ }, raw, globalRaw) : [];
121725
123799
  const liveStatsSection = {
121726
123800
  id: "live-stats",
121727
123801
  title: "Live Stats",