@camstack/addon-post-analysis 1.2.641 → 1.2.643
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{clip-model-registry-Cw7Iy7Qi.mjs → clip-model-registry-DdgT3gdf.mjs} +301 -25
- package/dist/{clip-model-registry-Qr0XipkX.js → clip-model-registry-lKeBMKlT.js} +301 -25
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Cct0TMzC.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B6X8TAQP.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BIjXlrFH.mjs +26 -0
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CuNXxDlT.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js--XkysBjS.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-B9c2FowI.mjs → hostInit-CDPfOUWf.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +411 -15
- package/dist/pipeline-analytics/index.mjs +411 -15
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-_TUthUZh.mjs +0 -26
|
@@ -5671,7 +5671,7 @@ var ZodIssueCode = {
|
|
|
5671
5671
|
var ZodFirstPartyTypeKind;
|
|
5672
5672
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5673
5673
|
//#endregion
|
|
5674
|
-
//#region ../types/dist/sleep
|
|
5674
|
+
//#region ../types/dist/sleep--jXS9hWo.mjs
|
|
5675
5675
|
/**
|
|
5676
5676
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5677
5677
|
* window to float samples (D455).
|
|
@@ -9092,6 +9092,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9092
9092
|
"filesystem-browse",
|
|
9093
9093
|
"flood",
|
|
9094
9094
|
"gas",
|
|
9095
|
+
"group-active",
|
|
9095
9096
|
"group-commands",
|
|
9096
9097
|
"group-status",
|
|
9097
9098
|
"heating-valve",
|
|
@@ -9913,6 +9914,10 @@ Object.freeze({
|
|
|
9913
9914
|
"path": "detected",
|
|
9914
9915
|
"valueType": "boolean"
|
|
9915
9916
|
}],
|
|
9917
|
+
"group-active": [{
|
|
9918
|
+
"path": "active",
|
|
9919
|
+
"valueType": "boolean"
|
|
9920
|
+
}],
|
|
9916
9921
|
"group-status": [
|
|
9917
9922
|
{
|
|
9918
9923
|
"path": "included",
|
|
@@ -10921,7 +10926,7 @@ Object.freeze({
|
|
|
10921
10926
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
10922
10927
|
* (~144MB RSS per runner, D28).
|
|
10923
10928
|
*
|
|
10924
|
-
* Coverage:
|
|
10929
|
+
* Coverage: 95 device-scoped capabilities.
|
|
10925
10930
|
*/
|
|
10926
10931
|
var DEVICE_SCOPED_CAPS = new Set([
|
|
10927
10932
|
"accessories",
|
|
@@ -10962,6 +10967,7 @@ var DEVICE_SCOPED_CAPS = new Set([
|
|
|
10962
10967
|
"feature-probe",
|
|
10963
10968
|
"flood",
|
|
10964
10969
|
"gas",
|
|
10970
|
+
"group-active",
|
|
10965
10971
|
"group-commands",
|
|
10966
10972
|
"group-status",
|
|
10967
10973
|
"heating-valve",
|
|
@@ -11422,7 +11428,7 @@ function errMsg(err) {
|
|
|
11422
11428
|
return String(err);
|
|
11423
11429
|
}
|
|
11424
11430
|
//#endregion
|
|
11425
|
-
//#region ../types/dist/composition-
|
|
11431
|
+
//#region ../types/dist/composition-Bb8iwHEJ.mjs
|
|
11426
11432
|
/**
|
|
11427
11433
|
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
11428
11434
|
* canonical form sorts object keys alphabetically at every depth so two
|
|
@@ -11897,6 +11903,13 @@ var table = {
|
|
|
11897
11903
|
apply: () => {
|
|
11898
11904
|
throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
|
|
11899
11905
|
}
|
|
11906
|
+
},
|
|
11907
|
+
schmitt: {
|
|
11908
|
+
minArgs: 3,
|
|
11909
|
+
maxArgs: 5,
|
|
11910
|
+
apply: () => {
|
|
11911
|
+
throw new ExpressionEvalError("schmitt: stateful evaluation context is required");
|
|
11912
|
+
}
|
|
11900
11913
|
}
|
|
11901
11914
|
};
|
|
11902
11915
|
Object.freeze(Object.assign(Object.create(null), table));
|
|
@@ -12407,7 +12420,7 @@ var RESET_PERIODS = [
|
|
|
12407
12420
|
5 * MINUTE_MS;
|
|
12408
12421
|
24 * HOUR_MS, 2 * DAY_MS, 7 * DAY_MS, 30 * DAY_MS;
|
|
12409
12422
|
7 * DAY_MS, 30 * DAY_MS, 365 * DAY_MS;
|
|
12410
|
-
var
|
|
12423
|
+
var rollingWindowObject = object({
|
|
12411
12424
|
kind: literal("rolling"),
|
|
12412
12425
|
span: _enum(ROLLING_SPANS),
|
|
12413
12426
|
customMinutes: number().int().min(5).optional()
|
|
@@ -12424,7 +12437,9 @@ var StatisticWindowSchema = discriminatedUnion("kind", [object({
|
|
|
12424
12437
|
path: ["customMinutes"],
|
|
12425
12438
|
input: payload.value
|
|
12426
12439
|
});
|
|
12427
|
-
})
|
|
12440
|
+
});
|
|
12441
|
+
var RollingWindowSchema = rollingWindowObject;
|
|
12442
|
+
var StatisticWindowSchema = discriminatedUnion("kind", [rollingWindowObject, object({
|
|
12428
12443
|
kind: literal("calendar"),
|
|
12429
12444
|
period: _enum(CALENDAR_PERIODS)
|
|
12430
12445
|
})]);
|
|
@@ -12454,7 +12469,13 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
12454
12469
|
"occupancy",
|
|
12455
12470
|
"binary",
|
|
12456
12471
|
"switch",
|
|
12457
|
-
"light"
|
|
12472
|
+
"light",
|
|
12473
|
+
"fan",
|
|
12474
|
+
"cover",
|
|
12475
|
+
"valve",
|
|
12476
|
+
"lock",
|
|
12477
|
+
"media-player",
|
|
12478
|
+
"climate"
|
|
12458
12479
|
];
|
|
12459
12480
|
var NUMERIC_AGGREGATES = [
|
|
12460
12481
|
"mean",
|
|
@@ -12513,6 +12534,42 @@ var HelperSpecSchema = discriminatedUnion("kind", [
|
|
|
12513
12534
|
reset: _enum(RESET_PERIODS),
|
|
12514
12535
|
output: _enum(["energy", "meter"]),
|
|
12515
12536
|
source: HelperMemberSchema
|
|
12537
|
+
}),
|
|
12538
|
+
object({
|
|
12539
|
+
kind: literal("threshold"),
|
|
12540
|
+
source: HelperMemberSchema,
|
|
12541
|
+
high: number(),
|
|
12542
|
+
low: number(),
|
|
12543
|
+
onForMs: number().int().nonnegative(),
|
|
12544
|
+
offForMs: number().int().nonnegative()
|
|
12545
|
+
}),
|
|
12546
|
+
object({
|
|
12547
|
+
kind: literal("arithmetic"),
|
|
12548
|
+
op: _enum([
|
|
12549
|
+
"sum",
|
|
12550
|
+
"difference",
|
|
12551
|
+
"ratio"
|
|
12552
|
+
]),
|
|
12553
|
+
inputs: array(HelperMemberSchema).min(2).max(64)
|
|
12554
|
+
}),
|
|
12555
|
+
object({
|
|
12556
|
+
kind: literal("expression"),
|
|
12557
|
+
expr: string().min(1),
|
|
12558
|
+
inputs: array(object({
|
|
12559
|
+
name: string().min(1),
|
|
12560
|
+
member: HelperMemberSchema
|
|
12561
|
+
})).min(1).max(64),
|
|
12562
|
+
output: _enum(["number", "boolean"])
|
|
12563
|
+
}),
|
|
12564
|
+
object({
|
|
12565
|
+
kind: literal("derivative"),
|
|
12566
|
+
window: RollingWindowSchema,
|
|
12567
|
+
per: _enum([
|
|
12568
|
+
"second",
|
|
12569
|
+
"minute",
|
|
12570
|
+
"hour"
|
|
12571
|
+
]),
|
|
12572
|
+
source: HelperMemberSchema
|
|
12516
12573
|
})
|
|
12517
12574
|
]);
|
|
12518
12575
|
/** A composed device's stableId is this prefix plus the block id. */
|
|
@@ -12575,6 +12632,12 @@ var CompositionFieldSourceSchema = discriminatedUnion("kind", [
|
|
|
12575
12632
|
"all"
|
|
12576
12633
|
]),
|
|
12577
12634
|
reads: array(CompositionFieldReadSchema).min(1).max(64),
|
|
12635
|
+
/**
|
|
12636
|
+
* Set when the reads are an enum state, not a yes/no: the listed states
|
|
12637
|
+
* count as active (a cover is `open`). A state outside the list is inactive;
|
|
12638
|
+
* a read that is not a state at all is left out. Only `any` / `all` use it.
|
|
12639
|
+
*/
|
|
12640
|
+
activeWhen: array(string().min(1)).min(1).optional(),
|
|
12578
12641
|
/** `value` is the reading; the others are the member counts. */
|
|
12579
12642
|
publish: _enum([
|
|
12580
12643
|
"value",
|
|
@@ -19890,13 +19953,17 @@ Object.freeze({
|
|
|
19890
19953
|
latchedAt: {
|
|
19891
19954
|
kind: "fixed",
|
|
19892
19955
|
result: ["number", "null"]
|
|
19956
|
+
},
|
|
19957
|
+
schmitt: {
|
|
19958
|
+
kind: "fixed",
|
|
19959
|
+
result: ["boolean", "null"]
|
|
19893
19960
|
}
|
|
19894
19961
|
});
|
|
19895
19962
|
/**
|
|
19896
19963
|
* One catalog row per base reading a group helper can build (D944 §3).
|
|
19897
19964
|
* Data, not a form default written into the block.
|
|
19898
19965
|
*/
|
|
19899
|
-
var NOW$
|
|
19966
|
+
var NOW$2 = {
|
|
19900
19967
|
fieldPath: "lastFetchedAt",
|
|
19901
19968
|
expr: "now"
|
|
19902
19969
|
};
|
|
@@ -19910,6 +19977,8 @@ function numeric(input) {
|
|
|
19910
19977
|
family: "numeric",
|
|
19911
19978
|
deviceType: DeviceType.Sensor,
|
|
19912
19979
|
memberDeviceType: DeviceType.Sensor,
|
|
19980
|
+
memberDeviceTypes: [DeviceType.Sensor],
|
|
19981
|
+
activeWhen: void 0,
|
|
19913
19982
|
commandCaps: [],
|
|
19914
19983
|
baseUnit: baseUnitOf(input.quantity),
|
|
19915
19984
|
aggregates: NUMERIC_AGGREGATES,
|
|
@@ -19925,6 +19994,8 @@ function binary(input) {
|
|
|
19925
19994
|
family: "binary",
|
|
19926
19995
|
deviceType: DeviceType.Sensor,
|
|
19927
19996
|
memberDeviceType: DeviceType.Sensor,
|
|
19997
|
+
memberDeviceTypes: [DeviceType.Sensor],
|
|
19998
|
+
activeWhen: void 0,
|
|
19928
19999
|
commandCaps: [],
|
|
19929
20000
|
quantity: "none",
|
|
19930
20001
|
baseUnit: void 0,
|
|
@@ -19942,7 +20013,7 @@ var GROUP_TEMPLATES = [
|
|
|
19942
20013
|
quantity: "temperature",
|
|
19943
20014
|
defaultAggregate: "mean",
|
|
19944
20015
|
empty: "null",
|
|
19945
|
-
companions: [NOW$
|
|
20016
|
+
companions: [NOW$2]
|
|
19946
20017
|
}),
|
|
19947
20018
|
numeric({
|
|
19948
20019
|
id: "humidity",
|
|
@@ -19953,7 +20024,7 @@ var GROUP_TEMPLATES = [
|
|
|
19953
20024
|
quantity: "humidity",
|
|
19954
20025
|
defaultAggregate: "mean",
|
|
19955
20026
|
empty: "null",
|
|
19956
|
-
companions: [NOW$
|
|
20027
|
+
companions: [NOW$2]
|
|
19957
20028
|
}),
|
|
19958
20029
|
numeric({
|
|
19959
20030
|
id: "pressure",
|
|
@@ -19964,7 +20035,7 @@ var GROUP_TEMPLATES = [
|
|
|
19964
20035
|
quantity: "pressure",
|
|
19965
20036
|
defaultAggregate: "mean",
|
|
19966
20037
|
empty: "null",
|
|
19967
|
-
companions: [NOW$
|
|
20038
|
+
companions: [NOW$2]
|
|
19968
20039
|
}),
|
|
19969
20040
|
numeric({
|
|
19970
20041
|
id: "illuminance",
|
|
@@ -19975,7 +20046,7 @@ var GROUP_TEMPLATES = [
|
|
|
19975
20046
|
quantity: "illuminance",
|
|
19976
20047
|
defaultAggregate: "mean",
|
|
19977
20048
|
empty: "null",
|
|
19978
|
-
companions: [NOW$
|
|
20049
|
+
companions: [NOW$2]
|
|
19979
20050
|
}),
|
|
19980
20051
|
numeric({
|
|
19981
20052
|
id: "power",
|
|
@@ -19986,7 +20057,7 @@ var GROUP_TEMPLATES = [
|
|
|
19986
20057
|
quantity: "power",
|
|
19987
20058
|
defaultAggregate: "sum",
|
|
19988
20059
|
empty: "omit",
|
|
19989
|
-
companions: [NOW$
|
|
20060
|
+
companions: [NOW$2]
|
|
19990
20061
|
}),
|
|
19991
20062
|
numeric({
|
|
19992
20063
|
id: "energy",
|
|
@@ -19997,7 +20068,7 @@ var GROUP_TEMPLATES = [
|
|
|
19997
20068
|
quantity: "energy",
|
|
19998
20069
|
defaultAggregate: "sum",
|
|
19999
20070
|
empty: "omit",
|
|
20000
|
-
companions: [NOW$
|
|
20071
|
+
companions: [NOW$2]
|
|
20001
20072
|
}),
|
|
20002
20073
|
numeric({
|
|
20003
20074
|
id: "battery",
|
|
@@ -20032,7 +20103,7 @@ var GROUP_TEMPLATES = [
|
|
|
20032
20103
|
quantity: "device",
|
|
20033
20104
|
defaultAggregate: "mean",
|
|
20034
20105
|
empty: "null",
|
|
20035
|
-
companions: [NOW$
|
|
20106
|
+
companions: [NOW$2]
|
|
20036
20107
|
}),
|
|
20037
20108
|
binary({
|
|
20038
20109
|
id: "motion",
|
|
@@ -20126,6 +20197,11 @@ var GROUP_TEMPLATES = [
|
|
|
20126
20197
|
summary: "On when at least one switch is on, or when all of them are. Offline and unknown members are left out of that decision, never read as off, and still receive the command.",
|
|
20127
20198
|
deviceType: DeviceType.Switch,
|
|
20128
20199
|
outputCap: "switch",
|
|
20200
|
+
outputField: "on",
|
|
20201
|
+
member: {
|
|
20202
|
+
cap: "switch",
|
|
20203
|
+
fieldPath: "on"
|
|
20204
|
+
},
|
|
20129
20205
|
commandCaps: ["switch"]
|
|
20130
20206
|
}),
|
|
20131
20207
|
actuator({
|
|
@@ -20133,29 +20209,130 @@ var GROUP_TEMPLATES = [
|
|
|
20133
20209
|
summary: "On when at least one light is on, or when all of them are. Brightness and colour are offered only when every member has them. A command is not sent to a member that lacks it.",
|
|
20134
20210
|
deviceType: DeviceType.Light,
|
|
20135
20211
|
outputCap: "switch",
|
|
20212
|
+
outputField: "on",
|
|
20213
|
+
member: {
|
|
20214
|
+
cap: "switch",
|
|
20215
|
+
fieldPath: "on"
|
|
20216
|
+
},
|
|
20136
20217
|
commandCaps: [
|
|
20137
20218
|
"switch",
|
|
20138
20219
|
"brightness",
|
|
20139
20220
|
"color"
|
|
20140
20221
|
]
|
|
20222
|
+
}),
|
|
20223
|
+
actuator({
|
|
20224
|
+
id: "fan",
|
|
20225
|
+
summary: "On when at least one fan is on, or when all of them are. Speed, preset, direction and oscillation are offered only when every fan has them. A command is not sent to a fan that lacks it.",
|
|
20226
|
+
deviceType: DeviceType.Fan,
|
|
20227
|
+
outputCap: "switch",
|
|
20228
|
+
outputField: "on",
|
|
20229
|
+
member: {
|
|
20230
|
+
cap: "switch",
|
|
20231
|
+
fieldPath: "on"
|
|
20232
|
+
},
|
|
20233
|
+
commandCaps: ["switch", "fan-control"]
|
|
20234
|
+
}),
|
|
20235
|
+
actuator({
|
|
20236
|
+
id: "cover",
|
|
20237
|
+
summary: "Open when at least one cover is open or part-open, or only when all of them are. Position and tilt are offered only when every cover has them. A cover that reports nothing is left out, never read as closed.",
|
|
20238
|
+
deviceType: DeviceType.Cover,
|
|
20239
|
+
outputCap: "group-active",
|
|
20240
|
+
outputField: "active",
|
|
20241
|
+
member: {
|
|
20242
|
+
cap: "cover",
|
|
20243
|
+
fieldPath: "state"
|
|
20244
|
+
},
|
|
20245
|
+
activeWhen: [
|
|
20246
|
+
"open",
|
|
20247
|
+
"opening",
|
|
20248
|
+
"stopped"
|
|
20249
|
+
],
|
|
20250
|
+
commandCaps: ["cover"]
|
|
20251
|
+
}),
|
|
20252
|
+
actuator({
|
|
20253
|
+
id: "valve",
|
|
20254
|
+
summary: "Open when at least one valve is open or part-open, or only when all of them are. Position is offered only when every valve has it. A valve that reports nothing is left out, never read as closed.",
|
|
20255
|
+
deviceType: DeviceType.Valve,
|
|
20256
|
+
outputCap: "group-active",
|
|
20257
|
+
outputField: "active",
|
|
20258
|
+
member: {
|
|
20259
|
+
cap: "valve",
|
|
20260
|
+
fieldPath: "state"
|
|
20261
|
+
},
|
|
20262
|
+
activeWhen: [
|
|
20263
|
+
"open",
|
|
20264
|
+
"opening",
|
|
20265
|
+
"stopped"
|
|
20266
|
+
],
|
|
20267
|
+
commandCaps: ["valve"]
|
|
20268
|
+
}),
|
|
20269
|
+
actuator({
|
|
20270
|
+
id: "lock",
|
|
20271
|
+
summary: "Locked when at least one lock is locked, or only when all of them are. A jammed or moving lock is not locked. Locking is one tap; unlocking the group needs a confirmation every time, and nothing is sent without it.",
|
|
20272
|
+
deviceType: DeviceType.Lock,
|
|
20273
|
+
outputCap: "group-active",
|
|
20274
|
+
outputField: "active",
|
|
20275
|
+
member: {
|
|
20276
|
+
cap: "lock-control",
|
|
20277
|
+
fieldPath: "state"
|
|
20278
|
+
},
|
|
20279
|
+
activeWhen: ["locked"],
|
|
20280
|
+
commandCaps: ["lock-control"]
|
|
20281
|
+
}),
|
|
20282
|
+
actuator({
|
|
20283
|
+
id: "media-player",
|
|
20284
|
+
summary: "Playing when at least one player is playing, or only when all of them are. Volume is offered only when every player has it. A player that reports nothing is left out, never read as stopped.",
|
|
20285
|
+
deviceType: DeviceType.MediaPlayer,
|
|
20286
|
+
outputCap: "group-active",
|
|
20287
|
+
outputField: "active",
|
|
20288
|
+
member: {
|
|
20289
|
+
cap: "media-player",
|
|
20290
|
+
fieldPath: "state"
|
|
20291
|
+
},
|
|
20292
|
+
activeWhen: ["playing", "buffering"],
|
|
20293
|
+
commandCaps: ["media-player"]
|
|
20294
|
+
}),
|
|
20295
|
+
actuator({
|
|
20296
|
+
id: "climate",
|
|
20297
|
+
summary: "Running when at least one thermostat or air conditioner is not off, or only when all of them are. Target temperature and fan are offered only when every device has them. A device that reports nothing is left out, never read as off.",
|
|
20298
|
+
deviceType: DeviceType.Thermostat,
|
|
20299
|
+
memberDeviceTypes: [DeviceType.Thermostat, DeviceType.Climate],
|
|
20300
|
+
outputCap: "group-active",
|
|
20301
|
+
outputField: "active",
|
|
20302
|
+
member: {
|
|
20303
|
+
cap: "climate-control",
|
|
20304
|
+
fieldPath: "mode"
|
|
20305
|
+
},
|
|
20306
|
+
activeWhen: [
|
|
20307
|
+
"heat",
|
|
20308
|
+
"cool",
|
|
20309
|
+
"auto",
|
|
20310
|
+
"heat_cool",
|
|
20311
|
+
"fan_only",
|
|
20312
|
+
"dry"
|
|
20313
|
+
],
|
|
20314
|
+
commandCaps: ["climate-control"]
|
|
20141
20315
|
})
|
|
20142
20316
|
];
|
|
20143
20317
|
function actuator(input) {
|
|
20144
20318
|
return {
|
|
20145
|
-
|
|
20319
|
+
id: input.id,
|
|
20320
|
+
summary: input.summary,
|
|
20321
|
+
deviceType: input.deviceType,
|
|
20322
|
+
outputCap: input.outputCap,
|
|
20323
|
+
outputField: input.outputField,
|
|
20324
|
+
commandCaps: input.commandCaps,
|
|
20146
20325
|
family: "actuator",
|
|
20147
20326
|
role: void 0,
|
|
20148
20327
|
memberDeviceType: input.deviceType,
|
|
20149
|
-
|
|
20328
|
+
memberDeviceTypes: input.memberDeviceTypes ?? [input.deviceType],
|
|
20329
|
+
activeWhen: input.activeWhen,
|
|
20150
20330
|
quantity: "none",
|
|
20151
20331
|
baseUnit: void 0,
|
|
20152
20332
|
aggregates: BINARY_AGGREGATES,
|
|
20153
20333
|
defaultAggregate: "any",
|
|
20154
20334
|
empty: "offline",
|
|
20155
|
-
accept: [
|
|
20156
|
-
cap: "switch",
|
|
20157
|
-
fieldPath: "on"
|
|
20158
|
-
}],
|
|
20335
|
+
accept: [input.member],
|
|
20159
20336
|
companions: [CHANGED]
|
|
20160
20337
|
};
|
|
20161
20338
|
}
|
|
@@ -48273,7 +48450,20 @@ var NcRuleInputSchema = object({
|
|
|
48273
48450
|
* save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
|
|
48274
48451
|
* path does not run Zod defaults.
|
|
48275
48452
|
*/
|
|
48276
|
-
groupingSec: number().int().min(5).max(60).optional()
|
|
48453
|
+
groupingSec: number().int().min(5).max(60).optional(),
|
|
48454
|
+
/**
|
|
48455
|
+
* ASK ME TO CONFIRM DETECTIONS (#243): a DETECTION notification of this rule
|
|
48456
|
+
* carries "Correct" / "Wrong" buttons (and, where the channel has room, a
|
|
48457
|
+
* "Wrong, it is a <class>" choice). A tap marks the track for retraining, the
|
|
48458
|
+
* same mark the Library writes, and records whose notification it was and
|
|
48459
|
+
* when. A channel with no buttons gets the same two choices as links.
|
|
48460
|
+
*
|
|
48461
|
+
* `.optional()`, never `.default()` (a Zod default does not run on the addon
|
|
48462
|
+
* cap path): absent and `false` both mean off, which is what every rule
|
|
48463
|
+
* authored before this field meant. An editor turns it off by writing
|
|
48464
|
+
* `false`, so it needs no `clear` key.
|
|
48465
|
+
*/
|
|
48466
|
+
askVerdict: boolean().optional()
|
|
48277
48467
|
});
|
|
48278
48468
|
/**
|
|
48279
48469
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -63745,7 +63935,17 @@ var groupCommandsCapability = {
|
|
|
63745
63935
|
scope: "device",
|
|
63746
63936
|
deviceNative: true,
|
|
63747
63937
|
mode: "singleton",
|
|
63748
|
-
deviceTypes: [
|
|
63938
|
+
deviceTypes: [
|
|
63939
|
+
DeviceType.Switch,
|
|
63940
|
+
DeviceType.Light,
|
|
63941
|
+
DeviceType.Fan,
|
|
63942
|
+
DeviceType.Cover,
|
|
63943
|
+
DeviceType.Valve,
|
|
63944
|
+
DeviceType.Lock,
|
|
63945
|
+
DeviceType.MediaPlayer,
|
|
63946
|
+
DeviceType.Thermostat,
|
|
63947
|
+
DeviceType.Climate
|
|
63948
|
+
],
|
|
63749
63949
|
methods: {},
|
|
63750
63950
|
status: {
|
|
63751
63951
|
schema: GroupCommandsSchema,
|
|
@@ -63763,6 +63963,49 @@ var groupCommandsCapability = {
|
|
|
63763
63963
|
history: "none"
|
|
63764
63964
|
};
|
|
63765
63965
|
/**
|
|
63966
|
+
* Whether a helper actuator group counts as active (D944): at least one
|
|
63967
|
+
* included member is, or every included member is. What "active" means is the
|
|
63968
|
+
* type's: a cover is open, a lock is locked, a media player is playing, a
|
|
63969
|
+
* climate device is not off. A group of lights, switches and fans reports
|
|
63970
|
+
* `switch.on` instead; this cap is for the types whose own state is not a
|
|
63971
|
+
* yes/no. Unknown members are left out (`group-status` counts them) and an
|
|
63972
|
+
* empty included set takes the device offline, never `active: false`.
|
|
63973
|
+
*/
|
|
63974
|
+
var GroupActiveSchema = object({
|
|
63975
|
+
active: boolean().meta({ label: "Active" }),
|
|
63976
|
+
/** Ms epoch when the slice was last updated. */
|
|
63977
|
+
lastChangedAt: number()
|
|
63978
|
+
});
|
|
63979
|
+
var groupActiveCapability = {
|
|
63980
|
+
name: "group-active",
|
|
63981
|
+
scope: "device",
|
|
63982
|
+
deviceNative: true,
|
|
63983
|
+
mode: "singleton",
|
|
63984
|
+
deviceTypes: [
|
|
63985
|
+
DeviceType.Cover,
|
|
63986
|
+
DeviceType.Valve,
|
|
63987
|
+
DeviceType.Lock,
|
|
63988
|
+
DeviceType.MediaPlayer,
|
|
63989
|
+
DeviceType.Climate,
|
|
63990
|
+
DeviceType.Thermostat
|
|
63991
|
+
],
|
|
63992
|
+
methods: {},
|
|
63993
|
+
status: {
|
|
63994
|
+
schema: GroupActiveSchema,
|
|
63995
|
+
kind: "push"
|
|
63996
|
+
},
|
|
63997
|
+
runtimeState: GroupActiveSchema,
|
|
63998
|
+
/**
|
|
63999
|
+
* Runtime-state durability: **session** — recomputed from the members on the
|
|
64000
|
+
* next source event; a restored value would outlive the members it named.
|
|
64001
|
+
*
|
|
64002
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
64003
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
64004
|
+
*/
|
|
64005
|
+
durability: "session",
|
|
64006
|
+
history: "none"
|
|
64007
|
+
};
|
|
64008
|
+
/**
|
|
63766
64009
|
* How many members of a helper group answered (D944). Counts are integers,
|
|
63767
64010
|
* not measurements: zero included is a real count, never a stand-in reading.
|
|
63768
64011
|
* The reading itself stays on the output capability. History is none — the
|
|
@@ -63793,7 +64036,14 @@ var groupStatusCapability = {
|
|
|
63793
64036
|
deviceTypes: [
|
|
63794
64037
|
DeviceType.Sensor,
|
|
63795
64038
|
DeviceType.Switch,
|
|
63796
|
-
DeviceType.Light
|
|
64039
|
+
DeviceType.Light,
|
|
64040
|
+
DeviceType.Fan,
|
|
64041
|
+
DeviceType.Cover,
|
|
64042
|
+
DeviceType.Valve,
|
|
64043
|
+
DeviceType.Lock,
|
|
64044
|
+
DeviceType.MediaPlayer,
|
|
64045
|
+
DeviceType.Thermostat,
|
|
64046
|
+
DeviceType.Climate
|
|
63797
64047
|
],
|
|
63798
64048
|
methods: {},
|
|
63799
64049
|
status: {
|
|
@@ -65087,7 +65337,14 @@ var lockControlCapability = {
|
|
|
65087
65337
|
}),
|
|
65088
65338
|
unlock: method(object({
|
|
65089
65339
|
deviceId: number().int().nonnegative(),
|
|
65090
|
-
code: string().min(1).optional()
|
|
65340
|
+
code: string().min(1).optional(),
|
|
65341
|
+
/**
|
|
65342
|
+
* Honoured by a helper lock GROUP only (D944): unlocking several doors
|
|
65343
|
+
* with one call is refused unless the caller says it was confirmed. A
|
|
65344
|
+
* single lock ignores it. The refusal lives in the callee, so no
|
|
65345
|
+
* automation or API caller reaches the doors by skipping a dialog.
|
|
65346
|
+
*/
|
|
65347
|
+
confirm: boolean().optional()
|
|
65091
65348
|
}), _void(), {
|
|
65092
65349
|
kind: "mutation",
|
|
65093
65350
|
auth: "protected"
|
|
@@ -71032,7 +71289,8 @@ var switchCapability = {
|
|
|
71032
71289
|
deviceTypes: [
|
|
71033
71290
|
DeviceType.Switch,
|
|
71034
71291
|
DeviceType.Siren,
|
|
71035
|
-
DeviceType.Light
|
|
71292
|
+
DeviceType.Light,
|
|
71293
|
+
DeviceType.Fan
|
|
71036
71294
|
],
|
|
71037
71295
|
methods: { setState: method(object({
|
|
71038
71296
|
deviceId: number(),
|
|
@@ -73245,6 +73503,7 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
|
|
|
73245
73503
|
kind: "mutation",
|
|
73246
73504
|
auth: "admin"
|
|
73247
73505
|
});
|
|
73506
|
+
DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
|
|
73248
73507
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
73249
73508
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
73250
73509
|
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
@@ -73628,6 +73887,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
73628
73887
|
featureProbe: featureProbeCapability,
|
|
73629
73888
|
flood: floodCapability,
|
|
73630
73889
|
gas: gasCapability,
|
|
73890
|
+
groupActive: groupActiveCapability,
|
|
73631
73891
|
groupCommands: groupCommandsCapability,
|
|
73632
73892
|
groupStatus: groupStatusCapability,
|
|
73633
73893
|
heatingValve: heatingValveCapability,
|
|
@@ -77639,6 +77899,13 @@ Object.freeze({
|
|
|
77639
77899
|
access: "view",
|
|
77640
77900
|
role: "viewer"
|
|
77641
77901
|
},
|
|
77902
|
+
"groupActive.getStatus": {
|
|
77903
|
+
capName: "group-active",
|
|
77904
|
+
capScope: "device",
|
|
77905
|
+
addonId: null,
|
|
77906
|
+
access: "view",
|
|
77907
|
+
role: "viewer"
|
|
77908
|
+
},
|
|
77642
77909
|
"groupCommands.getStatus": {
|
|
77643
77910
|
capName: "group-commands",
|
|
77644
77911
|
capScope: "device",
|
|
@@ -87514,6 +87781,10 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
87514
87781
|
icon: "flame"
|
|
87515
87782
|
}]
|
|
87516
87783
|
},
|
|
87784
|
+
"group-active": {
|
|
87785
|
+
scope: "device",
|
|
87786
|
+
noun: t("Group state", "Stato del gruppo")
|
|
87787
|
+
},
|
|
87517
87788
|
"group-commands": {
|
|
87518
87789
|
scope: "device",
|
|
87519
87790
|
noun: t("Group command", "Comando di gruppo")
|
|
@@ -89060,6 +89331,11 @@ Object.freeze({
|
|
|
89060
89331
|
form: "single",
|
|
89061
89332
|
optional: false
|
|
89062
89333
|
}],
|
|
89334
|
+
"groupActive.getStatus": [{
|
|
89335
|
+
name: "deviceId",
|
|
89336
|
+
form: "single",
|
|
89337
|
+
optional: false
|
|
89338
|
+
}],
|
|
89063
89339
|
"groupCommands.getStatus": [{
|
|
89064
89340
|
name: "deviceId",
|
|
89065
89341
|
form: "single",
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_clip_model_registry = require("../clip-model-registry-
|
|
5
|
+
const require_clip_model_registry = require("../clip-model-registry-lKeBMKlT.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_clip_model_registry.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Qi as BaseAddon, _r as embeddingRequirementsUnavailableError, a as CLIP_EMBEDDING_STEP_ID, da as normalizeNodeId, gi as resolvePoolMemoryPolicy, gr as embeddingRequirementsFailedError, i as CLIP_TEXT_MODELS, l as resolveClusterModelPin, mr as embeddingModelFailedError, n as DEFAULT_CLIP_MODEL, ni as parseProcStatus, pr as embeddingEncoderCapability, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, tn as PoolMemoryWatchdog } from "../clip-model-registry-
|
|
1
|
+
import { Qi as BaseAddon, _r as embeddingRequirementsUnavailableError, a as CLIP_EMBEDDING_STEP_ID, da as normalizeNodeId, gi as resolvePoolMemoryPolicy, gr as embeddingRequirementsFailedError, i as CLIP_TEXT_MODELS, l as resolveClusterModelPin, mr as embeddingModelFailedError, n as DEFAULT_CLIP_MODEL, ni as parseProcStatus, pr as embeddingEncoderCapability, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, tn as PoolMemoryWatchdog } from "../clip-model-registry-DdgT3gdf.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-Cx9AsA5q.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js
|
|
3
|
+
import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js--XkysBjS.mjs";
|
|
4
4
|
import { n as x, t as S } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CkwmHEi0.mjs";
|
|
5
|
-
import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
5
|
+
import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BIjXlrFH.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
7
7
|
var w = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
|
|
8
8
|
let t = E(e);
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.424",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.335",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|