@camstack/addon-post-analysis 1.2.55 → 1.2.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{dist-D9Bm8RyD.mjs → dist-CAC3R7XW.mjs} +37 -0
- package/dist/{dist-B1CMW3_t.js → dist-CcS9NwDl.js} +52 -0
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +12 -2
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BuCI6peK.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-ABX4r2Sy.mjs} +2 -2
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DcqnDg2z.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-qqYR0iVH.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-3GBLWJ6R.mjs → hostInit-5_dMMZLO.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +241 -11
- package/dist/pipeline-analytics/index.mjs +242 -11
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/node-Co0YpEFr.mjs +0 -148
- package/dist/node-cjH3qw1E.js +0 -151
|
@@ -19081,6 +19081,37 @@ DeviceType.Camera, method(object({
|
|
|
19081
19081
|
lastCapturedAt: number().nullable(),
|
|
19082
19082
|
cacheAgeMs: number().nullable(),
|
|
19083
19083
|
etag: string().nullable()
|
|
19084
|
+
}))), systemMethod(object({
|
|
19085
|
+
/** The tiles a surface is actually rendering. One entry per (device,
|
|
19086
|
+
* width) the caller will paint — the width is snapped to the server's
|
|
19087
|
+
* ladder and becomes part of the link's SIGNED identity. */
|
|
19088
|
+
targets: array(object({
|
|
19089
|
+
deviceId: number(),
|
|
19090
|
+
/** Target width in px. Omit for the frame as captured — correct
|
|
19091
|
+
* for a full-bleed surface, wrong (and expensive) for a grid. */
|
|
19092
|
+
width: number().int().positive().optional()
|
|
19093
|
+
})).min(1).max(200) }), array(object({
|
|
19094
|
+
deviceId: number(),
|
|
19095
|
+
/** Root-relative signed path, or null when the link plane is not
|
|
19096
|
+
* served (no data-plane facility). Present even for a device that has
|
|
19097
|
+
* never captured — the request is what triggers the first one (D94). */
|
|
19098
|
+
url: string().nullable(),
|
|
19099
|
+
/** Epoch ms of the frame this link serves. Null = never captured.
|
|
19100
|
+
* THE honest age: the tRPC path carried none before this. */
|
|
19101
|
+
capturedAt: number().nullable(),
|
|
19102
|
+
/** Age of that frame at the moment the answer was built. */
|
|
19103
|
+
ageMs: number().nullable(),
|
|
19104
|
+
/** Epoch ms after which `url` stops verifying. */
|
|
19105
|
+
expiresAt: number().nullable(),
|
|
19106
|
+
/** Ladder rung the bytes are at; null = the frame as captured. */
|
|
19107
|
+
width: number().nullable(),
|
|
19108
|
+
/** The device has never produced a frame. An empty state, not a
|
|
19109
|
+
* failure — and never a reason to withhold the link (D94). */
|
|
19110
|
+
neverCaptured: boolean(),
|
|
19111
|
+
/** A sleeping battery camera: the frame is deliberately stale and will
|
|
19112
|
+
* NOT refresh in the background. A surface should say so rather than
|
|
19113
|
+
* present it as current. */
|
|
19114
|
+
sleeping: boolean()
|
|
19084
19115
|
})));
|
|
19085
19116
|
/**
|
|
19086
19117
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -32360,6 +32391,12 @@ Object.freeze({
|
|
|
32360
32391
|
addonId: null,
|
|
32361
32392
|
access: "view"
|
|
32362
32393
|
},
|
|
32394
|
+
"snapshot.getSnapshotLinks": {
|
|
32395
|
+
capName: "snapshot",
|
|
32396
|
+
capScope: "device",
|
|
32397
|
+
addonId: null,
|
|
32398
|
+
access: "view"
|
|
32399
|
+
},
|
|
32363
32400
|
"snapshot.getSnapshotOverview": {
|
|
32364
32401
|
capName: "snapshot",
|
|
32365
32402
|
capScope: "device",
|
|
@@ -5,6 +5,15 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __exportAll = (all, no_symbols) => {
|
|
9
|
+
let target = {};
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
15
|
+
return target;
|
|
16
|
+
};
|
|
8
17
|
var __copyProps = (to, from, except, desc) => {
|
|
9
18
|
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
19
|
key = keys[i];
|
|
@@ -19103,6 +19112,37 @@ DeviceType.Camera, method(object({
|
|
|
19103
19112
|
lastCapturedAt: number().nullable(),
|
|
19104
19113
|
cacheAgeMs: number().nullable(),
|
|
19105
19114
|
etag: string().nullable()
|
|
19115
|
+
}))), systemMethod(object({
|
|
19116
|
+
/** The tiles a surface is actually rendering. One entry per (device,
|
|
19117
|
+
* width) the caller will paint — the width is snapped to the server's
|
|
19118
|
+
* ladder and becomes part of the link's SIGNED identity. */
|
|
19119
|
+
targets: array(object({
|
|
19120
|
+
deviceId: number(),
|
|
19121
|
+
/** Target width in px. Omit for the frame as captured — correct
|
|
19122
|
+
* for a full-bleed surface, wrong (and expensive) for a grid. */
|
|
19123
|
+
width: number().int().positive().optional()
|
|
19124
|
+
})).min(1).max(200) }), array(object({
|
|
19125
|
+
deviceId: number(),
|
|
19126
|
+
/** Root-relative signed path, or null when the link plane is not
|
|
19127
|
+
* served (no data-plane facility). Present even for a device that has
|
|
19128
|
+
* never captured — the request is what triggers the first one (D94). */
|
|
19129
|
+
url: string().nullable(),
|
|
19130
|
+
/** Epoch ms of the frame this link serves. Null = never captured.
|
|
19131
|
+
* THE honest age: the tRPC path carried none before this. */
|
|
19132
|
+
capturedAt: number().nullable(),
|
|
19133
|
+
/** Age of that frame at the moment the answer was built. */
|
|
19134
|
+
ageMs: number().nullable(),
|
|
19135
|
+
/** Epoch ms after which `url` stops verifying. */
|
|
19136
|
+
expiresAt: number().nullable(),
|
|
19137
|
+
/** Ladder rung the bytes are at; null = the frame as captured. */
|
|
19138
|
+
width: number().nullable(),
|
|
19139
|
+
/** The device has never produced a frame. An empty state, not a
|
|
19140
|
+
* failure — and never a reason to withhold the link (D94). */
|
|
19141
|
+
neverCaptured: boolean(),
|
|
19142
|
+
/** A sleeping battery camera: the frame is deliberately stale and will
|
|
19143
|
+
* NOT refresh in the background. A surface should say so rather than
|
|
19144
|
+
* present it as current. */
|
|
19145
|
+
sleeping: boolean()
|
|
19106
19146
|
})));
|
|
19107
19147
|
/**
|
|
19108
19148
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -32382,6 +32422,12 @@ Object.freeze({
|
|
|
32382
32422
|
addonId: null,
|
|
32383
32423
|
access: "view"
|
|
32384
32424
|
},
|
|
32425
|
+
"snapshot.getSnapshotLinks": {
|
|
32426
|
+
capName: "snapshot",
|
|
32427
|
+
capScope: "device",
|
|
32428
|
+
addonId: null,
|
|
32429
|
+
access: "view"
|
|
32430
|
+
},
|
|
32385
32431
|
"snapshot.getSnapshotOverview": {
|
|
32386
32432
|
capName: "snapshot",
|
|
32387
32433
|
capScope: "device",
|
|
@@ -33913,6 +33959,12 @@ Object.defineProperty(exports, "TrackSourceSchema", {
|
|
|
33913
33959
|
return TrackSourceSchema;
|
|
33914
33960
|
}
|
|
33915
33961
|
});
|
|
33962
|
+
Object.defineProperty(exports, "__exportAll", {
|
|
33963
|
+
enumerable: true,
|
|
33964
|
+
get: function() {
|
|
33965
|
+
return __exportAll;
|
|
33966
|
+
}
|
|
33967
|
+
});
|
|
33916
33968
|
Object.defineProperty(exports, "__toESM", {
|
|
33917
33969
|
enumerable: true,
|
|
33918
33970
|
get: function() {
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-CcS9NwDl.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_fs$1 = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as embeddingEncoderCapability, G as BaseAddon, N as hfModelUrl } from "../dist-
|
|
1
|
+
import { A as embeddingEncoderCapability, G as BaseAddon, N as hfModelUrl } from "../dist-CAC3R7XW.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import "node:fs";
|
|
@@ -9,6 +9,16 @@ import { promisify } from "node:util";
|
|
|
9
9
|
import { brotliCompress, gzip } from "node:zlib";
|
|
10
10
|
import { spawn } from "node:child_process";
|
|
11
11
|
//#region \0rolldown/runtime.js
|
|
12
|
+
var __defProp = Object.defineProperty;
|
|
13
|
+
var __exportAll = (all, no_symbols) => {
|
|
14
|
+
let target = {};
|
|
15
|
+
for (var name in all) __defProp(target, name, {
|
|
16
|
+
get: all[name],
|
|
17
|
+
enumerable: true
|
|
18
|
+
});
|
|
19
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
20
|
+
return target;
|
|
21
|
+
};
|
|
12
22
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
13
23
|
promisify(brotliCompress);
|
|
14
24
|
promisify(gzip);
|
|
@@ -915,4 +925,4 @@ function resolveEmbeddingPythonDir() {
|
|
|
915
925
|
throw new Error(`EmbeddingEncoder: python/ dir (raw_tensor_inference.py) not found. Searched:\n${candidates.join("\n")}`);
|
|
916
926
|
}
|
|
917
927
|
//#endregion
|
|
918
|
-
export { EmbeddingEncoderAddon, EmbeddingEncoderAddon as default };
|
|
928
|
+
export { EmbeddingEncoderAddon, EmbeddingEncoderAddon as default, __exportAll as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-C0AuF9av.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-qqYR0iVH.mjs";
|
|
4
4
|
import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
|
|
5
5
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
6
6
|
var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), y = (e) => {
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.52",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.37",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -16,7 +16,7 @@ globalThis[r] ||= {
|
|
|
16
16
|
remote: {}
|
|
17
17
|
}, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
|
|
18
18
|
var i = globalThis[r], a, o, s, c, l, u, d, f = (e) => {
|
|
19
|
-
e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutomationHeroCard, e.AutomationInlineControl, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CARD_MODE_MIN_COLUMNS, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.DeviceMultiSelectField, e.DeviceSelectField, e.DeviceStepMatrix, e.Dialog, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EVENT_KIND_ICONS, e.EmptyState, e.ErrorBox, e.EventKindGlyph, e.EventStream, e.EyeOff, e.FILL, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, a = e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.MobileDrawer, e.ModelPicker, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECONNECT_POLICY, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SETTING_ROW, e.SETTING_ROW_LABEL, e.SETTING_ROW_STACK_BREAKPOINT, e.SETTING_ROW_VALUE, e.SETTING_ROW_VALUE_TEXT, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, o = e.STACK_GAP, e.STATE_COLOR, e.ScopePicker, e.ScriptHeroCard, e.ScriptInlineControl, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.SettingRow, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, s = e.WidgetSlot, e.ZoneEditingProvider, e.agentColumnKey, e.allDeviceTypeFilterOptions, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.deviceMatchesFilter, e.deviceOptionLabel, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeMeta, e.deviceTypeMetaOf, e.devicesToOptions, e.ensureMfHostInit, e.eventKindLabel, e.filterDeviceOptions, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupAgentColumns, e.groupChildrenByLayout, e.hardwareLabel, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextReconnectAction, e.nextSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolveEffectiveDefaultModel, e.resolveEffectiveStepModel, e.resolveEventKindIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.resolveStepDefaultModel, e.resolveTableLayout, e.scrubReducer, e.selectedDeviceOptions, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.shouldUseSingleNode, e.sortRows, e.statusIcons, e.stepHasModelForFormat, e.stepModelOptions, e.stripParentNamePrefix, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupDeleteSchedule, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupListSchedules, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBackupUpsertSchedule, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoreBlocksCompile, e.useCoreBlocksCreate, e.useCoreBlocksDelete, e.useCoreBlocksGet, e.useCoreBlocksGetTypeDefs, e.useCoreBlocksList, e.useCoreBlocksRestart, e.useCoreBlocksSetEnabled, e.useCoreBlocksUpdate, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyDeviceSettingsPatch, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetChildren, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveContribution, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceSettingsContribution, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetDeviceStatusAggregateBatch, e.useDeviceManagerGetLinkedDevices, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, c = e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, l = e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, u = e.useDeviceStateSlice, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellApplyDeviceSettingsPatch, e.useDoorbellEvents, e.useDoorbellGetDeviceLiveContribution, e.useDoorbellGetDeviceSettingsContribution, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLlmDeleteModel, e.useLlmDeleteProfile, e.useLlmGenerate, e.useLlmGenerateVision, e.useLlmGetDefaults, e.useLlmGetRuntimeStatus, e.useLlmGetUsage, e.useLlmInstallModel, e.useLlmListModelCatalog, e.useLlmListModels, e.useLlmListNodeModels, e.useLlmListProfileKinds, e.useLlmListProfiles, e.useLlmListRuntimeNodes, e.useLlmSetDefault, e.useLlmStartRuntime, e.useLlmStopRuntime, e.useLlmTestProfile, e.useLlmUpsertProfile, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetNotificationEndpoint, e.useLocalNetworkGetPreferred, e.useLocalNetworkList, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkSetAllowedAddresses, e.useLocalNetworkSetNotificationEndpoint, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetProcessStats, e.useMetricsProviderKillProcess, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotificationRulesCancelSnooze, e.useNotificationRulesCreateRule, e.useNotificationRulesCreateSnooze, e.useNotificationRulesDeleteRule, e.useNotificationRulesGetAlarmConfig, e.useNotificationRulesGetConditionCatalog, e.useNotificationRulesGetHistory, e.useNotificationRulesGetRule, e.useNotificationRulesListDeviceMutes, e.useNotificationRulesListRules, e.useNotificationRulesListSnoozes, e.useNotificationRulesSetAlarmConfig, e.useNotificationRulesSetDeviceMuted, e.useNotificationRulesSetRuleEnabled, e.useNotificationRulesTestRule, e.useNotificationRulesUpdateRule, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdManagerClearSlotBinding, e.useOsdManagerGetConditionSupport, e.useOsdManagerGetDeviceOsd, e.useOsdManagerGetSourceCatalog, e.useOsdManagerPreviewSlot, e.useOsdManagerRenderDevice, e.useOsdManagerSetSlotBinding, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsCancelMediaRelocate, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsCompleteRetrainTrack, e.usePipelineAnalyticsDeleteDeviceEvents, e.usePipelineAnalyticsDeleteTracks, e.usePipelineAnalyticsDeselectRetrainFrame, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetEventStoreFootprint, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetMediaRelocateStatus, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetRetrainExportUrl, e.usePipelineAnalyticsGetRetrainFrameImage, e.usePipelineAnalyticsGetSensorEvents, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsGetTrainingExportSummary, e.usePipelineAnalyticsGetTrainingExportUrl, e.usePipelineAnalyticsListEventKinds, e.usePipelineAnalyticsListEventKindsBatch, e.usePipelineAnalyticsListOpsLog, e.usePipelineAnalyticsListRecentTracks, e.usePipelineAnalyticsListRetrainAnnotations, e.usePipelineAnalyticsListRetrainFrames, e.usePipelineAnalyticsListRetrainStaging, e.usePipelineAnalyticsListTrackMedia, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsProposeRetrainAnnotations, e.usePipelineAnalyticsPruneEvents, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsPruneTracksBefore, e.usePipelineAnalyticsRebuildObjectEmbeddings, e.usePipelineAnalyticsRelocateMedia, e.usePipelineAnalyticsRestageRetrainTrack, e.usePipelineAnalyticsSaveRetrainAnnotations, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineAnalyticsSelectRetrainFrames, e.usePipelineAnalyticsSetTrackFlags, e.usePipelineAnalyticsWipeAllAnalytics, e.usePipelineAnalyticsWipeObjectEmbeddings, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCameraSwitches, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetNodeInferenceDevices, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorGetPipelineDevicePin, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentInferenceDevices, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCameraSwitch, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorSetPipelineDevicePin, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerReportMotion, e.usePipelineRunnerRunDetailSubtree, e.usePipelineRunnerRunStatelessStep, e.usePlateGalleryAssignPlate, e.usePlateGalleryAssignPlates, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryCreateVehicle, e.usePlateGalleryDeletePlate, e.usePlateGalleryDeleteVehicle, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGalleryListVehicleSamples, e.usePlateGalleryListVehicles, e.usePlateGalleryRemoveVehicleSample, e.usePlateGalleryRenameVehicle, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlateGalleryUnassignPlate, e.usePlateGalleryUnassignPlates, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetAudioEnabled, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingCancelRelocate, e.useRecordingDeleteFootprint, e.useRecordingExportCancelExport, e.useRecordingExportCreateExport, e.useRecordingExportDeleteExport, e.useRecordingExportGetDownloadUrl, e.useRecordingExportGetExport, e.useRecordingExportListExports, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlaybackManifest, e.useRecordingGetRelocateStatus, e.useRecordingGetStatus, e.useRecordingGetStorageUsage, e.useRecordingListOpsLog, e.useRecordingLocateSegment, e.useRecordingPruneFootage, e.useRecordingReadGopBytes, e.useRecordingReadSegmentBytes, e.useRecordingRelocateFootage, e.useRecordingRenderClip, e.useRecordingRenderGif, e.useRecordingRescanStorage, e.useRecordingSetDeviceConfig, e.useRemoteComponent, e.useSceneMonitorCaptureReference, e.useSceneMonitorCreateScene, e.useSceneMonitorDeleteReference, e.useSceneMonitorDeleteScene, e.useSceneMonitorGetStatus, e.useSceneMonitorListScenes, e.useSceneMonitorRecheckNow, e.useSceneMonitorUpdateScene, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreDeleteWhere, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSettingsStoreUpdateWhere, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerAcquireEgressTranscode, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerFetchEventMedia, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceAudioMute, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerProduceEventMedia, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseEgressTranscode, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRenderPreBufferClip, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetDeviceAudioMute, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, d = e.useSystem, e.useSystem$1, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetRetentionConfig, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetRetentionConfig, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useTerminalSessionClose, e.useTerminalSessionListProfiles, e.useTerminalSessionListSessions, e.useTerminalSessionOpenSession, e.useTerminalSessionResize, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
|
|
19
|
+
e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutomationHeroCard, e.AutomationInlineControl, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CARD_MODE_MIN_COLUMNS, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.DeviceMultiSelectField, e.DeviceSelectField, e.DeviceStepMatrix, e.Dialog, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EVENT_KIND_ICONS, e.EmptyState, e.ErrorBox, e.EventKindGlyph, e.EventStream, e.EyeOff, e.FILL, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, a = e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.MobileDrawer, e.ModelPicker, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECONNECT_POLICY, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SETTING_ROW, e.SETTING_ROW_LABEL, e.SETTING_ROW_STACK_BREAKPOINT, e.SETTING_ROW_VALUE, e.SETTING_ROW_VALUE_TEXT, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, o = e.STACK_GAP, e.STATE_COLOR, e.ScopePicker, e.ScriptHeroCard, e.ScriptInlineControl, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.SettingRow, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, s = e.WidgetSlot, e.ZoneEditingProvider, e.agentColumnKey, e.allDeviceTypeFilterOptions, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.deviceMatchesFilter, e.deviceOptionLabel, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeMeta, e.deviceTypeMetaOf, e.devicesToOptions, e.ensureMfHostInit, e.eventKindLabel, e.filterDeviceOptions, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupAgentColumns, e.groupChildrenByLayout, e.hardwareLabel, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextReconnectAction, e.nextSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolveEffectiveDefaultModel, e.resolveEffectiveStepModel, e.resolveEventKindIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.resolveStepDefaultModel, e.resolveTableLayout, e.scrubReducer, e.selectedDeviceOptions, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.shouldUseSingleNode, e.sortRows, e.statusIcons, e.stepHasModelForFormat, e.stepModelOptions, e.stripParentNamePrefix, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupDeleteSchedule, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupListSchedules, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBackupUpsertSchedule, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoreBlocksCompile, e.useCoreBlocksCreate, e.useCoreBlocksDelete, e.useCoreBlocksGet, e.useCoreBlocksGetTypeDefs, e.useCoreBlocksList, e.useCoreBlocksRestart, e.useCoreBlocksSetEnabled, e.useCoreBlocksUpdate, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyDeviceSettingsPatch, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetChildren, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveContribution, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceSettingsContribution, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetDeviceStatusAggregateBatch, e.useDeviceManagerGetLinkedDevices, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, c = e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, l = e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, u = e.useDeviceStateSlice, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellApplyDeviceSettingsPatch, e.useDoorbellEvents, e.useDoorbellGetDeviceLiveContribution, e.useDoorbellGetDeviceSettingsContribution, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLlmDeleteModel, e.useLlmDeleteProfile, e.useLlmGenerate, e.useLlmGenerateVision, e.useLlmGetDefaults, e.useLlmGetRuntimeStatus, e.useLlmGetUsage, e.useLlmInstallModel, e.useLlmListModelCatalog, e.useLlmListModels, e.useLlmListNodeModels, e.useLlmListProfileKinds, e.useLlmListProfiles, e.useLlmListRuntimeNodes, e.useLlmSetDefault, e.useLlmStartRuntime, e.useLlmStopRuntime, e.useLlmTestProfile, e.useLlmUpsertProfile, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetNotificationEndpoint, e.useLocalNetworkGetPreferred, e.useLocalNetworkList, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkSetAllowedAddresses, e.useLocalNetworkSetNotificationEndpoint, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetProcessStats, e.useMetricsProviderKillProcess, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotificationRulesCancelSnooze, e.useNotificationRulesCreateRule, e.useNotificationRulesCreateSnooze, e.useNotificationRulesDeleteRule, e.useNotificationRulesGetAlarmConfig, e.useNotificationRulesGetConditionCatalog, e.useNotificationRulesGetHistory, e.useNotificationRulesGetRule, e.useNotificationRulesListDeviceMutes, e.useNotificationRulesListRules, e.useNotificationRulesListSnoozes, e.useNotificationRulesSetAlarmConfig, e.useNotificationRulesSetDeviceMuted, e.useNotificationRulesSetRuleEnabled, e.useNotificationRulesTestRule, e.useNotificationRulesUpdateRule, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdManagerClearSlotBinding, e.useOsdManagerGetConditionSupport, e.useOsdManagerGetDeviceOsd, e.useOsdManagerGetSourceCatalog, e.useOsdManagerPreviewSlot, e.useOsdManagerRenderDevice, e.useOsdManagerSetSlotBinding, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsCancelMediaRelocate, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsCompleteRetrainTrack, e.usePipelineAnalyticsDeleteDeviceEvents, e.usePipelineAnalyticsDeleteTracks, e.usePipelineAnalyticsDeselectRetrainFrame, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetEventStoreFootprint, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetMediaRelocateStatus, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetRetrainExportUrl, e.usePipelineAnalyticsGetRetrainFrameImage, e.usePipelineAnalyticsGetSensorEvents, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsGetTrainingExportSummary, e.usePipelineAnalyticsGetTrainingExportUrl, e.usePipelineAnalyticsListEventKinds, e.usePipelineAnalyticsListEventKindsBatch, e.usePipelineAnalyticsListOpsLog, e.usePipelineAnalyticsListRecentTracks, e.usePipelineAnalyticsListRetrainAnnotations, e.usePipelineAnalyticsListRetrainFrames, e.usePipelineAnalyticsListRetrainStaging, e.usePipelineAnalyticsListTrackMedia, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsProposeRetrainAnnotations, e.usePipelineAnalyticsPruneEvents, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsPruneTracksBefore, e.usePipelineAnalyticsRebuildObjectEmbeddings, e.usePipelineAnalyticsRelocateMedia, e.usePipelineAnalyticsRestageRetrainTrack, e.usePipelineAnalyticsSaveRetrainAnnotations, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineAnalyticsSelectRetrainFrames, e.usePipelineAnalyticsSetTrackFlags, e.usePipelineAnalyticsWipeAllAnalytics, e.usePipelineAnalyticsWipeObjectEmbeddings, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCameraSwitches, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetNodeInferenceDevices, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorGetPipelineDevicePin, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentInferenceDevices, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCameraSwitch, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorSetPipelineDevicePin, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerReportMotion, e.usePipelineRunnerRunDetailSubtree, e.usePipelineRunnerRunStatelessStep, e.usePlateGalleryAssignPlate, e.usePlateGalleryAssignPlates, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryCreateVehicle, e.usePlateGalleryDeletePlate, e.usePlateGalleryDeleteVehicle, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGalleryListVehicleSamples, e.usePlateGalleryListVehicles, e.usePlateGalleryRemoveVehicleSample, e.usePlateGalleryRenameVehicle, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlateGalleryUnassignPlate, e.usePlateGalleryUnassignPlates, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetAudioEnabled, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingCancelRelocate, e.useRecordingDeleteFootprint, e.useRecordingExportCancelExport, e.useRecordingExportCreateExport, e.useRecordingExportDeleteExport, e.useRecordingExportGetDownloadUrl, e.useRecordingExportGetExport, e.useRecordingExportListExports, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlaybackManifest, e.useRecordingGetRelocateStatus, e.useRecordingGetStatus, e.useRecordingGetStorageUsage, e.useRecordingListOpsLog, e.useRecordingLocateSegment, e.useRecordingPruneFootage, e.useRecordingReadGopBytes, e.useRecordingReadSegmentBytes, e.useRecordingRelocateFootage, e.useRecordingRenderClip, e.useRecordingRenderGif, e.useRecordingRescanStorage, e.useRecordingSetDeviceConfig, e.useRemoteComponent, e.useSceneMonitorCaptureReference, e.useSceneMonitorCreateScene, e.useSceneMonitorDeleteReference, e.useSceneMonitorDeleteScene, e.useSceneMonitorGetStatus, e.useSceneMonitorListScenes, e.useSceneMonitorRecheckNow, e.useSceneMonitorUpdateScene, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreDeleteWhere, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSettingsStoreUpdateWhere, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotLinks, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerAcquireEgressTranscode, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerFetchEventMedia, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceAudioMute, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerProduceEventMedia, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseEgressTranscode, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRenderPreBufferClip, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetDeviceAudioMute, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, d = e.useSystem, e.useSystem$1, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetRetentionConfig, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetRetentionConfig, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useTerminalSessionClose, e.useTerminalSessionListProfiles, e.useTerminalSessionListSessions, e.useTerminalSessionOpenSession, e.useTerminalSessionResize, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
|
|
20
20
|
}, p = i.share["default:@camstack/ui-library"];
|
|
21
21
|
p === void 0 ? n.then(() => {
|
|
22
22
|
if (p = i.share["default:@camstack/ui-library"], p === void 0) throw Error("[Module Federation] Shared module @camstack/ui-library was imported before federation bootstrap finished.");
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.52",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.37",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -2,11 +2,14 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-CcS9NwDl.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
|
+
node_fs = require_dist.__toESM(node_fs, 1);
|
|
7
8
|
let node_path = require("node:path");
|
|
9
|
+
let node_path$1 = require_dist.__toESM(node_path, 1);
|
|
8
10
|
node_path = require_dist.__toESM(node_path);
|
|
9
11
|
let node_crypto = require("node:crypto");
|
|
12
|
+
require("node:child_process");
|
|
10
13
|
let sharp = require("sharp");
|
|
11
14
|
sharp = require_dist.__toESM(sharp);
|
|
12
15
|
//#region src/notification-center/action-token.ts
|
|
@@ -727,6 +730,227 @@ var NC_ALARM_DECLARATION = {
|
|
|
727
730
|
DeviceClass: NcAlarmPanelDevice
|
|
728
731
|
};
|
|
729
732
|
//#endregion
|
|
733
|
+
//#region ../types/dist/node.mjs
|
|
734
|
+
var node_exports = /* @__PURE__ */ require_dist.__exportAll({
|
|
735
|
+
FilesystemStorageProvider: () => FilesystemStorageProvider,
|
|
736
|
+
PYTHON_VERSION: () => PYTHON_VERSION,
|
|
737
|
+
signExpiringUrl: () => signExpiringUrl,
|
|
738
|
+
verifyExpiringUrl: () => verifyExpiringUrl
|
|
739
|
+
});
|
|
740
|
+
/**
|
|
741
|
+
* Download portable Python (headless) from bjia56/portable-python.
|
|
742
|
+
*
|
|
743
|
+
* Source: https://github.com/bjia56/portable-python
|
|
744
|
+
*
|
|
745
|
+
* Advantages over python-build-standalone:
|
|
746
|
+
* - macOS universal2 binary (arm64+x86_64 in one)
|
|
747
|
+
* - Lighter (~24-28MB headless zip)
|
|
748
|
+
* - glibc 2.17 minimum (better compat)
|
|
749
|
+
* - Headless variant excludes tkinter/UI (ideal for ML inference)
|
|
750
|
+
*
|
|
751
|
+
* The zip's top-level dir is platform-specific (e.g.
|
|
752
|
+
* `python-headless-3.12.12-darwin-universal2/`); after extraction
|
|
753
|
+
* we rename it to a stable `python/` so consumers can rely on
|
|
754
|
+
* `<dataDir>/deps/python/bin/python3`.
|
|
755
|
+
*/
|
|
756
|
+
var PYTHON_VERSION = "3.12.12";
|
|
757
|
+
`${PYTHON_VERSION}`;
|
|
758
|
+
var STORAGE_LOCATION_TYPES = [
|
|
759
|
+
"data",
|
|
760
|
+
"media",
|
|
761
|
+
"recordings",
|
|
762
|
+
"recordings-high",
|
|
763
|
+
"recordings-low",
|
|
764
|
+
"recordings-clips",
|
|
765
|
+
"event-images",
|
|
766
|
+
"models",
|
|
767
|
+
"addons-data",
|
|
768
|
+
"cache",
|
|
769
|
+
"logs",
|
|
770
|
+
"backups"
|
|
771
|
+
];
|
|
772
|
+
var DEFAULT_LOCATION_SUBDIRS = {
|
|
773
|
+
data: "db",
|
|
774
|
+
media: "media",
|
|
775
|
+
recordings: "recordings",
|
|
776
|
+
"recordings-high": "recordings-high",
|
|
777
|
+
"recordings-low": "recordings-low",
|
|
778
|
+
"recordings-clips": "recordings-clips",
|
|
779
|
+
"event-images": "event-images",
|
|
780
|
+
models: "models",
|
|
781
|
+
"addons-data": "addons-data",
|
|
782
|
+
cache: "/tmp/camstack-cache",
|
|
783
|
+
logs: "logs",
|
|
784
|
+
backups: "backups"
|
|
785
|
+
};
|
|
786
|
+
/**
|
|
787
|
+
* Filesystem storage provider — serves all location types from a local directory tree.
|
|
788
|
+
*
|
|
789
|
+
* Default layout:
|
|
790
|
+
* {rootPath}/recordings-high/
|
|
791
|
+
* {rootPath}/recordings-low/
|
|
792
|
+
* {rootPath}/recordings-clips/
|
|
793
|
+
* {rootPath}/event-images/
|
|
794
|
+
* {rootPath}/models/
|
|
795
|
+
* {rootPath}/addons-data/
|
|
796
|
+
* {rootPath}/logs/
|
|
797
|
+
* /tmp/camstack-cache/ (cache is always local)
|
|
798
|
+
*
|
|
799
|
+
* Individual location paths can be overridden.
|
|
800
|
+
*/
|
|
801
|
+
var FilesystemStorageProvider = class {
|
|
802
|
+
id = "local";
|
|
803
|
+
name = "Local Filesystem";
|
|
804
|
+
supportedLocations = [...STORAGE_LOCATION_TYPES];
|
|
805
|
+
rootPath;
|
|
806
|
+
locationPaths;
|
|
807
|
+
constructor(rootPath, overrides) {
|
|
808
|
+
this.rootPath = node_path$1.resolve(rootPath);
|
|
809
|
+
this.locationPaths = /* @__PURE__ */ new Map();
|
|
810
|
+
for (const loc of STORAGE_LOCATION_TYPES) {
|
|
811
|
+
const override = overrides?.[loc];
|
|
812
|
+
if (override) this.locationPaths.set(loc, node_path$1.resolve(override));
|
|
813
|
+
else {
|
|
814
|
+
const subdir = DEFAULT_LOCATION_SUBDIRS[loc] ?? loc;
|
|
815
|
+
this.locationPaths.set(loc, node_path$1.isAbsolute(subdir) ? subdir : node_path$1.join(this.rootPath, subdir));
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
for (const [loc, override] of Object.entries(overrides ?? {})) if (typeof override === "string" && !this.locationPaths.has(loc)) this.locationPaths.set(loc, node_path$1.resolve(override));
|
|
819
|
+
}
|
|
820
|
+
async resolve({ location, relativePath }) {
|
|
821
|
+
const base = this.locationPaths.get(location) ?? node_path$1.join(this.rootPath, location);
|
|
822
|
+
return node_path$1.join(base, relativePath);
|
|
823
|
+
}
|
|
824
|
+
async write({ location, relativePath, data }) {
|
|
825
|
+
const filePath = await this.resolve({
|
|
826
|
+
location,
|
|
827
|
+
relativePath
|
|
828
|
+
});
|
|
829
|
+
await node_fs.promises.mkdir(node_path$1.dirname(filePath), { recursive: true });
|
|
830
|
+
if (Buffer.isBuffer(data)) await node_fs.promises.writeFile(filePath, data);
|
|
831
|
+
else {
|
|
832
|
+
const writeStream = node_fs.createWriteStream(filePath);
|
|
833
|
+
await new Promise((resolve, reject) => {
|
|
834
|
+
data.pipe(writeStream);
|
|
835
|
+
writeStream.on("finish", resolve);
|
|
836
|
+
writeStream.on("error", reject);
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
async read({ location, relativePath }) {
|
|
841
|
+
return node_fs.promises.readFile(await this.resolve({
|
|
842
|
+
location,
|
|
843
|
+
relativePath
|
|
844
|
+
}));
|
|
845
|
+
}
|
|
846
|
+
async exists({ location, relativePath }) {
|
|
847
|
+
try {
|
|
848
|
+
await node_fs.promises.access(await this.resolve({
|
|
849
|
+
location,
|
|
850
|
+
relativePath
|
|
851
|
+
}));
|
|
852
|
+
return true;
|
|
853
|
+
} catch {
|
|
854
|
+
return false;
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
async list({ location, prefix }) {
|
|
858
|
+
const base = this.locationPaths.get(location);
|
|
859
|
+
if (!base) return [];
|
|
860
|
+
const dir = prefix ? node_path$1.join(base, prefix) : base;
|
|
861
|
+
try {
|
|
862
|
+
return (await node_fs.promises.readdir(dir, { withFileTypes: true })).map((e) => prefix ? `${prefix}/${e.name}` : e.name);
|
|
863
|
+
} catch {
|
|
864
|
+
return [];
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
async delete({ location, relativePath }) {
|
|
868
|
+
const filePath = await this.resolve({
|
|
869
|
+
location,
|
|
870
|
+
relativePath
|
|
871
|
+
});
|
|
872
|
+
await node_fs.promises.rm(filePath, { force: true });
|
|
873
|
+
}
|
|
874
|
+
async getAvailableSpace({ location }) {
|
|
875
|
+
const base = this.locationPaths.get(location);
|
|
876
|
+
if (!base) return null;
|
|
877
|
+
try {
|
|
878
|
+
let target = base;
|
|
879
|
+
while (!node_fs.existsSync(target)) {
|
|
880
|
+
const parent = node_path$1.dirname(target);
|
|
881
|
+
if (!parent || parent === target) return null;
|
|
882
|
+
target = parent;
|
|
883
|
+
}
|
|
884
|
+
const stats = await node_fs.promises.statfs(target);
|
|
885
|
+
return stats.bavail * stats.bsize;
|
|
886
|
+
} catch {
|
|
887
|
+
return null;
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
/** Get the resolved path for a location type (addon-declared ids fall back
|
|
891
|
+
* to `<rootPath>/<id>`). */
|
|
892
|
+
getLocationPath(location) {
|
|
893
|
+
return this.locationPaths.get(location) ?? node_path$1.join(this.rootPath, location);
|
|
894
|
+
}
|
|
895
|
+
/** Get the root path */
|
|
896
|
+
getRootPath() {
|
|
897
|
+
return this.rootPath;
|
|
898
|
+
}
|
|
899
|
+
};
|
|
900
|
+
/**
|
|
901
|
+
* The ONE derivation of "a signed, expiring URL".
|
|
902
|
+
*
|
|
903
|
+
* This repo mints unguessable, self-expiring links in three places now — the
|
|
904
|
+
* notification artifact plane, the Home Assistant media plane, and the snapshot
|
|
905
|
+
* link plane. The first two grew independently and are byte-identical logic
|
|
906
|
+
* (`hmac(secret, "<id>:<exp>")`, expiry checked before a constant-time compare),
|
|
907
|
+
* each restating the crypto locally because **addons never import each other**.
|
|
908
|
+
*
|
|
909
|
+
* That reason is real, and the conclusion drawn from it was wrong. Two copies of
|
|
910
|
+
* a signing scheme is how one of them quietly ends up with a different TTL, a
|
|
911
|
+
* different compare, or a missing expiry check, and nothing fails until a link
|
|
912
|
+
* that should have died keeps working. The fix is the same one D52 applies to
|
|
913
|
+
* crop geometry: one derivation, in a place every addon may depend on. A
|
|
914
|
+
* framework package is exactly that place — `@camstack/types/node`, off the root
|
|
915
|
+
* entry because `node:crypto` must never be traversed by a browser bundler.
|
|
916
|
+
*
|
|
917
|
+
* What this module deliberately does NOT decide: the TTL, the base URL, the
|
|
918
|
+
* shape of `id`, and the access level of the route. Those are per-plane policy
|
|
919
|
+
* and each caller states them where a reader can see them.
|
|
920
|
+
*/
|
|
921
|
+
/**
|
|
922
|
+
* The signature over `(id, expMs)`.
|
|
923
|
+
*
|
|
924
|
+
* `id` is whatever the plane uses to name the thing being served — an artifact
|
|
925
|
+
* id, a track id, a `<deviceId>:<width>` pair. It is joined with `:` so a caller
|
|
926
|
+
* must not put a `:` inside a field whose boundary matters; where a plane has
|
|
927
|
+
* more than one field, it composes them itself and owns that ambiguity.
|
|
928
|
+
*/
|
|
929
|
+
function signExpiringUrl(secret, id, expMs) {
|
|
930
|
+
return (0, node_crypto.createHmac)("sha256", secret).update(`${id}:${String(expMs)}`).digest("hex");
|
|
931
|
+
}
|
|
932
|
+
/**
|
|
933
|
+
* Verify a request's `(id, exp, sig)`.
|
|
934
|
+
*
|
|
935
|
+
* **Expiry is checked BEFORE the compare**, so an expired link is refused
|
|
936
|
+
* whether or not its signature is valid — a leaked URL stops working on its own
|
|
937
|
+
* and cannot be kept alive by holding a correct signature. The compare itself is
|
|
938
|
+
* constant-time so a public route cannot be probed for the signature byte by
|
|
939
|
+
* byte.
|
|
940
|
+
*/
|
|
941
|
+
function verifyExpiringUrl(input) {
|
|
942
|
+
const { secret, id, exp, sig, nowMs } = input;
|
|
943
|
+
if (exp === void 0 || sig === void 0) return false;
|
|
944
|
+
const expMs = typeof exp === "number" ? exp : Number(exp);
|
|
945
|
+
if (!Number.isFinite(expMs)) return false;
|
|
946
|
+
if (expMs <= nowMs) return false;
|
|
947
|
+
const expected = signExpiringUrl(secret, id, expMs);
|
|
948
|
+
const a = Buffer.from(expected, "utf8");
|
|
949
|
+
const b = Buffer.from(sig, "utf8");
|
|
950
|
+
if (a.length !== b.length) return false;
|
|
951
|
+
return (0, node_crypto.timingSafeEqual)(a, b);
|
|
952
|
+
}
|
|
953
|
+
//#endregion
|
|
730
954
|
//#region src/notification-center/artifact-url.ts
|
|
731
955
|
/**
|
|
732
956
|
* Signed, externally-reachable URLs for notification artifacts.
|
|
@@ -743,7 +967,10 @@ var NC_ALARM_DECLARATION = {
|
|
|
743
967
|
* recipient's phone) — it holds no session and no admin token. The route is
|
|
744
968
|
* therefore `access:'public'` and the authority is the signature: an
|
|
745
969
|
* unguessable HMAC over `(id, exp)` with a per-install secret, expiring on
|
|
746
|
-
* its own. Nothing else about the install is reachable through it.
|
|
970
|
+
* its own. Nothing else about the install is reachable through it. The HMAC
|
|
971
|
+
* is the shared one in `@camstack/types/node` — this module used to restate
|
|
972
|
+
* it, as did the Home Assistant media plane, and two copies of a signing
|
|
973
|
+
* scheme is how one of them quietly loses its expiry check.
|
|
747
974
|
* - **The base URL is CHOSEN, never assumed.** A notification carrying
|
|
748
975
|
* `http://127.0.0.1:...` is useless (the Alexa `hubUrl` bug, again). The
|
|
749
976
|
* ranked endpoint list the `local-network` cap already computes — public
|
|
@@ -760,9 +987,17 @@ var NC_ALARM_DECLARATION = {
|
|
|
760
987
|
function pickArtifactBaseUrl(endpoints) {
|
|
761
988
|
return endpoints.filter((e) => e.kind !== "loopback").toSorted((a, b) => a.priority - b.priority)[0]?.baseUrl ?? null;
|
|
762
989
|
}
|
|
763
|
-
/**
|
|
990
|
+
/**
|
|
991
|
+
* Sign `(id, exp)` — the exact string the verifier recomputes.
|
|
992
|
+
*
|
|
993
|
+
* Delegates to the one derivation in `@camstack/types/node`. This used to
|
|
994
|
+
* restate the HMAC locally, and so did the Home Assistant media plane, on the
|
|
995
|
+
* correct reasoning that addons never import each other — but two copies of a
|
|
996
|
+
* signing scheme is how one of them ends up with a different expiry check that
|
|
997
|
+
* nothing catches.
|
|
998
|
+
*/
|
|
764
999
|
function signArtifact(secret, id, expMs) {
|
|
765
|
-
return (
|
|
1000
|
+
return signExpiringUrl(secret, id, expMs);
|
|
766
1001
|
}
|
|
767
1002
|
/**
|
|
768
1003
|
* Build the fully-qualified, signed URL for an artifact.
|
|
@@ -779,12 +1014,7 @@ function buildArtifactUrl(input) {
|
|
|
779
1014
|
* the compare so an expired link is rejected even with a valid signature.
|
|
780
1015
|
*/
|
|
781
1016
|
function verifyArtifactSignature(input) {
|
|
782
|
-
|
|
783
|
-
const expected = signArtifact(input.secret, input.id, input.exp);
|
|
784
|
-
const a = Buffer.from(expected, "utf8");
|
|
785
|
-
const b = Buffer.from(input.sig, "utf8");
|
|
786
|
-
if (a.length !== b.length) return false;
|
|
787
|
-
return (0, node_crypto.timingSafeEqual)(a, b);
|
|
1017
|
+
return verifyExpiringUrl(input);
|
|
788
1018
|
}
|
|
789
1019
|
//#endregion
|
|
790
1020
|
//#region src/notification-center/artifact-plane.ts
|
|
@@ -31509,7 +31739,7 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
31509
31739
|
let storage = this.ctx.kernel.storage;
|
|
31510
31740
|
const mediaRoot = process.env.CAMSTACK_MEDIA_ROOT?.trim();
|
|
31511
31741
|
if (mediaRoot) {
|
|
31512
|
-
const { FilesystemStorageProvider } = await Promise.resolve().then(() =>
|
|
31742
|
+
const { FilesystemStorageProvider } = await Promise.resolve().then(() => node_exports);
|
|
31513
31743
|
storage = new FilesystemStorageProvider(mediaRoot, { eventMedia: mediaRoot });
|
|
31514
31744
|
logger.info("pipeline-analytics: event media rooted at CAMSTACK_MEDIA_ROOT", { meta: { mediaRoot } });
|
|
31515
31745
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { $ as array, B as subKindsOf, C as addonWidgetsSourceCapability, D as cosineSimilarity, E as buildEventKindDescriptor, F as kebabToCamel, G as BaseAddon, H as videoclipsCapability, I as notificationRulesCapability, J as hydrateSchema, K as DeviceType, L as pipelineAnalyticsCapability, M as faceGalleryCapability, O as customAction, P as isScheduleActive, Q as _enum, R as plateGalleryCapability, S as TrackSourceSchema, T as audioMetricsCapability, U as zoneAnalyticsCapability, V as vectorDimFromBase64, W as errMsg, X as nodePin, Y as isDeviceScopedCap, Z as sleep, _ as NcTaxonomySchema, a as EVENT_PAD_MS, at as string, b as TimelapseRuleInputSchema, c as NC_CONDITION_CATALOG, d as NcRuleInputSchema, et as boolean, f as NcRulePatchSchema, g as NcSnoozeSuppressedSchema, h as NcSnoozeSchema, i as EVENT_KIND_BY_CAP, it as record, j as encodeVectorBase64, k as defineCustomActions, l as NC_TAXONOMY, m as NcSnoozeInputSchema, n as DEFAULT_EVENT_COLOR, nt as number, o as LabelAttributionSchema, ot as unknown, p as NcRuleSchema, q as createEvent, r as DeclaredDevices, rt as object, s as MACRO_LABELS, st as EventCategory, t as BaseDevice, tt as literal, u as NcConditionDescriptorSchema, v as OpsLogEntrySchema, w as alarmPanelCapability, x as TimelapseRuleSchema, y as RetrainStatusSchema, z as readDeviceStateFrom } from "../dist-
|
|
1
|
+
import { $ as array, B as subKindsOf, C as addonWidgetsSourceCapability, D as cosineSimilarity, E as buildEventKindDescriptor, F as kebabToCamel, G as BaseAddon, H as videoclipsCapability, I as notificationRulesCapability, J as hydrateSchema, K as DeviceType, L as pipelineAnalyticsCapability, M as faceGalleryCapability, O as customAction, P as isScheduleActive, Q as _enum, R as plateGalleryCapability, S as TrackSourceSchema, T as audioMetricsCapability, U as zoneAnalyticsCapability, V as vectorDimFromBase64, W as errMsg, X as nodePin, Y as isDeviceScopedCap, Z as sleep, _ as NcTaxonomySchema, a as EVENT_PAD_MS, at as string, b as TimelapseRuleInputSchema, c as NC_CONDITION_CATALOG, d as NcRuleInputSchema, et as boolean, f as NcRulePatchSchema, g as NcSnoozeSuppressedSchema, h as NcSnoozeSchema, i as EVENT_KIND_BY_CAP, it as record, j as encodeVectorBase64, k as defineCustomActions, l as NC_TAXONOMY, m as NcSnoozeInputSchema, n as DEFAULT_EVENT_COLOR, nt as number, o as LabelAttributionSchema, ot as unknown, p as NcRuleSchema, q as createEvent, r as DeclaredDevices, rt as object, s as MACRO_LABELS, st as EventCategory, t as BaseDevice, tt as literal, u as NcConditionDescriptorSchema, v as OpsLogEntrySchema, w as alarmPanelCapability, x as TimelapseRuleSchema, y as RetrainStatusSchema, z as readDeviceStateFrom } from "../dist-CAC3R7XW.mjs";
|
|
2
|
+
import { t as __exportAll } from "../embedding-encoder/index.mjs";
|
|
3
|
+
import * as fs from "node:fs";
|
|
2
4
|
import { promises } from "node:fs";
|
|
5
|
+
import * as path$1 from "node:path";
|
|
3
6
|
import path from "node:path";
|
|
4
7
|
import { createHash, createHmac, randomUUID, timingSafeEqual } from "node:crypto";
|
|
8
|
+
import "node:child_process";
|
|
5
9
|
import sharp from "sharp";
|
|
6
10
|
//#region src/notification-center/action-token.ts
|
|
7
11
|
/**
|
|
@@ -721,6 +725,227 @@ var NC_ALARM_DECLARATION = {
|
|
|
721
725
|
DeviceClass: NcAlarmPanelDevice
|
|
722
726
|
};
|
|
723
727
|
//#endregion
|
|
728
|
+
//#region ../types/dist/node.mjs
|
|
729
|
+
var node_exports = /* @__PURE__ */ __exportAll({
|
|
730
|
+
FilesystemStorageProvider: () => FilesystemStorageProvider,
|
|
731
|
+
PYTHON_VERSION: () => PYTHON_VERSION,
|
|
732
|
+
signExpiringUrl: () => signExpiringUrl,
|
|
733
|
+
verifyExpiringUrl: () => verifyExpiringUrl
|
|
734
|
+
});
|
|
735
|
+
/**
|
|
736
|
+
* Download portable Python (headless) from bjia56/portable-python.
|
|
737
|
+
*
|
|
738
|
+
* Source: https://github.com/bjia56/portable-python
|
|
739
|
+
*
|
|
740
|
+
* Advantages over python-build-standalone:
|
|
741
|
+
* - macOS universal2 binary (arm64+x86_64 in one)
|
|
742
|
+
* - Lighter (~24-28MB headless zip)
|
|
743
|
+
* - glibc 2.17 minimum (better compat)
|
|
744
|
+
* - Headless variant excludes tkinter/UI (ideal for ML inference)
|
|
745
|
+
*
|
|
746
|
+
* The zip's top-level dir is platform-specific (e.g.
|
|
747
|
+
* `python-headless-3.12.12-darwin-universal2/`); after extraction
|
|
748
|
+
* we rename it to a stable `python/` so consumers can rely on
|
|
749
|
+
* `<dataDir>/deps/python/bin/python3`.
|
|
750
|
+
*/
|
|
751
|
+
var PYTHON_VERSION = "3.12.12";
|
|
752
|
+
`${PYTHON_VERSION}`;
|
|
753
|
+
var STORAGE_LOCATION_TYPES = [
|
|
754
|
+
"data",
|
|
755
|
+
"media",
|
|
756
|
+
"recordings",
|
|
757
|
+
"recordings-high",
|
|
758
|
+
"recordings-low",
|
|
759
|
+
"recordings-clips",
|
|
760
|
+
"event-images",
|
|
761
|
+
"models",
|
|
762
|
+
"addons-data",
|
|
763
|
+
"cache",
|
|
764
|
+
"logs",
|
|
765
|
+
"backups"
|
|
766
|
+
];
|
|
767
|
+
var DEFAULT_LOCATION_SUBDIRS = {
|
|
768
|
+
data: "db",
|
|
769
|
+
media: "media",
|
|
770
|
+
recordings: "recordings",
|
|
771
|
+
"recordings-high": "recordings-high",
|
|
772
|
+
"recordings-low": "recordings-low",
|
|
773
|
+
"recordings-clips": "recordings-clips",
|
|
774
|
+
"event-images": "event-images",
|
|
775
|
+
models: "models",
|
|
776
|
+
"addons-data": "addons-data",
|
|
777
|
+
cache: "/tmp/camstack-cache",
|
|
778
|
+
logs: "logs",
|
|
779
|
+
backups: "backups"
|
|
780
|
+
};
|
|
781
|
+
/**
|
|
782
|
+
* Filesystem storage provider — serves all location types from a local directory tree.
|
|
783
|
+
*
|
|
784
|
+
* Default layout:
|
|
785
|
+
* {rootPath}/recordings-high/
|
|
786
|
+
* {rootPath}/recordings-low/
|
|
787
|
+
* {rootPath}/recordings-clips/
|
|
788
|
+
* {rootPath}/event-images/
|
|
789
|
+
* {rootPath}/models/
|
|
790
|
+
* {rootPath}/addons-data/
|
|
791
|
+
* {rootPath}/logs/
|
|
792
|
+
* /tmp/camstack-cache/ (cache is always local)
|
|
793
|
+
*
|
|
794
|
+
* Individual location paths can be overridden.
|
|
795
|
+
*/
|
|
796
|
+
var FilesystemStorageProvider = class {
|
|
797
|
+
id = "local";
|
|
798
|
+
name = "Local Filesystem";
|
|
799
|
+
supportedLocations = [...STORAGE_LOCATION_TYPES];
|
|
800
|
+
rootPath;
|
|
801
|
+
locationPaths;
|
|
802
|
+
constructor(rootPath, overrides) {
|
|
803
|
+
this.rootPath = path$1.resolve(rootPath);
|
|
804
|
+
this.locationPaths = /* @__PURE__ */ new Map();
|
|
805
|
+
for (const loc of STORAGE_LOCATION_TYPES) {
|
|
806
|
+
const override = overrides?.[loc];
|
|
807
|
+
if (override) this.locationPaths.set(loc, path$1.resolve(override));
|
|
808
|
+
else {
|
|
809
|
+
const subdir = DEFAULT_LOCATION_SUBDIRS[loc] ?? loc;
|
|
810
|
+
this.locationPaths.set(loc, path$1.isAbsolute(subdir) ? subdir : path$1.join(this.rootPath, subdir));
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
for (const [loc, override] of Object.entries(overrides ?? {})) if (typeof override === "string" && !this.locationPaths.has(loc)) this.locationPaths.set(loc, path$1.resolve(override));
|
|
814
|
+
}
|
|
815
|
+
async resolve({ location, relativePath }) {
|
|
816
|
+
const base = this.locationPaths.get(location) ?? path$1.join(this.rootPath, location);
|
|
817
|
+
return path$1.join(base, relativePath);
|
|
818
|
+
}
|
|
819
|
+
async write({ location, relativePath, data }) {
|
|
820
|
+
const filePath = await this.resolve({
|
|
821
|
+
location,
|
|
822
|
+
relativePath
|
|
823
|
+
});
|
|
824
|
+
await fs.promises.mkdir(path$1.dirname(filePath), { recursive: true });
|
|
825
|
+
if (Buffer.isBuffer(data)) await fs.promises.writeFile(filePath, data);
|
|
826
|
+
else {
|
|
827
|
+
const writeStream = fs.createWriteStream(filePath);
|
|
828
|
+
await new Promise((resolve, reject) => {
|
|
829
|
+
data.pipe(writeStream);
|
|
830
|
+
writeStream.on("finish", resolve);
|
|
831
|
+
writeStream.on("error", reject);
|
|
832
|
+
});
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
async read({ location, relativePath }) {
|
|
836
|
+
return fs.promises.readFile(await this.resolve({
|
|
837
|
+
location,
|
|
838
|
+
relativePath
|
|
839
|
+
}));
|
|
840
|
+
}
|
|
841
|
+
async exists({ location, relativePath }) {
|
|
842
|
+
try {
|
|
843
|
+
await fs.promises.access(await this.resolve({
|
|
844
|
+
location,
|
|
845
|
+
relativePath
|
|
846
|
+
}));
|
|
847
|
+
return true;
|
|
848
|
+
} catch {
|
|
849
|
+
return false;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
async list({ location, prefix }) {
|
|
853
|
+
const base = this.locationPaths.get(location);
|
|
854
|
+
if (!base) return [];
|
|
855
|
+
const dir = prefix ? path$1.join(base, prefix) : base;
|
|
856
|
+
try {
|
|
857
|
+
return (await fs.promises.readdir(dir, { withFileTypes: true })).map((e) => prefix ? `${prefix}/${e.name}` : e.name);
|
|
858
|
+
} catch {
|
|
859
|
+
return [];
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
async delete({ location, relativePath }) {
|
|
863
|
+
const filePath = await this.resolve({
|
|
864
|
+
location,
|
|
865
|
+
relativePath
|
|
866
|
+
});
|
|
867
|
+
await fs.promises.rm(filePath, { force: true });
|
|
868
|
+
}
|
|
869
|
+
async getAvailableSpace({ location }) {
|
|
870
|
+
const base = this.locationPaths.get(location);
|
|
871
|
+
if (!base) return null;
|
|
872
|
+
try {
|
|
873
|
+
let target = base;
|
|
874
|
+
while (!fs.existsSync(target)) {
|
|
875
|
+
const parent = path$1.dirname(target);
|
|
876
|
+
if (!parent || parent === target) return null;
|
|
877
|
+
target = parent;
|
|
878
|
+
}
|
|
879
|
+
const stats = await fs.promises.statfs(target);
|
|
880
|
+
return stats.bavail * stats.bsize;
|
|
881
|
+
} catch {
|
|
882
|
+
return null;
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
/** Get the resolved path for a location type (addon-declared ids fall back
|
|
886
|
+
* to `<rootPath>/<id>`). */
|
|
887
|
+
getLocationPath(location) {
|
|
888
|
+
return this.locationPaths.get(location) ?? path$1.join(this.rootPath, location);
|
|
889
|
+
}
|
|
890
|
+
/** Get the root path */
|
|
891
|
+
getRootPath() {
|
|
892
|
+
return this.rootPath;
|
|
893
|
+
}
|
|
894
|
+
};
|
|
895
|
+
/**
|
|
896
|
+
* The ONE derivation of "a signed, expiring URL".
|
|
897
|
+
*
|
|
898
|
+
* This repo mints unguessable, self-expiring links in three places now — the
|
|
899
|
+
* notification artifact plane, the Home Assistant media plane, and the snapshot
|
|
900
|
+
* link plane. The first two grew independently and are byte-identical logic
|
|
901
|
+
* (`hmac(secret, "<id>:<exp>")`, expiry checked before a constant-time compare),
|
|
902
|
+
* each restating the crypto locally because **addons never import each other**.
|
|
903
|
+
*
|
|
904
|
+
* That reason is real, and the conclusion drawn from it was wrong. Two copies of
|
|
905
|
+
* a signing scheme is how one of them quietly ends up with a different TTL, a
|
|
906
|
+
* different compare, or a missing expiry check, and nothing fails until a link
|
|
907
|
+
* that should have died keeps working. The fix is the same one D52 applies to
|
|
908
|
+
* crop geometry: one derivation, in a place every addon may depend on. A
|
|
909
|
+
* framework package is exactly that place — `@camstack/types/node`, off the root
|
|
910
|
+
* entry because `node:crypto` must never be traversed by a browser bundler.
|
|
911
|
+
*
|
|
912
|
+
* What this module deliberately does NOT decide: the TTL, the base URL, the
|
|
913
|
+
* shape of `id`, and the access level of the route. Those are per-plane policy
|
|
914
|
+
* and each caller states them where a reader can see them.
|
|
915
|
+
*/
|
|
916
|
+
/**
|
|
917
|
+
* The signature over `(id, expMs)`.
|
|
918
|
+
*
|
|
919
|
+
* `id` is whatever the plane uses to name the thing being served — an artifact
|
|
920
|
+
* id, a track id, a `<deviceId>:<width>` pair. It is joined with `:` so a caller
|
|
921
|
+
* must not put a `:` inside a field whose boundary matters; where a plane has
|
|
922
|
+
* more than one field, it composes them itself and owns that ambiguity.
|
|
923
|
+
*/
|
|
924
|
+
function signExpiringUrl(secret, id, expMs) {
|
|
925
|
+
return createHmac("sha256", secret).update(`${id}:${String(expMs)}`).digest("hex");
|
|
926
|
+
}
|
|
927
|
+
/**
|
|
928
|
+
* Verify a request's `(id, exp, sig)`.
|
|
929
|
+
*
|
|
930
|
+
* **Expiry is checked BEFORE the compare**, so an expired link is refused
|
|
931
|
+
* whether or not its signature is valid — a leaked URL stops working on its own
|
|
932
|
+
* and cannot be kept alive by holding a correct signature. The compare itself is
|
|
933
|
+
* constant-time so a public route cannot be probed for the signature byte by
|
|
934
|
+
* byte.
|
|
935
|
+
*/
|
|
936
|
+
function verifyExpiringUrl(input) {
|
|
937
|
+
const { secret, id, exp, sig, nowMs } = input;
|
|
938
|
+
if (exp === void 0 || sig === void 0) return false;
|
|
939
|
+
const expMs = typeof exp === "number" ? exp : Number(exp);
|
|
940
|
+
if (!Number.isFinite(expMs)) return false;
|
|
941
|
+
if (expMs <= nowMs) return false;
|
|
942
|
+
const expected = signExpiringUrl(secret, id, expMs);
|
|
943
|
+
const a = Buffer.from(expected, "utf8");
|
|
944
|
+
const b = Buffer.from(sig, "utf8");
|
|
945
|
+
if (a.length !== b.length) return false;
|
|
946
|
+
return timingSafeEqual(a, b);
|
|
947
|
+
}
|
|
948
|
+
//#endregion
|
|
724
949
|
//#region src/notification-center/artifact-url.ts
|
|
725
950
|
/**
|
|
726
951
|
* Signed, externally-reachable URLs for notification artifacts.
|
|
@@ -737,7 +962,10 @@ var NC_ALARM_DECLARATION = {
|
|
|
737
962
|
* recipient's phone) — it holds no session and no admin token. The route is
|
|
738
963
|
* therefore `access:'public'` and the authority is the signature: an
|
|
739
964
|
* unguessable HMAC over `(id, exp)` with a per-install secret, expiring on
|
|
740
|
-
* its own. Nothing else about the install is reachable through it.
|
|
965
|
+
* its own. Nothing else about the install is reachable through it. The HMAC
|
|
966
|
+
* is the shared one in `@camstack/types/node` — this module used to restate
|
|
967
|
+
* it, as did the Home Assistant media plane, and two copies of a signing
|
|
968
|
+
* scheme is how one of them quietly loses its expiry check.
|
|
741
969
|
* - **The base URL is CHOSEN, never assumed.** A notification carrying
|
|
742
970
|
* `http://127.0.0.1:...` is useless (the Alexa `hubUrl` bug, again). The
|
|
743
971
|
* ranked endpoint list the `local-network` cap already computes — public
|
|
@@ -754,9 +982,17 @@ var NC_ALARM_DECLARATION = {
|
|
|
754
982
|
function pickArtifactBaseUrl(endpoints) {
|
|
755
983
|
return endpoints.filter((e) => e.kind !== "loopback").toSorted((a, b) => a.priority - b.priority)[0]?.baseUrl ?? null;
|
|
756
984
|
}
|
|
757
|
-
/**
|
|
985
|
+
/**
|
|
986
|
+
* Sign `(id, exp)` — the exact string the verifier recomputes.
|
|
987
|
+
*
|
|
988
|
+
* Delegates to the one derivation in `@camstack/types/node`. This used to
|
|
989
|
+
* restate the HMAC locally, and so did the Home Assistant media plane, on the
|
|
990
|
+
* correct reasoning that addons never import each other — but two copies of a
|
|
991
|
+
* signing scheme is how one of them ends up with a different expiry check that
|
|
992
|
+
* nothing catches.
|
|
993
|
+
*/
|
|
758
994
|
function signArtifact(secret, id, expMs) {
|
|
759
|
-
return
|
|
995
|
+
return signExpiringUrl(secret, id, expMs);
|
|
760
996
|
}
|
|
761
997
|
/**
|
|
762
998
|
* Build the fully-qualified, signed URL for an artifact.
|
|
@@ -773,12 +1009,7 @@ function buildArtifactUrl(input) {
|
|
|
773
1009
|
* the compare so an expired link is rejected even with a valid signature.
|
|
774
1010
|
*/
|
|
775
1011
|
function verifyArtifactSignature(input) {
|
|
776
|
-
|
|
777
|
-
const expected = signArtifact(input.secret, input.id, input.exp);
|
|
778
|
-
const a = Buffer.from(expected, "utf8");
|
|
779
|
-
const b = Buffer.from(input.sig, "utf8");
|
|
780
|
-
if (a.length !== b.length) return false;
|
|
781
|
-
return timingSafeEqual(a, b);
|
|
1012
|
+
return verifyExpiringUrl(input);
|
|
782
1013
|
}
|
|
783
1014
|
//#endregion
|
|
784
1015
|
//#region src/notification-center/artifact-plane.ts
|
|
@@ -31495,7 +31726,7 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
31495
31726
|
let storage = this.ctx.kernel.storage;
|
|
31496
31727
|
const mediaRoot = process.env.CAMSTACK_MEDIA_ROOT?.trim();
|
|
31497
31728
|
if (mediaRoot) {
|
|
31498
|
-
const { FilesystemStorageProvider } = await
|
|
31729
|
+
const { FilesystemStorageProvider } = await Promise.resolve().then(() => node_exports);
|
|
31499
31730
|
storage = new FilesystemStorageProvider(mediaRoot, { eventMedia: mediaRoot });
|
|
31500
31731
|
logger.info("pipeline-analytics: event media rooted at CAMSTACK_MEDIA_ROOT", { meta: { mediaRoot } });
|
|
31501
31732
|
}
|
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-ABX4r2Sy.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-post-analysis",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.56",
|
|
4
4
|
"description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
package/dist/node-Co0YpEFr.mjs
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path$1 from "node:path";
|
|
3
|
-
import "node:crypto";
|
|
4
|
-
import "node:child_process";
|
|
5
|
-
var STORAGE_LOCATION_TYPES = [
|
|
6
|
-
"data",
|
|
7
|
-
"media",
|
|
8
|
-
"recordings",
|
|
9
|
-
"recordings-high",
|
|
10
|
-
"recordings-low",
|
|
11
|
-
"recordings-clips",
|
|
12
|
-
"event-images",
|
|
13
|
-
"models",
|
|
14
|
-
"addons-data",
|
|
15
|
-
"cache",
|
|
16
|
-
"logs",
|
|
17
|
-
"backups"
|
|
18
|
-
];
|
|
19
|
-
var DEFAULT_LOCATION_SUBDIRS = {
|
|
20
|
-
data: "db",
|
|
21
|
-
media: "media",
|
|
22
|
-
recordings: "recordings",
|
|
23
|
-
"recordings-high": "recordings-high",
|
|
24
|
-
"recordings-low": "recordings-low",
|
|
25
|
-
"recordings-clips": "recordings-clips",
|
|
26
|
-
"event-images": "event-images",
|
|
27
|
-
models: "models",
|
|
28
|
-
"addons-data": "addons-data",
|
|
29
|
-
cache: "/tmp/camstack-cache",
|
|
30
|
-
logs: "logs",
|
|
31
|
-
backups: "backups"
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Filesystem storage provider — serves all location types from a local directory tree.
|
|
35
|
-
*
|
|
36
|
-
* Default layout:
|
|
37
|
-
* {rootPath}/recordings-high/
|
|
38
|
-
* {rootPath}/recordings-low/
|
|
39
|
-
* {rootPath}/recordings-clips/
|
|
40
|
-
* {rootPath}/event-images/
|
|
41
|
-
* {rootPath}/models/
|
|
42
|
-
* {rootPath}/addons-data/
|
|
43
|
-
* {rootPath}/logs/
|
|
44
|
-
* /tmp/camstack-cache/ (cache is always local)
|
|
45
|
-
*
|
|
46
|
-
* Individual location paths can be overridden.
|
|
47
|
-
*/
|
|
48
|
-
var FilesystemStorageProvider = class {
|
|
49
|
-
id = "local";
|
|
50
|
-
name = "Local Filesystem";
|
|
51
|
-
supportedLocations = [...STORAGE_LOCATION_TYPES];
|
|
52
|
-
rootPath;
|
|
53
|
-
locationPaths;
|
|
54
|
-
constructor(rootPath, overrides) {
|
|
55
|
-
this.rootPath = path$1.resolve(rootPath);
|
|
56
|
-
this.locationPaths = /* @__PURE__ */ new Map();
|
|
57
|
-
for (const loc of STORAGE_LOCATION_TYPES) {
|
|
58
|
-
const override = overrides?.[loc];
|
|
59
|
-
if (override) this.locationPaths.set(loc, path$1.resolve(override));
|
|
60
|
-
else {
|
|
61
|
-
const subdir = DEFAULT_LOCATION_SUBDIRS[loc] ?? loc;
|
|
62
|
-
this.locationPaths.set(loc, path$1.isAbsolute(subdir) ? subdir : path$1.join(this.rootPath, subdir));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
for (const [loc, override] of Object.entries(overrides ?? {})) if (typeof override === "string" && !this.locationPaths.has(loc)) this.locationPaths.set(loc, path$1.resolve(override));
|
|
66
|
-
}
|
|
67
|
-
async resolve({ location, relativePath }) {
|
|
68
|
-
const base = this.locationPaths.get(location) ?? path$1.join(this.rootPath, location);
|
|
69
|
-
return path$1.join(base, relativePath);
|
|
70
|
-
}
|
|
71
|
-
async write({ location, relativePath, data }) {
|
|
72
|
-
const filePath = await this.resolve({
|
|
73
|
-
location,
|
|
74
|
-
relativePath
|
|
75
|
-
});
|
|
76
|
-
await fs.promises.mkdir(path$1.dirname(filePath), { recursive: true });
|
|
77
|
-
if (Buffer.isBuffer(data)) await fs.promises.writeFile(filePath, data);
|
|
78
|
-
else {
|
|
79
|
-
const writeStream = fs.createWriteStream(filePath);
|
|
80
|
-
await new Promise((resolve, reject) => {
|
|
81
|
-
data.pipe(writeStream);
|
|
82
|
-
writeStream.on("finish", resolve);
|
|
83
|
-
writeStream.on("error", reject);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async read({ location, relativePath }) {
|
|
88
|
-
return fs.promises.readFile(await this.resolve({
|
|
89
|
-
location,
|
|
90
|
-
relativePath
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
async exists({ location, relativePath }) {
|
|
94
|
-
try {
|
|
95
|
-
await fs.promises.access(await this.resolve({
|
|
96
|
-
location,
|
|
97
|
-
relativePath
|
|
98
|
-
}));
|
|
99
|
-
return true;
|
|
100
|
-
} catch {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
async list({ location, prefix }) {
|
|
105
|
-
const base = this.locationPaths.get(location);
|
|
106
|
-
if (!base) return [];
|
|
107
|
-
const dir = prefix ? path$1.join(base, prefix) : base;
|
|
108
|
-
try {
|
|
109
|
-
return (await fs.promises.readdir(dir, { withFileTypes: true })).map((e) => prefix ? `${prefix}/${e.name}` : e.name);
|
|
110
|
-
} catch {
|
|
111
|
-
return [];
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async delete({ location, relativePath }) {
|
|
115
|
-
const filePath = await this.resolve({
|
|
116
|
-
location,
|
|
117
|
-
relativePath
|
|
118
|
-
});
|
|
119
|
-
await fs.promises.rm(filePath, { force: true });
|
|
120
|
-
}
|
|
121
|
-
async getAvailableSpace({ location }) {
|
|
122
|
-
const base = this.locationPaths.get(location);
|
|
123
|
-
if (!base) return null;
|
|
124
|
-
try {
|
|
125
|
-
let target = base;
|
|
126
|
-
while (!fs.existsSync(target)) {
|
|
127
|
-
const parent = path$1.dirname(target);
|
|
128
|
-
if (!parent || parent === target) return null;
|
|
129
|
-
target = parent;
|
|
130
|
-
}
|
|
131
|
-
const stats = await fs.promises.statfs(target);
|
|
132
|
-
return stats.bavail * stats.bsize;
|
|
133
|
-
} catch {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/** Get the resolved path for a location type (addon-declared ids fall back
|
|
138
|
-
* to `<rootPath>/<id>`). */
|
|
139
|
-
getLocationPath(location) {
|
|
140
|
-
return this.locationPaths.get(location) ?? path$1.join(this.rootPath, location);
|
|
141
|
-
}
|
|
142
|
-
/** Get the root path */
|
|
143
|
-
getRootPath() {
|
|
144
|
-
return this.rootPath;
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
//#endregion
|
|
148
|
-
export { FilesystemStorageProvider };
|
package/dist/node-cjH3qw1E.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
const require_dist = require("./dist-B1CMW3_t.js");
|
|
2
|
-
let node_fs = require("node:fs");
|
|
3
|
-
node_fs = require_dist.__toESM(node_fs, 1);
|
|
4
|
-
let node_path = require("node:path");
|
|
5
|
-
node_path = require_dist.__toESM(node_path, 1);
|
|
6
|
-
require("node:crypto");
|
|
7
|
-
require("node:child_process");
|
|
8
|
-
var STORAGE_LOCATION_TYPES = [
|
|
9
|
-
"data",
|
|
10
|
-
"media",
|
|
11
|
-
"recordings",
|
|
12
|
-
"recordings-high",
|
|
13
|
-
"recordings-low",
|
|
14
|
-
"recordings-clips",
|
|
15
|
-
"event-images",
|
|
16
|
-
"models",
|
|
17
|
-
"addons-data",
|
|
18
|
-
"cache",
|
|
19
|
-
"logs",
|
|
20
|
-
"backups"
|
|
21
|
-
];
|
|
22
|
-
var DEFAULT_LOCATION_SUBDIRS = {
|
|
23
|
-
data: "db",
|
|
24
|
-
media: "media",
|
|
25
|
-
recordings: "recordings",
|
|
26
|
-
"recordings-high": "recordings-high",
|
|
27
|
-
"recordings-low": "recordings-low",
|
|
28
|
-
"recordings-clips": "recordings-clips",
|
|
29
|
-
"event-images": "event-images",
|
|
30
|
-
models: "models",
|
|
31
|
-
"addons-data": "addons-data",
|
|
32
|
-
cache: "/tmp/camstack-cache",
|
|
33
|
-
logs: "logs",
|
|
34
|
-
backups: "backups"
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Filesystem storage provider — serves all location types from a local directory tree.
|
|
38
|
-
*
|
|
39
|
-
* Default layout:
|
|
40
|
-
* {rootPath}/recordings-high/
|
|
41
|
-
* {rootPath}/recordings-low/
|
|
42
|
-
* {rootPath}/recordings-clips/
|
|
43
|
-
* {rootPath}/event-images/
|
|
44
|
-
* {rootPath}/models/
|
|
45
|
-
* {rootPath}/addons-data/
|
|
46
|
-
* {rootPath}/logs/
|
|
47
|
-
* /tmp/camstack-cache/ (cache is always local)
|
|
48
|
-
*
|
|
49
|
-
* Individual location paths can be overridden.
|
|
50
|
-
*/
|
|
51
|
-
var FilesystemStorageProvider = class {
|
|
52
|
-
id = "local";
|
|
53
|
-
name = "Local Filesystem";
|
|
54
|
-
supportedLocations = [...STORAGE_LOCATION_TYPES];
|
|
55
|
-
rootPath;
|
|
56
|
-
locationPaths;
|
|
57
|
-
constructor(rootPath, overrides) {
|
|
58
|
-
this.rootPath = node_path.resolve(rootPath);
|
|
59
|
-
this.locationPaths = /* @__PURE__ */ new Map();
|
|
60
|
-
for (const loc of STORAGE_LOCATION_TYPES) {
|
|
61
|
-
const override = overrides?.[loc];
|
|
62
|
-
if (override) this.locationPaths.set(loc, node_path.resolve(override));
|
|
63
|
-
else {
|
|
64
|
-
const subdir = DEFAULT_LOCATION_SUBDIRS[loc] ?? loc;
|
|
65
|
-
this.locationPaths.set(loc, node_path.isAbsolute(subdir) ? subdir : node_path.join(this.rootPath, subdir));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
for (const [loc, override] of Object.entries(overrides ?? {})) if (typeof override === "string" && !this.locationPaths.has(loc)) this.locationPaths.set(loc, node_path.resolve(override));
|
|
69
|
-
}
|
|
70
|
-
async resolve({ location, relativePath }) {
|
|
71
|
-
const base = this.locationPaths.get(location) ?? node_path.join(this.rootPath, location);
|
|
72
|
-
return node_path.join(base, relativePath);
|
|
73
|
-
}
|
|
74
|
-
async write({ location, relativePath, data }) {
|
|
75
|
-
const filePath = await this.resolve({
|
|
76
|
-
location,
|
|
77
|
-
relativePath
|
|
78
|
-
});
|
|
79
|
-
await node_fs.promises.mkdir(node_path.dirname(filePath), { recursive: true });
|
|
80
|
-
if (Buffer.isBuffer(data)) await node_fs.promises.writeFile(filePath, data);
|
|
81
|
-
else {
|
|
82
|
-
const writeStream = node_fs.createWriteStream(filePath);
|
|
83
|
-
await new Promise((resolve, reject) => {
|
|
84
|
-
data.pipe(writeStream);
|
|
85
|
-
writeStream.on("finish", resolve);
|
|
86
|
-
writeStream.on("error", reject);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
async read({ location, relativePath }) {
|
|
91
|
-
return node_fs.promises.readFile(await this.resolve({
|
|
92
|
-
location,
|
|
93
|
-
relativePath
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
async exists({ location, relativePath }) {
|
|
97
|
-
try {
|
|
98
|
-
await node_fs.promises.access(await this.resolve({
|
|
99
|
-
location,
|
|
100
|
-
relativePath
|
|
101
|
-
}));
|
|
102
|
-
return true;
|
|
103
|
-
} catch {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
async list({ location, prefix }) {
|
|
108
|
-
const base = this.locationPaths.get(location);
|
|
109
|
-
if (!base) return [];
|
|
110
|
-
const dir = prefix ? node_path.join(base, prefix) : base;
|
|
111
|
-
try {
|
|
112
|
-
return (await node_fs.promises.readdir(dir, { withFileTypes: true })).map((e) => prefix ? `${prefix}/${e.name}` : e.name);
|
|
113
|
-
} catch {
|
|
114
|
-
return [];
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async delete({ location, relativePath }) {
|
|
118
|
-
const filePath = await this.resolve({
|
|
119
|
-
location,
|
|
120
|
-
relativePath
|
|
121
|
-
});
|
|
122
|
-
await node_fs.promises.rm(filePath, { force: true });
|
|
123
|
-
}
|
|
124
|
-
async getAvailableSpace({ location }) {
|
|
125
|
-
const base = this.locationPaths.get(location);
|
|
126
|
-
if (!base) return null;
|
|
127
|
-
try {
|
|
128
|
-
let target = base;
|
|
129
|
-
while (!node_fs.existsSync(target)) {
|
|
130
|
-
const parent = node_path.dirname(target);
|
|
131
|
-
if (!parent || parent === target) return null;
|
|
132
|
-
target = parent;
|
|
133
|
-
}
|
|
134
|
-
const stats = await node_fs.promises.statfs(target);
|
|
135
|
-
return stats.bavail * stats.bsize;
|
|
136
|
-
} catch {
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/** Get the resolved path for a location type (addon-declared ids fall back
|
|
141
|
-
* to `<rootPath>/<id>`). */
|
|
142
|
-
getLocationPath(location) {
|
|
143
|
-
return this.locationPaths.get(location) ?? node_path.join(this.rootPath, location);
|
|
144
|
-
}
|
|
145
|
-
/** Get the root path */
|
|
146
|
-
getRootPath() {
|
|
147
|
-
return this.rootPath;
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
//#endregion
|
|
151
|
-
exports.FilesystemStorageProvider = FilesystemStorageProvider;
|