camstack 1.0.6 → 1.0.7
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.
|
@@ -14522,49 +14522,7 @@ function date4(params) {
|
|
|
14522
14522
|
// ../../node_modules/zod/v4/classic/external.js
|
|
14523
14523
|
config(en_default());
|
|
14524
14524
|
|
|
14525
|
-
// ../types/dist/
|
|
14526
|
-
var wiringProbeKindSchema = external_exports.enum([
|
|
14527
|
-
"singleton",
|
|
14528
|
-
"device",
|
|
14529
|
-
"widget"
|
|
14530
|
-
]);
|
|
14531
|
-
var wiringProbeResultSchema = external_exports.object({
|
|
14532
|
-
capName: external_exports.string(),
|
|
14533
|
-
kind: wiringProbeKindSchema,
|
|
14534
|
-
deviceId: external_exports.number().optional(),
|
|
14535
|
-
reachable: external_exports.boolean(),
|
|
14536
|
-
latencyMs: external_exports.number(),
|
|
14537
|
-
error: external_exports.string().optional()
|
|
14538
|
-
});
|
|
14539
|
-
var wiringAddonHealthSchema = external_exports.object({
|
|
14540
|
-
addonId: external_exports.string(),
|
|
14541
|
-
caps: external_exports.array(wiringProbeResultSchema).readonly(),
|
|
14542
|
-
widgets: external_exports.array(wiringProbeResultSchema).readonly()
|
|
14543
|
-
});
|
|
14544
|
-
var wiringNodeHealthSchema = external_exports.object({
|
|
14545
|
-
nodeId: external_exports.string(),
|
|
14546
|
-
addons: external_exports.array(wiringAddonHealthSchema).readonly()
|
|
14547
|
-
});
|
|
14548
|
-
var wiringHealthSnapshotSchema = external_exports.object({
|
|
14549
|
-
/** True only when every probed target is reachable. */
|
|
14550
|
-
ok: external_exports.boolean(),
|
|
14551
|
-
/** True when at least one target is unreachable. */
|
|
14552
|
-
degraded: external_exports.boolean(),
|
|
14553
|
-
checkedAt: external_exports.string(),
|
|
14554
|
-
nodes: external_exports.array(wiringNodeHealthSchema).readonly(),
|
|
14555
|
-
summary: external_exports.object({
|
|
14556
|
-
total: external_exports.number(),
|
|
14557
|
-
reachable: external_exports.number(),
|
|
14558
|
-
unreachable: external_exports.number()
|
|
14559
|
-
})
|
|
14560
|
-
});
|
|
14561
|
-
var MODEL_FORMATS = [
|
|
14562
|
-
"onnx",
|
|
14563
|
-
"coreml",
|
|
14564
|
-
"openvino",
|
|
14565
|
-
"tflite",
|
|
14566
|
-
"pt"
|
|
14567
|
-
];
|
|
14525
|
+
// ../types/dist/sleep-D7JeS58T.mjs
|
|
14568
14526
|
var WELL_KNOWN_TABS = [
|
|
14569
14527
|
{
|
|
14570
14528
|
id: "overview",
|
|
@@ -14805,7 +14763,7 @@ var ProfileSlotSchema = external_exports.object({
|
|
|
14805
14763
|
preBufferSec: external_exports.number().nonnegative().optional(),
|
|
14806
14764
|
errorMessage: external_exports.string().optional()
|
|
14807
14765
|
});
|
|
14808
|
-
var StreamSourceEntrySchema = external_exports.object({
|
|
14766
|
+
var StreamSourceEntrySchema$1 = external_exports.object({
|
|
14809
14767
|
id: external_exports.string(),
|
|
14810
14768
|
label: external_exports.string(),
|
|
14811
14769
|
protocol: external_exports.enum([
|
|
@@ -14912,63 +14870,415 @@ var SubscribeAudioChunksResultSchema = external_exports.object({
|
|
|
14912
14870
|
/** Opaque id passed to `pullAudioChunks` / `unsubscribeAudioChunks`. */
|
|
14913
14871
|
subscriptionId: external_exports.string()
|
|
14914
14872
|
});
|
|
14915
|
-
var BrokerStatusSchema = external_exports.enum([
|
|
14916
|
-
"idle",
|
|
14917
|
-
"connecting",
|
|
14918
|
-
"streaming",
|
|
14919
|
-
"error",
|
|
14920
|
-
"stopped"
|
|
14921
|
-
]);
|
|
14922
|
-
var BrokerStatsSchema = external_exports.object({
|
|
14923
|
-
status: BrokerStatusSchema,
|
|
14924
|
-
inputFps: external_exports.number(),
|
|
14925
|
-
decodeFps: external_exports.number(),
|
|
14926
|
-
encodedSubscribers: external_exports.number(),
|
|
14927
|
-
decodedSubscribers: external_exports.number(),
|
|
14928
|
-
uptimeMs: external_exports.number(),
|
|
14929
|
-
bitrateKbps: external_exports.number(),
|
|
14930
|
-
idrIntervalMs: external_exports.number(),
|
|
14931
|
-
codec: external_exports.string().optional(),
|
|
14932
|
-
totalBytes: external_exports.number(),
|
|
14933
|
-
packetCount: external_exports.number(),
|
|
14934
|
-
rtspClients: external_exports.number(),
|
|
14935
|
-
pipeClients: external_exports.number(),
|
|
14936
|
-
preBufferSec: external_exports.number(),
|
|
14937
|
-
preBufferMs: external_exports.number(),
|
|
14938
|
-
preBufferPackets: external_exports.number(),
|
|
14939
|
-
/**
|
|
14940
|
-
* Moleculer node id of the decoder provider currently servicing this
|
|
14941
|
-
* stream's decoded subscribers. `null` until the deferred decoder is
|
|
14942
|
-
* created (no decoded clients yet, or codec not detected). Surfaces the
|
|
14943
|
-
* runtime decoder placement so the UI can show "Decoder: <agent>" without
|
|
14944
|
-
* a separate cap call per broker.
|
|
14945
|
-
*/
|
|
14946
|
-
decoderNodeId: external_exports.string().nullable(),
|
|
14947
|
-
/**
|
|
14948
|
-
* Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
|
|
14949
|
-
* when the stream has no audio track or the broker is in cold start.
|
|
14950
|
-
* `supported = false` means the codec was detected but the local
|
|
14951
|
-
* decoder pipeline cannot produce PCM chunks (e.g. AAC without the
|
|
14952
|
-
* AAC pipeline wired). Surfaced in the UI device-overview so operators
|
|
14953
|
-
* can pre-pick the audio-analysis model that matches the codec.
|
|
14954
|
-
*/
|
|
14955
|
-
audio: external_exports.object({
|
|
14956
|
-
codec: external_exports.string(),
|
|
14957
|
-
sampleRate: external_exports.number(),
|
|
14958
|
-
channels: external_exports.number(),
|
|
14959
|
-
supported: external_exports.boolean()
|
|
14960
|
-
}).nullable().optional()
|
|
14873
|
+
var BrokerStatusSchema = external_exports.enum([
|
|
14874
|
+
"idle",
|
|
14875
|
+
"connecting",
|
|
14876
|
+
"streaming",
|
|
14877
|
+
"error",
|
|
14878
|
+
"stopped"
|
|
14879
|
+
]);
|
|
14880
|
+
var BrokerStatsSchema = external_exports.object({
|
|
14881
|
+
status: BrokerStatusSchema,
|
|
14882
|
+
inputFps: external_exports.number(),
|
|
14883
|
+
decodeFps: external_exports.number(),
|
|
14884
|
+
encodedSubscribers: external_exports.number(),
|
|
14885
|
+
decodedSubscribers: external_exports.number(),
|
|
14886
|
+
uptimeMs: external_exports.number(),
|
|
14887
|
+
bitrateKbps: external_exports.number(),
|
|
14888
|
+
idrIntervalMs: external_exports.number(),
|
|
14889
|
+
codec: external_exports.string().optional(),
|
|
14890
|
+
totalBytes: external_exports.number(),
|
|
14891
|
+
packetCount: external_exports.number(),
|
|
14892
|
+
rtspClients: external_exports.number(),
|
|
14893
|
+
pipeClients: external_exports.number(),
|
|
14894
|
+
preBufferSec: external_exports.number(),
|
|
14895
|
+
preBufferMs: external_exports.number(),
|
|
14896
|
+
preBufferPackets: external_exports.number(),
|
|
14897
|
+
/**
|
|
14898
|
+
* Moleculer node id of the decoder provider currently servicing this
|
|
14899
|
+
* stream's decoded subscribers. `null` until the deferred decoder is
|
|
14900
|
+
* created (no decoded clients yet, or codec not detected). Surfaces the
|
|
14901
|
+
* runtime decoder placement so the UI can show "Decoder: <agent>" without
|
|
14902
|
+
* a separate cap call per broker.
|
|
14903
|
+
*/
|
|
14904
|
+
decoderNodeId: external_exports.string().nullable(),
|
|
14905
|
+
/**
|
|
14906
|
+
* Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
|
|
14907
|
+
* when the stream has no audio track or the broker is in cold start.
|
|
14908
|
+
* `supported = false` means the codec was detected but the local
|
|
14909
|
+
* decoder pipeline cannot produce PCM chunks (e.g. AAC without the
|
|
14910
|
+
* AAC pipeline wired). Surfaced in the UI device-overview so operators
|
|
14911
|
+
* can pre-pick the audio-analysis model that matches the codec.
|
|
14912
|
+
*/
|
|
14913
|
+
audio: external_exports.object({
|
|
14914
|
+
codec: external_exports.string(),
|
|
14915
|
+
sampleRate: external_exports.number(),
|
|
14916
|
+
channels: external_exports.number(),
|
|
14917
|
+
supported: external_exports.boolean()
|
|
14918
|
+
}).nullable().optional()
|
|
14919
|
+
});
|
|
14920
|
+
var ProfileRtspEntrySchema = external_exports.object({
|
|
14921
|
+
profile: CamProfileSchema,
|
|
14922
|
+
/** Profile-keyed broker id, format `${deviceId}/${profile}` (e.g. `"15/high"`). */
|
|
14923
|
+
brokerId: external_exports.string(),
|
|
14924
|
+
url: external_exports.string(),
|
|
14925
|
+
mutedUrl: external_exports.string(),
|
|
14926
|
+
enabled: external_exports.boolean(),
|
|
14927
|
+
codec: external_exports.string().optional(),
|
|
14928
|
+
resolution: CamStreamResolutionSchema.optional()
|
|
14929
|
+
});
|
|
14930
|
+
var DeviceType = /* @__PURE__ */ (function(DeviceType2) {
|
|
14931
|
+
DeviceType2["Camera"] = "camera";
|
|
14932
|
+
DeviceType2["Hub"] = "hub";
|
|
14933
|
+
DeviceType2["Light"] = "light";
|
|
14934
|
+
DeviceType2["Siren"] = "siren";
|
|
14935
|
+
DeviceType2["Switch"] = "switch";
|
|
14936
|
+
DeviceType2["Sensor"] = "sensor";
|
|
14937
|
+
DeviceType2["Thermostat"] = "thermostat";
|
|
14938
|
+
DeviceType2["Button"] = "button";
|
|
14939
|
+
DeviceType2["EventEmitter"] = "event-emitter";
|
|
14940
|
+
DeviceType2["Update"] = "update";
|
|
14941
|
+
DeviceType2["Generic"] = "generic";
|
|
14942
|
+
DeviceType2["Notifier"] = "notifier";
|
|
14943
|
+
DeviceType2["Script"] = "script";
|
|
14944
|
+
DeviceType2["Automation"] = "automation";
|
|
14945
|
+
DeviceType2["Lock"] = "lock";
|
|
14946
|
+
DeviceType2["Cover"] = "cover";
|
|
14947
|
+
DeviceType2["Valve"] = "valve";
|
|
14948
|
+
DeviceType2["Humidifier"] = "humidifier";
|
|
14949
|
+
DeviceType2["WaterHeater"] = "water-heater";
|
|
14950
|
+
DeviceType2["Fan"] = "fan";
|
|
14951
|
+
DeviceType2["MediaPlayer"] = "media-player";
|
|
14952
|
+
DeviceType2["AlarmPanel"] = "alarm-panel";
|
|
14953
|
+
DeviceType2["Control"] = "control";
|
|
14954
|
+
DeviceType2["Presence"] = "presence";
|
|
14955
|
+
DeviceType2["Weather"] = "weather";
|
|
14956
|
+
DeviceType2["Vacuum"] = "vacuum";
|
|
14957
|
+
DeviceType2["LawnMower"] = "lawn-mower";
|
|
14958
|
+
DeviceType2["Container"] = "container";
|
|
14959
|
+
DeviceType2["Image"] = "image";
|
|
14960
|
+
return DeviceType2;
|
|
14961
|
+
})({});
|
|
14962
|
+
var DeviceFeature = /* @__PURE__ */ (function(DeviceFeature2) {
|
|
14963
|
+
DeviceFeature2["BatteryOperated"] = "battery-operated";
|
|
14964
|
+
DeviceFeature2["Rebootable"] = "rebootable";
|
|
14965
|
+
DeviceFeature2["Resyncable"] = "resyncable";
|
|
14966
|
+
DeviceFeature2["NativeSnapshot"] = "native-snapshot";
|
|
14967
|
+
DeviceFeature2["DoorbellButton"] = "doorbell-button";
|
|
14968
|
+
DeviceFeature2["TwoWayAudio"] = "two-way-audio";
|
|
14969
|
+
DeviceFeature2["PanTiltZoom"] = "pan-tilt-zoom";
|
|
14970
|
+
DeviceFeature2["PtzAutotrack"] = "ptz-autotrack";
|
|
14971
|
+
DeviceFeature2["MotionTrigger"] = "motion-trigger";
|
|
14972
|
+
DeviceFeature2["LightColorRgb"] = "light-color-rgb";
|
|
14973
|
+
DeviceFeature2["LightColorHsv"] = "light-color-hsv";
|
|
14974
|
+
DeviceFeature2["LightColorMired"] = "light-color-mired";
|
|
14975
|
+
DeviceFeature2["ClimateDualSetpoint"] = "climate-dual-setpoint";
|
|
14976
|
+
DeviceFeature2["ClimateHumidity"] = "climate-humidity";
|
|
14977
|
+
DeviceFeature2["ClimateFanMode"] = "climate-fan-mode";
|
|
14978
|
+
DeviceFeature2["ClimatePreset"] = "climate-preset";
|
|
14979
|
+
DeviceFeature2["CoverPositionable"] = "cover-positionable";
|
|
14980
|
+
DeviceFeature2["CoverTilt"] = "cover-tilt";
|
|
14981
|
+
DeviceFeature2["ValvePositionable"] = "valve-positionable";
|
|
14982
|
+
DeviceFeature2["FanSpeed"] = "fan-speed";
|
|
14983
|
+
DeviceFeature2["FanPreset"] = "fan-preset";
|
|
14984
|
+
DeviceFeature2["FanDirection"] = "fan-direction";
|
|
14985
|
+
DeviceFeature2["FanOscillating"] = "fan-oscillating";
|
|
14986
|
+
DeviceFeature2["LockPinRequired"] = "lock-pin-required";
|
|
14987
|
+
DeviceFeature2["LockOpen"] = "lock-open";
|
|
14988
|
+
DeviceFeature2["MediaPlayerSeek"] = "media-player-seek";
|
|
14989
|
+
DeviceFeature2["MediaPlayerVolume"] = "media-player-volume";
|
|
14990
|
+
DeviceFeature2["MediaPlayerMute"] = "media-player-mute";
|
|
14991
|
+
DeviceFeature2["MediaPlayerShuffle"] = "media-player-shuffle";
|
|
14992
|
+
DeviceFeature2["MediaPlayerRepeat"] = "media-player-repeat";
|
|
14993
|
+
DeviceFeature2["MediaPlayerSelectSource"] = "media-player-select-source";
|
|
14994
|
+
DeviceFeature2["MediaPlayerPlayMedia"] = "media-player-play-media";
|
|
14995
|
+
DeviceFeature2["MediaPlayerNext"] = "media-player-next";
|
|
14996
|
+
DeviceFeature2["MediaPlayerPrevious"] = "media-player-previous";
|
|
14997
|
+
DeviceFeature2["MediaPlayerStop"] = "media-player-stop";
|
|
14998
|
+
DeviceFeature2["AlarmPinRequired"] = "alarm-pin-required";
|
|
14999
|
+
DeviceFeature2["PresenceGps"] = "presence-gps";
|
|
15000
|
+
DeviceFeature2["NotifierImage"] = "notifier-image";
|
|
15001
|
+
DeviceFeature2["NotifierPriority"] = "notifier-priority";
|
|
15002
|
+
DeviceFeature2["NotifierData"] = "notifier-data";
|
|
15003
|
+
DeviceFeature2["NotifierActions"] = "notifier-actions";
|
|
15004
|
+
DeviceFeature2["NotifierRecipients"] = "notifier-recipients";
|
|
15005
|
+
DeviceFeature2["ScriptVariables"] = "script-variables";
|
|
15006
|
+
DeviceFeature2["AutomationSkipCondition"] = "automation-skip-condition";
|
|
15007
|
+
return DeviceFeature2;
|
|
15008
|
+
})({});
|
|
15009
|
+
var DeviceRole = /* @__PURE__ */ (function(DeviceRole2) {
|
|
15010
|
+
DeviceRole2["Siren"] = "siren";
|
|
15011
|
+
DeviceRole2["Floodlight"] = "floodlight";
|
|
15012
|
+
DeviceRole2["Spotlight"] = "spotlight";
|
|
15013
|
+
DeviceRole2["PirSensor"] = "pir-sensor";
|
|
15014
|
+
DeviceRole2["Chime"] = "chime";
|
|
15015
|
+
DeviceRole2["Autotrack"] = "autotrack";
|
|
15016
|
+
DeviceRole2["Nightvision"] = "nightvision";
|
|
15017
|
+
DeviceRole2["PrivacyMask"] = "privacy-mask";
|
|
15018
|
+
DeviceRole2["Doorbell"] = "doorbell";
|
|
15019
|
+
DeviceRole2["BinaryHelper"] = "binary-helper";
|
|
15020
|
+
DeviceRole2["MotionSensor"] = "motion-sensor";
|
|
15021
|
+
DeviceRole2["ContactSensor"] = "contact-sensor";
|
|
15022
|
+
DeviceRole2["LeakSensor"] = "leak-sensor";
|
|
15023
|
+
DeviceRole2["SmokeSensor"] = "smoke-sensor";
|
|
15024
|
+
DeviceRole2["COSensor"] = "co-sensor";
|
|
15025
|
+
DeviceRole2["GasSensor"] = "gas-sensor";
|
|
15026
|
+
DeviceRole2["TamperSensor"] = "tamper-sensor";
|
|
15027
|
+
DeviceRole2["VibrationSensor"] = "vibration-sensor";
|
|
15028
|
+
DeviceRole2["ConnectivitySensor"] = "connectivity-sensor";
|
|
15029
|
+
DeviceRole2["SoundSensor"] = "sound-sensor";
|
|
15030
|
+
DeviceRole2["BinarySensor"] = "binary-sensor";
|
|
15031
|
+
DeviceRole2["TemperatureSensor"] = "temperature-sensor";
|
|
15032
|
+
DeviceRole2["HumiditySensor"] = "humidity-sensor";
|
|
15033
|
+
DeviceRole2["AmbientLightSensor"] = "ambient-light-sensor";
|
|
15034
|
+
DeviceRole2["PressureSensor"] = "pressure-sensor";
|
|
15035
|
+
DeviceRole2["PowerSensor"] = "power-sensor";
|
|
15036
|
+
DeviceRole2["EnergySensor"] = "energy-sensor";
|
|
15037
|
+
DeviceRole2["VoltageSensor"] = "voltage-sensor";
|
|
15038
|
+
DeviceRole2["CurrentSensor"] = "current-sensor";
|
|
15039
|
+
DeviceRole2["AirQualitySensor"] = "air-quality-sensor";
|
|
15040
|
+
DeviceRole2["BatterySensor"] = "battery-sensor";
|
|
15041
|
+
DeviceRole2["NumericSensor"] = "numeric-sensor";
|
|
15042
|
+
DeviceRole2["EnumSensor"] = "enum-sensor";
|
|
15043
|
+
DeviceRole2["DateTimeSensor"] = "datetime-sensor";
|
|
15044
|
+
DeviceRole2["GenericSensor"] = "generic-sensor";
|
|
15045
|
+
DeviceRole2["NumericControl"] = "numeric-control";
|
|
15046
|
+
DeviceRole2["SelectControl"] = "select-control";
|
|
15047
|
+
DeviceRole2["TextControl"] = "text-control";
|
|
15048
|
+
DeviceRole2["DateTimeControl"] = "datetime-control";
|
|
15049
|
+
DeviceRole2["MobilePushNotifier"] = "mobile-push-notifier";
|
|
15050
|
+
DeviceRole2["MessagingNotifier"] = "messaging-notifier";
|
|
15051
|
+
DeviceRole2["EmailNotifier"] = "email-notifier";
|
|
15052
|
+
DeviceRole2["GenericNotifier"] = "generic-notifier";
|
|
15053
|
+
return DeviceRole2;
|
|
15054
|
+
})({});
|
|
15055
|
+
var ContributionSectionSchema = external_exports.object({
|
|
15056
|
+
id: external_exports.string(),
|
|
15057
|
+
title: external_exports.string(),
|
|
15058
|
+
description: external_exports.string().optional(),
|
|
15059
|
+
style: external_exports.enum(["card", "accordion"]).optional(),
|
|
15060
|
+
defaultCollapsed: external_exports.boolean().optional(),
|
|
15061
|
+
columns: external_exports.union([
|
|
15062
|
+
external_exports.literal(1),
|
|
15063
|
+
external_exports.literal(2),
|
|
15064
|
+
external_exports.literal(3),
|
|
15065
|
+
external_exports.literal(4)
|
|
15066
|
+
]).optional(),
|
|
15067
|
+
tab: external_exports.string().optional(),
|
|
15068
|
+
location: external_exports.enum(["settings", "top-tab"]).optional(),
|
|
15069
|
+
order: external_exports.number().optional(),
|
|
15070
|
+
fields: external_exports.array(external_exports.any())
|
|
15071
|
+
});
|
|
15072
|
+
var ContributionTabSchema = external_exports.object({
|
|
15073
|
+
id: external_exports.string(),
|
|
15074
|
+
label: external_exports.string(),
|
|
15075
|
+
icon: external_exports.string(),
|
|
15076
|
+
order: external_exports.number().optional()
|
|
15077
|
+
});
|
|
15078
|
+
var ContributionOutputSchema = external_exports.object({
|
|
15079
|
+
tabs: external_exports.array(ContributionTabSchema).optional(),
|
|
15080
|
+
sections: external_exports.array(ContributionSectionSchema)
|
|
15081
|
+
}).nullable();
|
|
15082
|
+
var DEVICE_SETTINGS_CONTRIBUTION_METHODS = {
|
|
15083
|
+
getDeviceSettingsContribution: {
|
|
15084
|
+
input: external_exports.object({ deviceId: external_exports.number() }),
|
|
15085
|
+
output: ContributionOutputSchema,
|
|
15086
|
+
kind: "query",
|
|
15087
|
+
auth: "protected"
|
|
15088
|
+
},
|
|
15089
|
+
getDeviceLiveContribution: {
|
|
15090
|
+
input: external_exports.object({ deviceId: external_exports.number() }),
|
|
15091
|
+
output: ContributionOutputSchema,
|
|
15092
|
+
kind: "query",
|
|
15093
|
+
auth: "protected"
|
|
15094
|
+
},
|
|
15095
|
+
applyDeviceSettingsPatch: {
|
|
15096
|
+
input: external_exports.object({
|
|
15097
|
+
deviceId: external_exports.number(),
|
|
15098
|
+
patch: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
15099
|
+
}),
|
|
15100
|
+
output: external_exports.object({ success: external_exports.literal(true) }),
|
|
15101
|
+
kind: "mutation",
|
|
15102
|
+
auth: "admin"
|
|
15103
|
+
}
|
|
15104
|
+
};
|
|
15105
|
+
var DEVICE_STATUS_METHOD = { getStatus: {
|
|
15106
|
+
input: external_exports.object({ deviceId: external_exports.number() }),
|
|
15107
|
+
output: external_exports.unknown().nullable(),
|
|
15108
|
+
kind: "query",
|
|
15109
|
+
auth: "protected"
|
|
15110
|
+
} };
|
|
15111
|
+
function method(input, output, options) {
|
|
15112
|
+
return {
|
|
15113
|
+
input,
|
|
15114
|
+
output,
|
|
15115
|
+
kind: options?.kind ?? "query",
|
|
15116
|
+
auth: options?.auth ?? "protected",
|
|
15117
|
+
...options?.access !== void 0 ? { access: options.access } : {},
|
|
15118
|
+
timeoutMs: options?.timeoutMs
|
|
15119
|
+
};
|
|
15120
|
+
}
|
|
15121
|
+
function event(data) {
|
|
15122
|
+
return { data };
|
|
15123
|
+
}
|
|
15124
|
+
var StaticDirOutputSchema = external_exports.object({ staticDir: external_exports.string() });
|
|
15125
|
+
var VersionOutputSchema = external_exports.object({ version: external_exports.string() });
|
|
15126
|
+
var adminUiCapability = {
|
|
15127
|
+
name: "admin-ui",
|
|
15128
|
+
scope: "system",
|
|
15129
|
+
mode: "singleton",
|
|
15130
|
+
internal: true,
|
|
15131
|
+
methods: {
|
|
15132
|
+
getStaticDir: method(external_exports.void(), StaticDirOutputSchema),
|
|
15133
|
+
getVersion: method(external_exports.void(), VersionOutputSchema)
|
|
15134
|
+
}
|
|
15135
|
+
};
|
|
15136
|
+
var StreamSourceEntrySchema = external_exports.object({
|
|
15137
|
+
id: external_exports.string(),
|
|
15138
|
+
label: external_exports.string(),
|
|
15139
|
+
protocol: external_exports.enum([
|
|
15140
|
+
"rtsp",
|
|
15141
|
+
"rtmp",
|
|
15142
|
+
"annexb",
|
|
15143
|
+
"http-mjpeg",
|
|
15144
|
+
"webrtc",
|
|
15145
|
+
"custom"
|
|
15146
|
+
]),
|
|
15147
|
+
url: external_exports.string().optional(),
|
|
15148
|
+
resolution: external_exports.object({
|
|
15149
|
+
width: external_exports.number(),
|
|
15150
|
+
height: external_exports.number()
|
|
15151
|
+
}).optional(),
|
|
15152
|
+
fps: external_exports.number().optional(),
|
|
15153
|
+
bitrate: external_exports.number().optional(),
|
|
15154
|
+
codec: external_exports.string().optional(),
|
|
15155
|
+
profileHint: CamProfileSchema.optional(),
|
|
15156
|
+
sdp: external_exports.string().optional()
|
|
15157
|
+
});
|
|
15158
|
+
var ConfigEntrySchema = external_exports.object({
|
|
15159
|
+
key: external_exports.string(),
|
|
15160
|
+
value: external_exports.unknown()
|
|
15161
|
+
});
|
|
15162
|
+
var RawStateResultSchema = external_exports.object({
|
|
15163
|
+
/** Originating provider id, e.g. 'homeassistant' | 'reolink' | 'hikvision'. */
|
|
15164
|
+
source: external_exports.string(),
|
|
15165
|
+
/** Opaque, DISPLAY-SAFE upstream blob (no secrets/PII). */
|
|
15166
|
+
data: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
15167
|
+
});
|
|
15168
|
+
var deviceOpsCapability = {
|
|
15169
|
+
name: "device-ops",
|
|
15170
|
+
scope: "device",
|
|
15171
|
+
deviceNative: true,
|
|
15172
|
+
mode: "singleton",
|
|
15173
|
+
methods: {
|
|
15174
|
+
/**
|
|
15175
|
+
* Return stream sources for camera-like devices. Non-camera devices
|
|
15176
|
+
* return an empty array (the bridge did the same; preserved for compat).
|
|
15177
|
+
*/
|
|
15178
|
+
getStreamSources: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(StreamSourceEntrySchema)),
|
|
15179
|
+
/**
|
|
15180
|
+
* Return the device's config entries (key + current value). Used by
|
|
15181
|
+
* the device-manager aggregator when reading the driver's schema+values.
|
|
15182
|
+
*/
|
|
15183
|
+
getConfigEntries: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(ConfigEntrySchema)),
|
|
15184
|
+
/**
|
|
15185
|
+
* Bulk-apply a config patch via `IDevice.config.setAll`. Covers the
|
|
15186
|
+
* updateConfig / setStreamProfileMap / enable-as-config paths from
|
|
15187
|
+
* the old bridge.
|
|
15188
|
+
*/
|
|
15189
|
+
setConfig: method(external_exports.object({
|
|
15190
|
+
deviceId: external_exports.number(),
|
|
15191
|
+
values: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
15192
|
+
}), external_exports.void(), { kind: "mutation" }),
|
|
15193
|
+
/**
|
|
15194
|
+
* Invoke a device custom action on a forked/remote device (the
|
|
15195
|
+
* cross-process transport for `IDevice.runDeviceAction`). Mirrors
|
|
15196
|
+
* `setConfig` — the device-manager calls this when the device is not
|
|
15197
|
+
* hub-local.
|
|
15198
|
+
*/
|
|
15199
|
+
runAction: method(external_exports.object({
|
|
15200
|
+
deviceId: external_exports.number(),
|
|
15201
|
+
action: external_exports.string().min(1),
|
|
15202
|
+
input: external_exports.unknown()
|
|
15203
|
+
}), external_exports.unknown(), { kind: "mutation" }),
|
|
15204
|
+
/**
|
|
15205
|
+
* Invoke `IDevice.removeDevice()` so the driver can release resources
|
|
15206
|
+
* (close sockets, stop background tasks, …). The device-manager still
|
|
15207
|
+
* performs its own persistence cleanup before/after this call.
|
|
15208
|
+
*/
|
|
15209
|
+
removeDevice: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), { kind: "mutation" }),
|
|
15210
|
+
/**
|
|
15211
|
+
* Build the ConfigUISchema (FormBuilder input shape) from the device's
|
|
15212
|
+
* Zod config schema. Runs on the worker that owns the IDevice so the
|
|
15213
|
+
* Zod types stay local (they're function references, not
|
|
15214
|
+
* serializable). Returns a fully JSON-serializable schema with
|
|
15215
|
+
* sections/fields the admin UI renders directly.
|
|
15216
|
+
*
|
|
15217
|
+
* Needed because the hub-side `device-manager.getSettingsSchema`
|
|
15218
|
+
* couldn't reach forked-worker devices — it had no registry entry
|
|
15219
|
+
* and no cross-process lookup, so the UI silently rendered an empty
|
|
15220
|
+
* settings panel for every worker-owned device.
|
|
15221
|
+
*
|
|
15222
|
+
* Returns `null` when the device isn't found on this worker.
|
|
15223
|
+
*/
|
|
15224
|
+
getSettingsSchema: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.unknown().nullable()),
|
|
15225
|
+
/**
|
|
15226
|
+
* Opt-in: return the device's RAW upstream state (the provider's
|
|
15227
|
+
* cached values) as a display-safe `{ source, data }` blob. Returns
|
|
15228
|
+
* `null` when the device exposes no raw state — the State panel hides
|
|
15229
|
+
* its Raw toggle in that case. One-shot (read the provider's existing
|
|
15230
|
+
* cache; no upstream round-trip).
|
|
15231
|
+
*/
|
|
15232
|
+
getRawState: method(external_exports.object({ deviceId: external_exports.number() }), RawStateResultSchema.nullable(), { auth: "protected" })
|
|
15233
|
+
}
|
|
15234
|
+
};
|
|
15235
|
+
function sleep(ms) {
|
|
15236
|
+
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
15237
|
+
}
|
|
15238
|
+
|
|
15239
|
+
// ../types/dist/index.mjs
|
|
15240
|
+
var wiringProbeKindSchema = external_exports.enum([
|
|
15241
|
+
"singleton",
|
|
15242
|
+
"device",
|
|
15243
|
+
"widget"
|
|
15244
|
+
]);
|
|
15245
|
+
var wiringProbeResultSchema = external_exports.object({
|
|
15246
|
+
capName: external_exports.string(),
|
|
15247
|
+
kind: wiringProbeKindSchema,
|
|
15248
|
+
deviceId: external_exports.number().optional(),
|
|
15249
|
+
reachable: external_exports.boolean(),
|
|
15250
|
+
latencyMs: external_exports.number(),
|
|
15251
|
+
error: external_exports.string().optional()
|
|
15252
|
+
});
|
|
15253
|
+
var wiringAddonHealthSchema = external_exports.object({
|
|
15254
|
+
addonId: external_exports.string(),
|
|
15255
|
+
caps: external_exports.array(wiringProbeResultSchema).readonly(),
|
|
15256
|
+
widgets: external_exports.array(wiringProbeResultSchema).readonly()
|
|
15257
|
+
});
|
|
15258
|
+
var wiringNodeHealthSchema = external_exports.object({
|
|
15259
|
+
nodeId: external_exports.string(),
|
|
15260
|
+
addons: external_exports.array(wiringAddonHealthSchema).readonly()
|
|
14961
15261
|
});
|
|
14962
|
-
var
|
|
14963
|
-
|
|
14964
|
-
|
|
14965
|
-
|
|
14966
|
-
|
|
14967
|
-
|
|
14968
|
-
|
|
14969
|
-
|
|
14970
|
-
|
|
15262
|
+
var wiringHealthSnapshotSchema = external_exports.object({
|
|
15263
|
+
/** True only when every probed target is reachable. */
|
|
15264
|
+
ok: external_exports.boolean(),
|
|
15265
|
+
/** True when at least one target is unreachable. */
|
|
15266
|
+
degraded: external_exports.boolean(),
|
|
15267
|
+
checkedAt: external_exports.string(),
|
|
15268
|
+
nodes: external_exports.array(wiringNodeHealthSchema).readonly(),
|
|
15269
|
+
summary: external_exports.object({
|
|
15270
|
+
total: external_exports.number(),
|
|
15271
|
+
reachable: external_exports.number(),
|
|
15272
|
+
unreachable: external_exports.number()
|
|
15273
|
+
})
|
|
14971
15274
|
});
|
|
15275
|
+
var MODEL_FORMATS = [
|
|
15276
|
+
"onnx",
|
|
15277
|
+
"coreml",
|
|
15278
|
+
"openvino",
|
|
15279
|
+
"tflite",
|
|
15280
|
+
"pt"
|
|
15281
|
+
];
|
|
14972
15282
|
var RecordingWeekdaySchema = external_exports.number().int().min(0).max(6);
|
|
14973
15283
|
var HHMM = /^([01]\d|2[0-3]):[0-5]\d$/;
|
|
14974
15284
|
var RecordingScheduleSchema = external_exports.discriminatedUnion("kind", [external_exports.object({ kind: external_exports.literal("always") }), external_exports.object({
|
|
@@ -15425,183 +15735,58 @@ var APPLE_SA_TO_MACRO = {
|
|
|
15425
15735
|
fire_alarm: "alarm",
|
|
15426
15736
|
car_alarm: "alarm",
|
|
15427
15737
|
siren: "siren",
|
|
15428
|
-
police_siren: "siren",
|
|
15429
|
-
ambulance_siren: "siren",
|
|
15430
|
-
doorbell: "doorbell",
|
|
15431
|
-
door_knock: "doorbell",
|
|
15432
|
-
knocking: "doorbell",
|
|
15433
|
-
glass_breaking: "glass_breaking",
|
|
15434
|
-
glass_shatter: "glass_breaking",
|
|
15435
|
-
gunshot: "gunshot",
|
|
15436
|
-
explosion: "gunshot",
|
|
15437
|
-
fireworks: "gunshot",
|
|
15438
|
-
car: "vehicle",
|
|
15439
|
-
truck: "vehicle",
|
|
15440
|
-
motorcycle: "vehicle",
|
|
15441
|
-
car_horn: "vehicle",
|
|
15442
|
-
vehicle_horn: "vehicle",
|
|
15443
|
-
traffic: "vehicle",
|
|
15444
|
-
fire: "fire",
|
|
15445
|
-
fire_crackle: "fire",
|
|
15446
|
-
water: "water",
|
|
15447
|
-
rain: "water",
|
|
15448
|
-
ocean: "water",
|
|
15449
|
-
splash: "water",
|
|
15450
|
-
wind: "wind",
|
|
15451
|
-
thunder: "wind",
|
|
15452
|
-
thunderstorm: "wind",
|
|
15453
|
-
door: "door",
|
|
15454
|
-
door_slam: "door",
|
|
15455
|
-
sliding_door: "door",
|
|
15456
|
-
footsteps: "footsteps",
|
|
15457
|
-
walking: "footsteps",
|
|
15458
|
-
running: "footsteps",
|
|
15459
|
-
crowd: "crowd",
|
|
15460
|
-
chatter: "crowd",
|
|
15461
|
-
cheering: "crowd",
|
|
15462
|
-
applause: "crowd",
|
|
15463
|
-
telephone_ring: "telephone",
|
|
15464
|
-
ringtone: "telephone",
|
|
15465
|
-
engine: "engine",
|
|
15466
|
-
engine_starting: "engine",
|
|
15467
|
-
lawn_mower: "engine",
|
|
15468
|
-
chainsaw: "engine",
|
|
15469
|
-
hammer: "tools",
|
|
15470
|
-
jackhammer: "tools",
|
|
15471
|
-
drill: "tools",
|
|
15472
|
-
power_tool: "tools",
|
|
15473
|
-
silence: "silence"
|
|
15474
|
-
},
|
|
15475
|
-
preserveOriginal: false
|
|
15476
|
-
};
|
|
15477
|
-
var _macroLookup = /* @__PURE__ */ new Map();
|
|
15478
|
-
for (const [k, v] of Object.entries(YAMNET_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
15479
|
-
for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
15480
|
-
var DeviceType = /* @__PURE__ */ (function(DeviceType2) {
|
|
15481
|
-
DeviceType2["Camera"] = "camera";
|
|
15482
|
-
DeviceType2["Hub"] = "hub";
|
|
15483
|
-
DeviceType2["Light"] = "light";
|
|
15484
|
-
DeviceType2["Siren"] = "siren";
|
|
15485
|
-
DeviceType2["Switch"] = "switch";
|
|
15486
|
-
DeviceType2["Sensor"] = "sensor";
|
|
15487
|
-
DeviceType2["Thermostat"] = "thermostat";
|
|
15488
|
-
DeviceType2["Button"] = "button";
|
|
15489
|
-
DeviceType2["EventEmitter"] = "event-emitter";
|
|
15490
|
-
DeviceType2["Update"] = "update";
|
|
15491
|
-
DeviceType2["Generic"] = "generic";
|
|
15492
|
-
DeviceType2["Notifier"] = "notifier";
|
|
15493
|
-
DeviceType2["Script"] = "script";
|
|
15494
|
-
DeviceType2["Automation"] = "automation";
|
|
15495
|
-
DeviceType2["Lock"] = "lock";
|
|
15496
|
-
DeviceType2["Cover"] = "cover";
|
|
15497
|
-
DeviceType2["Valve"] = "valve";
|
|
15498
|
-
DeviceType2["Humidifier"] = "humidifier";
|
|
15499
|
-
DeviceType2["WaterHeater"] = "water-heater";
|
|
15500
|
-
DeviceType2["Fan"] = "fan";
|
|
15501
|
-
DeviceType2["MediaPlayer"] = "media-player";
|
|
15502
|
-
DeviceType2["AlarmPanel"] = "alarm-panel";
|
|
15503
|
-
DeviceType2["Control"] = "control";
|
|
15504
|
-
DeviceType2["Presence"] = "presence";
|
|
15505
|
-
DeviceType2["Weather"] = "weather";
|
|
15506
|
-
DeviceType2["Vacuum"] = "vacuum";
|
|
15507
|
-
DeviceType2["LawnMower"] = "lawn-mower";
|
|
15508
|
-
DeviceType2["Container"] = "container";
|
|
15509
|
-
DeviceType2["Image"] = "image";
|
|
15510
|
-
return DeviceType2;
|
|
15511
|
-
})({});
|
|
15512
|
-
var DeviceFeature = /* @__PURE__ */ (function(DeviceFeature2) {
|
|
15513
|
-
DeviceFeature2["BatteryOperated"] = "battery-operated";
|
|
15514
|
-
DeviceFeature2["Rebootable"] = "rebootable";
|
|
15515
|
-
DeviceFeature2["Resyncable"] = "resyncable";
|
|
15516
|
-
DeviceFeature2["NativeSnapshot"] = "native-snapshot";
|
|
15517
|
-
DeviceFeature2["DoorbellButton"] = "doorbell-button";
|
|
15518
|
-
DeviceFeature2["TwoWayAudio"] = "two-way-audio";
|
|
15519
|
-
DeviceFeature2["PanTiltZoom"] = "pan-tilt-zoom";
|
|
15520
|
-
DeviceFeature2["PtzAutotrack"] = "ptz-autotrack";
|
|
15521
|
-
DeviceFeature2["MotionTrigger"] = "motion-trigger";
|
|
15522
|
-
DeviceFeature2["LightColorRgb"] = "light-color-rgb";
|
|
15523
|
-
DeviceFeature2["LightColorHsv"] = "light-color-hsv";
|
|
15524
|
-
DeviceFeature2["LightColorMired"] = "light-color-mired";
|
|
15525
|
-
DeviceFeature2["ClimateDualSetpoint"] = "climate-dual-setpoint";
|
|
15526
|
-
DeviceFeature2["ClimateHumidity"] = "climate-humidity";
|
|
15527
|
-
DeviceFeature2["ClimateFanMode"] = "climate-fan-mode";
|
|
15528
|
-
DeviceFeature2["ClimatePreset"] = "climate-preset";
|
|
15529
|
-
DeviceFeature2["CoverPositionable"] = "cover-positionable";
|
|
15530
|
-
DeviceFeature2["CoverTilt"] = "cover-tilt";
|
|
15531
|
-
DeviceFeature2["ValvePositionable"] = "valve-positionable";
|
|
15532
|
-
DeviceFeature2["FanSpeed"] = "fan-speed";
|
|
15533
|
-
DeviceFeature2["FanPreset"] = "fan-preset";
|
|
15534
|
-
DeviceFeature2["FanDirection"] = "fan-direction";
|
|
15535
|
-
DeviceFeature2["FanOscillating"] = "fan-oscillating";
|
|
15536
|
-
DeviceFeature2["LockPinRequired"] = "lock-pin-required";
|
|
15537
|
-
DeviceFeature2["LockOpen"] = "lock-open";
|
|
15538
|
-
DeviceFeature2["MediaPlayerSeek"] = "media-player-seek";
|
|
15539
|
-
DeviceFeature2["MediaPlayerVolume"] = "media-player-volume";
|
|
15540
|
-
DeviceFeature2["MediaPlayerMute"] = "media-player-mute";
|
|
15541
|
-
DeviceFeature2["MediaPlayerShuffle"] = "media-player-shuffle";
|
|
15542
|
-
DeviceFeature2["MediaPlayerRepeat"] = "media-player-repeat";
|
|
15543
|
-
DeviceFeature2["MediaPlayerSelectSource"] = "media-player-select-source";
|
|
15544
|
-
DeviceFeature2["MediaPlayerPlayMedia"] = "media-player-play-media";
|
|
15545
|
-
DeviceFeature2["MediaPlayerNext"] = "media-player-next";
|
|
15546
|
-
DeviceFeature2["MediaPlayerPrevious"] = "media-player-previous";
|
|
15547
|
-
DeviceFeature2["MediaPlayerStop"] = "media-player-stop";
|
|
15548
|
-
DeviceFeature2["AlarmPinRequired"] = "alarm-pin-required";
|
|
15549
|
-
DeviceFeature2["PresenceGps"] = "presence-gps";
|
|
15550
|
-
DeviceFeature2["NotifierImage"] = "notifier-image";
|
|
15551
|
-
DeviceFeature2["NotifierPriority"] = "notifier-priority";
|
|
15552
|
-
DeviceFeature2["NotifierData"] = "notifier-data";
|
|
15553
|
-
DeviceFeature2["NotifierActions"] = "notifier-actions";
|
|
15554
|
-
DeviceFeature2["NotifierRecipients"] = "notifier-recipients";
|
|
15555
|
-
DeviceFeature2["ScriptVariables"] = "script-variables";
|
|
15556
|
-
DeviceFeature2["AutomationSkipCondition"] = "automation-skip-condition";
|
|
15557
|
-
return DeviceFeature2;
|
|
15558
|
-
})({});
|
|
15559
|
-
var DeviceRole = /* @__PURE__ */ (function(DeviceRole2) {
|
|
15560
|
-
DeviceRole2["Siren"] = "siren";
|
|
15561
|
-
DeviceRole2["Floodlight"] = "floodlight";
|
|
15562
|
-
DeviceRole2["Spotlight"] = "spotlight";
|
|
15563
|
-
DeviceRole2["PirSensor"] = "pir-sensor";
|
|
15564
|
-
DeviceRole2["Chime"] = "chime";
|
|
15565
|
-
DeviceRole2["Autotrack"] = "autotrack";
|
|
15566
|
-
DeviceRole2["Nightvision"] = "nightvision";
|
|
15567
|
-
DeviceRole2["PrivacyMask"] = "privacy-mask";
|
|
15568
|
-
DeviceRole2["Doorbell"] = "doorbell";
|
|
15569
|
-
DeviceRole2["BinaryHelper"] = "binary-helper";
|
|
15570
|
-
DeviceRole2["MotionSensor"] = "motion-sensor";
|
|
15571
|
-
DeviceRole2["ContactSensor"] = "contact-sensor";
|
|
15572
|
-
DeviceRole2["LeakSensor"] = "leak-sensor";
|
|
15573
|
-
DeviceRole2["SmokeSensor"] = "smoke-sensor";
|
|
15574
|
-
DeviceRole2["COSensor"] = "co-sensor";
|
|
15575
|
-
DeviceRole2["GasSensor"] = "gas-sensor";
|
|
15576
|
-
DeviceRole2["TamperSensor"] = "tamper-sensor";
|
|
15577
|
-
DeviceRole2["VibrationSensor"] = "vibration-sensor";
|
|
15578
|
-
DeviceRole2["ConnectivitySensor"] = "connectivity-sensor";
|
|
15579
|
-
DeviceRole2["SoundSensor"] = "sound-sensor";
|
|
15580
|
-
DeviceRole2["BinarySensor"] = "binary-sensor";
|
|
15581
|
-
DeviceRole2["TemperatureSensor"] = "temperature-sensor";
|
|
15582
|
-
DeviceRole2["HumiditySensor"] = "humidity-sensor";
|
|
15583
|
-
DeviceRole2["AmbientLightSensor"] = "ambient-light-sensor";
|
|
15584
|
-
DeviceRole2["PressureSensor"] = "pressure-sensor";
|
|
15585
|
-
DeviceRole2["PowerSensor"] = "power-sensor";
|
|
15586
|
-
DeviceRole2["EnergySensor"] = "energy-sensor";
|
|
15587
|
-
DeviceRole2["VoltageSensor"] = "voltage-sensor";
|
|
15588
|
-
DeviceRole2["CurrentSensor"] = "current-sensor";
|
|
15589
|
-
DeviceRole2["AirQualitySensor"] = "air-quality-sensor";
|
|
15590
|
-
DeviceRole2["BatterySensor"] = "battery-sensor";
|
|
15591
|
-
DeviceRole2["NumericSensor"] = "numeric-sensor";
|
|
15592
|
-
DeviceRole2["EnumSensor"] = "enum-sensor";
|
|
15593
|
-
DeviceRole2["DateTimeSensor"] = "datetime-sensor";
|
|
15594
|
-
DeviceRole2["GenericSensor"] = "generic-sensor";
|
|
15595
|
-
DeviceRole2["NumericControl"] = "numeric-control";
|
|
15596
|
-
DeviceRole2["SelectControl"] = "select-control";
|
|
15597
|
-
DeviceRole2["TextControl"] = "text-control";
|
|
15598
|
-
DeviceRole2["DateTimeControl"] = "datetime-control";
|
|
15599
|
-
DeviceRole2["MobilePushNotifier"] = "mobile-push-notifier";
|
|
15600
|
-
DeviceRole2["MessagingNotifier"] = "messaging-notifier";
|
|
15601
|
-
DeviceRole2["EmailNotifier"] = "email-notifier";
|
|
15602
|
-
DeviceRole2["GenericNotifier"] = "generic-notifier";
|
|
15603
|
-
return DeviceRole2;
|
|
15604
|
-
})({});
|
|
15738
|
+
police_siren: "siren",
|
|
15739
|
+
ambulance_siren: "siren",
|
|
15740
|
+
doorbell: "doorbell",
|
|
15741
|
+
door_knock: "doorbell",
|
|
15742
|
+
knocking: "doorbell",
|
|
15743
|
+
glass_breaking: "glass_breaking",
|
|
15744
|
+
glass_shatter: "glass_breaking",
|
|
15745
|
+
gunshot: "gunshot",
|
|
15746
|
+
explosion: "gunshot",
|
|
15747
|
+
fireworks: "gunshot",
|
|
15748
|
+
car: "vehicle",
|
|
15749
|
+
truck: "vehicle",
|
|
15750
|
+
motorcycle: "vehicle",
|
|
15751
|
+
car_horn: "vehicle",
|
|
15752
|
+
vehicle_horn: "vehicle",
|
|
15753
|
+
traffic: "vehicle",
|
|
15754
|
+
fire: "fire",
|
|
15755
|
+
fire_crackle: "fire",
|
|
15756
|
+
water: "water",
|
|
15757
|
+
rain: "water",
|
|
15758
|
+
ocean: "water",
|
|
15759
|
+
splash: "water",
|
|
15760
|
+
wind: "wind",
|
|
15761
|
+
thunder: "wind",
|
|
15762
|
+
thunderstorm: "wind",
|
|
15763
|
+
door: "door",
|
|
15764
|
+
door_slam: "door",
|
|
15765
|
+
sliding_door: "door",
|
|
15766
|
+
footsteps: "footsteps",
|
|
15767
|
+
walking: "footsteps",
|
|
15768
|
+
running: "footsteps",
|
|
15769
|
+
crowd: "crowd",
|
|
15770
|
+
chatter: "crowd",
|
|
15771
|
+
cheering: "crowd",
|
|
15772
|
+
applause: "crowd",
|
|
15773
|
+
telephone_ring: "telephone",
|
|
15774
|
+
ringtone: "telephone",
|
|
15775
|
+
engine: "engine",
|
|
15776
|
+
engine_starting: "engine",
|
|
15777
|
+
lawn_mower: "engine",
|
|
15778
|
+
chainsaw: "engine",
|
|
15779
|
+
hammer: "tools",
|
|
15780
|
+
jackhammer: "tools",
|
|
15781
|
+
drill: "tools",
|
|
15782
|
+
power_tool: "tools",
|
|
15783
|
+
silence: "silence"
|
|
15784
|
+
},
|
|
15785
|
+
preserveOriginal: false
|
|
15786
|
+
};
|
|
15787
|
+
var _macroLookup = /* @__PURE__ */ new Map();
|
|
15788
|
+
for (const [k, v] of Object.entries(YAMNET_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
15789
|
+
for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
15605
15790
|
var AccessoryKind = {
|
|
15606
15791
|
Siren: DeviceRole.Siren,
|
|
15607
15792
|
Floodlight: DeviceRole.Floodlight,
|
|
@@ -15758,75 +15943,6 @@ var airQualitySensorCapability = {
|
|
|
15758
15943
|
},
|
|
15759
15944
|
runtimeState: AirQualitySensorStatusSchema
|
|
15760
15945
|
};
|
|
15761
|
-
var ContributionSectionSchema = external_exports.object({
|
|
15762
|
-
id: external_exports.string(),
|
|
15763
|
-
title: external_exports.string(),
|
|
15764
|
-
description: external_exports.string().optional(),
|
|
15765
|
-
style: external_exports.enum(["card", "accordion"]).optional(),
|
|
15766
|
-
defaultCollapsed: external_exports.boolean().optional(),
|
|
15767
|
-
columns: external_exports.union([
|
|
15768
|
-
external_exports.literal(1),
|
|
15769
|
-
external_exports.literal(2),
|
|
15770
|
-
external_exports.literal(3),
|
|
15771
|
-
external_exports.literal(4)
|
|
15772
|
-
]).optional(),
|
|
15773
|
-
tab: external_exports.string().optional(),
|
|
15774
|
-
location: external_exports.enum(["settings", "top-tab"]).optional(),
|
|
15775
|
-
order: external_exports.number().optional(),
|
|
15776
|
-
fields: external_exports.array(external_exports.any())
|
|
15777
|
-
});
|
|
15778
|
-
var ContributionTabSchema = external_exports.object({
|
|
15779
|
-
id: external_exports.string(),
|
|
15780
|
-
label: external_exports.string(),
|
|
15781
|
-
icon: external_exports.string(),
|
|
15782
|
-
order: external_exports.number().optional()
|
|
15783
|
-
});
|
|
15784
|
-
var ContributionOutputSchema = external_exports.object({
|
|
15785
|
-
tabs: external_exports.array(ContributionTabSchema).optional(),
|
|
15786
|
-
sections: external_exports.array(ContributionSectionSchema)
|
|
15787
|
-
}).nullable();
|
|
15788
|
-
var DEVICE_SETTINGS_CONTRIBUTION_METHODS = {
|
|
15789
|
-
getDeviceSettingsContribution: {
|
|
15790
|
-
input: external_exports.object({ deviceId: external_exports.number() }),
|
|
15791
|
-
output: ContributionOutputSchema,
|
|
15792
|
-
kind: "query",
|
|
15793
|
-
auth: "protected"
|
|
15794
|
-
},
|
|
15795
|
-
getDeviceLiveContribution: {
|
|
15796
|
-
input: external_exports.object({ deviceId: external_exports.number() }),
|
|
15797
|
-
output: ContributionOutputSchema,
|
|
15798
|
-
kind: "query",
|
|
15799
|
-
auth: "protected"
|
|
15800
|
-
},
|
|
15801
|
-
applyDeviceSettingsPatch: {
|
|
15802
|
-
input: external_exports.object({
|
|
15803
|
-
deviceId: external_exports.number(),
|
|
15804
|
-
patch: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
15805
|
-
}),
|
|
15806
|
-
output: external_exports.object({ success: external_exports.literal(true) }),
|
|
15807
|
-
kind: "mutation",
|
|
15808
|
-
auth: "admin"
|
|
15809
|
-
}
|
|
15810
|
-
};
|
|
15811
|
-
var DEVICE_STATUS_METHOD = { getStatus: {
|
|
15812
|
-
input: external_exports.object({ deviceId: external_exports.number() }),
|
|
15813
|
-
output: external_exports.unknown().nullable(),
|
|
15814
|
-
kind: "query",
|
|
15815
|
-
auth: "protected"
|
|
15816
|
-
} };
|
|
15817
|
-
function method(input, output, options) {
|
|
15818
|
-
return {
|
|
15819
|
-
input,
|
|
15820
|
-
output,
|
|
15821
|
-
kind: options?.kind ?? "query",
|
|
15822
|
-
auth: options?.auth ?? "protected",
|
|
15823
|
-
...options?.access !== void 0 ? { access: options.access } : {},
|
|
15824
|
-
timeoutMs: options?.timeoutMs
|
|
15825
|
-
};
|
|
15826
|
-
}
|
|
15827
|
-
function event(data) {
|
|
15828
|
-
return { data };
|
|
15829
|
-
}
|
|
15830
15946
|
var AlarmStateSchema = external_exports.enum([
|
|
15831
15947
|
"disarmed",
|
|
15832
15948
|
"armed_home",
|
|
@@ -21097,18 +21213,6 @@ var logDestinationCapability = {
|
|
|
21097
21213
|
}), external_exports.array(LogEntrySchema).readonly())
|
|
21098
21214
|
}
|
|
21099
21215
|
};
|
|
21100
|
-
var StaticDirOutputSchema = external_exports.object({ staticDir: external_exports.string() });
|
|
21101
|
-
var VersionOutputSchema = external_exports.object({ version: external_exports.string() });
|
|
21102
|
-
var adminUiCapability = {
|
|
21103
|
-
name: "admin-ui",
|
|
21104
|
-
scope: "system",
|
|
21105
|
-
mode: "singleton",
|
|
21106
|
-
internal: true,
|
|
21107
|
-
methods: {
|
|
21108
|
-
getStaticDir: method(external_exports.void(), StaticDirOutputSchema),
|
|
21109
|
-
getVersion: method(external_exports.void(), VersionOutputSchema)
|
|
21110
|
-
}
|
|
21111
|
-
};
|
|
21112
21216
|
var MethodAccessSchema = external_exports.enum([
|
|
21113
21217
|
"view",
|
|
21114
21218
|
"create",
|
|
@@ -23257,7 +23361,7 @@ var DeviceInfoSchema = external_exports.object({
|
|
|
23257
23361
|
/** Operator-authored cross-device field wirings. See `DeviceMeta.deviceLinks`. */
|
|
23258
23362
|
deviceLinks: external_exports.array(DeviceLinkSchema).readonly().optional()
|
|
23259
23363
|
});
|
|
23260
|
-
var
|
|
23364
|
+
var ConfigEntrySchema2 = external_exports.object({
|
|
23261
23365
|
key: external_exports.string(),
|
|
23262
23366
|
value: external_exports.unknown(),
|
|
23263
23367
|
description: external_exports.string().optional()
|
|
@@ -23570,9 +23674,9 @@ var deviceManagerCapability = {
|
|
|
23570
23674
|
/** List children of a parent device (by parent numeric id). */
|
|
23571
23675
|
getChildren: method(external_exports.object({ parentDeviceId: external_exports.number() }), external_exports.array(DeviceInfoSchema)),
|
|
23572
23676
|
/** Get stream sources for a camera device. */
|
|
23573
|
-
getStreamSources: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(StreamSourceEntrySchema)),
|
|
23677
|
+
getStreamSources: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(StreamSourceEntrySchema$1)),
|
|
23574
23678
|
/** Get config entries (key + value + description) for a device. */
|
|
23575
|
-
getConfigSchema: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(
|
|
23679
|
+
getConfigSchema: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(ConfigEntrySchema2)),
|
|
23576
23680
|
/** Get the ConfigUISchema for a device's settings (for admin UI rendering). */
|
|
23577
23681
|
getSettingsSchema: method(external_exports.object({ deviceId: external_exports.number() }), ConfigUISchemaOutput),
|
|
23578
23682
|
/** Update device config values (partial merge). */
|
|
@@ -24549,7 +24653,20 @@ var DiskSpaceInfoSchema = external_exports.object({
|
|
|
24549
24653
|
var PidResourceStatsSchema = external_exports.object({
|
|
24550
24654
|
pid: external_exports.number(),
|
|
24551
24655
|
cpu: external_exports.number(),
|
|
24552
|
-
memory: external_exports.number()
|
|
24656
|
+
memory: external_exports.number(),
|
|
24657
|
+
/**
|
|
24658
|
+
* Private (anonymous) resident bytes — the per-process V8 heap + native
|
|
24659
|
+
* allocations NOT shared with other processes (Linux RssAnon). This is the
|
|
24660
|
+
* "real" per-runner cost; summing it across runners is meaningful, unlike
|
|
24661
|
+
* `memory` (RSS), which double-counts the shared mmap'd framework code.
|
|
24662
|
+
* Undefined where /proc is unavailable (e.g. macOS).
|
|
24663
|
+
*/
|
|
24664
|
+
privateBytes: external_exports.number().optional(),
|
|
24665
|
+
/**
|
|
24666
|
+
* Shared file-backed resident bytes (Linux RssFile) — mmap'd framework/lib
|
|
24667
|
+
* code shared copy-on-write across runners. Undefined on macOS.
|
|
24668
|
+
*/
|
|
24669
|
+
sharedBytes: external_exports.number().optional()
|
|
24553
24670
|
});
|
|
24554
24671
|
var AddonInstanceSchema = external_exports.object({
|
|
24555
24672
|
addonId: external_exports.string(),
|
|
@@ -24598,6 +24715,18 @@ var KillProcessResultSchema = external_exports.object({
|
|
|
24598
24715
|
reason: external_exports.string().optional(),
|
|
24599
24716
|
signal: external_exports.enum(["SIGTERM", "SIGKILL"]).optional()
|
|
24600
24717
|
});
|
|
24718
|
+
var DumpHeapSnapshotInputSchema = external_exports.object({
|
|
24719
|
+
/** The addon whose runner should dump a heap snapshot. */
|
|
24720
|
+
addonId: external_exports.string()
|
|
24721
|
+
});
|
|
24722
|
+
var DumpHeapSnapshotResultSchema = external_exports.object({
|
|
24723
|
+
success: external_exports.boolean(),
|
|
24724
|
+
/** Path of the written .heapsnapshot inside the runner's container/host. */
|
|
24725
|
+
path: external_exports.string().optional(),
|
|
24726
|
+
/** Process pid that was signalled. */
|
|
24727
|
+
pid: external_exports.number().optional(),
|
|
24728
|
+
reason: external_exports.string().optional()
|
|
24729
|
+
});
|
|
24601
24730
|
var SystemMetricsSchema = external_exports.object({
|
|
24602
24731
|
cpuPercent: external_exports.number(),
|
|
24603
24732
|
memoryPercent: external_exports.number(),
|
|
@@ -24658,6 +24787,17 @@ var metricsProviderCapability = {
|
|
|
24658
24787
|
killProcess: method(KillProcessInputSchema, KillProcessResultSchema, {
|
|
24659
24788
|
kind: "mutation",
|
|
24660
24789
|
auth: "admin"
|
|
24790
|
+
}),
|
|
24791
|
+
/**
|
|
24792
|
+
* Tell the addon's forked runner to write a V8 heap snapshot to disk (via
|
|
24793
|
+
* SIGUSR2 — the runner's diagnostic handler). Also logs its
|
|
24794
|
+
* `process.memoryUsage()` + heap-space breakdown. Refuses pids not in the
|
|
24795
|
+
* live `listNodeProcesses()` snapshot. Use for deep per-addon memory
|
|
24796
|
+
* attribution; copy the returned path off the node to analyze.
|
|
24797
|
+
*/
|
|
24798
|
+
dumpHeapSnapshot: method(DumpHeapSnapshotInputSchema, DumpHeapSnapshotResultSchema, {
|
|
24799
|
+
kind: "mutation",
|
|
24800
|
+
auth: "admin"
|
|
24661
24801
|
})
|
|
24662
24802
|
}
|
|
24663
24803
|
};
|
|
@@ -25136,105 +25276,6 @@ var recordingCapability = {
|
|
|
25136
25276
|
})
|
|
25137
25277
|
}
|
|
25138
25278
|
};
|
|
25139
|
-
var StreamSourceEntrySchema$1 = external_exports.object({
|
|
25140
|
-
id: external_exports.string(),
|
|
25141
|
-
label: external_exports.string(),
|
|
25142
|
-
protocol: external_exports.enum([
|
|
25143
|
-
"rtsp",
|
|
25144
|
-
"rtmp",
|
|
25145
|
-
"annexb",
|
|
25146
|
-
"http-mjpeg",
|
|
25147
|
-
"webrtc",
|
|
25148
|
-
"custom"
|
|
25149
|
-
]),
|
|
25150
|
-
url: external_exports.string().optional(),
|
|
25151
|
-
resolution: external_exports.object({
|
|
25152
|
-
width: external_exports.number(),
|
|
25153
|
-
height: external_exports.number()
|
|
25154
|
-
}).optional(),
|
|
25155
|
-
fps: external_exports.number().optional(),
|
|
25156
|
-
bitrate: external_exports.number().optional(),
|
|
25157
|
-
codec: external_exports.string().optional(),
|
|
25158
|
-
profileHint: CamProfileSchema.optional(),
|
|
25159
|
-
sdp: external_exports.string().optional()
|
|
25160
|
-
});
|
|
25161
|
-
var ConfigEntrySchema$1 = external_exports.object({
|
|
25162
|
-
key: external_exports.string(),
|
|
25163
|
-
value: external_exports.unknown()
|
|
25164
|
-
});
|
|
25165
|
-
var RawStateResultSchema = external_exports.object({
|
|
25166
|
-
/** Originating provider id, e.g. 'homeassistant' | 'reolink' | 'hikvision'. */
|
|
25167
|
-
source: external_exports.string(),
|
|
25168
|
-
/** Opaque, DISPLAY-SAFE upstream blob (no secrets/PII). */
|
|
25169
|
-
data: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
25170
|
-
});
|
|
25171
|
-
var deviceOpsCapability = {
|
|
25172
|
-
name: "device-ops",
|
|
25173
|
-
scope: "device",
|
|
25174
|
-
deviceNative: true,
|
|
25175
|
-
mode: "singleton",
|
|
25176
|
-
methods: {
|
|
25177
|
-
/**
|
|
25178
|
-
* Return stream sources for camera-like devices. Non-camera devices
|
|
25179
|
-
* return an empty array (the bridge did the same; preserved for compat).
|
|
25180
|
-
*/
|
|
25181
|
-
getStreamSources: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(StreamSourceEntrySchema$1)),
|
|
25182
|
-
/**
|
|
25183
|
-
* Return the device's config entries (key + current value). Used by
|
|
25184
|
-
* the device-manager aggregator when reading the driver's schema+values.
|
|
25185
|
-
*/
|
|
25186
|
-
getConfigEntries: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(ConfigEntrySchema$1)),
|
|
25187
|
-
/**
|
|
25188
|
-
* Bulk-apply a config patch via `IDevice.config.setAll`. Covers the
|
|
25189
|
-
* updateConfig / setStreamProfileMap / enable-as-config paths from
|
|
25190
|
-
* the old bridge.
|
|
25191
|
-
*/
|
|
25192
|
-
setConfig: method(external_exports.object({
|
|
25193
|
-
deviceId: external_exports.number(),
|
|
25194
|
-
values: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
25195
|
-
}), external_exports.void(), { kind: "mutation" }),
|
|
25196
|
-
/**
|
|
25197
|
-
* Invoke a device custom action on a forked/remote device (the
|
|
25198
|
-
* cross-process transport for `IDevice.runDeviceAction`). Mirrors
|
|
25199
|
-
* `setConfig` — the device-manager calls this when the device is not
|
|
25200
|
-
* hub-local.
|
|
25201
|
-
*/
|
|
25202
|
-
runAction: method(external_exports.object({
|
|
25203
|
-
deviceId: external_exports.number(),
|
|
25204
|
-
action: external_exports.string().min(1),
|
|
25205
|
-
input: external_exports.unknown()
|
|
25206
|
-
}), external_exports.unknown(), { kind: "mutation" }),
|
|
25207
|
-
/**
|
|
25208
|
-
* Invoke `IDevice.removeDevice()` so the driver can release resources
|
|
25209
|
-
* (close sockets, stop background tasks, …). The device-manager still
|
|
25210
|
-
* performs its own persistence cleanup before/after this call.
|
|
25211
|
-
*/
|
|
25212
|
-
removeDevice: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), { kind: "mutation" }),
|
|
25213
|
-
/**
|
|
25214
|
-
* Build the ConfigUISchema (FormBuilder input shape) from the device's
|
|
25215
|
-
* Zod config schema. Runs on the worker that owns the IDevice so the
|
|
25216
|
-
* Zod types stay local (they're function references, not
|
|
25217
|
-
* serializable). Returns a fully JSON-serializable schema with
|
|
25218
|
-
* sections/fields the admin UI renders directly.
|
|
25219
|
-
*
|
|
25220
|
-
* Needed because the hub-side `device-manager.getSettingsSchema`
|
|
25221
|
-
* couldn't reach forked-worker devices — it had no registry entry
|
|
25222
|
-
* and no cross-process lookup, so the UI silently rendered an empty
|
|
25223
|
-
* settings panel for every worker-owned device.
|
|
25224
|
-
*
|
|
25225
|
-
* Returns `null` when the device isn't found on this worker.
|
|
25226
|
-
*/
|
|
25227
|
-
getSettingsSchema: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.unknown().nullable()),
|
|
25228
|
-
/**
|
|
25229
|
-
* Opt-in: return the device's RAW upstream state (the provider's
|
|
25230
|
-
* cached values) as a display-safe `{ source, data }` blob. Returns
|
|
25231
|
-
* `null` when the device exposes no raw state — the State panel hides
|
|
25232
|
-
* its Raw toggle in that case. One-shot (read the provider's existing
|
|
25233
|
-
* cache; no upstream round-trip).
|
|
25234
|
-
*/
|
|
25235
|
-
getRawState: method(external_exports.object({ deviceId: external_exports.number() }), RawStateResultSchema.nullable(), { auth: "protected" })
|
|
25236
|
-
}
|
|
25237
|
-
};
|
|
25238
25279
|
var CameraCredentialsSchema = external_exports.object({
|
|
25239
25280
|
/** Camera IP or hostname (no scheme). */
|
|
25240
25281
|
host: external_exports.string(),
|
|
@@ -29265,6 +29306,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29265
29306
|
addonId: null,
|
|
29266
29307
|
access: "view"
|
|
29267
29308
|
},
|
|
29309
|
+
"metricsProvider.dumpHeapSnapshot": {
|
|
29310
|
+
capName: "metrics-provider",
|
|
29311
|
+
capScope: "system",
|
|
29312
|
+
addonId: null,
|
|
29313
|
+
access: "create"
|
|
29314
|
+
},
|
|
29268
29315
|
"metricsProvider.getAddonStats": {
|
|
29269
29316
|
capName: "metrics-provider",
|
|
29270
29317
|
capScope: "system",
|
|
@@ -31532,9 +31579,6 @@ var frameworkSwapConfirmSchema = external_exports.object({
|
|
|
31532
31579
|
bootAttempts: external_exports.number(),
|
|
31533
31580
|
schemaVersion: external_exports.literal(1)
|
|
31534
31581
|
});
|
|
31535
|
-
function sleep(ms) {
|
|
31536
|
-
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
31537
|
-
}
|
|
31538
31582
|
|
|
31539
31583
|
// src/commands/discover.ts
|
|
31540
31584
|
var DEFAULT_MULTICAST_GROUP = "239.0.0.0";
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDiscover
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DIOLB5F6.js";
|
|
5
5
|
import "./chunk-K3NQKI34.js";
|
|
6
6
|
|
|
7
7
|
// src/cli.ts
|
|
@@ -608,7 +608,7 @@ function isUnknown(_value) {
|
|
|
608
608
|
return true;
|
|
609
609
|
}
|
|
610
610
|
async function resolveServerInteractive(presetNamespace) {
|
|
611
|
-
const { discoverNodes, resolveHubFromDiscovered } = await import("./discover-
|
|
611
|
+
const { discoverNodes, resolveHubFromDiscovered } = await import("./discover-LO4NFCP6.js");
|
|
612
612
|
if (presetNamespace) {
|
|
613
613
|
const spinner4 = clack.spinner();
|
|
614
614
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|