@camstack/addon-post-analysis 1.2.639 → 1.2.641
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-B-Dv5y3Z.mjs → clip-model-registry-Cw7Iy7Qi.mjs} +315 -28
- package/dist/{clip-model-registry-DEcrrqRz.js → clip-model-registry-Qr0XipkX.js} +315 -28
- 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-DRZLmZDb.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Cct0TMzC.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-_TUthUZh.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 +26 -0
- package/dist/pipeline-analytics/{hostInit-B07ueo2X.mjs → hostInit-B9c2FowI.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +118 -23
- package/dist/pipeline-analytics/index.mjs +118 -23
- 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-D4TYbuPV.mjs +0 -26
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Cc4lAtK3.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-0sD_LHLI.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).
|
|
@@ -9114,6 +9114,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9114
9114
|
"login-method",
|
|
9115
9115
|
"media-player",
|
|
9116
9116
|
"mesh-network",
|
|
9117
|
+
"meter",
|
|
9117
9118
|
"metrics-provider",
|
|
9118
9119
|
"model-convert",
|
|
9119
9120
|
"model-distributor",
|
|
@@ -10171,6 +10172,10 @@ Object.freeze({
|
|
|
10171
10172
|
]
|
|
10172
10173
|
}
|
|
10173
10174
|
],
|
|
10175
|
+
"meter": [{
|
|
10176
|
+
"path": "value",
|
|
10177
|
+
"valueType": "number"
|
|
10178
|
+
}],
|
|
10174
10179
|
"motion": [
|
|
10175
10180
|
{
|
|
10176
10181
|
"path": "detected",
|
|
@@ -10916,7 +10921,7 @@ Object.freeze({
|
|
|
10916
10921
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
10917
10922
|
* (~144MB RSS per runner, D28).
|
|
10918
10923
|
*
|
|
10919
|
-
* Coverage:
|
|
10924
|
+
* Coverage: 94 device-scoped capabilities.
|
|
10920
10925
|
*/
|
|
10921
10926
|
var DEVICE_SCOPED_CAPS = new Set([
|
|
10922
10927
|
"accessories",
|
|
@@ -10968,6 +10973,7 @@ var DEVICE_SCOPED_CAPS = new Set([
|
|
|
10968
10973
|
"lawn-mower-control",
|
|
10969
10974
|
"lock-control",
|
|
10970
10975
|
"media-player",
|
|
10976
|
+
"meter",
|
|
10971
10977
|
"motion",
|
|
10972
10978
|
"motion-detection",
|
|
10973
10979
|
"motion-trigger",
|
|
@@ -11057,7 +11063,7 @@ function sleep(ms) {
|
|
|
11057
11063
|
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
11058
11064
|
}
|
|
11059
11065
|
//#endregion
|
|
11060
|
-
//#region ../types/dist/err-msg-
|
|
11066
|
+
//#region ../types/dist/err-msg-DIorGYeC.mjs
|
|
11061
11067
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
11062
11068
|
DeviceType["Camera"] = "camera";
|
|
11063
11069
|
DeviceType["Hub"] = "hub";
|
|
@@ -11151,8 +11157,14 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
11151
11157
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
11152
11158
|
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
11153
11159
|
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
11154
|
-
* Sources: native Bosch Home Connect, reusable by similar integrations.
|
|
11160
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations.
|
|
11161
|
+
* A plug-built dishwasher carries running-state and power instead. */
|
|
11155
11162
|
DeviceType["Dishwasher"] = "dishwasher";
|
|
11163
|
+
/** Washing machine. A plug-built one is running while its power stays
|
|
11164
|
+
* above a threshold. No program cap — that surface is the dishwasher's. */
|
|
11165
|
+
DeviceType["Washer"] = "washer";
|
|
11166
|
+
/** Tumble dryer. Same plug-built running surface as {@link Washer}. */
|
|
11167
|
+
DeviceType["Dryer"] = "dryer";
|
|
11156
11168
|
return DeviceType;
|
|
11157
11169
|
}({});
|
|
11158
11170
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -11410,7 +11422,7 @@ function errMsg(err) {
|
|
|
11410
11422
|
return String(err);
|
|
11411
11423
|
}
|
|
11412
11424
|
//#endregion
|
|
11413
|
-
//#region ../types/dist/composition-
|
|
11425
|
+
//#region ../types/dist/composition-CpETZ4HL.mjs
|
|
11414
11426
|
/**
|
|
11415
11427
|
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
11416
11428
|
* canonical form sorts object keys alphabetically at every depth so two
|
|
@@ -12326,6 +12338,97 @@ function validateExpressionSource(src) {
|
|
|
12326
12338
|
return null;
|
|
12327
12339
|
}
|
|
12328
12340
|
/**
|
|
12341
|
+
* One power reading becomes a washer, dryer or dishwasher (D944 helper).
|
|
12342
|
+
*
|
|
12343
|
+
* Standby of the control board is under 5 W; a motor or a heater is far
|
|
12344
|
+
* above that, so 5 W is the line. A door lock or a short pump spike is not
|
|
12345
|
+
* a cycle, so running starts only after 30 s above the line.
|
|
12346
|
+
*
|
|
12347
|
+
* A wash, dry or dishwasher pause (soak, heat-wait, heater off between
|
|
12348
|
+
* bursts) lasts several minutes. Ending the cycle on the first dip would
|
|
12349
|
+
* report "finished" in the middle of the program, so the stop dwell is
|
|
12350
|
+
* 10 minutes on every type. The number is stored per type so one machine
|
|
12351
|
+
* can move later without moving the others.
|
|
12352
|
+
*/
|
|
12353
|
+
var APPLIANCE_TEMPLATE_ID = "appliance";
|
|
12354
|
+
var APPLIANCE_KINDS = [
|
|
12355
|
+
"washer",
|
|
12356
|
+
"dryer",
|
|
12357
|
+
"dishwasher"
|
|
12358
|
+
];
|
|
12359
|
+
DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher;
|
|
12360
|
+
/**
|
|
12361
|
+
* Statistics and integrals over a history read (D944).
|
|
12362
|
+
*
|
|
12363
|
+
* Pure: the same points always give the same answer, so a restart recomputes
|
|
12364
|
+
* rather than trusting a buffer. A gauge mean is time-weighted (value × ms),
|
|
12365
|
+
* never the mean of the samples. A hole with no held value is not integrated
|
|
12366
|
+
* as zero. A truncated read is not published.
|
|
12367
|
+
*/
|
|
12368
|
+
var STATISTIC_STATS = [
|
|
12369
|
+
"min",
|
|
12370
|
+
"max",
|
|
12371
|
+
"mean",
|
|
12372
|
+
"sum",
|
|
12373
|
+
"count",
|
|
12374
|
+
"change"
|
|
12375
|
+
];
|
|
12376
|
+
/**
|
|
12377
|
+
* The range a statistics or integral helper asks history for (D944).
|
|
12378
|
+
*
|
|
12379
|
+
* Calendar edges are the hub's timezone, never UTC midnight: a day is 23, 24
|
|
12380
|
+
* or 25 hours across a DST change. A tier is eligible only when its retention
|
|
12381
|
+
* is strictly longer than the longest that range can be. Forever qualifies.
|
|
12382
|
+
* Equal to a tier's retention is a refusal, not a short answer.
|
|
12383
|
+
*/
|
|
12384
|
+
var MINUTE_MS = 6e4;
|
|
12385
|
+
var HOUR_MS = 60 * MINUTE_MS;
|
|
12386
|
+
var DAY_MS = 24 * HOUR_MS;
|
|
12387
|
+
var ROLLING_SPANS = [
|
|
12388
|
+
"1h",
|
|
12389
|
+
"24h",
|
|
12390
|
+
"2d",
|
|
12391
|
+
"7d",
|
|
12392
|
+
"30d",
|
|
12393
|
+
"custom"
|
|
12394
|
+
];
|
|
12395
|
+
var CALENDAR_PERIODS = [
|
|
12396
|
+
"today",
|
|
12397
|
+
"yesterday",
|
|
12398
|
+
"this-week",
|
|
12399
|
+
"this-month"
|
|
12400
|
+
];
|
|
12401
|
+
var RESET_PERIODS = [
|
|
12402
|
+
"never",
|
|
12403
|
+
"daily",
|
|
12404
|
+
"weekly",
|
|
12405
|
+
"monthly"
|
|
12406
|
+
];
|
|
12407
|
+
5 * MINUTE_MS;
|
|
12408
|
+
24 * HOUR_MS, 2 * DAY_MS, 7 * DAY_MS, 30 * DAY_MS;
|
|
12409
|
+
7 * DAY_MS, 30 * DAY_MS, 365 * DAY_MS;
|
|
12410
|
+
var StatisticWindowSchema = discriminatedUnion("kind", [object({
|
|
12411
|
+
kind: literal("rolling"),
|
|
12412
|
+
span: _enum(ROLLING_SPANS),
|
|
12413
|
+
customMinutes: number().int().min(5).optional()
|
|
12414
|
+
}).check((payload) => {
|
|
12415
|
+
if (payload.value.span === "custom" && payload.value.customMinutes === void 0) payload.issues.push({
|
|
12416
|
+
code: "custom",
|
|
12417
|
+
message: "a custom range needs a duration in minutes",
|
|
12418
|
+
path: ["customMinutes"],
|
|
12419
|
+
input: payload.value
|
|
12420
|
+
});
|
|
12421
|
+
if (payload.value.span !== "custom" && payload.value.customMinutes !== void 0) payload.issues.push({
|
|
12422
|
+
code: "custom",
|
|
12423
|
+
message: "only a custom range carries a duration",
|
|
12424
|
+
path: ["customMinutes"],
|
|
12425
|
+
input: payload.value
|
|
12426
|
+
});
|
|
12427
|
+
}), object({
|
|
12428
|
+
kind: literal("calendar"),
|
|
12429
|
+
period: _enum(CALENDAR_PERIODS)
|
|
12430
|
+
})]);
|
|
12431
|
+
/**
|
|
12329
12432
|
* A composition source identity: `(addonId, stableId)`, never a numeric device
|
|
12330
12433
|
* id. Split out so helper schemas can name it without a cycle through
|
|
12331
12434
|
* `composition.ts` (D659).
|
|
@@ -12381,14 +12484,37 @@ var HelperMemberSchema = object({
|
|
|
12381
12484
|
cap: string().min(1),
|
|
12382
12485
|
fieldPath: string().min(1)
|
|
12383
12486
|
});
|
|
12384
|
-
var HelperSpecSchema = discriminatedUnion("kind", [
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
|
|
12389
|
-
|
|
12390
|
-
|
|
12391
|
-
|
|
12487
|
+
var HelperSpecSchema = discriminatedUnion("kind", [
|
|
12488
|
+
object({
|
|
12489
|
+
kind: literal("group"),
|
|
12490
|
+
templateId: GroupTemplateIdSchema,
|
|
12491
|
+
aggregate: AggregateReducerSchema,
|
|
12492
|
+
members: array(HelperMemberSchema).min(1).max(64),
|
|
12493
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
12494
|
+
active: ActiveCriterionSchema.optional()
|
|
12495
|
+
}),
|
|
12496
|
+
object({
|
|
12497
|
+
kind: literal("appliance"),
|
|
12498
|
+
templateId: literal(APPLIANCE_TEMPLATE_ID),
|
|
12499
|
+
appliance: _enum(APPLIANCE_KINDS),
|
|
12500
|
+
thresholdWatts: number().positive(),
|
|
12501
|
+
startDwellMs: number().int().nonnegative(),
|
|
12502
|
+
stopDwellMs: number().int().nonnegative(),
|
|
12503
|
+
member: HelperMemberSchema
|
|
12504
|
+
}),
|
|
12505
|
+
object({
|
|
12506
|
+
kind: literal("statistic"),
|
|
12507
|
+
stat: _enum(STATISTIC_STATS),
|
|
12508
|
+
window: StatisticWindowSchema,
|
|
12509
|
+
source: HelperMemberSchema
|
|
12510
|
+
}),
|
|
12511
|
+
object({
|
|
12512
|
+
kind: literal("integral"),
|
|
12513
|
+
reset: _enum(RESET_PERIODS),
|
|
12514
|
+
output: _enum(["energy", "meter"]),
|
|
12515
|
+
source: HelperMemberSchema
|
|
12516
|
+
})
|
|
12517
|
+
]);
|
|
12392
12518
|
/** A composed device's stableId is this prefix plus the block id. */
|
|
12393
12519
|
var COMPOSED_DEVICE_STABLE_ID_PREFIX = "composed-";
|
|
12394
12520
|
/** Longest snippet a `code` source may carry (slice 4). */
|
|
@@ -12462,6 +12588,26 @@ var CompositionFieldSourceSchema = discriminatedUnion("kind", [
|
|
|
12462
12588
|
"omit",
|
|
12463
12589
|
"offline"
|
|
12464
12590
|
])
|
|
12591
|
+
}),
|
|
12592
|
+
object({
|
|
12593
|
+
kind: literal("series"),
|
|
12594
|
+
read: CompositionFieldReadSchema,
|
|
12595
|
+
/** `value` is the statistic or the integral. The others are the gap counts. */
|
|
12596
|
+
publish: _enum([
|
|
12597
|
+
"value",
|
|
12598
|
+
"included",
|
|
12599
|
+
"excluded",
|
|
12600
|
+
"total"
|
|
12601
|
+
]),
|
|
12602
|
+
/**
|
|
12603
|
+
* What an unanswered `value` does. Counts ignore this. `offline` leaves the
|
|
12604
|
+
* device unseeded until history answers, so a restart cannot publish 0.
|
|
12605
|
+
*/
|
|
12606
|
+
empty: _enum([
|
|
12607
|
+
"null",
|
|
12608
|
+
"omit",
|
|
12609
|
+
"offline"
|
|
12610
|
+
])
|
|
12465
12611
|
})
|
|
12466
12612
|
]);
|
|
12467
12613
|
var CompositionCommandTargetSchema = discriminatedUnion("kind", [object({
|
|
@@ -19509,7 +19655,8 @@ var CompositionProblemSchema = object({
|
|
|
19509
19655
|
"native-capability-replace",
|
|
19510
19656
|
"mixed-quantity",
|
|
19511
19657
|
"helper-mismatch",
|
|
19512
|
-
"member-constraint"
|
|
19658
|
+
"member-constraint",
|
|
19659
|
+
"retention"
|
|
19513
19660
|
]),
|
|
19514
19661
|
path: string(),
|
|
19515
19662
|
message: string()
|
|
@@ -19749,7 +19896,7 @@ Object.freeze({
|
|
|
19749
19896
|
* One catalog row per base reading a group helper can build (D944 §3).
|
|
19750
19897
|
* Data, not a form default written into the block.
|
|
19751
19898
|
*/
|
|
19752
|
-
var NOW = {
|
|
19899
|
+
var NOW$1 = {
|
|
19753
19900
|
fieldPath: "lastFetchedAt",
|
|
19754
19901
|
expr: "now"
|
|
19755
19902
|
};
|
|
@@ -19795,7 +19942,7 @@ var GROUP_TEMPLATES = [
|
|
|
19795
19942
|
quantity: "temperature",
|
|
19796
19943
|
defaultAggregate: "mean",
|
|
19797
19944
|
empty: "null",
|
|
19798
|
-
companions: [NOW]
|
|
19945
|
+
companions: [NOW$1]
|
|
19799
19946
|
}),
|
|
19800
19947
|
numeric({
|
|
19801
19948
|
id: "humidity",
|
|
@@ -19806,7 +19953,7 @@ var GROUP_TEMPLATES = [
|
|
|
19806
19953
|
quantity: "humidity",
|
|
19807
19954
|
defaultAggregate: "mean",
|
|
19808
19955
|
empty: "null",
|
|
19809
|
-
companions: [NOW]
|
|
19956
|
+
companions: [NOW$1]
|
|
19810
19957
|
}),
|
|
19811
19958
|
numeric({
|
|
19812
19959
|
id: "pressure",
|
|
@@ -19817,7 +19964,7 @@ var GROUP_TEMPLATES = [
|
|
|
19817
19964
|
quantity: "pressure",
|
|
19818
19965
|
defaultAggregate: "mean",
|
|
19819
19966
|
empty: "null",
|
|
19820
|
-
companions: [NOW]
|
|
19967
|
+
companions: [NOW$1]
|
|
19821
19968
|
}),
|
|
19822
19969
|
numeric({
|
|
19823
19970
|
id: "illuminance",
|
|
@@ -19828,7 +19975,7 @@ var GROUP_TEMPLATES = [
|
|
|
19828
19975
|
quantity: "illuminance",
|
|
19829
19976
|
defaultAggregate: "mean",
|
|
19830
19977
|
empty: "null",
|
|
19831
|
-
companions: [NOW]
|
|
19978
|
+
companions: [NOW$1]
|
|
19832
19979
|
}),
|
|
19833
19980
|
numeric({
|
|
19834
19981
|
id: "power",
|
|
@@ -19839,7 +19986,7 @@ var GROUP_TEMPLATES = [
|
|
|
19839
19986
|
quantity: "power",
|
|
19840
19987
|
defaultAggregate: "sum",
|
|
19841
19988
|
empty: "omit",
|
|
19842
|
-
companions: [NOW]
|
|
19989
|
+
companions: [NOW$1]
|
|
19843
19990
|
}),
|
|
19844
19991
|
numeric({
|
|
19845
19992
|
id: "energy",
|
|
@@ -19850,7 +19997,7 @@ var GROUP_TEMPLATES = [
|
|
|
19850
19997
|
quantity: "energy",
|
|
19851
19998
|
defaultAggregate: "sum",
|
|
19852
19999
|
empty: "omit",
|
|
19853
|
-
companions: [NOW]
|
|
20000
|
+
companions: [NOW$1]
|
|
19854
20001
|
}),
|
|
19855
20002
|
numeric({
|
|
19856
20003
|
id: "battery",
|
|
@@ -19885,7 +20032,7 @@ var GROUP_TEMPLATES = [
|
|
|
19885
20032
|
quantity: "device",
|
|
19886
20033
|
defaultAggregate: "mean",
|
|
19887
20034
|
empty: "null",
|
|
19888
|
-
companions: [NOW]
|
|
20035
|
+
companions: [NOW$1]
|
|
19889
20036
|
}),
|
|
19890
20037
|
binary({
|
|
19891
20038
|
id: "motion",
|
|
@@ -20014,6 +20161,7 @@ function actuator(input) {
|
|
|
20014
20161
|
}
|
|
20015
20162
|
new Map(GROUP_TEMPLATES.map((template) => [template.id, template]));
|
|
20016
20163
|
DeviceFeature.LightColorRgb, DeviceFeature.LightColorHsv, DeviceFeature.LightColorMired;
|
|
20164
|
+
DeviceType.Camera;
|
|
20017
20165
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
20018
20166
|
/**
|
|
20019
20167
|
* What a composition may BUILD on a device type (G2, D676): the caps a new
|
|
@@ -64976,6 +65124,44 @@ var lockControlCapability = {
|
|
|
64976
65124
|
volatileStateFields: ["lastChangedAt"]
|
|
64977
65125
|
};
|
|
64978
65126
|
/**
|
|
65127
|
+
* A monotonic total between resets (D944). Energy uses `power-meter.kwhTotal`
|
|
65128
|
+
* so dashboards keep one series; every other instantaneous reading lands here.
|
|
65129
|
+
* `value` is the time integral in the source quantity's accumulated base
|
|
65130
|
+
* (base-unit seconds, or kWh on the power meter). `null` is a gap, never zero.
|
|
65131
|
+
*/
|
|
65132
|
+
var MeterStatusSchema = object({
|
|
65133
|
+
value: number().nullable().meta(readingMeta("device", { label: "Total" })),
|
|
65134
|
+
lastFetchedAt: number()
|
|
65135
|
+
});
|
|
65136
|
+
var meterCapability = {
|
|
65137
|
+
name: "meter",
|
|
65138
|
+
scope: "device",
|
|
65139
|
+
deviceNative: true,
|
|
65140
|
+
mode: "singleton",
|
|
65141
|
+
deviceTypes: [DeviceType.Sensor],
|
|
65142
|
+
methods: {},
|
|
65143
|
+
status: {
|
|
65144
|
+
schema: MeterStatusSchema,
|
|
65145
|
+
kind: "push"
|
|
65146
|
+
},
|
|
65147
|
+
runtimeState: MeterStatusSchema,
|
|
65148
|
+
/**
|
|
65149
|
+
* Runtime-state durability: **restored** — the total is a cache of the
|
|
65150
|
+
* history integral. A restart shows it only until the history pass
|
|
65151
|
+
* recomputes the open period; it is not an in-memory buffer.
|
|
65152
|
+
*
|
|
65153
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
65154
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
65155
|
+
*/
|
|
65156
|
+
durability: "restored",
|
|
65157
|
+
history: { fields: { value: {
|
|
65158
|
+
kind: "counter",
|
|
65159
|
+
deadband: .001,
|
|
65160
|
+
minIntervalMs: 6e4
|
|
65161
|
+
} } },
|
|
65162
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
65163
|
+
};
|
|
65164
|
+
/**
|
|
64979
65165
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
64980
65166
|
* Apple TV, Spotify, Roku, generic OTT receivers, …) on
|
|
64981
65167
|
* `DeviceType.MediaPlayer`. Disjoint from the camera streaming
|
|
@@ -67562,7 +67748,12 @@ var powerMeterCapability = {
|
|
|
67562
67748
|
scope: "device",
|
|
67563
67749
|
deviceNative: true,
|
|
67564
67750
|
mode: "singleton",
|
|
67565
|
-
deviceTypes: [
|
|
67751
|
+
deviceTypes: [
|
|
67752
|
+
DeviceType.Sensor,
|
|
67753
|
+
DeviceType.Washer,
|
|
67754
|
+
DeviceType.Dryer,
|
|
67755
|
+
DeviceType.Dishwasher
|
|
67756
|
+
],
|
|
67566
67757
|
methods: {},
|
|
67567
67758
|
status: {
|
|
67568
67759
|
schema: PowerMeterStatusSchema,
|
|
@@ -68300,6 +68491,8 @@ var runningCustomize = {
|
|
|
68300
68491
|
stateField: "running"
|
|
68301
68492
|
},
|
|
68302
68493
|
deviceTypes: [
|
|
68494
|
+
DeviceType.Washer,
|
|
68495
|
+
DeviceType.Dryer,
|
|
68303
68496
|
DeviceType.Dishwasher,
|
|
68304
68497
|
DeviceType.Vacuum,
|
|
68305
68498
|
DeviceType.LawnMower,
|
|
@@ -73053,7 +73246,7 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
|
|
|
73053
73246
|
auth: "admin"
|
|
73054
73247
|
});
|
|
73055
73248
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
73056
|
-
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.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
73249
|
+
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;
|
|
73057
73250
|
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
73058
73251
|
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
73059
73252
|
new Set(CAP_NAMES);
|
|
@@ -73446,6 +73639,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
73446
73639
|
lawnMowerControl: lawnMowerControlCapability,
|
|
73447
73640
|
lockControl: lockControlCapability,
|
|
73448
73641
|
mediaPlayer: mediaPlayerCapability,
|
|
73642
|
+
meter: meterCapability,
|
|
73449
73643
|
motion: motionCapability,
|
|
73450
73644
|
motionTrigger: motionTriggerCapability,
|
|
73451
73645
|
motionZones: motionZonesCapability,
|
|
@@ -74222,7 +74416,7 @@ var DeclaredDevices = class {
|
|
|
74222
74416
|
return removed;
|
|
74223
74417
|
}
|
|
74224
74418
|
};
|
|
74225
|
-
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
74419
|
+
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, 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;
|
|
74226
74420
|
new Set(Object.values(DeviceType));
|
|
74227
74421
|
Object.freeze({
|
|
74228
74422
|
"accessories.getStatus": {
|
|
@@ -78411,6 +78605,13 @@ Object.freeze({
|
|
|
78411
78605
|
access: "create",
|
|
78412
78606
|
role: "admin"
|
|
78413
78607
|
},
|
|
78608
|
+
"meter.getStatus": {
|
|
78609
|
+
capName: "meter",
|
|
78610
|
+
capScope: "device",
|
|
78611
|
+
addonId: null,
|
|
78612
|
+
access: "view",
|
|
78613
|
+
role: "viewer"
|
|
78614
|
+
},
|
|
78414
78615
|
"metricsProvider.collectSnapshot": {
|
|
78415
78616
|
capName: "metrics-provider",
|
|
78416
78617
|
capScope: "system",
|
|
@@ -86509,7 +86710,39 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
86509
86710
|
phrase: t("When {device} finishes", "Quando {device} finisce"),
|
|
86510
86711
|
icon: "square"
|
|
86511
86712
|
}
|
|
86512
|
-
}
|
|
86713
|
+
},
|
|
86714
|
+
overrides: { byType: {
|
|
86715
|
+
[DeviceType.Washer]: {
|
|
86716
|
+
state: { running: {
|
|
86717
|
+
whenTrue: t("When the washing machine starts", "Quando la lavatrice inizia"),
|
|
86718
|
+
whenFalse: t("When the washing machine has finished", "Quando la lavatrice ha finito")
|
|
86719
|
+
} },
|
|
86720
|
+
events: {
|
|
86721
|
+
onStarted: { phrase: t("When the washing machine starts", "Quando la lavatrice inizia") },
|
|
86722
|
+
onFinished: { phrase: t("When the washing machine has finished", "Quando la lavatrice ha finito") }
|
|
86723
|
+
}
|
|
86724
|
+
},
|
|
86725
|
+
[DeviceType.Dryer]: {
|
|
86726
|
+
state: { running: {
|
|
86727
|
+
whenTrue: t("When the dryer starts", "Quando l'asciugatrice inizia"),
|
|
86728
|
+
whenFalse: t("When the dryer has finished", "Quando l'asciugatrice ha finito")
|
|
86729
|
+
} },
|
|
86730
|
+
events: {
|
|
86731
|
+
onStarted: { phrase: t("When the dryer starts", "Quando l'asciugatrice inizia") },
|
|
86732
|
+
onFinished: { phrase: t("When the dryer has finished", "Quando l'asciugatrice ha finito") }
|
|
86733
|
+
}
|
|
86734
|
+
},
|
|
86735
|
+
[DeviceType.Dishwasher]: {
|
|
86736
|
+
state: { running: {
|
|
86737
|
+
whenTrue: t("When the dishwasher starts", "Quando la lavastoviglie inizia"),
|
|
86738
|
+
whenFalse: t("When the dishwasher has finished", "Quando la lavastoviglie ha finito")
|
|
86739
|
+
} },
|
|
86740
|
+
events: {
|
|
86741
|
+
onStarted: { phrase: t("When the dishwasher starts", "Quando la lavastoviglie inizia") },
|
|
86742
|
+
onFinished: { phrase: t("When the dishwasher has finished", "Quando la lavastoviglie ha finito") }
|
|
86743
|
+
}
|
|
86744
|
+
}
|
|
86745
|
+
} }
|
|
86513
86746
|
},
|
|
86514
86747
|
update: {
|
|
86515
86748
|
scope: "device",
|
|
@@ -87337,6 +87570,17 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
87337
87570
|
}],
|
|
87338
87571
|
events: { onMotionChanged: { notOperatorFacing: "the `detected` state trigger phrases both edges, from the mirror that survives a dropped event (D49)" } }
|
|
87339
87572
|
},
|
|
87573
|
+
meter: {
|
|
87574
|
+
scope: "device",
|
|
87575
|
+
noun: t("Meter", "Contatore"),
|
|
87576
|
+
state: [{
|
|
87577
|
+
kind: "numeric",
|
|
87578
|
+
field: "value",
|
|
87579
|
+
quantity: t("the total", "il totale"),
|
|
87580
|
+
label: t("Total", "Totale"),
|
|
87581
|
+
icon: "gauge"
|
|
87582
|
+
}]
|
|
87583
|
+
},
|
|
87340
87584
|
"numeric-sensor": {
|
|
87341
87585
|
scope: "device",
|
|
87342
87586
|
noun: t("Sensor", "Sensore"),
|
|
@@ -87809,8 +88053,47 @@ function projectAction(cap, action) {
|
|
|
87809
88053
|
};
|
|
87810
88054
|
}
|
|
87811
88055
|
Object.entries(CAP_VOCABULARY_BY_NAME).flatMap(([cap, entry]) => entry.scope === "device" ? (entry.actions ?? []).map((a) => projectAction(cap, a)) : []);
|
|
87812
|
-
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;
|
|
88056
|
+
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;
|
|
87813
88057
|
DeviceFeature.BatteryOperated;
|
|
88058
|
+
DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher;
|
|
88059
|
+
var HA_AS = "a power sensor (device_class power). Home Assistant has no laundry domain. running-state stays unexported until a null reading can be published as unavailable.";
|
|
88060
|
+
var HOMEKIT_REASON = "HomeKit has no laundry-appliance service. The export tab would pair an accessory with nothing on it: running-state is withheld until a null reading can be unavailable, and power is not a HomeKit service this export honours.";
|
|
88061
|
+
var ALEXA_REASON = "Alexa has no laundry category in this export, and neither power nor running has an Alexa interface.";
|
|
88062
|
+
var GOOGLE_REASON = "Google WASHER, DRYER and DISHWASHER require RunCycle. A power threshold is not that trait, and this export does not publish RunCycle.";
|
|
88063
|
+
var MATTER_REASON = "No Matter export is built. The closest device types are Laundry Washer (0x0073) and Laundry Dryer (0x0074); a power threshold is not the Laundry Washer Mode cluster.";
|
|
88064
|
+
function withheld(reason) {
|
|
88065
|
+
return {
|
|
88066
|
+
[DeviceType.Washer]: {
|
|
88067
|
+
exported: false,
|
|
88068
|
+
reason
|
|
88069
|
+
},
|
|
88070
|
+
[DeviceType.Dryer]: {
|
|
88071
|
+
exported: false,
|
|
88072
|
+
reason
|
|
88073
|
+
},
|
|
88074
|
+
[DeviceType.Dishwasher]: {
|
|
88075
|
+
exported: false,
|
|
88076
|
+
reason
|
|
88077
|
+
}
|
|
88078
|
+
};
|
|
88079
|
+
}
|
|
88080
|
+
function offered(received) {
|
|
88081
|
+
return {
|
|
88082
|
+
[DeviceType.Washer]: {
|
|
88083
|
+
exported: true,
|
|
88084
|
+
as: received
|
|
88085
|
+
},
|
|
88086
|
+
[DeviceType.Dryer]: {
|
|
88087
|
+
exported: true,
|
|
88088
|
+
as: received
|
|
88089
|
+
},
|
|
88090
|
+
[DeviceType.Dishwasher]: {
|
|
88091
|
+
exported: true,
|
|
88092
|
+
as: received
|
|
88093
|
+
}
|
|
88094
|
+
};
|
|
88095
|
+
}
|
|
88096
|
+
offered(HA_AS), withheld(HOMEKIT_REASON), withheld(ALEXA_REASON), withheld(GOOGLE_REASON), withheld(MATTER_REASON);
|
|
87814
88097
|
Object.freeze({
|
|
87815
88098
|
"accessories.getStatus": [{
|
|
87816
88099
|
name: "deviceId",
|
|
@@ -88987,6 +89270,11 @@ Object.freeze({
|
|
|
88987
89270
|
form: "single",
|
|
88988
89271
|
optional: false
|
|
88989
89272
|
}],
|
|
89273
|
+
"meter.getStatus": [{
|
|
89274
|
+
name: "deviceId",
|
|
89275
|
+
form: "single",
|
|
89276
|
+
optional: false
|
|
89277
|
+
}],
|
|
88990
89278
|
"motion.getStatus": [{
|
|
88991
89279
|
name: "deviceId",
|
|
88992
89280
|
form: "single",
|
|
@@ -90691,7 +90979,6 @@ var BucketAccumulator = class {
|
|
|
90691
90979
|
return n;
|
|
90692
90980
|
}
|
|
90693
90981
|
};
|
|
90694
|
-
DeviceType.Camera;
|
|
90695
90982
|
/**
|
|
90696
90983
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
90697
90984
|
* `z.infer`, they do not restate the shape.
|
|
@@ -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-Qr0XipkX.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-Cw7Iy7Qi.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-CuNXxDlT.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-_TUthUZh.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.422",
|
|
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.334",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|