@camstack/types 1.2.16 → 1.2.18
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/addon.d.ts +1 -0
- package/dist/addon.js +266 -2
- package/dist/addon.mjs +265 -3
- package/dist/capabilities/addons.cap.d.ts +7 -7
- package/dist/capabilities/broker.cap.d.ts +8 -8
- package/dist/capabilities/camera-streams.cap.d.ts +5 -5
- package/dist/capabilities/climate-control.cap.d.ts +8 -8
- package/dist/capabilities/day-night.cap.d.ts +8 -8
- package/dist/capabilities/decoder.cap.d.ts +2 -2
- package/dist/capabilities/device-manager.cap.d.ts +24 -2
- package/dist/capabilities/face-gallery.cap.d.ts +1 -1
- package/dist/capabilities/image-settings.cap.d.ts +16 -16
- package/dist/capabilities/index.d.ts +2 -2
- package/dist/capabilities/intercom.cap.d.ts +6 -6
- package/dist/capabilities/lawn-mower-control.cap.d.ts +4 -4
- package/dist/capabilities/llm-runtime.cap.d.ts +3 -3
- package/dist/capabilities/llm.cap.d.ts +4 -4
- package/dist/capabilities/local-network.cap.d.ts +38 -0
- package/dist/capabilities/media-player.cap.d.ts +9 -9
- package/dist/capabilities/metrics-provider.cap.d.ts +2 -2
- package/dist/capabilities/mqtt-broker.cap.d.ts +3 -3
- package/dist/capabilities/notification-output.cap.d.ts +4 -0
- package/dist/capabilities/notification-rules.cap.d.ts +378 -18
- package/dist/capabilities/pipeline-analytics.cap.d.ts +133 -27
- package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +15 -15
- package/dist/capabilities/pipeline-runner.cap.d.ts +2 -2
- package/dist/capabilities/recording-export.cap.d.ts +7 -7
- package/dist/capabilities/recording.cap.d.ts +102 -129
- package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
- package/dist/capabilities/schemas/streaming-shared.d.ts +4 -4
- package/dist/capabilities/storage-provider.cap.d.ts +44 -0
- package/dist/capabilities/storage.cap.d.ts +17 -1
- package/dist/capabilities/stream-broker.cap.d.ts +58 -12
- package/dist/capabilities/webrtc-session.cap.d.ts +6 -6
- package/dist/enums/event-category.d.ts +13 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-Cdyife4p.js → event-category-39bpf1r_.js} +13 -0
- package/dist/{event-category-BLcNejAE.mjs → event-category-Bz24uP1U.mjs} +13 -0
- package/dist/generated/addon-api.d.ts +5358 -30965
- package/dist/generated/cap-input-defaults.d.ts +29 -0
- package/dist/generated/device-proxy.d.ts +2 -2
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.js +724 -138
- package/dist/index.mjs +711 -135
- package/dist/interfaces/addon.d.ts +9 -0
- package/dist/interfaces/ops-log.d.ts +2 -0
- package/dist/interfaces/recording-config.d.ts +33 -91
- package/dist/interfaces/relocate.d.ts +55 -0
- package/dist/interfaces/storage-location-declaration.d.ts +1 -1
- package/dist/interfaces/storage-location.d.ts +4 -0
- package/dist/interfaces/stream-broker.d.ts +1 -1
- package/dist/lifecycle/job.d.ts +6 -6
- package/dist/node.js +1 -0
- package/dist/node.mjs +1 -0
- package/dist/notification/condition-taxonomy.d.ts +61 -0
- package/dist/notification/format-transcode.d.ts +12 -1
- package/dist/{sleep-C3ceNSsf.mjs → sleep-B_Uaqbai.mjs} +7 -1
- package/dist/{sleep-DRg9F6JJ.js → sleep-DETsT9rJ.js} +7 -1
- package/package.json +1 -1
- package/dist/interfaces/recording-config-migrate.d.ts +0 -12
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as ProfileSlotSchema, A as parseJsonUnknown, B as BrokerStatsSchema, C as asBoolean, Ct as DisposerChain, D as asString, E as asNumber, F as ReadinessRegistry, G as CamStreamResolutionSchema, H as CAM_PROFILE_ORDER, I as ReadinessTimeoutError, J as DecodedFrameSchema, K as CameraStreamSchema, L as emitDownForOwnedCaps, M as nodePin, N as readNodePin, O as parseJsonArray, P as DATAPLANE_SECRET_HEADER, Q as ProfileRtspEntrySchema, R as readinessKey, S as DeviceType, St as resolveHydratedFieldValue, T as asJsonObject, U as CamProfileSchema, V as BrokerStatusSchema, W as CamStreamKindSchema, X as FrameHandleFormatSchema, Y as EncodedPacketSchema, Z as FrameHandleSchema, _ as resolveCapMount, _t as WELL_KNOWN_TABS, a as viewerUiCapability, at as SubscribeFramesInputSchema, b as DeviceFeature, bt as collectHydratedFieldValues, c as createLazyTrpcSource, ct as makeSourceBrokerId, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as BaseAddon, et as ProfileSlotStatusSchema, f as DEVICE_STATUS_METHOD, ft as normalizeAddonInitResult, g as method, gt as isEvent, h as isDeviceConfigCap, ht as emitReadiness, i as deviceOpsCapability, it as SubscribeAudioChunksResultSchema, j as CAP_NODE_PIN_CONTEXT_KEY, k as parseJsonObject, l as createMirrorSource, lt as parseProfileBrokerId, m as expandCapMethods, mt as createEvent, n as sleepCancellable, nt as StreamSourceSchema, o as adminUiCapability, ot as SubscribeFramesResultSchema, p as event, pt as createDurableState, q as DecodedAudioChunkSchema, r as RawStateResultSchema, rt as SubscribeAudioChunksInputSchema, s as createDeviceProxy, st as makeProfileBrokerId, t as sleep, tt as StreamSourceEntrySchema, u as createSliceHandle, ut as selectAssignedProfileSlots, v as systemMethod, vt as WELL_KNOWN_TAB_MAP, w as asJsonArray, x as DeviceRole, xt as hydrateSchema, y as ChargingStatus, yt as collectHydratedFieldEntries, z as scopeKey } from "./sleep-
|
|
2
|
-
import { t as EventCategory } from "./event-category-
|
|
1
|
+
import { $ as ProfileSlotSchema, A as parseJsonUnknown, B as BrokerStatsSchema, C as asBoolean, Ct as DisposerChain, D as asString, E as asNumber, F as ReadinessRegistry, G as CamStreamResolutionSchema, H as CAM_PROFILE_ORDER, I as ReadinessTimeoutError, J as DecodedFrameSchema, K as CameraStreamSchema, L as emitDownForOwnedCaps, M as nodePin, N as readNodePin, O as parseJsonArray, P as DATAPLANE_SECRET_HEADER, Q as ProfileRtspEntrySchema, R as readinessKey, S as DeviceType, St as resolveHydratedFieldValue, T as asJsonObject, U as CamProfileSchema, V as BrokerStatusSchema, W as CamStreamKindSchema, X as FrameHandleFormatSchema, Y as EncodedPacketSchema, Z as FrameHandleSchema, _ as resolveCapMount, _t as WELL_KNOWN_TABS, a as viewerUiCapability, at as SubscribeFramesInputSchema, b as DeviceFeature, bt as collectHydratedFieldValues, c as createLazyTrpcSource, ct as makeSourceBrokerId, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as BaseAddon, et as ProfileSlotStatusSchema, f as DEVICE_STATUS_METHOD, ft as normalizeAddonInitResult, g as method, gt as isEvent, h as isDeviceConfigCap, ht as emitReadiness, i as deviceOpsCapability, it as SubscribeAudioChunksResultSchema, j as CAP_NODE_PIN_CONTEXT_KEY, k as parseJsonObject, l as createMirrorSource, lt as parseProfileBrokerId, m as expandCapMethods, mt as createEvent, n as sleepCancellable, nt as StreamSourceSchema, o as adminUiCapability, ot as SubscribeFramesResultSchema, p as event, pt as createDurableState, q as DecodedAudioChunkSchema, r as RawStateResultSchema, rt as SubscribeAudioChunksInputSchema, s as createDeviceProxy, st as makeProfileBrokerId, t as sleep, tt as StreamSourceEntrySchema, u as createSliceHandle, ut as selectAssignedProfileSlots, v as systemMethod, vt as WELL_KNOWN_TAB_MAP, w as asJsonArray, x as DeviceRole, xt as hydrateSchema, y as ChargingStatus, yt as collectHydratedFieldEntries, z as scopeKey } from "./sleep-B_Uaqbai.mjs";
|
|
2
|
+
import { t as EventCategory } from "./event-category-Bz24uP1U.mjs";
|
|
3
3
|
import { EventSourceType } from "./enums.mjs";
|
|
4
4
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
@@ -791,35 +791,22 @@ var EVENT_PAD_MS = {
|
|
|
791
791
|
*/
|
|
792
792
|
var RecordingWeekdaySchema = z.number().int().min(0).max(6);
|
|
793
793
|
var HHMM = /^([01]\d|2[0-3]):[0-5]\d$/;
|
|
794
|
-
var RecordingScheduleSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("always") }), z.object({
|
|
795
|
-
kind: z.literal("timeOfDay"),
|
|
796
|
-
start: z.string().regex(HHMM),
|
|
797
|
-
end: z.string().regex(HHMM),
|
|
798
|
-
/** Restrict to these weekdays; omit = every day. */
|
|
799
|
-
days: z.array(RecordingWeekdaySchema).optional()
|
|
800
|
-
})]);
|
|
801
|
-
var RecordingModeSchema = z.enum([
|
|
802
|
-
"continuous",
|
|
803
|
-
"onMotion",
|
|
804
|
-
"onAudioThreshold"
|
|
805
|
-
]);
|
|
806
794
|
/**
|
|
807
|
-
*
|
|
808
|
-
*
|
|
809
|
-
* - `off` —
|
|
810
|
-
* - `events` —
|
|
811
|
-
*
|
|
812
|
-
* - `continuous` — record 24/7 within the schedule.
|
|
795
|
+
* DERIVED per-camera storage summary — the single field cheap consumers read
|
|
796
|
+
* (the viewer's status dot, the camera list) instead of walking `bands`:
|
|
797
|
+
* - `off` — no band covers the camera (or it is disabled).
|
|
798
|
+
* - `events` — every band records around triggers only.
|
|
799
|
+
* - `continuous` — at least one band records continuously.
|
|
813
800
|
*
|
|
814
|
-
*
|
|
815
|
-
*
|
|
801
|
+
* NEVER authored: the recorder stamps it from the authoritative `bands` on
|
|
802
|
+
* every save (`activeModeForConfig`). Writing it has no effect.
|
|
816
803
|
*/
|
|
817
804
|
var RecordingStorageModeSchema = z.enum([
|
|
818
805
|
"off",
|
|
819
806
|
"events",
|
|
820
807
|
"continuous"
|
|
821
808
|
]);
|
|
822
|
-
/** Which detectors trigger an `events`-mode
|
|
809
|
+
/** Which detectors trigger an `events`-mode band. */
|
|
823
810
|
var RecordingTriggersSchema = z.object({
|
|
824
811
|
motion: z.boolean().optional(),
|
|
825
812
|
audioThresholdDbfs: z.number().optional()
|
|
@@ -855,18 +842,6 @@ var RecordingBandSchema = z.object({
|
|
|
855
842
|
preBufferSec: z.number().min(0).optional(),
|
|
856
843
|
postBufferSec: z.number().min(0).optional()
|
|
857
844
|
});
|
|
858
|
-
var RecordingRuleSchema = z.object({
|
|
859
|
-
schedule: RecordingScheduleSchema,
|
|
860
|
-
mode: RecordingModeSchema,
|
|
861
|
-
/** Seconds of footage to retain BEFORE a trigger (applied at keep/discard). */
|
|
862
|
-
preBufferSec: z.number().min(0).default(0),
|
|
863
|
-
/** Keep recording until this many seconds after the last trigger. */
|
|
864
|
-
postBufferSec: z.number().min(0).default(0),
|
|
865
|
-
/** Each new trigger restarts the post-buffer window. */
|
|
866
|
-
resetTimeoutOnNewEvent: z.boolean().default(true),
|
|
867
|
-
/** onAudioThreshold only — dBFS level that counts as a trigger. */
|
|
868
|
-
thresholdDbfs: z.number().optional()
|
|
869
|
-
});
|
|
870
845
|
/**
|
|
871
846
|
* Per-device retention overrides. Every field is optional; an unset or `0`
|
|
872
847
|
* value inherits the node-wide recorder default. Only footage-lifetime limits
|
|
@@ -959,40 +934,28 @@ function resolveScrubThumbnailGeometry(preset) {
|
|
|
959
934
|
/**
|
|
960
935
|
* The full per-camera recording intent — the wire shape of a RecordingTarget.
|
|
961
936
|
*
|
|
962
|
-
* `
|
|
963
|
-
*
|
|
964
|
-
*
|
|
965
|
-
*
|
|
937
|
+
* `bands` is the ONLY authored recording intent: what to record, when, and on
|
|
938
|
+
* which trigger. `mode` is a derived summary the recorder stamps on save; every
|
|
939
|
+
* other field is a storage knob (profiles, segment length, retention, scrub).
|
|
940
|
+
*
|
|
941
|
+
* STRICT on purpose: the legacy authoring surface (`schedule`/`schedules`/
|
|
942
|
+
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30.
|
|
943
|
+
* A stale caller must fail loudly — silently stripping its legacy intent would
|
|
944
|
+
* persist a band-less config, i.e. silently stop recording the camera.
|
|
966
945
|
*/
|
|
967
946
|
var RecordingConfigSchema = z.object({
|
|
968
947
|
enabled: z.boolean(),
|
|
969
|
-
/**
|
|
970
|
-
*
|
|
948
|
+
/** DERIVED summary of `bands`, stamped by the recorder on every save.
|
|
949
|
+
* Authoring it has no effect — see {@link RecordingStorageModeSchema}. */
|
|
971
950
|
mode: RecordingStorageModeSchema.optional(),
|
|
972
951
|
profiles: z.array(CamProfileSchema).optional(),
|
|
973
952
|
segmentSeconds: z.number().int().positive().optional(),
|
|
974
|
-
/** Shared recording time-bands for `events` & `continuous` — record only when
|
|
975
|
-
* the wall-clock falls inside one of these windows. Omit or empty = always.
|
|
976
|
-
* `continuous` compiles to one rule per band; `events` to band × trigger. */
|
|
977
|
-
schedules: z.array(RecordingScheduleSchema).optional(),
|
|
978
|
-
/** Legacy single-band predecessor of `schedules`. Read-compat only — it is
|
|
979
|
-
* normalized into `schedules` on read and never written going forward. (Not
|
|
980
|
-
* tagged `@deprecated`: the normalization paths must read it cast-free.) */
|
|
981
|
-
schedule: RecordingScheduleSchema.optional(),
|
|
982
|
-
/** `events`-mode only — which detectors trigger a recording. */
|
|
983
|
-
triggers: RecordingTriggersSchema.optional(),
|
|
984
|
-
/** `events`-mode only — seconds retained before / after a trigger. */
|
|
985
|
-
preBufferSec: z.number().min(0).optional(),
|
|
986
|
-
postBufferSec: z.number().min(0).optional(),
|
|
987
|
-
/** DEPRECATED authoring input; retained for migration/transition. */
|
|
988
|
-
rules: z.array(RecordingRuleSchema).optional(),
|
|
989
953
|
/**
|
|
990
|
-
* AUTHORITATIVE mode-per-band recording model
|
|
991
|
-
*
|
|
992
|
-
*
|
|
993
|
-
* derived into bands once via `migrateConfigToBands`.
|
|
954
|
+
* AUTHORITATIVE mode-per-band recording model — the single source of truth
|
|
955
|
+
* the recorder's band engine consumes. An empty array = record nothing;
|
|
956
|
+
* "off" is the absence of a covering band, never a band value.
|
|
994
957
|
*/
|
|
995
|
-
bands: z.array(RecordingBandSchema).
|
|
958
|
+
bands: z.array(RecordingBandSchema).default([]),
|
|
996
959
|
retention: RecordingRetentionSchema.optional(),
|
|
997
960
|
/**
|
|
998
961
|
* Per-camera scrub-thumbnail fidelity preset (resolution + JPEG quality for
|
|
@@ -1000,62 +963,30 @@ var RecordingConfigSchema = z.object({
|
|
|
1000
963
|
* windows only — existing sheets are immutable, and each window's index
|
|
1001
964
|
* carries its own tile dims so mixed-preset history renders correctly.
|
|
1002
965
|
*/
|
|
1003
|
-
scrubThumbnails: ScrubThumbnailPresetSchema.optional()
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
*
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
*
|
|
1020
|
-
*
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
function
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
if (mode === "continuous") return {
|
|
1028
|
-
days,
|
|
1029
|
-
start,
|
|
1030
|
-
end,
|
|
1031
|
-
mode
|
|
1032
|
-
};
|
|
1033
|
-
return {
|
|
1034
|
-
days,
|
|
1035
|
-
start,
|
|
1036
|
-
end,
|
|
1037
|
-
mode,
|
|
1038
|
-
...config.triggers ? { triggers: config.triggers } : {},
|
|
1039
|
-
...config.preBufferSec !== void 0 ? { preBufferSec: config.preBufferSec } : {},
|
|
1040
|
-
...config.postBufferSec !== void 0 ? { postBufferSec: config.postBufferSec } : {}
|
|
1041
|
-
};
|
|
1042
|
-
}
|
|
1043
|
-
/**
|
|
1044
|
-
* One-way migration from the legacy recording-config shape to the authoritative
|
|
1045
|
-
* mode-per-band model. Pure (no clock access).
|
|
1046
|
-
*
|
|
1047
|
-
* - If `config.bands` is present, it is authoritative and returned as-is.
|
|
1048
|
-
* - Otherwise the result is derived from the legacy fields: a disabled config or
|
|
1049
|
-
* `mode: 'off'` yields no bands; every legacy schedule maps to one band whose
|
|
1050
|
-
* mode is `continuous` when `config.mode === 'continuous'`, else `events`
|
|
1051
|
-
* (carrying `triggers`/`preBufferSec`/`postBufferSec`).
|
|
1052
|
-
*/
|
|
1053
|
-
function migrateConfigToBands(config) {
|
|
1054
|
-
if (config.bands) return config.bands;
|
|
1055
|
-
if (!config.enabled || config.mode === "off") return [];
|
|
1056
|
-
const schedules = config.schedules ?? (config.schedule ? [config.schedule] : [{ kind: "always" }]);
|
|
1057
|
-
const bandMode = config.mode === "continuous" ? "continuous" : "events";
|
|
1058
|
-
return schedules.map((schedule) => bandFromSchedule(schedule, bandMode, config));
|
|
966
|
+
scrubThumbnails: ScrubThumbnailPresetSchema.optional(),
|
|
967
|
+
/**
|
|
968
|
+
* OPT-IN thumbnail-strip generation for this camera: every keyframe of the
|
|
969
|
+
* low recording saved as a JPEG (the fast-drag scrub depth), a derived
|
|
970
|
+
* cache that eviction reclaims with the footage. Absent/false = no strips
|
|
971
|
+
* are written and scrub reads exact keyframes at every velocity.
|
|
972
|
+
*/
|
|
973
|
+
stripsEnabled: z.boolean().optional()
|
|
974
|
+
}).strict();
|
|
975
|
+
/**
|
|
976
|
+
* Derive the {@link RecordingStorageModeSchema} summary from the authoritative
|
|
977
|
+
* bands: `continuous` when any band records continuously, `events` when a band
|
|
978
|
+
* exists at all, else `off`. Pure.
|
|
979
|
+
*
|
|
980
|
+
* THE one definition: the recorder stamps `config.mode` with it on save and
|
|
981
|
+
* reports it as the cap's `activeMode`, and the settings UI reads it back to
|
|
982
|
+
* decide which authoring tab a config opens in. Two copies would drift, and the
|
|
983
|
+
* symptom (a status dot disagreeing with what is being recorded) is exactly the
|
|
984
|
+
* bug this field was added to fix.
|
|
985
|
+
*/
|
|
986
|
+
function deriveRecordingMode(config) {
|
|
987
|
+
if (!config.enabled || config.bands.length === 0) return "off";
|
|
988
|
+
if (config.bands.some((band) => band.mode === "continuous")) return "continuous";
|
|
989
|
+
return "events";
|
|
1059
990
|
}
|
|
1060
991
|
//#endregion
|
|
1061
992
|
//#region src/interfaces/ops-log.ts
|
|
@@ -1077,7 +1008,8 @@ var OpsLogOpSchema = z.enum([
|
|
|
1077
1008
|
"prune",
|
|
1078
1009
|
"manual-delete",
|
|
1079
1010
|
"rescan",
|
|
1080
|
-
"retention-run"
|
|
1011
|
+
"retention-run",
|
|
1012
|
+
"relocate"
|
|
1081
1013
|
]);
|
|
1082
1014
|
/** Why the operation ran. */
|
|
1083
1015
|
var OpsLogReasonSchema = z.enum([
|
|
@@ -1123,6 +1055,57 @@ var OPS_LOG_RING_DEFAULT_MAX = 500;
|
|
|
1123
1055
|
/** Default page size for a `listOpsLog` query when the caller omits `limit`. */
|
|
1124
1056
|
var OPS_LOG_DEFAULT_LIMIT = 200;
|
|
1125
1057
|
//#endregion
|
|
1058
|
+
//#region src/interfaces/relocate.ts
|
|
1059
|
+
/**
|
|
1060
|
+
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
1061
|
+
*
|
|
1062
|
+
* One shape shared by the recorder's `relocateFootage` (segments + strips) and
|
|
1063
|
+
* pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
|
|
1064
|
+
* page renders both movers with one component. Jobs are in-RAM (a restart
|
|
1065
|
+
* forgets them — re-running is safe by construction: copy-if-absent, delete
|
|
1066
|
+
* after verify) and each completed/failed run also lands one durable ops-log
|
|
1067
|
+
* row on the owning addon's surface.
|
|
1068
|
+
*/
|
|
1069
|
+
var RelocateJobStateSchema = z.enum([
|
|
1070
|
+
"running",
|
|
1071
|
+
"done",
|
|
1072
|
+
"failed",
|
|
1073
|
+
"cancelled"
|
|
1074
|
+
]);
|
|
1075
|
+
var RelocateJobSchema = z.object({
|
|
1076
|
+
jobId: z.string(),
|
|
1077
|
+
state: RelocateJobStateSchema,
|
|
1078
|
+
/** Source location — for media relocation this is informational ('*': rows
|
|
1079
|
+
* move from wherever they are to the target). */
|
|
1080
|
+
fromLocationId: z.string(),
|
|
1081
|
+
toLocationId: z.string(),
|
|
1082
|
+
/** Scoped device, or null = every device. */
|
|
1083
|
+
deviceId: z.number().nullable(),
|
|
1084
|
+
/** What the job moves (owner-addon specific: segments/strips or media). */
|
|
1085
|
+
entities: z.array(z.string()),
|
|
1086
|
+
filesMoved: z.number().int(),
|
|
1087
|
+
bytesMoved: z.number().int(),
|
|
1088
|
+
/** Total files discovered up front; null while (or when) unknown. */
|
|
1089
|
+
filesTotal: z.number().int().nullable(),
|
|
1090
|
+
startedAt: z.number(),
|
|
1091
|
+
finishedAt: z.number().nullable(),
|
|
1092
|
+
error: z.string().nullable()
|
|
1093
|
+
});
|
|
1094
|
+
var RelocateFootageInputSchema = z.object({
|
|
1095
|
+
deviceId: z.number().optional(),
|
|
1096
|
+
fromLocationId: z.string(),
|
|
1097
|
+
toLocationId: z.string(),
|
|
1098
|
+
entities: z.array(z.enum(["segments", "strips"])).optional(),
|
|
1099
|
+
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
1100
|
+
* never allowed to starve live writers. */
|
|
1101
|
+
throttleMbps: z.number().min(1).max(1e3).optional()
|
|
1102
|
+
});
|
|
1103
|
+
var RelocateMediaInputSchema = z.object({
|
|
1104
|
+
deviceId: z.number().optional(),
|
|
1105
|
+
toLocationId: z.string(),
|
|
1106
|
+
throttleMbps: z.number().min(1).max(1e3).optional()
|
|
1107
|
+
});
|
|
1108
|
+
//#endregion
|
|
1126
1109
|
//#region src/interfaces/logging.ts
|
|
1127
1110
|
/**
|
|
1128
1111
|
* Severity ordering. Declared once here because it had already been re-declared
|
|
@@ -1196,6 +1179,13 @@ var StorageLocationSchema = z.object({
|
|
|
1196
1179
|
nodeId: z.string().optional(),
|
|
1197
1180
|
isDefault: z.boolean().default(false),
|
|
1198
1181
|
isSystem: z.boolean().default(false),
|
|
1182
|
+
/** COMPUTED at read time by the orchestrator (statfs of the backing volume
|
|
1183
|
+
* for node-local locations it can reach) — never persisted, absent when the
|
|
1184
|
+
* volume is remote/unreachable. The single capacity truth every UI reads. */
|
|
1185
|
+
capacity: z.object({
|
|
1186
|
+
totalBytes: z.number(),
|
|
1187
|
+
availableBytes: z.number()
|
|
1188
|
+
}).nullable().optional(),
|
|
1199
1189
|
createdAt: z.number(),
|
|
1200
1190
|
updatedAt: z.number()
|
|
1201
1191
|
});
|
|
@@ -4343,9 +4333,20 @@ var DEGRADE_ORDER = {
|
|
|
4343
4333
|
"markdown"
|
|
4344
4334
|
]
|
|
4345
4335
|
};
|
|
4346
|
-
/**
|
|
4336
|
+
/**
|
|
4337
|
+
* Pick the best target format the kind supports for a given source format.
|
|
4338
|
+
*
|
|
4339
|
+
* TOLERANT of a source outside the union. `NotificationSchema.format` carries
|
|
4340
|
+
* `.default('text')`, but that default only runs where the schema is PARSED —
|
|
4341
|
+
* the tRPC router. A cap call arriving from another addon (`ctx.api`) skips
|
|
4342
|
+
* that parse, so `format` reaches here `undefined`, and the bare
|
|
4343
|
+
* `DEGRADE_ORDER[source]` threw `is not iterable`. That broke the one promise
|
|
4344
|
+
* the degrade path makes ("never throws — degradation is reported, never
|
|
4345
|
+
* surfaced as an error") and dead-lettered every Notification-Center delivery
|
|
4346
|
+
* for a day (2026-07-30). An unknown source degrades like `text`.
|
|
4347
|
+
*/
|
|
4347
4348
|
function resolveFormat(source, supported) {
|
|
4348
|
-
for (const candidate of DEGRADE_ORDER[source]) if (supported.includes(candidate)) return candidate;
|
|
4349
|
+
for (const candidate of DEGRADE_ORDER[source] ?? DEGRADE_ORDER.text) if (supported.includes(candidate)) return candidate;
|
|
4349
4350
|
return supported[0] ?? "text";
|
|
4350
4351
|
}
|
|
4351
4352
|
/** Transcode a body between formats. */
|
|
@@ -4392,7 +4393,7 @@ function resolveLevel(levels, n) {
|
|
|
4392
4393
|
})[0]);
|
|
4393
4394
|
}
|
|
4394
4395
|
function splitBody(body, maxLen) {
|
|
4395
|
-
if (maxLen <= 0 || body.length <= maxLen) return [body];
|
|
4396
|
+
if (!Number.isFinite(maxLen) || maxLen <= 0 || body.length <= maxLen) return [body];
|
|
4396
4397
|
const parts = [];
|
|
4397
4398
|
for (let i = 0; i < body.length; i += maxLen) parts.push(body.slice(i, i + maxLen));
|
|
4398
4399
|
return parts;
|
|
@@ -4476,6 +4477,114 @@ function prepareNotification(caps, n) {
|
|
|
4476
4477
|
};
|
|
4477
4478
|
}
|
|
4478
4479
|
//#endregion
|
|
4480
|
+
//#region src/notification/condition-taxonomy.ts
|
|
4481
|
+
/** Condition ids that render the class picker (video macros/subs + audio). */
|
|
4482
|
+
var CLASS_CONDITION_IDS = new Set(["classes", "classesExclude"]);
|
|
4483
|
+
/** Condition ids that render the sensor/control label picker. */
|
|
4484
|
+
var LABEL_CONDITION_IDS = new Set(["sensorKinds"]);
|
|
4485
|
+
function toOption(entry) {
|
|
4486
|
+
return {
|
|
4487
|
+
value: entry.kind,
|
|
4488
|
+
label: entry.label
|
|
4489
|
+
};
|
|
4490
|
+
}
|
|
4491
|
+
/**
|
|
4492
|
+
* Group detection entries by their macro. A macro entry (`parentKind === null`)
|
|
4493
|
+
* opens its own group and is itself the first option in it; subs fall under
|
|
4494
|
+
* their `parentKind`. First-appearance order is preserved, which is why
|
|
4495
|
+
* `buildNcTaxonomy` emits macros before their subs.
|
|
4496
|
+
*/
|
|
4497
|
+
function groupVideoClasses(videoClasses) {
|
|
4498
|
+
const order = [];
|
|
4499
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
4500
|
+
const ensure = (key, fallbackLabel) => {
|
|
4501
|
+
const existing = byKey.get(key);
|
|
4502
|
+
if (existing !== void 0) return existing;
|
|
4503
|
+
const created = {
|
|
4504
|
+
fallbackLabel,
|
|
4505
|
+
options: []
|
|
4506
|
+
};
|
|
4507
|
+
byKey.set(key, created);
|
|
4508
|
+
order.push(key);
|
|
4509
|
+
return created;
|
|
4510
|
+
};
|
|
4511
|
+
for (const entry of videoClasses) {
|
|
4512
|
+
const key = entry.parentKind ?? entry.kind;
|
|
4513
|
+
const group = ensure(key, entry.parentKind === null ? entry.label : key);
|
|
4514
|
+
group.options.push(toOption(entry));
|
|
4515
|
+
if (entry.parentKind === null) group.fallbackLabel = entry.label;
|
|
4516
|
+
}
|
|
4517
|
+
return order.flatMap((key) => {
|
|
4518
|
+
const group = byKey.get(key);
|
|
4519
|
+
return group === void 0 ? [] : [{
|
|
4520
|
+
key,
|
|
4521
|
+
fallbackLabel: group.fallbackLabel,
|
|
4522
|
+
options: group.options
|
|
4523
|
+
}];
|
|
4524
|
+
});
|
|
4525
|
+
}
|
|
4526
|
+
/** Group sensor/control labels by their category parent (`sensor` | `control`). */
|
|
4527
|
+
function groupLabels(labels) {
|
|
4528
|
+
const order = [];
|
|
4529
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
4530
|
+
for (const entry of labels) {
|
|
4531
|
+
const key = entry.parentKind ?? "other";
|
|
4532
|
+
const existing = byKey.get(key);
|
|
4533
|
+
if (existing === void 0) {
|
|
4534
|
+
byKey.set(key, [toOption(entry)]);
|
|
4535
|
+
order.push(key);
|
|
4536
|
+
} else existing.push(toOption(entry));
|
|
4537
|
+
}
|
|
4538
|
+
return order.flatMap((key) => {
|
|
4539
|
+
const options = byKey.get(key);
|
|
4540
|
+
return options === void 0 ? [] : [{
|
|
4541
|
+
key,
|
|
4542
|
+
fallbackLabel: key,
|
|
4543
|
+
options
|
|
4544
|
+
}];
|
|
4545
|
+
});
|
|
4546
|
+
}
|
|
4547
|
+
/**
|
|
4548
|
+
* Build the grouped picker model for a condition id, or `null` when the
|
|
4549
|
+
* condition has no fixed vocabulary (→ free-text tag input).
|
|
4550
|
+
*/
|
|
4551
|
+
function pickerForCondition(conditionId, taxonomy) {
|
|
4552
|
+
if (!taxonomy) return null;
|
|
4553
|
+
if (CLASS_CONDITION_IDS.has(conditionId)) {
|
|
4554
|
+
const groups = groupVideoClasses(taxonomy.videoClasses);
|
|
4555
|
+
if (taxonomy.audioKinds.length > 0) groups.push({
|
|
4556
|
+
key: "audio",
|
|
4557
|
+
fallbackLabel: "Audio",
|
|
4558
|
+
options: taxonomy.audioKinds.map(toOption)
|
|
4559
|
+
});
|
|
4560
|
+
return groups.length > 0 ? { groups } : null;
|
|
4561
|
+
}
|
|
4562
|
+
if (LABEL_CONDITION_IDS.has(conditionId)) {
|
|
4563
|
+
const groups = groupLabels(taxonomy.labels);
|
|
4564
|
+
return groups.length > 0 ? { groups } : null;
|
|
4565
|
+
}
|
|
4566
|
+
return null;
|
|
4567
|
+
}
|
|
4568
|
+
/** All option values across a picker's groups (for custom-value detection). */
|
|
4569
|
+
function knownValues(picker) {
|
|
4570
|
+
const set = /* @__PURE__ */ new Set();
|
|
4571
|
+
for (const group of picker.groups) for (const option of group.options) set.add(option.value);
|
|
4572
|
+
return set;
|
|
4573
|
+
}
|
|
4574
|
+
/**
|
|
4575
|
+
* The condition ids shown in the ALWAYS-VISIBLE area of a rule editor. Every
|
|
4576
|
+
* other catalog descriptor is advanced and lives behind an expander.
|
|
4577
|
+
*
|
|
4578
|
+
* Shared for the same reason as the picker model: two surfaces disagreeing
|
|
4579
|
+
* about what counts as "basic" is a worse outcome than either choice.
|
|
4580
|
+
*/
|
|
4581
|
+
var NC_BASE_CONDITION_KEYS = ["devices", "classes"];
|
|
4582
|
+
var BASE_CONDITION_SET = new Set(NC_BASE_CONDITION_KEYS);
|
|
4583
|
+
/** True when a condition key belongs to the BASE surface. */
|
|
4584
|
+
function isBaseConditionKey(key) {
|
|
4585
|
+
return BASE_CONDITION_SET.has(key);
|
|
4586
|
+
}
|
|
4587
|
+
//#endregion
|
|
4479
4588
|
//#region src/capabilities/mask-shape.ts
|
|
4480
4589
|
/**
|
|
4481
4590
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -4648,6 +4757,29 @@ var NcOccupancyConditionSchema = z.object({
|
|
|
4648
4757
|
count: z.number().int().min(0).default(1),
|
|
4649
4758
|
sustainSeconds: z.number().int().min(0).max(3600).default(15)
|
|
4650
4759
|
});
|
|
4760
|
+
/**
|
|
4761
|
+
* Which zone-crossing DIRECTION a rule accepts (`ObjectEvent.zoneCrossing`).
|
|
4762
|
+
*
|
|
4763
|
+
* The values are not symmetric, and deliberately so — the absent value has to
|
|
4764
|
+
* mean exactly what every rule authored before this condition existed already
|
|
4765
|
+
* does:
|
|
4766
|
+
* - `enter` — entries and every NON-crossing record (movement state,
|
|
4767
|
+
* package, sensor). Exits are rejected. **This is the absent behaviour**:
|
|
4768
|
+
* an operator who never asked for exits must not start receiving them.
|
|
4769
|
+
* - `exit` — ONLY an exit crossing. A record that is not a crossing at all
|
|
4770
|
+
* fails closed, because "the car left the drive" is a question about a
|
|
4771
|
+
* boundary, not about a detection.
|
|
4772
|
+
* - `any` — no direction filter; entries, exits and non-crossings alike.
|
|
4773
|
+
*
|
|
4774
|
+
* A rule asking for a direction should normally also scope `zones`, which the
|
|
4775
|
+
* engine evaluates against the crossed zone as well as the current membership
|
|
4776
|
+
* (an exit's membership no longer contains the zone it just left).
|
|
4777
|
+
*/
|
|
4778
|
+
var NcCrossingSchema = z.enum([
|
|
4779
|
+
"enter",
|
|
4780
|
+
"exit",
|
|
4781
|
+
"any"
|
|
4782
|
+
]);
|
|
4651
4783
|
/** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
|
|
4652
4784
|
var NcZoneConditionSchema = z.object({
|
|
4653
4785
|
ids: z.array(z.string().min(1)).min(1),
|
|
@@ -4672,6 +4804,13 @@ var NcConditionsSchema = z.object({
|
|
|
4672
4804
|
/** Veto zones — any hit fails the rule. */
|
|
4673
4805
|
zonesExclude: z.array(z.string().min(1)).optional(),
|
|
4674
4806
|
/**
|
|
4807
|
+
* Zone-crossing direction. IMMEDIATE only — a crossing is a per-event fact
|
|
4808
|
+
* and a closed track carries none, so a `track-end` rule asking for one
|
|
4809
|
+
* fails closed (use `zones`, which tests `zonesVisited`). ABSENT = `enter`,
|
|
4810
|
+
* which is exactly today's behaviour. See {@link NcCrossingSchema}.
|
|
4811
|
+
*/
|
|
4812
|
+
crossing: NcCrossingSchema.optional(),
|
|
4813
|
+
/**
|
|
4675
4814
|
* Exact (case-insensitive) match on the record's collapsed `label`
|
|
4676
4815
|
* (identity name / plate text / subclass).
|
|
4677
4816
|
*/
|
|
@@ -4806,17 +4945,85 @@ var NcRuleTargetSchema = z.object({
|
|
|
4806
4945
|
* - `keyFrame` — the clean scene frame (no subject box).
|
|
4807
4946
|
* - `none` — no attachment.
|
|
4808
4947
|
*/
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4948
|
+
/**
|
|
4949
|
+
* WHAT THE PICTURE SHOWS — chosen explicitly, because the implicit ladders
|
|
4950
|
+
* conflate it with the selection strategy and betray the request: asking for
|
|
4951
|
+
* the clean scene frame on an object-event owner used to start at
|
|
4952
|
+
* `fullFrameBoxed`, i.e. the annotated frame (2026-07-30).
|
|
4953
|
+
* - `cropped` — the subject, tight. What "who is at the door" wants.
|
|
4954
|
+
* - `full` — the clean scene, no annotation. What "what is going on" wants.
|
|
4955
|
+
* - `boxed` — the scene WITH the detection boxes drawn, for verifying what
|
|
4956
|
+
* the pipeline actually saw.
|
|
4957
|
+
*/
|
|
4958
|
+
var NcMediaFrameSchema = z.enum([
|
|
4959
|
+
"cropped",
|
|
4960
|
+
"full",
|
|
4961
|
+
"boxed"
|
|
4962
|
+
]);
|
|
4963
|
+
var NcMediaPolicySchema = z.object({
|
|
4964
|
+
attach: z.enum([
|
|
4965
|
+
"best",
|
|
4966
|
+
"best-matching",
|
|
4967
|
+
"keyFrame",
|
|
4968
|
+
"none"
|
|
4969
|
+
]).default("best"),
|
|
4970
|
+
/** What the still shows. Absent = `cropped` (the historical `best` shape). */
|
|
4971
|
+
frame: NcMediaFrameSchema.optional(),
|
|
4972
|
+
/** Crop the attached still to the rule's condition-zone bbox (padded) —
|
|
4973
|
+
* "show me the ZONE", not the whole scene or the subject crop. */
|
|
4974
|
+
zoneCrop: z.boolean().optional(),
|
|
4975
|
+
/**
|
|
4976
|
+
* Also attach a short GIF cut from the stream broker's clip ring around the
|
|
4977
|
+
* event — NOT from the recording, so the camera does not have to be
|
|
4978
|
+
* recording, and the window sits AROUND the moment instead of a segment
|
|
4979
|
+
* behind it. Fail-closed: a window the ring does not cover contributes no
|
|
4980
|
+
* gif, never a failed notification.
|
|
4981
|
+
*/
|
|
4982
|
+
gif: z.boolean().optional(),
|
|
4983
|
+
/**
|
|
4984
|
+
* Also attach a short MP4 CLIP of the same cut. Same source and the same
|
|
4985
|
+
* fail-closed rule as `gif`. Prefer it where the backend takes video
|
|
4986
|
+
* (telegram, discord, zentik, webhook); backends that do not are handled by
|
|
4987
|
+
* the degrade engine, which drops the video and keeps the still.
|
|
4988
|
+
*/
|
|
4989
|
+
clip: z.boolean().optional(),
|
|
4990
|
+
/** Seconds of footage BEFORE / AFTER the event instant. Defaults 3 / 7. */
|
|
4991
|
+
clipPreRollSec: z.number().int().min(0).max(30).optional(),
|
|
4992
|
+
clipPostRollSec: z.number().int().min(0).max(30).optional(),
|
|
4993
|
+
/**
|
|
4994
|
+
* Which stream profile the footage is cut from. Absent = the CHEAPEST
|
|
4995
|
+
* assigned profile: a notification is watched on a phone, so the 4K
|
|
4996
|
+
* rendition would burn CPU to produce a file the client downscales anyway.
|
|
4997
|
+
* A profile that is not assigned falls back to the cheapest, and the render
|
|
4998
|
+
* reports which one actually ran.
|
|
4999
|
+
*/
|
|
5000
|
+
profile: CamProfileSchema.optional()
|
|
5001
|
+
});
|
|
5002
|
+
/**
|
|
5003
|
+
* Cooldown GRANULARITY over the subject's class — how much a fired
|
|
5004
|
+
* notification suppresses.
|
|
5005
|
+
* - `shared` (default, and the absent value) — one window for the whole
|
|
5006
|
+
* rule/scope: a cat silences the next dog for `cooldownSec`.
|
|
5007
|
+
* - `per-class` — an independent window per detected class, so cat→dog fires
|
|
5008
|
+
* at once and cat→cat still waits.
|
|
5009
|
+
*
|
|
5010
|
+
* AUDIO subjects are ALWAYS per-class regardless of this setting: a scream
|
|
5011
|
+
* must not be swallowed by a bark's window (the precedent this generalizes —
|
|
5012
|
+
* see `cooldownKey` in the rule engine).
|
|
5013
|
+
*/
|
|
5014
|
+
var NcThrottleGranularitySchema = z.enum(["shared", "per-class"]);
|
|
4815
5015
|
/** Throttle — cooldown survives restarts (rebuilt from the outbox on boot). */
|
|
4816
5016
|
var NcThrottleSchema = z.object({
|
|
4817
5017
|
cooldownSec: z.number().int().min(0).max(86400).default(60),
|
|
4818
5018
|
/** `rule` = one shared cooldown; `rule-device` = per-camera cooldown. */
|
|
4819
|
-
scope: z.enum(["rule", "rule-device"]).default("rule-device")
|
|
5019
|
+
scope: z.enum(["rule", "rule-device"]).default("rule-device"),
|
|
5020
|
+
/**
|
|
5021
|
+
* Class granularity of the cooldown key. Optional rather than defaulted:
|
|
5022
|
+
* a Zod default does NOT run on the addon→addon cap path, so a persisted
|
|
5023
|
+
* rule authored before this field simply carries none — and the engine
|
|
5024
|
+
* reads absent as `shared`, the pre-existing behaviour.
|
|
5025
|
+
*/
|
|
5026
|
+
granularity: NcThrottleGranularitySchema.optional()
|
|
4820
5027
|
});
|
|
4821
5028
|
/** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
|
|
4822
5029
|
var NcRuleInputSchema = z.object({
|
|
@@ -4825,7 +5032,19 @@ var NcRuleInputSchema = z.object({
|
|
|
4825
5032
|
delivery: NcDeliverySchema,
|
|
4826
5033
|
conditions: NcConditionsSchema.default({}),
|
|
4827
5034
|
schedule: NcScheduleSchema.optional(),
|
|
4828
|
-
|
|
5035
|
+
/** May be empty when `targetUsers` addresses at least one user — the
|
|
5036
|
+
* "at least one addressee" invariant is enforced by the provider, because
|
|
5037
|
+
* a cross-field refine here would break `NcRulePatchSchema.partial()`. */
|
|
5038
|
+
targets: z.array(NcRuleTargetSchema),
|
|
5039
|
+
/**
|
|
5040
|
+
* USERS this rule addresses in addition to `targets` (Phase 4). At fire
|
|
5041
|
+
* time each user fans out to the personal targets they own
|
|
5042
|
+
* (`config.ownerUserId`), filtered by that user's `allowedDevices` for the
|
|
5043
|
+
* firing camera — a user is never notified about a device they cannot open.
|
|
5044
|
+
* Per-user opt-outs (`disabledTargetIds`) still apply to the fanned-out
|
|
5045
|
+
* targets.
|
|
5046
|
+
*/
|
|
5047
|
+
targetUsers: z.array(z.string()).optional(),
|
|
4829
5048
|
media: NcMediaPolicySchema.default({ attach: "best" }),
|
|
4830
5049
|
throttle: NcThrottleSchema.default({
|
|
4831
5050
|
cooldownSec: 60,
|
|
@@ -4912,6 +5131,7 @@ var NcConditionDescriptorSchema = z.object({
|
|
|
4912
5131
|
"schedule",
|
|
4913
5132
|
"plateMatcher",
|
|
4914
5133
|
"packagePhase",
|
|
5134
|
+
"crossingSelect",
|
|
4915
5135
|
"polygonDraw",
|
|
4916
5136
|
"occupancy"
|
|
4917
5137
|
]),
|
|
@@ -5016,6 +5236,16 @@ var NC_CONDITION_CATALOG = [
|
|
|
5016
5236
|
],
|
|
5017
5237
|
phase: "P1"
|
|
5018
5238
|
},
|
|
5239
|
+
{
|
|
5240
|
+
id: "crossing",
|
|
5241
|
+
group: "zones",
|
|
5242
|
+
label: "Zone crossing",
|
|
5243
|
+
valueType: "crossingSelect",
|
|
5244
|
+
operator: "in",
|
|
5245
|
+
appliesTo: ["immediate"],
|
|
5246
|
+
phase: "P1",
|
|
5247
|
+
description: "Direction of the zone crossing: enter (the default, and what every rule authored before this did) / exit / any. An exit rule matches only crossings."
|
|
5248
|
+
},
|
|
5019
5249
|
{
|
|
5020
5250
|
id: "labelEquals",
|
|
5021
5251
|
group: "label",
|
|
@@ -5300,7 +5530,20 @@ var notificationRulesCapability = {
|
|
|
5300
5530
|
kind: "mutation",
|
|
5301
5531
|
auth: "admin"
|
|
5302
5532
|
}),
|
|
5303
|
-
|
|
5533
|
+
/**
|
|
5534
|
+
* The machine-readable condition surface a rule editor renders from, plus
|
|
5535
|
+
* the picker VOCABULARY those conditions draw on.
|
|
5536
|
+
*
|
|
5537
|
+
* `taxonomy` is optional so an older provider that only returns `catalog`
|
|
5538
|
+
* still validates; a client that receives none keeps free-text inputs.
|
|
5539
|
+
* It was previously served ONLY on the `nc.getConditionCatalog` bridge
|
|
5540
|
+
* action, which is why the viewer had grouped pickers and the admin UI —
|
|
5541
|
+
* which reaches this cap — was stuck typing `person` from memory.
|
|
5542
|
+
*/
|
|
5543
|
+
getConditionCatalog: method(z.object({}), z.object({
|
|
5544
|
+
catalog: z.array(NcConditionDescriptorSchema),
|
|
5545
|
+
taxonomy: NcTaxonomySchema.optional()
|
|
5546
|
+
})),
|
|
5304
5547
|
/**
|
|
5305
5548
|
* Queryable delivery history — a read-only view over the durable outbox
|
|
5306
5549
|
* (fired rule, subject summary, target, status, timestamps, error on a
|
|
@@ -6389,6 +6632,48 @@ var streamBrokerCapability = {
|
|
|
6389
6632
|
kind: "mutation",
|
|
6390
6633
|
auth: "admin"
|
|
6391
6634
|
}),
|
|
6635
|
+
/**
|
|
6636
|
+
* Render a short GIF or MP4 from the broker's PRE-BUFFER around an instant.
|
|
6637
|
+
*
|
|
6638
|
+
* The pre-buffer is the only source that already holds the seconds BEFORE
|
|
6639
|
+
* an event (it is what it exists for — "when an addon needs the last N
|
|
6640
|
+
* seconds of video for clip creation"). Cutting from recorded segments
|
|
6641
|
+
* cannot: only finalized segments are addressable and the one covering the
|
|
6642
|
+
* moment is still being written, so a segment-sourced clip is either
|
|
6643
|
+
* delayed or shows the approach instead of the event (operator,
|
|
6644
|
+
* 2026-07-30). It also means a camera does not have to be RECORDING to
|
|
6645
|
+
* produce a notification clip.
|
|
6646
|
+
*
|
|
6647
|
+
* Returns muxed BYTES, never packets: the frame plane never crosses a
|
|
6648
|
+
* process boundary at frame rate (D9/D18) — this is one compressed,
|
|
6649
|
+
* on-demand payload per notification.
|
|
6650
|
+
*
|
|
6651
|
+
* Waits up to `postRollSec` for the tail to accumulate, so the window is
|
|
6652
|
+
* CENTRED on `aroundMs`.
|
|
6653
|
+
*/
|
|
6654
|
+
renderPreBufferClip: method(z.object({
|
|
6655
|
+
deviceId: z.number(),
|
|
6656
|
+
/** Absent = the LOWEST assigned profile — a notification attachment is
|
|
6657
|
+
* watched on a phone, and the cheap rendition is the right default. */
|
|
6658
|
+
profile: CamProfileSchema.optional(),
|
|
6659
|
+
aroundMs: z.number(),
|
|
6660
|
+
preRollSec: z.number().min(0).max(20).default(3),
|
|
6661
|
+
postRollSec: z.number().min(0).max(20).default(5),
|
|
6662
|
+
format: z.enum(["gif", "mp4"]).default("gif"),
|
|
6663
|
+
maxWidth: z.number().int().min(120).max(1920).default(480),
|
|
6664
|
+
/** GIF only — MP4 keeps the source cadence. */
|
|
6665
|
+
fps: z.number().int().min(1).max(15).default(5)
|
|
6666
|
+
}), z.object({
|
|
6667
|
+
base64: z.string(),
|
|
6668
|
+
mime: z.string(),
|
|
6669
|
+
bytes: z.number().int(),
|
|
6670
|
+
/** The profile actually rendered (what the default resolved to). */
|
|
6671
|
+
profile: CamProfileSchema,
|
|
6672
|
+
durationMs: z.number()
|
|
6673
|
+
}), {
|
|
6674
|
+
kind: "mutation",
|
|
6675
|
+
auth: "admin"
|
|
6676
|
+
}),
|
|
6392
6677
|
listAllCameraStreams: method(z.void(), z.array(CameraStreamSchema).readonly()),
|
|
6393
6678
|
listAllProfileSlots: method(z.void(), z.array(ProfileSlotSchema).readonly()),
|
|
6394
6679
|
getBrokerStats: method(z.object({ brokerId: z.string() }), BrokerStatsSchema),
|
|
@@ -14361,7 +14646,8 @@ function createSystemProxy(api) {
|
|
|
14361
14646
|
discoverAllProviders: (input) => dispatch("deviceManager", "discoverAllProviders", "mutation", input),
|
|
14362
14647
|
discoverProvider: (input) => dispatch("deviceManager", "discoverProvider", "mutation", input),
|
|
14363
14648
|
providerCreationType: (input) => dispatch("deviceManager", "providerCreationType", "query", input),
|
|
14364
|
-
providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input)
|
|
14649
|
+
providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input),
|
|
14650
|
+
getDeviceStatusAggregateBatch: (input) => dispatch("deviceManager", "getDeviceStatusAggregateBatch", "query", input)
|
|
14365
14651
|
},
|
|
14366
14652
|
deviceProvider: {
|
|
14367
14653
|
start: (input) => dispatch("deviceProvider", "start", "mutation", input),
|
|
@@ -14432,6 +14718,8 @@ function createSystemProxy(api) {
|
|
|
14432
14718
|
list: (input) => dispatch("localNetwork", "list", "query", input),
|
|
14433
14719
|
getPreferred: (input) => dispatch("localNetwork", "getPreferred", "query", input),
|
|
14434
14720
|
getConnectionEndpoints: (input) => dispatch("localNetwork", "getConnectionEndpoints", "query", input),
|
|
14721
|
+
getNotificationEndpoint: (input) => dispatch("localNetwork", "getNotificationEndpoint", "query", input),
|
|
14722
|
+
setNotificationEndpoint: (input) => dispatch("localNetwork", "setNotificationEndpoint", "mutation", input),
|
|
14435
14723
|
getAllowedAddresses: (input) => dispatch("localNetwork", "getAllowedAddresses", "query", input),
|
|
14436
14724
|
setAllowedAddresses: (input) => dispatch("localNetwork", "setAllowedAddresses", "mutation", input),
|
|
14437
14725
|
resetAllowlistToBestMatch: (input) => dispatch("localNetwork", "resetAllowlistToBestMatch", "mutation", input)
|
|
@@ -14602,7 +14890,10 @@ function createSystemProxy(api) {
|
|
|
14602
14890
|
},
|
|
14603
14891
|
recording: {
|
|
14604
14892
|
getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input),
|
|
14605
|
-
listOpsLog: (input) => dispatch("recording", "listOpsLog", "query", input)
|
|
14893
|
+
listOpsLog: (input) => dispatch("recording", "listOpsLog", "query", input),
|
|
14894
|
+
relocateFootage: (input) => dispatch("recording", "relocateFootage", "mutation", input),
|
|
14895
|
+
getRelocateStatus: (input) => dispatch("recording", "getRelocateStatus", "query", input),
|
|
14896
|
+
cancelRelocate: (input) => dispatch("recording", "cancelRelocate", "mutation", input)
|
|
14606
14897
|
},
|
|
14607
14898
|
recordingExport: {
|
|
14608
14899
|
getExport: (input) => dispatch("recordingExport", "getExport", "query", input),
|
|
@@ -18373,7 +18664,29 @@ var deviceManagerCapability = {
|
|
|
18373
18664
|
getDeviceStatusAggregate: method(z.object({
|
|
18374
18665
|
deviceId: z.number(),
|
|
18375
18666
|
caps: z.array(z.string()).readonly().optional()
|
|
18376
|
-
}), z.record(z.string(), z.unknown().nullable()))
|
|
18667
|
+
}), z.record(z.string(), z.unknown().nullable())),
|
|
18668
|
+
/**
|
|
18669
|
+
* The same aggregate, for a LIST of devices in one round-trip.
|
|
18670
|
+
*
|
|
18671
|
+
* The viewer's camera list is the caller this exists for. Each card asked
|
|
18672
|
+
* for its own badges — battery here, recording mode there — so a ten-camera
|
|
18673
|
+
* install issued N separate procedures per reconcile, each its own message
|
|
18674
|
+
* on the one WebSocket that also carries the WebRTC signalling (the client
|
|
18675
|
+
* has no `httpBatchLink`, so there is no transport-level batching to lean
|
|
18676
|
+
* on: collapsing has to happen at the procedure level, which is here).
|
|
18677
|
+
*
|
|
18678
|
+
* Keyed by device id as a STRING — a JSON object cannot key by number, and
|
|
18679
|
+
* pretending otherwise is how a record survives the wire only in tests.
|
|
18680
|
+
* The per-device value is exactly what `getDeviceStatusAggregate` returns,
|
|
18681
|
+
* so a caller can move between the two without reshaping anything.
|
|
18682
|
+
*
|
|
18683
|
+
* `caps` matters more here than in the single call: a client that needs two
|
|
18684
|
+
* caps should not pay for every status-carrying cap × every device.
|
|
18685
|
+
*/
|
|
18686
|
+
getDeviceStatusAggregateBatch: method(z.object({
|
|
18687
|
+
deviceIds: z.array(z.number()).readonly(),
|
|
18688
|
+
caps: z.array(z.string()).readonly().optional()
|
|
18689
|
+
}), z.record(z.string(), z.record(z.string(), z.unknown().nullable())))
|
|
18377
18690
|
}
|
|
18378
18691
|
};
|
|
18379
18692
|
//#endregion
|
|
@@ -19644,6 +19957,36 @@ var TargetKindSchema = z.object({
|
|
|
19644
19957
|
icon: z.string(),
|
|
19645
19958
|
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
19646
19959
|
addonId: z.string(),
|
|
19960
|
+
/**
|
|
19961
|
+
* URL of the kind's bundled BRAND icon, served by the providing addon over
|
|
19962
|
+
* its own `addon-routes` surface (`/addon/<addonId>/icons/<kind>`). Absent
|
|
19963
|
+
* when the addon bundles no icon for that kind — the client then falls back
|
|
19964
|
+
* to a neutral glyph rather than rendering the raw `icon` NAME as text.
|
|
19965
|
+
*
|
|
19966
|
+
* Root-relative on purpose: it resolves against whatever origin serves a web
|
|
19967
|
+
* client, and a native client joins it onto its own hub base.
|
|
19968
|
+
*
|
|
19969
|
+
* DECLARED here deliberately. It used to travel as an undeclared passthrough
|
|
19970
|
+
* field that survived only because the runtime cap-router forwards provider
|
|
19971
|
+
* output verbatim — so every consumer had to re-declare it by hand to stop
|
|
19972
|
+
* its own Zod parse from stripping it, and the whole arrangement would have
|
|
19973
|
+
* broken silently the moment output validation was tightened anywhere.
|
|
19974
|
+
*/
|
|
19975
|
+
iconUrl: z.string().optional(),
|
|
19976
|
+
/**
|
|
19977
|
+
* Media type of {@link iconUrl} (`image/svg+xml`, `image/png`, …).
|
|
19978
|
+
*
|
|
19979
|
+
* The server knows this and therefore says it, because the client cannot
|
|
19980
|
+
* safely guess: a React-Native client renders SVG and raster through two
|
|
19981
|
+
* DIFFERENT components (`react-native-svg` vs `expo-image` — expo-image does
|
|
19982
|
+
* not decode SVG on iOS/Android), so without this it silently fell back to a
|
|
19983
|
+
* placeholder glyph for every vector icon while the web build looked fine.
|
|
19984
|
+
*
|
|
19985
|
+
* Absent when {@link iconUrl} is absent, or for a legacy provider that has
|
|
19986
|
+
* not been updated — a client that cannot determine the type should prefer
|
|
19987
|
+
* its raster path, which is the safe default for an unknown image.
|
|
19988
|
+
*/
|
|
19989
|
+
iconMediaType: z.string().optional(),
|
|
19647
19990
|
configSchema: ConfigSchemaPassthrough,
|
|
19648
19991
|
supportsDiscovery: z.boolean(),
|
|
19649
19992
|
caps: TargetKindCapsSchema
|
|
@@ -20117,6 +20460,37 @@ var MotionEventSchema = z.object({
|
|
|
20117
20460
|
* Absent on legacy rows ⇒ treat as `pipeline`.
|
|
20118
20461
|
*/
|
|
20119
20462
|
var DetectionSourceSchema = z.enum(["pipeline", "onboard"]);
|
|
20463
|
+
/**
|
|
20464
|
+
* Which WAY a subject crossed a zone boundary. An entry and an exit are two
|
|
20465
|
+
* different notifications ("the parcel arrived" / "the car left the drive"),
|
|
20466
|
+
* and until this existed they were indistinguishable on the persisted record —
|
|
20467
|
+
* which is why exits were computed and dropped at the emit boundary rather
|
|
20468
|
+
* than doubling every zone-scoped rule.
|
|
20469
|
+
*/
|
|
20470
|
+
var ZoneCrossingDirectionSchema = z.enum(["enter", "exit"]);
|
|
20471
|
+
/**
|
|
20472
|
+
* The confirmed zone crossing that produced an object event. Present ONLY on
|
|
20473
|
+
* an event emitted BY a crossing (`zone.enter` / `zone.exit`); a movement-state
|
|
20474
|
+
* event (`object.entering` / `leaving` / `stationary` / `loitering`) and an
|
|
20475
|
+
* appearance event carry none, so a rule asking for a direction fails closed
|
|
20476
|
+
* on them.
|
|
20477
|
+
*
|
|
20478
|
+
* Exactly ONE crossing per event: the emitter turns each confirmed crossing
|
|
20479
|
+
* into its own event, so a frame in which a track enters A while leaving B
|
|
20480
|
+
* produces two events with two directions — never one ambiguous row.
|
|
20481
|
+
*
|
|
20482
|
+
* `zoneId` is load-bearing for an EXIT: the event's `zones` list is the
|
|
20483
|
+
* membership the box has NOW, and by definition it no longer contains the zone
|
|
20484
|
+
* that was just left. Without the id here, a zone-scoped rule could never match
|
|
20485
|
+
* the exit it asked for.
|
|
20486
|
+
*/
|
|
20487
|
+
var ZoneCrossingSchema = z.object({
|
|
20488
|
+
direction: ZoneCrossingDirectionSchema,
|
|
20489
|
+
/** Admin zone id crossed. */
|
|
20490
|
+
zoneId: z.string(),
|
|
20491
|
+
/** Zone display name at crossing time (falls back to the id). */
|
|
20492
|
+
zoneName: z.string().optional()
|
|
20493
|
+
});
|
|
20120
20494
|
var ObjectEventSchema = z.object({
|
|
20121
20495
|
...BaseEventFields,
|
|
20122
20496
|
kind: z.literal("object"),
|
|
@@ -20143,6 +20517,12 @@ var ObjectEventSchema = z.object({
|
|
|
20143
20517
|
zones: z.array(z.string()).readonly().optional(),
|
|
20144
20518
|
/** Omitted in slim projection. */
|
|
20145
20519
|
state: TrackStateSchema.optional(),
|
|
20520
|
+
/**
|
|
20521
|
+
* The zone crossing this event IS, when it is one. Absent on every other
|
|
20522
|
+
* event kind (movement state, appearance, package) — see
|
|
20523
|
+
* {@link ZoneCrossingSchema}. Omitted in slim projection.
|
|
20524
|
+
*/
|
|
20525
|
+
zoneCrossing: ZoneCrossingSchema.optional(),
|
|
20146
20526
|
/** Detection-frame dimensions in pixels — let consumers normalize the
|
|
20147
20527
|
* pixel-space `bbox` onto a displayed image. Omitted in slim projection. */
|
|
20148
20528
|
frameWidth: z.number().optional(),
|
|
@@ -20522,6 +20902,23 @@ var pipelineAnalyticsCapability = {
|
|
|
20522
20902
|
}),
|
|
20523
20903
|
/** The events ops-log rows (newest-first), optionally scoped to one camera.
|
|
20524
20904
|
* Backed by a declared pipeline-analytics SQLite collection. */
|
|
20905
|
+
/**
|
|
20906
|
+
* Move event-media blobs onto `toLocationId` (entity-routing spec Phase
|
|
20907
|
+
* 4): per-row copy → stamp row.locationId → delete old blob. Rows already
|
|
20908
|
+
* at the target are skipped, so a re-run resumes. Single-flight.
|
|
20909
|
+
*/
|
|
20910
|
+
relocateMedia: method(RelocateMediaInputSchema, z.object({ jobId: z.string() }), {
|
|
20911
|
+
kind: "mutation",
|
|
20912
|
+
auth: "admin"
|
|
20913
|
+
}),
|
|
20914
|
+
getMediaRelocateStatus: method(z.object({}), z.array(RelocateJobSchema).readonly(), {
|
|
20915
|
+
kind: "query",
|
|
20916
|
+
auth: "admin"
|
|
20917
|
+
}),
|
|
20918
|
+
cancelMediaRelocate: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
|
|
20919
|
+
kind: "mutation",
|
|
20920
|
+
auth: "admin"
|
|
20921
|
+
}),
|
|
20525
20922
|
listOpsLog: method(OpsLogQueryInputSchema, z.array(OpsLogEntrySchema).readonly(), {
|
|
20526
20923
|
kind: "query",
|
|
20527
20924
|
auth: "admin"
|
|
@@ -24159,6 +24556,17 @@ var ConnectionEndpointSchema = z.object({
|
|
|
24159
24556
|
priority: z.number()
|
|
24160
24557
|
});
|
|
24161
24558
|
var GetConnectionEndpointsResultSchema = z.object({ endpoints: z.array(ConnectionEndpointSchema).readonly() });
|
|
24559
|
+
/**
|
|
24560
|
+
* The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
|
|
24561
|
+
* AUTO (resolved from the candidate ranking at send time); `resolved` reports
|
|
24562
|
+
* what AUTO currently picks, so the UI can show the effective value either way.
|
|
24563
|
+
*/
|
|
24564
|
+
var NotificationEndpointSchema = z.object({
|
|
24565
|
+
/** The operator's explicit choice, or null for AUTO. */
|
|
24566
|
+
baseUrl: z.string().nullable(),
|
|
24567
|
+
/** What the ranking currently resolves to (null when nothing is reachable). */
|
|
24568
|
+
resolved: z.string().nullable()
|
|
24569
|
+
});
|
|
24162
24570
|
var AllowedAddressesSchema = z.object({
|
|
24163
24571
|
/**
|
|
24164
24572
|
* Allowlist of interface addresses operators have explicitly opted
|
|
@@ -24210,6 +24618,26 @@ var localNetworkCapability = {
|
|
|
24210
24618
|
scheme: z.enum(["http", "https"]).optional()
|
|
24211
24619
|
}), GetConnectionEndpointsResultSchema),
|
|
24212
24620
|
/**
|
|
24621
|
+
* The endpoint OUTBOUND artifacts must be addressed by — notification
|
|
24622
|
+
* attachment links and deep links. `baseUrl: null` means AUTO: the first
|
|
24623
|
+
* public candidate (a configured origin, then a connected tunnel, then the
|
|
24624
|
+
* LAN), never loopback.
|
|
24625
|
+
*
|
|
24626
|
+
* Why an explicit marker: the automatic ranking cannot know which of
|
|
24627
|
+
* several reachable addresses the RECIPIENT can actually open. A link is
|
|
24628
|
+
* consumed on someone's phone, off the LAN, possibly hours later — and a
|
|
24629
|
+
* link nobody can open is worse than no link, because the notification
|
|
24630
|
+
* arrives advertising media that 404s.
|
|
24631
|
+
*/
|
|
24632
|
+
getNotificationEndpoint: method(z.void(), NotificationEndpointSchema),
|
|
24633
|
+
/**
|
|
24634
|
+
* Mark which endpoint notification artifacts use. `baseUrl: null` restores
|
|
24635
|
+
* AUTO. The value is stored verbatim (not an index into the candidate
|
|
24636
|
+
* list): interfaces come and go, and an index would silently re-point at a
|
|
24637
|
+
* different address after a reboot.
|
|
24638
|
+
*/
|
|
24639
|
+
setNotificationEndpoint: method(z.object({ baseUrl: z.string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }),
|
|
24640
|
+
/**
|
|
24213
24641
|
* Read the operator's allowlist. Empty = "auto" (no filter). Used
|
|
24214
24642
|
* by the admin UI's address selector to seed its checkbox state.
|
|
24215
24643
|
*/
|
|
@@ -25321,7 +25749,12 @@ var RecordingDeviceUsageSchema = z.object({
|
|
|
25321
25749
|
var RecordingLocationUsageSchema = z.object({
|
|
25322
25750
|
/** StorageLocation id; null for the legacy/degraded single-root fallback. */
|
|
25323
25751
|
locationId: z.string().nullable(),
|
|
25324
|
-
/**
|
|
25752
|
+
/** Every location id sharing this row's PHYSICAL volume (aliases). One row
|
|
25753
|
+
* is emitted per physical disk (2026-07-29): two locations on one root
|
|
25754
|
+
* previously rendered as two identical "disks" with a nonsensical used
|
|
25755
|
+
* split — hydrate attribution across aliases is arbitrary by nature. */
|
|
25756
|
+
locationIds: z.array(z.string()).optional(),
|
|
25757
|
+
/** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
|
|
25325
25758
|
usedBytes: z.number(),
|
|
25326
25759
|
/** Free bytes on the location's volume; null when capacity is unknown (remote). */
|
|
25327
25760
|
availableBytes: z.number().nullable(),
|
|
@@ -25477,6 +25910,77 @@ var recordingCapability = {
|
|
|
25477
25910
|
listOpsLog: method(OpsLogQueryInputSchema, z.array(OpsLogEntrySchema).readonly(), {
|
|
25478
25911
|
kind: "query",
|
|
25479
25912
|
auth: "admin"
|
|
25913
|
+
}),
|
|
25914
|
+
/**
|
|
25915
|
+
* Move footage (segments and/or strips) from one recordings location to
|
|
25916
|
+
* another — the drain workflow's mover (entity-routing spec Phase 4).
|
|
25917
|
+
* Throttled copy → size-verify → delete source → index refresh; resumable
|
|
25918
|
+
* by construction (copy-if-absent). Single-flight: one job at a time.
|
|
25919
|
+
*/
|
|
25920
|
+
/**
|
|
25921
|
+
* Render a short GIF from recorded footage around `aroundMs` (low profile,
|
|
25922
|
+
* palette-free ffmpeg gif). Synchronous — the window is a few seconds of
|
|
25923
|
+
* `low`, rendering in ~1-2s. Built for notification attachments: the
|
|
25924
|
+
* caller gets bytes, nothing persists. Fails when no footage covers the
|
|
25925
|
+
* window (camera not recording → caller skips the attachment).
|
|
25926
|
+
*/
|
|
25927
|
+
renderGif: method(z.object({
|
|
25928
|
+
deviceId: z.number(),
|
|
25929
|
+
aroundMs: z.number(),
|
|
25930
|
+
preRollSec: z.number().min(0).max(30).default(2),
|
|
25931
|
+
postRollSec: z.number().min(0).max(30).default(5),
|
|
25932
|
+
maxWidth: z.number().int().min(120).max(1280).default(480),
|
|
25933
|
+
fps: z.number().int().min(1).max(15).default(5)
|
|
25934
|
+
}), z.object({
|
|
25935
|
+
gifBase64: z.string(),
|
|
25936
|
+
fromMs: z.number(),
|
|
25937
|
+
toMs: z.number()
|
|
25938
|
+
}), {
|
|
25939
|
+
kind: "mutation",
|
|
25940
|
+
auth: "admin"
|
|
25941
|
+
}),
|
|
25942
|
+
/**
|
|
25943
|
+
* Render a short MP4 clip from recorded footage around `aroundMs` — the
|
|
25944
|
+
* "send a clip, not a gif" notification attachment. Same window, source
|
|
25945
|
+
* and fail-closed contract as {@link renderGif}: no footage covering the
|
|
25946
|
+
* window ⇒ it throws and the caller ships no attachment. Re-encoded (never
|
|
25947
|
+
* stream-copied) so a concat across segments with different encoder
|
|
25948
|
+
* parameters still plays. Silent by contract.
|
|
25949
|
+
*
|
|
25950
|
+
* The returned window is SEGMENT-GRANULAR: the source playlist is built
|
|
25951
|
+
* from whole segments, so the clip starts at or before `fromMs` and ends
|
|
25952
|
+
* at or after `toMs` — overshoot bounded by one segment per side (an 8 s
|
|
25953
|
+
* ask over 4 s segments measured 12 s). `fromMs`/`toMs` report the window
|
|
25954
|
+
* ASKED for, not the encoded duration.
|
|
25955
|
+
*/
|
|
25956
|
+
renderClip: method(z.object({
|
|
25957
|
+
deviceId: z.number(),
|
|
25958
|
+
aroundMs: z.number(),
|
|
25959
|
+
preRollSec: z.number().min(0).max(30).default(3),
|
|
25960
|
+
postRollSec: z.number().min(0).max(30).default(7),
|
|
25961
|
+
maxWidth: z.number().int().min(160).max(1920).default(640)
|
|
25962
|
+
}), z.object({
|
|
25963
|
+
clipBase64: z.string(),
|
|
25964
|
+
mime: z.string(),
|
|
25965
|
+
fromMs: z.number(),
|
|
25966
|
+
toMs: z.number(),
|
|
25967
|
+
bytes: z.number().int()
|
|
25968
|
+
}), {
|
|
25969
|
+
kind: "mutation",
|
|
25970
|
+
auth: "admin"
|
|
25971
|
+
}),
|
|
25972
|
+
relocateFootage: method(RelocateFootageInputSchema, z.object({ jobId: z.string() }), {
|
|
25973
|
+
kind: "mutation",
|
|
25974
|
+
auth: "admin"
|
|
25975
|
+
}),
|
|
25976
|
+
/** Every known relocate job (in-RAM, newest-first). */
|
|
25977
|
+
getRelocateStatus: method(z.object({}), z.array(RelocateJobSchema).readonly(), {
|
|
25978
|
+
kind: "query",
|
|
25979
|
+
auth: "admin"
|
|
25980
|
+
}),
|
|
25981
|
+
cancelRelocate: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
|
|
25982
|
+
kind: "mutation",
|
|
25983
|
+
auth: "admin"
|
|
25480
25984
|
})
|
|
25481
25985
|
}
|
|
25482
25986
|
};
|
|
@@ -28415,6 +28919,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
28415
28919
|
addonId: null,
|
|
28416
28920
|
access: "view"
|
|
28417
28921
|
},
|
|
28922
|
+
"deviceManager.getDeviceStatusAggregateBatch": {
|
|
28923
|
+
capName: "device-manager",
|
|
28924
|
+
capScope: "system",
|
|
28925
|
+
addonId: null,
|
|
28926
|
+
access: "view"
|
|
28927
|
+
},
|
|
28418
28928
|
"deviceManager.getLinkedDevices": {
|
|
28419
28929
|
capName: "device-manager",
|
|
28420
28930
|
capScope: "system",
|
|
@@ -29309,6 +29819,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29309
29819
|
addonId: null,
|
|
29310
29820
|
access: "view"
|
|
29311
29821
|
},
|
|
29822
|
+
"localNetwork.getNotificationEndpoint": {
|
|
29823
|
+
capName: "local-network",
|
|
29824
|
+
capScope: "system",
|
|
29825
|
+
addonId: null,
|
|
29826
|
+
access: "view"
|
|
29827
|
+
},
|
|
29312
29828
|
"localNetwork.getPreferred": {
|
|
29313
29829
|
capName: "local-network",
|
|
29314
29830
|
capScope: "system",
|
|
@@ -29333,6 +29849,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29333
29849
|
addonId: null,
|
|
29334
29850
|
access: "create"
|
|
29335
29851
|
},
|
|
29852
|
+
"localNetwork.setNotificationEndpoint": {
|
|
29853
|
+
capName: "local-network",
|
|
29854
|
+
capScope: "system",
|
|
29855
|
+
addonId: null,
|
|
29856
|
+
access: "create"
|
|
29857
|
+
},
|
|
29336
29858
|
"lockControl.lock": {
|
|
29337
29859
|
capName: "lock-control",
|
|
29338
29860
|
capScope: "device",
|
|
@@ -29975,6 +30497,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29975
30497
|
addonId: null,
|
|
29976
30498
|
access: "create"
|
|
29977
30499
|
},
|
|
30500
|
+
"pipelineAnalytics.cancelMediaRelocate": {
|
|
30501
|
+
capName: "pipeline-analytics",
|
|
30502
|
+
capScope: "device",
|
|
30503
|
+
addonId: null,
|
|
30504
|
+
access: "create"
|
|
30505
|
+
},
|
|
29978
30506
|
"pipelineAnalytics.clearTracks": {
|
|
29979
30507
|
capName: "pipeline-analytics",
|
|
29980
30508
|
capScope: "device",
|
|
@@ -30029,6 +30557,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30029
30557
|
addonId: null,
|
|
30030
30558
|
access: "view"
|
|
30031
30559
|
},
|
|
30560
|
+
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
30561
|
+
capName: "pipeline-analytics",
|
|
30562
|
+
capScope: "device",
|
|
30563
|
+
addonId: null,
|
|
30564
|
+
access: "view"
|
|
30565
|
+
},
|
|
30032
30566
|
"pipelineAnalytics.getMotionEvents": {
|
|
30033
30567
|
capName: "pipeline-analytics",
|
|
30034
30568
|
capScope: "device",
|
|
@@ -30101,6 +30635,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30101
30635
|
addonId: null,
|
|
30102
30636
|
access: "create"
|
|
30103
30637
|
},
|
|
30638
|
+
"pipelineAnalytics.relocateMedia": {
|
|
30639
|
+
capName: "pipeline-analytics",
|
|
30640
|
+
capScope: "device",
|
|
30641
|
+
addonId: null,
|
|
30642
|
+
access: "create"
|
|
30643
|
+
},
|
|
30104
30644
|
"pipelineAnalytics.searchObjectEvents": {
|
|
30105
30645
|
capName: "pipeline-analytics",
|
|
30106
30646
|
capScope: "device",
|
|
@@ -30863,6 +31403,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30863
31403
|
addonId: null,
|
|
30864
31404
|
access: "create"
|
|
30865
31405
|
},
|
|
31406
|
+
"recording.cancelRelocate": {
|
|
31407
|
+
capName: "recording",
|
|
31408
|
+
capScope: "system",
|
|
31409
|
+
addonId: null,
|
|
31410
|
+
access: "create"
|
|
31411
|
+
},
|
|
30866
31412
|
"recording.deleteFootprint": {
|
|
30867
31413
|
capName: "recording",
|
|
30868
31414
|
capScope: "system",
|
|
@@ -30893,6 +31439,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30893
31439
|
addonId: null,
|
|
30894
31440
|
access: "view"
|
|
30895
31441
|
},
|
|
31442
|
+
"recording.getRelocateStatus": {
|
|
31443
|
+
capName: "recording",
|
|
31444
|
+
capScope: "system",
|
|
31445
|
+
addonId: null,
|
|
31446
|
+
access: "view"
|
|
31447
|
+
},
|
|
30896
31448
|
"recording.getStorageUsage": {
|
|
30897
31449
|
capName: "recording",
|
|
30898
31450
|
capScope: "system",
|
|
@@ -30923,6 +31475,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30923
31475
|
addonId: null,
|
|
30924
31476
|
access: "view"
|
|
30925
31477
|
},
|
|
31478
|
+
"recording.relocateFootage": {
|
|
31479
|
+
capName: "recording",
|
|
31480
|
+
capScope: "system",
|
|
31481
|
+
addonId: null,
|
|
31482
|
+
access: "create"
|
|
31483
|
+
},
|
|
31484
|
+
"recording.renderClip": {
|
|
31485
|
+
capName: "recording",
|
|
31486
|
+
capScope: "system",
|
|
31487
|
+
addonId: null,
|
|
31488
|
+
access: "create"
|
|
31489
|
+
},
|
|
31490
|
+
"recording.renderGif": {
|
|
31491
|
+
capName: "recording",
|
|
31492
|
+
capScope: "system",
|
|
31493
|
+
addonId: null,
|
|
31494
|
+
access: "create"
|
|
31495
|
+
},
|
|
30926
31496
|
"recording.rescanStorage": {
|
|
30927
31497
|
capName: "recording",
|
|
30928
31498
|
capScope: "system",
|
|
@@ -31517,6 +32087,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31517
32087
|
addonId: null,
|
|
31518
32088
|
access: "create"
|
|
31519
32089
|
},
|
|
32090
|
+
"streamBroker.renderPreBufferClip": {
|
|
32091
|
+
capName: "stream-broker",
|
|
32092
|
+
capScope: "system",
|
|
32093
|
+
addonId: null,
|
|
32094
|
+
access: "create"
|
|
32095
|
+
},
|
|
31520
32096
|
"streamBroker.restartProfile": {
|
|
31521
32097
|
capName: "stream-broker",
|
|
31522
32098
|
capScope: "system",
|
|
@@ -32964,4 +33540,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
32964
33540
|
return out;
|
|
32965
33541
|
}
|
|
32966
33542
|
//#endregion
|
|
32967
|
-
export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcDeliverySchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleInputSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
|
|
33543
|
+
export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcCrossingSchema, NcDeliverySchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleInputSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
|