camstack 1.0.5 → 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([
|
|
@@ -14908,67 +14866,419 @@ var SubscribeAudioChunksInputSchema = external_exports.object({
|
|
|
14908
14866
|
/** Short caller-identity tag (`audio-analyzer`, …) for `listClients`. */
|
|
14909
14867
|
tag: external_exports.string().optional()
|
|
14910
14868
|
});
|
|
14911
|
-
var SubscribeAudioChunksResultSchema = external_exports.object({
|
|
14912
|
-
/** Opaque id passed to `pullAudioChunks` / `unsubscribeAudioChunks`. */
|
|
14913
|
-
subscriptionId: external_exports.string()
|
|
14869
|
+
var SubscribeAudioChunksResultSchema = external_exports.object({
|
|
14870
|
+
/** Opaque id passed to `pullAudioChunks` / `unsubscribeAudioChunks`. */
|
|
14871
|
+
subscriptionId: external_exports.string()
|
|
14872
|
+
});
|
|
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()
|
|
14914
15257
|
});
|
|
14915
|
-
var
|
|
14916
|
-
|
|
14917
|
-
|
|
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()
|
|
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({
|
|
@@ -15477,131 +15787,6 @@ var APPLE_SA_TO_MACRO = {
|
|
|
15477
15787
|
var _macroLookup = /* @__PURE__ */ new Map();
|
|
15478
15788
|
for (const [k, v] of Object.entries(YAMNET_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
15479
15789
|
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
|
-
})({});
|
|
15605
15790
|
var AccessoryKind = {
|
|
15606
15791
|
Siren: DeviceRole.Siren,
|
|
15607
15792
|
Floodlight: DeviceRole.Floodlight,
|
|
@@ -15752,81 +15937,12 @@ var airQualitySensorCapability = {
|
|
|
15752
15937
|
mode: "singleton",
|
|
15753
15938
|
deviceTypes: [DeviceType.Sensor],
|
|
15754
15939
|
methods: {},
|
|
15755
|
-
status: {
|
|
15756
|
-
schema: AirQualitySensorStatusSchema,
|
|
15757
|
-
kind: "push"
|
|
15758
|
-
},
|
|
15759
|
-
runtimeState: AirQualitySensorStatusSchema
|
|
15760
|
-
};
|
|
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"
|
|
15940
|
+
status: {
|
|
15941
|
+
schema: AirQualitySensorStatusSchema,
|
|
15942
|
+
kind: "push"
|
|
15800
15943
|
},
|
|
15801
|
-
|
|
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
|
-
}
|
|
15944
|
+
runtimeState: AirQualitySensorStatusSchema
|
|
15810
15945
|
};
|
|
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",
|
|
@@ -18242,6 +18358,24 @@ var DetectorOutputSchema = external_exports.object({
|
|
|
18242
18358
|
inferenceMs: external_exports.number(),
|
|
18243
18359
|
modelId: external_exports.string()
|
|
18244
18360
|
});
|
|
18361
|
+
var EngineProvisioningSchema = external_exports.object({
|
|
18362
|
+
runtimeId: external_exports.enum([
|
|
18363
|
+
"onnx",
|
|
18364
|
+
"openvino",
|
|
18365
|
+
"coreml"
|
|
18366
|
+
]).nullable(),
|
|
18367
|
+
device: external_exports.string().nullable(),
|
|
18368
|
+
state: external_exports.enum([
|
|
18369
|
+
"idle",
|
|
18370
|
+
"installing",
|
|
18371
|
+
"verifying",
|
|
18372
|
+
"ready",
|
|
18373
|
+
"failed"
|
|
18374
|
+
]),
|
|
18375
|
+
progress: external_exports.number().optional(),
|
|
18376
|
+
error: external_exports.string().optional(),
|
|
18377
|
+
nextRetryAt: external_exports.number().optional()
|
|
18378
|
+
});
|
|
18245
18379
|
var PipelineStepInputSchema = external_exports.lazy(() => external_exports.object({
|
|
18246
18380
|
addonId: external_exports.string(),
|
|
18247
18381
|
modelId: external_exports.string(),
|
|
@@ -18319,6 +18453,15 @@ var pipelineExecutorCapability = {
|
|
|
18319
18453
|
kind: "mutation",
|
|
18320
18454
|
auth: "admin"
|
|
18321
18455
|
}),
|
|
18456
|
+
/**
|
|
18457
|
+
* Per-node detection-engine provisioning snapshot. Returns the live
|
|
18458
|
+
* state of the lazy runtime-provisioning machine on `nodeId`
|
|
18459
|
+
* (idle / installing / verifying / ready / failed). The UI pairs this
|
|
18460
|
+
* one-shot query with the `pipeline.engine-provisioning` live event
|
|
18461
|
+
* (emitted on every transition) to drive a per-node "engine ready?"
|
|
18462
|
+
* indicator without polling. Phase 2.
|
|
18463
|
+
*/
|
|
18464
|
+
getEngineProvisioning: method(external_exports.object({ nodeId: external_exports.string() }), EngineProvisioningSchema),
|
|
18322
18465
|
getVideoPipelineSteps: method(external_exports.void(), external_exports.record(external_exports.string(), external_exports.object({
|
|
18323
18466
|
modelId: external_exports.string(),
|
|
18324
18467
|
settings: external_exports.record(external_exports.string(), external_exports.unknown()).readonly()
|
|
@@ -21070,18 +21213,6 @@ var logDestinationCapability = {
|
|
|
21070
21213
|
}), external_exports.array(LogEntrySchema).readonly())
|
|
21071
21214
|
}
|
|
21072
21215
|
};
|
|
21073
|
-
var StaticDirOutputSchema = external_exports.object({ staticDir: external_exports.string() });
|
|
21074
|
-
var VersionOutputSchema = external_exports.object({ version: external_exports.string() });
|
|
21075
|
-
var adminUiCapability = {
|
|
21076
|
-
name: "admin-ui",
|
|
21077
|
-
scope: "system",
|
|
21078
|
-
mode: "singleton",
|
|
21079
|
-
internal: true,
|
|
21080
|
-
methods: {
|
|
21081
|
-
getStaticDir: method(external_exports.void(), StaticDirOutputSchema),
|
|
21082
|
-
getVersion: method(external_exports.void(), VersionOutputSchema)
|
|
21083
|
-
}
|
|
21084
|
-
};
|
|
21085
21216
|
var MethodAccessSchema = external_exports.enum([
|
|
21086
21217
|
"view",
|
|
21087
21218
|
"create",
|
|
@@ -22474,7 +22605,10 @@ var AgentAddonConfigSchema = external_exports.object({
|
|
|
22474
22605
|
modelId: external_exports.string(),
|
|
22475
22606
|
settings: external_exports.record(external_exports.string(), external_exports.unknown()).readonly()
|
|
22476
22607
|
});
|
|
22477
|
-
var AgentPipelineSettingsSchema = external_exports.object({
|
|
22608
|
+
var AgentPipelineSettingsSchema = external_exports.object({
|
|
22609
|
+
addonDefaults: external_exports.record(external_exports.string(), AgentAddonConfigSchema).readonly(),
|
|
22610
|
+
maxCameras: external_exports.number().int().nonnegative().nullable().default(null)
|
|
22611
|
+
});
|
|
22478
22612
|
var CameraPipelineForAgentSchema = external_exports.object({
|
|
22479
22613
|
steps: external_exports.array(PipelineStepInputSchema).readonly(),
|
|
22480
22614
|
audio: external_exports.object({
|
|
@@ -22543,6 +22677,117 @@ var GlobalMetricsSchema = external_exports.object({
|
|
|
22543
22677
|
queueDepth: external_exports.number()
|
|
22544
22678
|
});
|
|
22545
22679
|
var CapabilityBindingsSchema = external_exports.record(external_exports.string(), external_exports.string());
|
|
22680
|
+
var CameraSourceStreamSchema = external_exports.object({
|
|
22681
|
+
camStreamId: external_exports.string(),
|
|
22682
|
+
codec: external_exports.string(),
|
|
22683
|
+
width: external_exports.number(),
|
|
22684
|
+
height: external_exports.number(),
|
|
22685
|
+
fps: external_exports.number(),
|
|
22686
|
+
kind: external_exports.string()
|
|
22687
|
+
});
|
|
22688
|
+
var CameraSourceStatusSchema = external_exports.object({ streams: external_exports.array(CameraSourceStreamSchema).readonly() });
|
|
22689
|
+
var CameraAssignmentStatusSchema = external_exports.object({
|
|
22690
|
+
detectionNodeId: external_exports.string().nullable(),
|
|
22691
|
+
decoderNodeId: external_exports.string().nullable(),
|
|
22692
|
+
audioNodeId: external_exports.string().nullable(),
|
|
22693
|
+
pinned: external_exports.object({
|
|
22694
|
+
detection: external_exports.boolean(),
|
|
22695
|
+
decoder: external_exports.boolean(),
|
|
22696
|
+
audio: external_exports.boolean()
|
|
22697
|
+
}),
|
|
22698
|
+
reasons: external_exports.object({
|
|
22699
|
+
detection: external_exports.string().optional(),
|
|
22700
|
+
decoder: external_exports.string().optional(),
|
|
22701
|
+
audio: external_exports.string().optional()
|
|
22702
|
+
})
|
|
22703
|
+
});
|
|
22704
|
+
var CameraBrokerProfileSchema = external_exports.object({
|
|
22705
|
+
profile: external_exports.string(),
|
|
22706
|
+
status: external_exports.string(),
|
|
22707
|
+
codec: external_exports.string(),
|
|
22708
|
+
width: external_exports.number(),
|
|
22709
|
+
height: external_exports.number(),
|
|
22710
|
+
subscribers: external_exports.number(),
|
|
22711
|
+
inFps: external_exports.number(),
|
|
22712
|
+
outFps: external_exports.number()
|
|
22713
|
+
});
|
|
22714
|
+
var CameraBrokerStatusSchema = external_exports.object({
|
|
22715
|
+
profiles: external_exports.array(CameraBrokerProfileSchema).readonly(),
|
|
22716
|
+
webrtcSessions: external_exports.number(),
|
|
22717
|
+
rtspRestream: external_exports.boolean()
|
|
22718
|
+
});
|
|
22719
|
+
var CameraDecoderShmSchema = external_exports.object({
|
|
22720
|
+
framesWritten: external_exports.number(),
|
|
22721
|
+
getFrameHits: external_exports.number(),
|
|
22722
|
+
getFrameMisses: external_exports.number(),
|
|
22723
|
+
budgetMb: external_exports.number()
|
|
22724
|
+
});
|
|
22725
|
+
var CameraDecoderStatusSchema = external_exports.object({
|
|
22726
|
+
nodeId: external_exports.string(),
|
|
22727
|
+
formats: external_exports.array(external_exports.string()).readonly(),
|
|
22728
|
+
sessionCount: external_exports.number(),
|
|
22729
|
+
shm: CameraDecoderShmSchema
|
|
22730
|
+
});
|
|
22731
|
+
var CameraMotionStatusSchema = external_exports.object({
|
|
22732
|
+
enabled: external_exports.boolean(),
|
|
22733
|
+
fps: external_exports.number()
|
|
22734
|
+
});
|
|
22735
|
+
var CameraDetectionProvisioningStateSchema = external_exports.enum([
|
|
22736
|
+
"idle",
|
|
22737
|
+
"installing",
|
|
22738
|
+
"verifying",
|
|
22739
|
+
"ready",
|
|
22740
|
+
"failed"
|
|
22741
|
+
]);
|
|
22742
|
+
var CameraDetectionProvisioningSchema = external_exports.object({
|
|
22743
|
+
state: CameraDetectionProvisioningStateSchema,
|
|
22744
|
+
error: external_exports.string().optional()
|
|
22745
|
+
});
|
|
22746
|
+
var CameraDetectionPhaseSchema = external_exports.enum([
|
|
22747
|
+
"idle",
|
|
22748
|
+
"watching",
|
|
22749
|
+
"active"
|
|
22750
|
+
]);
|
|
22751
|
+
var CameraDetectionStatusSchema = external_exports.object({
|
|
22752
|
+
nodeId: external_exports.string(),
|
|
22753
|
+
engine: external_exports.object({
|
|
22754
|
+
backend: external_exports.string(),
|
|
22755
|
+
device: external_exports.string()
|
|
22756
|
+
}),
|
|
22757
|
+
phase: CameraDetectionPhaseSchema,
|
|
22758
|
+
configuredFps: external_exports.number(),
|
|
22759
|
+
actualFps: external_exports.number(),
|
|
22760
|
+
queueDepth: external_exports.number(),
|
|
22761
|
+
avgInferenceMs: external_exports.number(),
|
|
22762
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
22763
|
+
});
|
|
22764
|
+
var CameraAudioStatusSchema = external_exports.object({
|
|
22765
|
+
nodeId: external_exports.string(),
|
|
22766
|
+
enabled: external_exports.boolean()
|
|
22767
|
+
});
|
|
22768
|
+
var CameraRecordingModeSchema = external_exports.enum([
|
|
22769
|
+
"off",
|
|
22770
|
+
"continuous",
|
|
22771
|
+
"events"
|
|
22772
|
+
]);
|
|
22773
|
+
var CameraRecordingStatusSchema = external_exports.object({
|
|
22774
|
+
mode: CameraRecordingModeSchema,
|
|
22775
|
+
active: external_exports.boolean(),
|
|
22776
|
+
storageBytes: external_exports.number()
|
|
22777
|
+
});
|
|
22778
|
+
var CameraStatusSchema = external_exports.object({
|
|
22779
|
+
deviceId: external_exports.number(),
|
|
22780
|
+
assignment: CameraAssignmentStatusSchema,
|
|
22781
|
+
source: CameraSourceStatusSchema,
|
|
22782
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
22783
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
22784
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
22785
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
22786
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
22787
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
22788
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
22789
|
+
fetchedAt: external_exports.number()
|
|
22790
|
+
});
|
|
22546
22791
|
var pipelineOrchestratorCapability = {
|
|
22547
22792
|
name: "pipeline-orchestrator",
|
|
22548
22793
|
scope: "system",
|
|
@@ -22707,6 +22952,25 @@ var pipelineOrchestratorCapability = {
|
|
|
22707
22952
|
kind: "mutation",
|
|
22708
22953
|
auth: "admin"
|
|
22709
22954
|
}),
|
|
22955
|
+
/**
|
|
22956
|
+
* Set the per-node camera cap for one agent.
|
|
22957
|
+
*
|
|
22958
|
+
* `maxCameras: 0` and `maxCameras: null` are both treated as unlimited
|
|
22959
|
+
* by the load balancer (0 is stored as-is; the balancer treats ≤0 as
|
|
22960
|
+
* unlimited alongside null). Pass `null` to clear an existing cap.
|
|
22961
|
+
* Note: the admin UI normalises 0→null before calling this method, so
|
|
22962
|
+
* `maxCameras: 0` only reaches the store via direct SDK or CLI calls.
|
|
22963
|
+
* Changes take effect immediately on the next dispatch cycle — cameras
|
|
22964
|
+
* currently assigned over-cap are left in place (no forced eviction),
|
|
22965
|
+
* but new assignments obey the updated cap.
|
|
22966
|
+
*/
|
|
22967
|
+
setAgentMaxCameras: method(external_exports.object({
|
|
22968
|
+
agentNodeId: external_exports.string(),
|
|
22969
|
+
maxCameras: external_exports.number().int().nonnegative().nullable()
|
|
22970
|
+
}), external_exports.object({ success: external_exports.literal(true) }), {
|
|
22971
|
+
kind: "mutation",
|
|
22972
|
+
auth: "admin"
|
|
22973
|
+
}),
|
|
22710
22974
|
/** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
|
|
22711
22975
|
getCameraSettings: method(external_exports.object({ deviceId: external_exports.number() }), CameraPipelineSettingsSchema.nullable()),
|
|
22712
22976
|
/** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
|
|
@@ -22747,6 +23011,29 @@ var pipelineOrchestratorCapability = {
|
|
|
22747
23011
|
deviceId: external_exports.number(),
|
|
22748
23012
|
agentNodeId: external_exports.string().optional()
|
|
22749
23013
|
}), CameraPipelineConfigSchema),
|
|
23014
|
+
/**
|
|
23015
|
+
* Server-composed aggregated status for a single camera.
|
|
23016
|
+
*
|
|
23017
|
+
* Fans out in parallel (bounded, per-stage graceful degradation) to
|
|
23018
|
+
* broker / decoder / motion / detection / audio / recording source caps
|
|
23019
|
+
* via `ctx.api`. A stage whose source errors or times out becomes `null`
|
|
23020
|
+
* in the returned payload — one slow agent never breaks the whole call.
|
|
23021
|
+
*
|
|
23022
|
+
* Intended for "on open / on camera select" snapshots. Live deltas
|
|
23023
|
+
* keep arriving from the existing ~1Hz events the UI already subscribes to.
|
|
23024
|
+
*/
|
|
23025
|
+
getCameraStatus: method(external_exports.object({ deviceId: external_exports.number() }), CameraStatusSchema),
|
|
23026
|
+
/**
|
|
23027
|
+
* Server-composed aggregated status for multiple cameras in one call.
|
|
23028
|
+
*
|
|
23029
|
+
* `deviceIds` defaults to all cameras currently tracked by the
|
|
23030
|
+
* orchestrator's assignment map when omitted.
|
|
23031
|
+
*
|
|
23032
|
+
* Runs per-device composition in parallel (bounded). Use this to
|
|
23033
|
+
* populate the cluster assignments table and the pipeline flow overview
|
|
23034
|
+
* rail without issuing N parallel browser round-trips.
|
|
23035
|
+
*/
|
|
23036
|
+
getCameraStatuses: method(external_exports.object({ deviceIds: external_exports.array(external_exports.number()).optional() }), external_exports.array(CameraStatusSchema).readonly()),
|
|
22750
23037
|
/** List every template the operator has saved. */
|
|
22751
23038
|
listTemplates: method(external_exports.void(), external_exports.array(PipelineTemplateSchema).readonly()),
|
|
22752
23039
|
/** Create a new named preset from a given CameraPipelineConfig. */
|
|
@@ -23074,7 +23361,7 @@ var DeviceInfoSchema = external_exports.object({
|
|
|
23074
23361
|
/** Operator-authored cross-device field wirings. See `DeviceMeta.deviceLinks`. */
|
|
23075
23362
|
deviceLinks: external_exports.array(DeviceLinkSchema).readonly().optional()
|
|
23076
23363
|
});
|
|
23077
|
-
var
|
|
23364
|
+
var ConfigEntrySchema2 = external_exports.object({
|
|
23078
23365
|
key: external_exports.string(),
|
|
23079
23366
|
value: external_exports.unknown(),
|
|
23080
23367
|
description: external_exports.string().optional()
|
|
@@ -23387,9 +23674,9 @@ var deviceManagerCapability = {
|
|
|
23387
23674
|
/** List children of a parent device (by parent numeric id). */
|
|
23388
23675
|
getChildren: method(external_exports.object({ parentDeviceId: external_exports.number() }), external_exports.array(DeviceInfoSchema)),
|
|
23389
23676
|
/** Get stream sources for a camera device. */
|
|
23390
|
-
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)),
|
|
23391
23678
|
/** Get config entries (key + value + description) for a device. */
|
|
23392
|
-
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)),
|
|
23393
23680
|
/** Get the ConfigUISchema for a device's settings (for admin UI rendering). */
|
|
23394
23681
|
getSettingsSchema: method(external_exports.object({ deviceId: external_exports.number() }), ConfigUISchemaOutput),
|
|
23395
23682
|
/** Update device config values (partial merge). */
|
|
@@ -24366,7 +24653,20 @@ var DiskSpaceInfoSchema = external_exports.object({
|
|
|
24366
24653
|
var PidResourceStatsSchema = external_exports.object({
|
|
24367
24654
|
pid: external_exports.number(),
|
|
24368
24655
|
cpu: external_exports.number(),
|
|
24369
|
-
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()
|
|
24370
24670
|
});
|
|
24371
24671
|
var AddonInstanceSchema = external_exports.object({
|
|
24372
24672
|
addonId: external_exports.string(),
|
|
@@ -24415,6 +24715,18 @@ var KillProcessResultSchema = external_exports.object({
|
|
|
24415
24715
|
reason: external_exports.string().optional(),
|
|
24416
24716
|
signal: external_exports.enum(["SIGTERM", "SIGKILL"]).optional()
|
|
24417
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
|
+
});
|
|
24418
24730
|
var SystemMetricsSchema = external_exports.object({
|
|
24419
24731
|
cpuPercent: external_exports.number(),
|
|
24420
24732
|
memoryPercent: external_exports.number(),
|
|
@@ -24475,6 +24787,17 @@ var metricsProviderCapability = {
|
|
|
24475
24787
|
killProcess: method(KillProcessInputSchema, KillProcessResultSchema, {
|
|
24476
24788
|
kind: "mutation",
|
|
24477
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"
|
|
24478
24801
|
})
|
|
24479
24802
|
}
|
|
24480
24803
|
};
|
|
@@ -24953,105 +25276,6 @@ var recordingCapability = {
|
|
|
24953
25276
|
})
|
|
24954
25277
|
}
|
|
24955
25278
|
};
|
|
24956
|
-
var StreamSourceEntrySchema$1 = external_exports.object({
|
|
24957
|
-
id: external_exports.string(),
|
|
24958
|
-
label: external_exports.string(),
|
|
24959
|
-
protocol: external_exports.enum([
|
|
24960
|
-
"rtsp",
|
|
24961
|
-
"rtmp",
|
|
24962
|
-
"annexb",
|
|
24963
|
-
"http-mjpeg",
|
|
24964
|
-
"webrtc",
|
|
24965
|
-
"custom"
|
|
24966
|
-
]),
|
|
24967
|
-
url: external_exports.string().optional(),
|
|
24968
|
-
resolution: external_exports.object({
|
|
24969
|
-
width: external_exports.number(),
|
|
24970
|
-
height: external_exports.number()
|
|
24971
|
-
}).optional(),
|
|
24972
|
-
fps: external_exports.number().optional(),
|
|
24973
|
-
bitrate: external_exports.number().optional(),
|
|
24974
|
-
codec: external_exports.string().optional(),
|
|
24975
|
-
profileHint: CamProfileSchema.optional(),
|
|
24976
|
-
sdp: external_exports.string().optional()
|
|
24977
|
-
});
|
|
24978
|
-
var ConfigEntrySchema$1 = external_exports.object({
|
|
24979
|
-
key: external_exports.string(),
|
|
24980
|
-
value: external_exports.unknown()
|
|
24981
|
-
});
|
|
24982
|
-
var RawStateResultSchema = external_exports.object({
|
|
24983
|
-
/** Originating provider id, e.g. 'homeassistant' | 'reolink' | 'hikvision'. */
|
|
24984
|
-
source: external_exports.string(),
|
|
24985
|
-
/** Opaque, DISPLAY-SAFE upstream blob (no secrets/PII). */
|
|
24986
|
-
data: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
24987
|
-
});
|
|
24988
|
-
var deviceOpsCapability = {
|
|
24989
|
-
name: "device-ops",
|
|
24990
|
-
scope: "device",
|
|
24991
|
-
deviceNative: true,
|
|
24992
|
-
mode: "singleton",
|
|
24993
|
-
methods: {
|
|
24994
|
-
/**
|
|
24995
|
-
* Return stream sources for camera-like devices. Non-camera devices
|
|
24996
|
-
* return an empty array (the bridge did the same; preserved for compat).
|
|
24997
|
-
*/
|
|
24998
|
-
getStreamSources: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(StreamSourceEntrySchema$1)),
|
|
24999
|
-
/**
|
|
25000
|
-
* Return the device's config entries (key + current value). Used by
|
|
25001
|
-
* the device-manager aggregator when reading the driver's schema+values.
|
|
25002
|
-
*/
|
|
25003
|
-
getConfigEntries: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(ConfigEntrySchema$1)),
|
|
25004
|
-
/**
|
|
25005
|
-
* Bulk-apply a config patch via `IDevice.config.setAll`. Covers the
|
|
25006
|
-
* updateConfig / setStreamProfileMap / enable-as-config paths from
|
|
25007
|
-
* the old bridge.
|
|
25008
|
-
*/
|
|
25009
|
-
setConfig: method(external_exports.object({
|
|
25010
|
-
deviceId: external_exports.number(),
|
|
25011
|
-
values: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
25012
|
-
}), external_exports.void(), { kind: "mutation" }),
|
|
25013
|
-
/**
|
|
25014
|
-
* Invoke a device custom action on a forked/remote device (the
|
|
25015
|
-
* cross-process transport for `IDevice.runDeviceAction`). Mirrors
|
|
25016
|
-
* `setConfig` — the device-manager calls this when the device is not
|
|
25017
|
-
* hub-local.
|
|
25018
|
-
*/
|
|
25019
|
-
runAction: method(external_exports.object({
|
|
25020
|
-
deviceId: external_exports.number(),
|
|
25021
|
-
action: external_exports.string().min(1),
|
|
25022
|
-
input: external_exports.unknown()
|
|
25023
|
-
}), external_exports.unknown(), { kind: "mutation" }),
|
|
25024
|
-
/**
|
|
25025
|
-
* Invoke `IDevice.removeDevice()` so the driver can release resources
|
|
25026
|
-
* (close sockets, stop background tasks, …). The device-manager still
|
|
25027
|
-
* performs its own persistence cleanup before/after this call.
|
|
25028
|
-
*/
|
|
25029
|
-
removeDevice: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), { kind: "mutation" }),
|
|
25030
|
-
/**
|
|
25031
|
-
* Build the ConfigUISchema (FormBuilder input shape) from the device's
|
|
25032
|
-
* Zod config schema. Runs on the worker that owns the IDevice so the
|
|
25033
|
-
* Zod types stay local (they're function references, not
|
|
25034
|
-
* serializable). Returns a fully JSON-serializable schema with
|
|
25035
|
-
* sections/fields the admin UI renders directly.
|
|
25036
|
-
*
|
|
25037
|
-
* Needed because the hub-side `device-manager.getSettingsSchema`
|
|
25038
|
-
* couldn't reach forked-worker devices — it had no registry entry
|
|
25039
|
-
* and no cross-process lookup, so the UI silently rendered an empty
|
|
25040
|
-
* settings panel for every worker-owned device.
|
|
25041
|
-
*
|
|
25042
|
-
* Returns `null` when the device isn't found on this worker.
|
|
25043
|
-
*/
|
|
25044
|
-
getSettingsSchema: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.unknown().nullable()),
|
|
25045
|
-
/**
|
|
25046
|
-
* Opt-in: return the device's RAW upstream state (the provider's
|
|
25047
|
-
* cached values) as a display-safe `{ source, data }` blob. Returns
|
|
25048
|
-
* `null` when the device exposes no raw state — the State panel hides
|
|
25049
|
-
* its Raw toggle in that case. One-shot (read the provider's existing
|
|
25050
|
-
* cache; no upstream round-trip).
|
|
25051
|
-
*/
|
|
25052
|
-
getRawState: method(external_exports.object({ deviceId: external_exports.number() }), RawStateResultSchema.nullable(), { auth: "protected" })
|
|
25053
|
-
}
|
|
25054
|
-
};
|
|
25055
25279
|
var CameraCredentialsSchema = external_exports.object({
|
|
25056
25280
|
/** Camera IP or hostname (no scheme). */
|
|
25057
25281
|
host: external_exports.string(),
|
|
@@ -29082,6 +29306,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29082
29306
|
addonId: null,
|
|
29083
29307
|
access: "view"
|
|
29084
29308
|
},
|
|
29309
|
+
"metricsProvider.dumpHeapSnapshot": {
|
|
29310
|
+
capName: "metrics-provider",
|
|
29311
|
+
capScope: "system",
|
|
29312
|
+
addonId: null,
|
|
29313
|
+
access: "create"
|
|
29314
|
+
},
|
|
29085
29315
|
"metricsProvider.getAddonStats": {
|
|
29086
29316
|
capName: "metrics-provider",
|
|
29087
29317
|
capScope: "system",
|
|
@@ -29538,6 +29768,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29538
29768
|
addonId: null,
|
|
29539
29769
|
access: "view"
|
|
29540
29770
|
},
|
|
29771
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
29772
|
+
capName: "pipeline-executor",
|
|
29773
|
+
capScope: "system",
|
|
29774
|
+
addonId: null,
|
|
29775
|
+
access: "view"
|
|
29776
|
+
},
|
|
29541
29777
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
29542
29778
|
capName: "pipeline-executor",
|
|
29543
29779
|
capScope: "system",
|
|
@@ -29742,6 +29978,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29742
29978
|
addonId: null,
|
|
29743
29979
|
access: "view"
|
|
29744
29980
|
},
|
|
29981
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
29982
|
+
capName: "pipeline-orchestrator",
|
|
29983
|
+
capScope: "system",
|
|
29984
|
+
addonId: null,
|
|
29985
|
+
access: "view"
|
|
29986
|
+
},
|
|
29987
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
29988
|
+
capName: "pipeline-orchestrator",
|
|
29989
|
+
capScope: "system",
|
|
29990
|
+
addonId: null,
|
|
29991
|
+
access: "view"
|
|
29992
|
+
},
|
|
29745
29993
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
29746
29994
|
capName: "pipeline-orchestrator",
|
|
29747
29995
|
capScope: "system",
|
|
@@ -29826,6 +30074,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29826
30074
|
addonId: null,
|
|
29827
30075
|
access: "create"
|
|
29828
30076
|
},
|
|
30077
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
30078
|
+
capName: "pipeline-orchestrator",
|
|
30079
|
+
capScope: "system",
|
|
30080
|
+
addonId: null,
|
|
30081
|
+
access: "create"
|
|
30082
|
+
},
|
|
29829
30083
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
29830
30084
|
capName: "pipeline-orchestrator",
|
|
29831
30085
|
capScope: "system",
|
|
@@ -31325,9 +31579,6 @@ var frameworkSwapConfirmSchema = external_exports.object({
|
|
|
31325
31579
|
bootAttempts: external_exports.number(),
|
|
31326
31580
|
schemaVersion: external_exports.literal(1)
|
|
31327
31581
|
});
|
|
31328
|
-
function sleep(ms) {
|
|
31329
|
-
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
31330
|
-
}
|
|
31331
31582
|
|
|
31332
31583
|
// src/commands/discover.ts
|
|
31333
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}")`);
|