@camstack/addon-post-analysis 1.2.629 → 1.2.631
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-M_QM7l6j.js → clip-model-registry-BgsEOah6.js} +542 -102
- package/dist/{clip-model-registry-SrfKJ0e8.mjs → clip-model-registry-DMmf5o2X.mjs} +533 -99
- 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-CUsaUp1g.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DkE3t99L.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CTux2q1V.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-DdbV-R1z.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-q1u97PmF.mjs → hostInit-JabXipp8.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +8620 -6817
- package/dist/pipeline-analytics/index.mjs +8619 -6816
- 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-DxapkUgD.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-D7KeW_uB.mjs +0 -26
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-Ceif8n-v.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -471,6 +471,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
471
471
|
* on the device detail page.
|
|
472
472
|
*/
|
|
473
473
|
EventCategory["DoorbellOnPressed"] = "doorbell.onPressed";
|
|
474
|
+
/** Mirrors `runningStateCapability.events.onStarted`. */
|
|
475
|
+
EventCategory["RunningStarted"] = "running.started";
|
|
476
|
+
/** Mirrors `runningStateCapability.events.onFinished`. */
|
|
477
|
+
EventCategory["RunningFinished"] = "running.finished";
|
|
474
478
|
/**
|
|
475
479
|
* Cap event fired by every device that registers the `event-emitter`
|
|
476
480
|
* capability. Mirrors `eventEmitterCapability.events.onEvent`. Carries
|
|
@@ -5628,7 +5632,7 @@ var ZodIssueCode = {
|
|
|
5628
5632
|
var ZodFirstPartyTypeKind;
|
|
5629
5633
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5630
5634
|
//#endregion
|
|
5631
|
-
//#region ../types/dist/sleep-
|
|
5635
|
+
//#region ../types/dist/sleep-CYfIZzGv.mjs
|
|
5632
5636
|
/**
|
|
5633
5637
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5634
5638
|
* window to float samples (D455).
|
|
@@ -5967,7 +5971,7 @@ Object.fromEntries([
|
|
|
5967
5971
|
* `hydrateSchema` to skip the `value` injection for structural-only fields.
|
|
5968
5972
|
*/
|
|
5969
5973
|
function isValuelessField(field) {
|
|
5970
|
-
return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button";
|
|
5974
|
+
return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button" || field.type === "account-sign-in" || field.type === "secret-presence";
|
|
5971
5975
|
}
|
|
5972
5976
|
function hydrateSchema(schema, values, options = {}) {
|
|
5973
5977
|
return {
|
|
@@ -8885,7 +8889,7 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8885
8889
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
8886
8890
|
* (~144MB RSS per runner, D28).
|
|
8887
8891
|
*
|
|
8888
|
-
* Coverage:
|
|
8892
|
+
* Coverage: 91 device-scoped capabilities.
|
|
8889
8893
|
*/
|
|
8890
8894
|
var DEVICE_SCOPED_CAPS = new Set([
|
|
8891
8895
|
"accessories",
|
|
@@ -8957,6 +8961,7 @@ var DEVICE_SCOPED_CAPS = new Set([
|
|
|
8957
8961
|
"recording",
|
|
8958
8962
|
"recording-onboard",
|
|
8959
8963
|
"recording-signal",
|
|
8964
|
+
"running-state",
|
|
8960
8965
|
"scene-monitor",
|
|
8961
8966
|
"script-runner",
|
|
8962
8967
|
"smoke",
|
|
@@ -9376,7 +9381,7 @@ function errMsg(err) {
|
|
|
9376
9381
|
return String(err);
|
|
9377
9382
|
}
|
|
9378
9383
|
//#endregion
|
|
9379
|
-
//#region ../types/dist/composition-
|
|
9384
|
+
//#region ../types/dist/composition-BJ8iAZb3.mjs
|
|
9380
9385
|
/**
|
|
9381
9386
|
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
9382
9387
|
* canonical form sorts object keys alphabetically at every depth so two
|
|
@@ -9467,7 +9472,7 @@ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac
|
|
|
9467
9472
|
* ONE table for everyone who asks "is this device HIGH?": the
|
|
9468
9473
|
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
9469
9474
|
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
9470
|
-
* the sources of a
|
|
9475
|
+
* the sources of a pulse (`compilePulseOverride`, D936).
|
|
9471
9476
|
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
9472
9477
|
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
9473
9478
|
*
|
|
@@ -9837,6 +9842,20 @@ var table = {
|
|
|
9837
9842
|
apply: () => {
|
|
9838
9843
|
throw new ExpressionEvalError("count: stateful evaluation context is required");
|
|
9839
9844
|
}
|
|
9845
|
+
},
|
|
9846
|
+
dwell: {
|
|
9847
|
+
minArgs: 3,
|
|
9848
|
+
maxArgs: 3,
|
|
9849
|
+
apply: () => {
|
|
9850
|
+
throw new ExpressionEvalError("dwell: stateful evaluation context is required");
|
|
9851
|
+
}
|
|
9852
|
+
},
|
|
9853
|
+
latchedAt: {
|
|
9854
|
+
minArgs: 1,
|
|
9855
|
+
maxArgs: 1,
|
|
9856
|
+
apply: () => {
|
|
9857
|
+
throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
|
|
9858
|
+
}
|
|
9840
9859
|
}
|
|
9841
9860
|
};
|
|
9842
9861
|
Object.freeze(Object.assign(Object.create(null), table));
|
|
@@ -17569,7 +17588,15 @@ Object.freeze({
|
|
|
17569
17588
|
kind: "fixed",
|
|
17570
17589
|
result: ["number", "null"]
|
|
17571
17590
|
},
|
|
17572
|
-
count: NUMBER
|
|
17591
|
+
count: NUMBER,
|
|
17592
|
+
dwell: {
|
|
17593
|
+
kind: "fixed",
|
|
17594
|
+
result: ["boolean", "null"]
|
|
17595
|
+
},
|
|
17596
|
+
latchedAt: {
|
|
17597
|
+
kind: "fixed",
|
|
17598
|
+
result: ["number", "null"]
|
|
17599
|
+
}
|
|
17573
17600
|
});
|
|
17574
17601
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
17575
17602
|
/**
|
|
@@ -44153,9 +44180,6 @@ var NcSystemEventKindSchema = _enum([
|
|
|
44153
44180
|
"device-battery-normal",
|
|
44154
44181
|
"device-consumable-low",
|
|
44155
44182
|
"device-consumable-normal",
|
|
44156
|
-
"device-tank-low",
|
|
44157
|
-
"device-tank-full",
|
|
44158
|
-
"device-tank-normal",
|
|
44159
44183
|
"stream-online",
|
|
44160
44184
|
"stream-offline",
|
|
44161
44185
|
"node-online",
|
|
@@ -44202,13 +44226,14 @@ var NcSystemEventKindSchema = _enum([
|
|
|
44202
44226
|
"camera-enabled"
|
|
44203
44227
|
]);
|
|
44204
44228
|
/** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
|
|
44205
|
-
var NC_LEGACY_SYSTEM_EVENT_KINDS =
|
|
44229
|
+
var NC_LEGACY_SYSTEM_EVENT_KINDS = [
|
|
44206
44230
|
"camera-online",
|
|
44207
44231
|
"camera-offline",
|
|
44208
44232
|
"camera-disabled",
|
|
44209
44233
|
"camera-enabled"
|
|
44210
|
-
]
|
|
44211
|
-
|
|
44234
|
+
];
|
|
44235
|
+
var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
44236
|
+
NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
|
|
44212
44237
|
/**
|
|
44213
44238
|
* The panel's transitions, as ONE list.
|
|
44214
44239
|
*
|
|
@@ -44238,12 +44263,6 @@ var NC_ALARM_SYSTEM_EVENT_KINDS = [
|
|
|
44238
44263
|
* and both editors read it.
|
|
44239
44264
|
*/
|
|
44240
44265
|
var NC_CONSUMABLE_SYSTEM_EVENT_KINDS = ["device-consumable-low", "device-consumable-normal"];
|
|
44241
|
-
/** A vacuum's tank alerts (D642) — raised on the provider's own verdict. */
|
|
44242
|
-
var NC_TANK_SYSTEM_EVENT_KINDS = [
|
|
44243
|
-
"device-tank-low",
|
|
44244
|
-
"device-tank-full",
|
|
44245
|
-
"device-tank-normal"
|
|
44246
|
-
];
|
|
44247
44266
|
/**
|
|
44248
44267
|
* The consumable threshold a rule that does not state one judges at (D642).
|
|
44249
44268
|
* The operator's number ("default 15 %, configurable on the rule"), and the
|
|
@@ -45419,18 +45438,18 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
45419
45438
|
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
45420
45439
|
* job is not an open state, and the alarm stays instant.
|
|
45421
45440
|
*/
|
|
45422
|
-
var
|
|
45441
|
+
var NC_STATE_SUMMARY_SECTION_IDS = [
|
|
45423
45442
|
"device-state",
|
|
45424
45443
|
"streams",
|
|
45425
45444
|
"battery",
|
|
45426
45445
|
"consumables",
|
|
45427
|
-
"tanks",
|
|
45428
45446
|
"detection-blind",
|
|
45429
45447
|
"nodes",
|
|
45430
45448
|
"addons",
|
|
45431
45449
|
"addon-updates",
|
|
45432
45450
|
"updates"
|
|
45433
|
-
]
|
|
45451
|
+
];
|
|
45452
|
+
var NcStateSummarySectionIdSchema = _enum(NC_STATE_SUMMARY_SECTION_IDS);
|
|
45434
45453
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
45435
45454
|
var NcStateSummaryPreviewSectionSchema = object({
|
|
45436
45455
|
id: NcStateSummarySectionIdSchema,
|
|
@@ -45805,18 +45824,6 @@ var NC_CONDITION_CATALOG = [
|
|
|
45805
45824
|
value: "device-consumable-normal",
|
|
45806
45825
|
label: "Consumable replaced"
|
|
45807
45826
|
},
|
|
45808
|
-
{
|
|
45809
|
-
value: "device-tank-low",
|
|
45810
|
-
label: "Tank low (water, detergent)"
|
|
45811
|
-
},
|
|
45812
|
-
{
|
|
45813
|
-
value: "device-tank-full",
|
|
45814
|
-
label: "Tank full (dirty water, dust)"
|
|
45815
|
-
},
|
|
45816
|
-
{
|
|
45817
|
-
value: "device-tank-normal",
|
|
45818
|
-
label: "Tank back to normal"
|
|
45819
|
-
},
|
|
45820
45827
|
{
|
|
45821
45828
|
value: "export-completed",
|
|
45822
45829
|
label: "Export completed"
|
|
@@ -57815,20 +57822,68 @@ var BatteryStatusSchema = object({
|
|
|
57815
57822
|
*/
|
|
57816
57823
|
binary: boolean().optional()
|
|
57817
57824
|
});
|
|
57825
|
+
var BATTERY_DEVICE_TYPES = [
|
|
57826
|
+
DeviceType.Camera,
|
|
57827
|
+
DeviceType.Sensor,
|
|
57828
|
+
DeviceType.Button,
|
|
57829
|
+
DeviceType.Switch,
|
|
57830
|
+
DeviceType.PetFeeder,
|
|
57831
|
+
DeviceType.Container,
|
|
57832
|
+
DeviceType.Thermostat
|
|
57833
|
+
];
|
|
57834
|
+
/** Generic Customize target for the percentage reading (D936). */
|
|
57835
|
+
var batteryCustomize = {
|
|
57836
|
+
version: 1,
|
|
57837
|
+
targets: [{
|
|
57838
|
+
id: "percentage",
|
|
57839
|
+
cardinality: "scalar",
|
|
57840
|
+
vocabulary: {
|
|
57841
|
+
cap: "battery",
|
|
57842
|
+
stateField: "percentage"
|
|
57843
|
+
},
|
|
57844
|
+
deviceTypes: BATTERY_DEVICE_TYPES,
|
|
57845
|
+
apply: "add-or-replace",
|
|
57846
|
+
path: "percentage",
|
|
57847
|
+
sources: [{
|
|
57848
|
+
kind: "field",
|
|
57849
|
+
valueKinds: ["number", "string"],
|
|
57850
|
+
transforms: [{ kind: "identity" }, {
|
|
57851
|
+
kind: "linear",
|
|
57852
|
+
defaultScale: 1,
|
|
57853
|
+
defaultOffset: 0,
|
|
57854
|
+
clampMin: 0,
|
|
57855
|
+
clampMax: 100
|
|
57856
|
+
}]
|
|
57857
|
+
}],
|
|
57858
|
+
companions: [
|
|
57859
|
+
{
|
|
57860
|
+
kind: "constant",
|
|
57861
|
+
path: "charging",
|
|
57862
|
+
value: "unknown",
|
|
57863
|
+
when: "add"
|
|
57864
|
+
},
|
|
57865
|
+
{
|
|
57866
|
+
kind: "constant",
|
|
57867
|
+
path: "sleeping",
|
|
57868
|
+
value: false,
|
|
57869
|
+
when: "add"
|
|
57870
|
+
},
|
|
57871
|
+
{
|
|
57872
|
+
kind: "clock",
|
|
57873
|
+
path: "lastUpdated",
|
|
57874
|
+
when: "add"
|
|
57875
|
+
}
|
|
57876
|
+
],
|
|
57877
|
+
sourceReport: { status: "assignment-status" },
|
|
57878
|
+
advancedExpression: true
|
|
57879
|
+
}]
|
|
57880
|
+
};
|
|
57818
57881
|
var batteryCapability = {
|
|
57819
57882
|
name: "battery",
|
|
57820
57883
|
scope: "device",
|
|
57821
57884
|
deviceNative: true,
|
|
57822
57885
|
mode: "singleton",
|
|
57823
|
-
deviceTypes:
|
|
57824
|
-
DeviceType.Camera,
|
|
57825
|
-
DeviceType.Sensor,
|
|
57826
|
-
DeviceType.Button,
|
|
57827
|
-
DeviceType.Switch,
|
|
57828
|
-
DeviceType.PetFeeder,
|
|
57829
|
-
DeviceType.Container,
|
|
57830
|
-
DeviceType.Thermostat
|
|
57831
|
-
],
|
|
57886
|
+
deviceTypes: BATTERY_DEVICE_TYPES,
|
|
57832
57887
|
methods: {
|
|
57833
57888
|
/**
|
|
57834
57889
|
* Explicitly wake the camera from low-power sleep ahead of a
|
|
@@ -57912,6 +57967,7 @@ onStatusChanged: { data: object({
|
|
|
57912
57967
|
kind: "gauge",
|
|
57913
57968
|
unit: "%"
|
|
57914
57969
|
} } },
|
|
57970
|
+
customize: batteryCustomize,
|
|
57915
57971
|
/** Clock fields: written, but excluded from the compare that decides
|
|
57916
57972
|
* whether persisting is worth a SQLite commit. */
|
|
57917
57973
|
volatileStateFields: ["lastUpdated"]
|
|
@@ -58856,6 +58912,20 @@ _enum([
|
|
|
58856
58912
|
"empty",
|
|
58857
58913
|
"full"
|
|
58858
58914
|
]);
|
|
58915
|
+
/** The kind of an item, with the documented default for an absent one. */
|
|
58916
|
+
function consumableKindOf(item) {
|
|
58917
|
+
return item.kind ?? "wear";
|
|
58918
|
+
}
|
|
58919
|
+
/** The kind's default form: wear → part, waste → bin, supply → product. */
|
|
58920
|
+
var FORM_OF_KIND = {
|
|
58921
|
+
wear: "part",
|
|
58922
|
+
waste: "bin",
|
|
58923
|
+
supply: "product"
|
|
58924
|
+
};
|
|
58925
|
+
/** The form of an item: its own when the provider names one, else its kind's default. */
|
|
58926
|
+
function consumableFormOf(item) {
|
|
58927
|
+
return item.form ?? FORM_OF_KIND[consumableKindOf(item)];
|
|
58928
|
+
}
|
|
58859
58929
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
58860
58930
|
* each. */
|
|
58861
58931
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -58899,6 +58969,106 @@ var ConsumablesStatusSchema = object({
|
|
|
58899
58969
|
items: array(ConsumableItemSchema),
|
|
58900
58970
|
lastChangedAt: number()
|
|
58901
58971
|
});
|
|
58972
|
+
/** Synthesize seed for a link-built status (no native provider).
|
|
58973
|
+
*
|
|
58974
|
+
* ⚠ NO LIVE CALLER since 2026-08-08 (device-links deleted; see
|
|
58975
|
+
* `CapabilityStatusSchema.empty`). The wiring guidance below was written for
|
|
58976
|
+
* exactly the case the operator is asking about again — a Dreame's HA
|
|
58977
|
+
* consumable-life sensors — so it is kept for that conversation, not because
|
|
58978
|
+
* anything reads it today. */
|
|
58979
|
+
var EMPTY_STATUS = {
|
|
58980
|
+
items: [],
|
|
58981
|
+
lastChangedAt: 0
|
|
58982
|
+
};
|
|
58983
|
+
/** Seed for a NEW link-built consumable item. `key`/`label` are overwritten
|
|
58984
|
+
* with the link's `itemKey` (see `status.itemArray`), so the placeholder
|
|
58985
|
+
* empty strings never survive into a validated item. Link-built items are
|
|
58986
|
+
* not resettable — there is no native provider to receive `reset()`.
|
|
58987
|
+
*
|
|
58988
|
+
* Wiring guidance (HA vacuum consumable-life sensors):
|
|
58989
|
+
* - a percent-remaining source (`numeric-sensor`, unit '%') → `level` via
|
|
58990
|
+
* `identity` (or `linear` scale 1 offset 0 clamp [0,100] to be safe);
|
|
58991
|
+
* - an hours-remaining source (e.g. Dreame 'Main Brush Time Left', unit 'h')
|
|
58992
|
+
* → `level` via `linear` with scale = 100 / max-hours for that item
|
|
58993
|
+
* (e.g. main brush 300 h → scale 0.3333) + clamp [0,100];
|
|
58994
|
+
* - a discrete source (`enum-sensor`, e.g. mop pad 'installed') → `status`
|
|
58995
|
+
* via `enum-map` (e.g. { installed: 'ok', missing: 'replace' }).
|
|
58996
|
+
* A numeric→'replace' THRESHOLD (level < 10 → 'replace') is NOT expressible
|
|
58997
|
+
* with the current transform kinds — leave `status` null (valid) until the
|
|
58998
|
+
* expression transform lands. */
|
|
58999
|
+
/** Generic Customize target for one consumable item (D936). Native rows stay read-only. */
|
|
59000
|
+
var consumablesCustomize = {
|
|
59001
|
+
version: 1,
|
|
59002
|
+
targets: [{
|
|
59003
|
+
id: "items",
|
|
59004
|
+
cardinality: "keyedArray",
|
|
59005
|
+
vocabulary: { cap: "consumables" },
|
|
59006
|
+
deviceTypes: Object.values(DeviceType),
|
|
59007
|
+
apply: "add",
|
|
59008
|
+
path: "items",
|
|
59009
|
+
keyField: "key",
|
|
59010
|
+
labelField: "label",
|
|
59011
|
+
itemSchema: ConsumableItemSchema,
|
|
59012
|
+
nativeItems: "read-only",
|
|
59013
|
+
sourceReport: { status: "assignment-status" },
|
|
59014
|
+
fields: [
|
|
59015
|
+
{
|
|
59016
|
+
path: "level",
|
|
59017
|
+
sources: [{
|
|
59018
|
+
kind: "numeric",
|
|
59019
|
+
transforms: [{ kind: "identity" }, {
|
|
59020
|
+
kind: "linear",
|
|
59021
|
+
defaultScale: 1,
|
|
59022
|
+
defaultOffset: 0,
|
|
59023
|
+
clampMin: 0,
|
|
59024
|
+
clampMax: 100
|
|
59025
|
+
}]
|
|
59026
|
+
}]
|
|
59027
|
+
},
|
|
59028
|
+
{
|
|
59029
|
+
path: "remaining.value",
|
|
59030
|
+
sources: [{
|
|
59031
|
+
kind: "numeric",
|
|
59032
|
+
transforms: [{ kind: "identity" }]
|
|
59033
|
+
}],
|
|
59034
|
+
literals: [{
|
|
59035
|
+
path: "remaining.unit",
|
|
59036
|
+
values: [...ConsumableRemainingUnitSchema.options]
|
|
59037
|
+
}]
|
|
59038
|
+
},
|
|
59039
|
+
{
|
|
59040
|
+
path: "status",
|
|
59041
|
+
sources: [{
|
|
59042
|
+
kind: "enum",
|
|
59043
|
+
transforms: [{
|
|
59044
|
+
kind: "enum-map",
|
|
59045
|
+
outputValues: [...ConsumableStatusSchema.options],
|
|
59046
|
+
unmapped: null
|
|
59047
|
+
}]
|
|
59048
|
+
}]
|
|
59049
|
+
}
|
|
59050
|
+
],
|
|
59051
|
+
traits: [{
|
|
59052
|
+
path: "kind",
|
|
59053
|
+
values: [...ConsumableKindSchema.options],
|
|
59054
|
+
defaultValue: "wear"
|
|
59055
|
+
}, {
|
|
59056
|
+
path: "form",
|
|
59057
|
+
values: [...ConsumableFormSchema.options],
|
|
59058
|
+
defaultValue: "part"
|
|
59059
|
+
}],
|
|
59060
|
+
companions: [{
|
|
59061
|
+
kind: "clock",
|
|
59062
|
+
path: "lastChangedAt",
|
|
59063
|
+
when: "add"
|
|
59064
|
+
}, {
|
|
59065
|
+
kind: "clock",
|
|
59066
|
+
path: "lastFetchedAt",
|
|
59067
|
+
when: "add"
|
|
59068
|
+
}],
|
|
59069
|
+
advancedExpression: true
|
|
59070
|
+
}]
|
|
59071
|
+
};
|
|
58902
59072
|
var consumablesCapability = {
|
|
58903
59073
|
name: "consumables",
|
|
58904
59074
|
scope: "device",
|
|
@@ -58936,10 +59106,7 @@ reset: method(object({
|
|
|
58936
59106
|
status: {
|
|
58937
59107
|
schema: ConsumablesStatusSchema,
|
|
58938
59108
|
kind: "push",
|
|
58939
|
-
empty:
|
|
58940
|
-
items: [],
|
|
58941
|
-
lastChangedAt: 0
|
|
58942
|
-
},
|
|
59109
|
+
empty: EMPTY_STATUS,
|
|
58943
59110
|
itemArray: {
|
|
58944
59111
|
path: "items",
|
|
58945
59112
|
keyField: "key",
|
|
@@ -58975,6 +59142,7 @@ reset: method(object({
|
|
|
58975
59142
|
* brush's remaining life and a dishwasher's salt are each recorded the moment
|
|
58976
59143
|
* their provider reports them; an item that appears later gets its series.
|
|
58977
59144
|
*/
|
|
59145
|
+
customize: consumablesCustomize,
|
|
58978
59146
|
history: {
|
|
58979
59147
|
fields: {},
|
|
58980
59148
|
items: {
|
|
@@ -59739,6 +59907,36 @@ var dishwasherCapability = {
|
|
|
59739
59907
|
powerOn: { kind: "boolean" }
|
|
59740
59908
|
} }
|
|
59741
59909
|
};
|
|
59910
|
+
/** Pulse override: a rising edge advances `lastPressedAt` and the press count. */
|
|
59911
|
+
var doorbellCustomize = {
|
|
59912
|
+
version: 1,
|
|
59913
|
+
targets: [{
|
|
59914
|
+
id: "pressed",
|
|
59915
|
+
cardinality: "event",
|
|
59916
|
+
shape: "pulse",
|
|
59917
|
+
vocabulary: {
|
|
59918
|
+
cap: "doorbell",
|
|
59919
|
+
eventName: "onPressed"
|
|
59920
|
+
},
|
|
59921
|
+
deviceTypes: [DeviceType.Camera],
|
|
59922
|
+
apply: "add",
|
|
59923
|
+
applyAuthority: { kind: "composition-claim" },
|
|
59924
|
+
eventName: "onPressed",
|
|
59925
|
+
edges: ["rising"],
|
|
59926
|
+
timestampPath: "lastPressedAt",
|
|
59927
|
+
counterPath: "pressCountSinceStart",
|
|
59928
|
+
highWater: "composer-advance",
|
|
59929
|
+
combine: "any",
|
|
59930
|
+
debounce: {
|
|
59931
|
+
kind: "rising-edge",
|
|
59932
|
+
defaultDebounceMs: 2e3,
|
|
59933
|
+
changedAtRequired: true
|
|
59934
|
+
},
|
|
59935
|
+
sources: [{ kind: "binary" }, { kind: "switch" }],
|
|
59936
|
+
sourceReport: { status: "assignment-status" },
|
|
59937
|
+
advancedExpression: true
|
|
59938
|
+
}]
|
|
59939
|
+
};
|
|
59742
59940
|
var DoorbellStatusSchema = object({
|
|
59743
59941
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
59744
59942
|
lastPressedAt: number().nullable(),
|
|
@@ -59805,7 +60003,8 @@ onPressed: {
|
|
|
59805
60003
|
/**
|
|
59806
60004
|
* History (D850): none — `pressCountSinceStart` resets with the addon, so it is not a monotonic meter; presses live in the events ledger.
|
|
59807
60005
|
*/
|
|
59808
|
-
history: "none"
|
|
60006
|
+
history: "none",
|
|
60007
|
+
customize: doorbellCustomize
|
|
59809
60008
|
};
|
|
59810
60009
|
/**
|
|
59811
60010
|
* Enum-state sensor — a string value picked from a finite option set.
|
|
@@ -62262,6 +62461,38 @@ authKey: string().optional() }), object({
|
|
|
62262
62461
|
/** Human-readable error when `ok: false`. */
|
|
62263
62462
|
error: string().optional()
|
|
62264
62463
|
}), { kind: "mutation" });
|
|
62464
|
+
/** Span override: start on a rising edge, end on a fall or this timeout. */
|
|
62465
|
+
var motionCustomize = {
|
|
62466
|
+
version: 1,
|
|
62467
|
+
targets: [{
|
|
62468
|
+
id: "detected",
|
|
62469
|
+
cardinality: "event",
|
|
62470
|
+
shape: "span",
|
|
62471
|
+
vocabulary: {
|
|
62472
|
+
cap: "motion",
|
|
62473
|
+
eventName: "onMotionChanged"
|
|
62474
|
+
},
|
|
62475
|
+
deviceTypes: [DeviceType.Camera],
|
|
62476
|
+
apply: "replace",
|
|
62477
|
+
applyAuthority: {
|
|
62478
|
+
kind: "camera-sensors",
|
|
62479
|
+
timeoutField: "motionCooldownMs"
|
|
62480
|
+
},
|
|
62481
|
+
eventName: "onMotionChanged",
|
|
62482
|
+
start: "rising-edge",
|
|
62483
|
+
end: "falling-edge-or-timeout",
|
|
62484
|
+
timeoutMs: 3e4,
|
|
62485
|
+
combine: "any",
|
|
62486
|
+
sourceModes: [
|
|
62487
|
+
"in-addition",
|
|
62488
|
+
"confirm",
|
|
62489
|
+
"replace"
|
|
62490
|
+
],
|
|
62491
|
+
sources: [{ kind: "binary" }, { kind: "switch" }],
|
|
62492
|
+
sourceReport: { status: "assignment-status" },
|
|
62493
|
+
advancedExpression: false
|
|
62494
|
+
}]
|
|
62495
|
+
};
|
|
62265
62496
|
/**
|
|
62266
62497
|
* Hardware / firmware motion sensor cap — binary detected state plus
|
|
62267
62498
|
* a timestamp of the last observation. Distinct from
|
|
@@ -62426,7 +62657,8 @@ onMotionChanged: { data: MotionOnMotionChangedDataSchema } },
|
|
|
62426
62657
|
history: { fields: { detected: {
|
|
62427
62658
|
kind: "boolean",
|
|
62428
62659
|
excludeDeviceTypes: [DeviceType.Camera]
|
|
62429
|
-
} } }
|
|
62660
|
+
} } },
|
|
62661
|
+
customize: motionCustomize
|
|
62430
62662
|
};
|
|
62431
62663
|
/**
|
|
62432
62664
|
* Motion-trigger toggle for accessory devices.
|
|
@@ -65187,6 +65419,125 @@ var ptzAutotrackCapability = {
|
|
|
65187
65419
|
*/
|
|
65188
65420
|
history: "none"
|
|
65189
65421
|
};
|
|
65422
|
+
var RUNNING_POWER_START_DELAY_MS = 3e4;
|
|
65423
|
+
var RUNNING_POWER_STOP_DELAY_MS = 18e4;
|
|
65424
|
+
var RunningStateSourceSchema = _enum(["native", "assigned"]);
|
|
65425
|
+
var RunningStateStatusSchema = object({
|
|
65426
|
+
/** null = unknown — never coerced to false (D393). */
|
|
65427
|
+
running: boolean().nullable(),
|
|
65428
|
+
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
65429
|
+
since: number().nullable(),
|
|
65430
|
+
source: RunningStateSourceSchema,
|
|
65431
|
+
phase: string().nullable(),
|
|
65432
|
+
/** null until a reading has been published (D393). */
|
|
65433
|
+
lastFetchedAt: number().nullable()
|
|
65434
|
+
});
|
|
65435
|
+
var RunningFlipEventDataSchema = object({
|
|
65436
|
+
deviceId: number(),
|
|
65437
|
+
since: number().nullable(),
|
|
65438
|
+
phase: string().nullable()
|
|
65439
|
+
});
|
|
65440
|
+
var RUNNING_DEVICE_TYPES = Object.values(DeviceType);
|
|
65441
|
+
/** Generic Customize target for the running boolean (D936). */
|
|
65442
|
+
var runningCustomize = {
|
|
65443
|
+
version: 1,
|
|
65444
|
+
targets: [{
|
|
65445
|
+
id: "running",
|
|
65446
|
+
cardinality: "scalar",
|
|
65447
|
+
vocabulary: {
|
|
65448
|
+
cap: "running-state",
|
|
65449
|
+
stateField: "running"
|
|
65450
|
+
},
|
|
65451
|
+
deviceTypes: [
|
|
65452
|
+
DeviceType.Dishwasher,
|
|
65453
|
+
DeviceType.Vacuum,
|
|
65454
|
+
DeviceType.LawnMower,
|
|
65455
|
+
DeviceType.MediaPlayer,
|
|
65456
|
+
DeviceType.WaterHeater,
|
|
65457
|
+
DeviceType.Humidifier,
|
|
65458
|
+
DeviceType.Fan,
|
|
65459
|
+
DeviceType.Climate,
|
|
65460
|
+
DeviceType.Thermostat,
|
|
65461
|
+
DeviceType.PetFeeder
|
|
65462
|
+
],
|
|
65463
|
+
apply: "add-or-replace",
|
|
65464
|
+
path: "running",
|
|
65465
|
+
sources: [
|
|
65466
|
+
{
|
|
65467
|
+
kind: "switch",
|
|
65468
|
+
transforms: [{ kind: "identity" }]
|
|
65469
|
+
},
|
|
65470
|
+
{
|
|
65471
|
+
kind: "binary",
|
|
65472
|
+
transforms: [{ kind: "identity" }, { kind: "invert" }]
|
|
65473
|
+
},
|
|
65474
|
+
{
|
|
65475
|
+
kind: "numeric",
|
|
65476
|
+
requiredUnit: "W",
|
|
65477
|
+
transforms: [{
|
|
65478
|
+
kind: "threshold",
|
|
65479
|
+
comparison: "gte",
|
|
65480
|
+
defaultThreshold: 5,
|
|
65481
|
+
defaultStartDwellMs: RUNNING_POWER_START_DELAY_MS,
|
|
65482
|
+
defaultStopDwellMs: RUNNING_POWER_STOP_DELAY_MS,
|
|
65483
|
+
thresholdUnit: "W"
|
|
65484
|
+
}]
|
|
65485
|
+
}
|
|
65486
|
+
],
|
|
65487
|
+
companions: [
|
|
65488
|
+
{
|
|
65489
|
+
kind: "constant",
|
|
65490
|
+
path: "source",
|
|
65491
|
+
value: "assigned",
|
|
65492
|
+
when: "always"
|
|
65493
|
+
},
|
|
65494
|
+
{
|
|
65495
|
+
kind: "constant",
|
|
65496
|
+
path: "phase",
|
|
65497
|
+
value: null,
|
|
65498
|
+
when: "always"
|
|
65499
|
+
},
|
|
65500
|
+
{
|
|
65501
|
+
kind: "clock",
|
|
65502
|
+
path: "lastFetchedAt",
|
|
65503
|
+
when: "always"
|
|
65504
|
+
},
|
|
65505
|
+
{
|
|
65506
|
+
kind: "transition-time",
|
|
65507
|
+
path: "since",
|
|
65508
|
+
sourceChangedAt: "prefer"
|
|
65509
|
+
}
|
|
65510
|
+
],
|
|
65511
|
+
sourceReport: {
|
|
65512
|
+
status: "assignment-status",
|
|
65513
|
+
runtimeField: "source",
|
|
65514
|
+
nativeValue: "native",
|
|
65515
|
+
assignedValue: "assigned"
|
|
65516
|
+
},
|
|
65517
|
+
advancedExpression: true
|
|
65518
|
+
}]
|
|
65519
|
+
};
|
|
65520
|
+
var runningStateCapability = {
|
|
65521
|
+
name: "running-state",
|
|
65522
|
+
scope: "device",
|
|
65523
|
+
deviceNative: true,
|
|
65524
|
+
mode: "singleton",
|
|
65525
|
+
deviceTypes: RUNNING_DEVICE_TYPES,
|
|
65526
|
+
methods: {},
|
|
65527
|
+
events: {
|
|
65528
|
+
onStarted: { data: RunningFlipEventDataSchema },
|
|
65529
|
+
onFinished: { data: RunningFlipEventDataSchema }
|
|
65530
|
+
},
|
|
65531
|
+
status: {
|
|
65532
|
+
schema: RunningStateStatusSchema,
|
|
65533
|
+
kind: "push"
|
|
65534
|
+
},
|
|
65535
|
+
runtimeState: RunningStateStatusSchema,
|
|
65536
|
+
durability: "restored",
|
|
65537
|
+
history: { fields: { running: { kind: "boolean" } } },
|
|
65538
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
65539
|
+
customize: runningCustomize
|
|
65540
|
+
};
|
|
65190
65541
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
65191
65542
|
kind: "mutation",
|
|
65192
65543
|
auth: "admin"
|
|
@@ -70271,6 +70622,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
70271
70622
|
ptzAutotrack: ptzAutotrackCapability,
|
|
70272
70623
|
recordingOnboard: recordingOnboardCapability,
|
|
70273
70624
|
recordingSignal: recordingSignalCapability,
|
|
70625
|
+
runningState: runningStateCapability,
|
|
70274
70626
|
sceneMonitor: sceneMonitorCapability,
|
|
70275
70627
|
scriptRunner: scriptRunnerCapability,
|
|
70276
70628
|
smoke: smokeCapability,
|
|
@@ -78530,6 +78882,13 @@ Object.freeze({
|
|
|
78530
78882
|
access: "create",
|
|
78531
78883
|
role: "admin"
|
|
78532
78884
|
},
|
|
78885
|
+
"runningState.getStatus": {
|
|
78886
|
+
capName: "running-state",
|
|
78887
|
+
capScope: "device",
|
|
78888
|
+
addonId: null,
|
|
78889
|
+
access: "view",
|
|
78890
|
+
role: "viewer"
|
|
78891
|
+
},
|
|
78533
78892
|
"sceneMonitor.captureReference": {
|
|
78534
78893
|
capName: "scene-monitor",
|
|
78535
78894
|
capScope: "device",
|
|
@@ -83244,6 +83603,32 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
83244
83603
|
}],
|
|
83245
83604
|
events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
|
|
83246
83605
|
},
|
|
83606
|
+
"running-state": {
|
|
83607
|
+
scope: "device",
|
|
83608
|
+
noun: t("Running", "In funzione"),
|
|
83609
|
+
state: [{
|
|
83610
|
+
kind: "boolean",
|
|
83611
|
+
field: "running",
|
|
83612
|
+
label: t("Running", "In funzione"),
|
|
83613
|
+
whenTrue: t("When {device} starts", "Quando {device} inizia"),
|
|
83614
|
+
whenFalse: t("When {device} finishes", "Quando {device} finisce"),
|
|
83615
|
+
icon: "play"
|
|
83616
|
+
}],
|
|
83617
|
+
events: {
|
|
83618
|
+
onStarted: {
|
|
83619
|
+
category: EventCategory.RunningStarted,
|
|
83620
|
+
label: t("Started running", "Ha iniziato a funzionare"),
|
|
83621
|
+
phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
|
|
83622
|
+
icon: "play"
|
|
83623
|
+
},
|
|
83624
|
+
onFinished: {
|
|
83625
|
+
category: EventCategory.RunningFinished,
|
|
83626
|
+
label: t("Finished", "Ha finito"),
|
|
83627
|
+
phrase: t("When {device} finishes", "Quando {device} finisce"),
|
|
83628
|
+
icon: "square"
|
|
83629
|
+
}
|
|
83630
|
+
}
|
|
83631
|
+
},
|
|
83247
83632
|
update: {
|
|
83248
83633
|
scope: "device",
|
|
83249
83634
|
noun: t("Firmware update", "Aggiornamento firmware"),
|
|
@@ -86784,6 +87169,11 @@ Object.freeze({
|
|
|
86784
87169
|
form: "single",
|
|
86785
87170
|
optional: true
|
|
86786
87171
|
}],
|
|
87172
|
+
"runningState.getStatus": [{
|
|
87173
|
+
name: "deviceId",
|
|
87174
|
+
form: "single",
|
|
87175
|
+
optional: false
|
|
87176
|
+
}],
|
|
86787
87177
|
"sceneMonitor.captureReference": [{
|
|
86788
87178
|
name: "deviceId",
|
|
86789
87179
|
form: "single",
|
|
@@ -87379,6 +87769,96 @@ var BucketAccumulator = class {
|
|
|
87379
87769
|
}
|
|
87380
87770
|
};
|
|
87381
87771
|
DeviceType.Camera;
|
|
87772
|
+
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;
|
|
87773
|
+
/**
|
|
87774
|
+
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
87775
|
+
* `z.infer`, they do not restate the shape.
|
|
87776
|
+
*/
|
|
87777
|
+
var OverrideSourceSchema = object({
|
|
87778
|
+
addonId: string().min(1),
|
|
87779
|
+
stableId: string().min(1),
|
|
87780
|
+
cap: string().min(1),
|
|
87781
|
+
fieldPath: string().min(1)
|
|
87782
|
+
});
|
|
87783
|
+
var CustomizeTransformDraftSchema = discriminatedUnion("kind", [
|
|
87784
|
+
object({ kind: literal("identity") }),
|
|
87785
|
+
object({ kind: literal("invert") }),
|
|
87786
|
+
object({
|
|
87787
|
+
kind: literal("threshold"),
|
|
87788
|
+
comparison: _enum(["gte", "lte"]),
|
|
87789
|
+
threshold: number(),
|
|
87790
|
+
startDwellMs: number().nonnegative(),
|
|
87791
|
+
stopDwellMs: number().nonnegative()
|
|
87792
|
+
}),
|
|
87793
|
+
object({
|
|
87794
|
+
kind: literal("linear"),
|
|
87795
|
+
scale: number(),
|
|
87796
|
+
offset: number(),
|
|
87797
|
+
clampMin: number().optional(),
|
|
87798
|
+
clampMax: number().optional()
|
|
87799
|
+
}),
|
|
87800
|
+
object({
|
|
87801
|
+
kind: literal("enum-map"),
|
|
87802
|
+
mapping: record(string(), string().nullable())
|
|
87803
|
+
}),
|
|
87804
|
+
object({ kind: literal("number") })
|
|
87805
|
+
]);
|
|
87806
|
+
var ScalarOverrideDraftSchema = object({
|
|
87807
|
+
kind: literal("scalar"),
|
|
87808
|
+
cap: string().min(1),
|
|
87809
|
+
targetId: string().min(1),
|
|
87810
|
+
source: OverrideSourceSchema,
|
|
87811
|
+
transform: CustomizeTransformDraftSchema
|
|
87812
|
+
});
|
|
87813
|
+
var KeyedArrayOverrideDraftSchema = object({
|
|
87814
|
+
kind: literal("keyedArray"),
|
|
87815
|
+
cap: string().min(1),
|
|
87816
|
+
targetId: string().min(1),
|
|
87817
|
+
key: string().min(1),
|
|
87818
|
+
label: string().min(1),
|
|
87819
|
+
fieldPath: string().min(1),
|
|
87820
|
+
source: OverrideSourceSchema,
|
|
87821
|
+
transform: CustomizeTransformDraftSchema
|
|
87822
|
+
});
|
|
87823
|
+
var PulseOverrideDraftSchema = object({
|
|
87824
|
+
kind: literal("pulse"),
|
|
87825
|
+
cap: string().min(1),
|
|
87826
|
+
targetId: string().min(1),
|
|
87827
|
+
enabled: boolean(),
|
|
87828
|
+
debounceMs: number().nonnegative(),
|
|
87829
|
+
sources: array(OverrideSourceSchema).min(1)
|
|
87830
|
+
});
|
|
87831
|
+
var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
|
|
87832
|
+
"in-addition",
|
|
87833
|
+
"confirm",
|
|
87834
|
+
"replace"
|
|
87835
|
+
]).optional() });
|
|
87836
|
+
discriminatedUnion("kind", [
|
|
87837
|
+
ScalarOverrideDraftSchema,
|
|
87838
|
+
KeyedArrayOverrideDraftSchema,
|
|
87839
|
+
PulseOverrideDraftSchema,
|
|
87840
|
+
object({
|
|
87841
|
+
kind: literal("span"),
|
|
87842
|
+
cap: string().min(1),
|
|
87843
|
+
targetId: string().min(1),
|
|
87844
|
+
timeoutMs: number().nonnegative(),
|
|
87845
|
+
cooldownMs: number().nonnegative().optional(),
|
|
87846
|
+
sources: array(SpanSourceDraftSchema)
|
|
87847
|
+
})
|
|
87848
|
+
]);
|
|
87849
|
+
object({
|
|
87850
|
+
targetId: string().min(1),
|
|
87851
|
+
configured: boolean(),
|
|
87852
|
+
source: _enum(["native", "assigned"]),
|
|
87853
|
+
state: _enum([
|
|
87854
|
+
"active",
|
|
87855
|
+
"stale",
|
|
87856
|
+
"released",
|
|
87857
|
+
"unavailable"
|
|
87858
|
+
]),
|
|
87859
|
+
reason: string().nullable()
|
|
87860
|
+
});
|
|
87861
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
87382
87862
|
var G711_SCALE_CORRECTION_DB = {
|
|
87383
87863
|
PCMU: 20 * Math.log10(4),
|
|
87384
87864
|
PCMA: 20 * Math.log10(8)
|
|
@@ -87500,6 +87980,7 @@ new Set(["devices", "classes"]);
|
|
|
87500
87980
|
* narrows, and still fails CLOSED on a subject that cannot produce the identity
|
|
87501
87981
|
* it tests (a device the mirror cannot name is not evidence of a camera).
|
|
87502
87982
|
*/
|
|
87983
|
+
var LEGACY_KINDS_WITHOUT_FILTERS = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
87503
87984
|
/**
|
|
87504
87985
|
* Every filter, for the callers that must cover all of them (guards, tests).
|
|
87505
87986
|
*
|
|
@@ -87523,6 +88004,7 @@ var NC_SYSTEM_EVENT_FILTER_KEYS = [
|
|
|
87523
88004
|
* ignores it and an editor hides its input. It never means "excluded".
|
|
87524
88005
|
*/
|
|
87525
88006
|
function systemEventFilterApplies(kind, filter) {
|
|
88007
|
+
if (LEGACY_KINDS_WITHOUT_FILTERS.has(kind)) return false;
|
|
87526
88008
|
switch (filter) {
|
|
87527
88009
|
case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("motion-") || kind.startsWith("recording-") || kind === "alarm-triggered";
|
|
87528
88010
|
case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind" || kind.startsWith("motion-");
|
|
@@ -87564,9 +88046,6 @@ var NC_SYSTEM_EVENT_FAMILY = {
|
|
|
87564
88046
|
"device-battery-normal": "device-events",
|
|
87565
88047
|
"device-consumable-low": "device-events",
|
|
87566
88048
|
"device-consumable-normal": "device-events",
|
|
87567
|
-
"device-tank-low": "device-events",
|
|
87568
|
-
"device-tank-full": "device-events",
|
|
87569
|
-
"device-tank-normal": "device-events",
|
|
87570
88049
|
"stream-online": "device-events",
|
|
87571
88050
|
"stream-offline": "device-events",
|
|
87572
88051
|
"detection-blind": "device-events",
|
|
@@ -87661,16 +88140,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
87661
88140
|
label: "Consumables",
|
|
87662
88141
|
kinds: ["device-consumable-low", "device-consumable-normal"]
|
|
87663
88142
|
},
|
|
87664
|
-
{
|
|
87665
|
-
id: "tanks",
|
|
87666
|
-
family: "device-events",
|
|
87667
|
-
label: "Tanks",
|
|
87668
|
-
kinds: [
|
|
87669
|
-
"device-tank-low",
|
|
87670
|
-
"device-tank-full",
|
|
87671
|
-
"device-tank-normal"
|
|
87672
|
-
]
|
|
87673
|
-
},
|
|
87674
88143
|
{
|
|
87675
88144
|
id: "detection-blind",
|
|
87676
88145
|
family: "device-events",
|
|
@@ -89079,11 +89548,6 @@ var RULE_BODY_ONLY = ["body"];
|
|
|
89079
89548
|
var RULE_TEXT = ["title", "body"];
|
|
89080
89549
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
89081
89550
|
var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
|
|
89082
|
-
var TANK = [
|
|
89083
|
-
"device-tank-low",
|
|
89084
|
-
"device-tank-full",
|
|
89085
|
-
"device-tank-normal"
|
|
89086
|
-
];
|
|
89087
89551
|
var ALERT_EPISODE = [
|
|
89088
89552
|
"alert-critical",
|
|
89089
89553
|
"alert-error",
|
|
@@ -89115,7 +89579,6 @@ var DEVICE_EVENTS = [
|
|
|
89115
89579
|
"device-enabled",
|
|
89116
89580
|
...BATTERY,
|
|
89117
89581
|
...CONSUMABLE,
|
|
89118
|
-
...TANK,
|
|
89119
89582
|
"stream-online",
|
|
89120
89583
|
"stream-offline",
|
|
89121
89584
|
"detection-blind",
|
|
@@ -89161,12 +89624,6 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
89161
89624
|
example: "Robot — filter 10 %",
|
|
89162
89625
|
kinds: CONSUMABLE
|
|
89163
89626
|
},
|
|
89164
|
-
{
|
|
89165
|
-
name: "summaryTanks",
|
|
89166
|
-
label: "Summary: tanks",
|
|
89167
|
-
example: "Robot — clean water low",
|
|
89168
|
-
kinds: TANK
|
|
89169
|
-
},
|
|
89170
89627
|
{
|
|
89171
89628
|
name: "summaryDetection",
|
|
89172
89629
|
label: "Summary: cameras detecting nothing",
|
|
@@ -89575,18 +90032,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
89575
90032
|
families: ["rule"],
|
|
89576
90033
|
fields: [...RULE_TEXT],
|
|
89577
90034
|
kinds: ["system"],
|
|
89578
|
-
systemEventKinds: [...CONSUMABLE
|
|
89579
|
-
},
|
|
89580
|
-
{
|
|
89581
|
-
name: "tank",
|
|
89582
|
-
label: "Tank",
|
|
89583
|
-
description: "Which tank, as a stable token: cleanWater, dirtyWater, detergent, dustBin, or the device key of any other supply (salt, rinse aid).",
|
|
89584
|
-
example: "clean water",
|
|
89585
|
-
group: "system",
|
|
89586
|
-
families: ["rule"],
|
|
89587
|
-
fields: [...RULE_TEXT],
|
|
89588
|
-
kinds: ["system"],
|
|
89589
|
-
systemEventKinds: [...TANK]
|
|
90035
|
+
systemEventKinds: [...CONSUMABLE]
|
|
89590
90036
|
},
|
|
89591
90037
|
{
|
|
89592
90038
|
name: "profile",
|
|
@@ -90237,9 +90683,6 @@ var NC_TEMPLATE_VARS = [
|
|
|
90237
90683
|
* delete it from here then, and the served catalog names it again.
|
|
90238
90684
|
*/
|
|
90239
90685
|
var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
|
|
90240
|
-
"device-tank-low",
|
|
90241
|
-
"device-tank-full",
|
|
90242
|
-
"device-tank-normal",
|
|
90243
90686
|
"node-restarting",
|
|
90244
90687
|
"node-updating",
|
|
90245
90688
|
"alert-critical",
|
|
@@ -90399,15 +90842,6 @@ var CLASS_BY_KIND = new Map([
|
|
|
90399
90842
|
snapshotLabel: "Consumables low now",
|
|
90400
90843
|
snapshotSection: "consumables"
|
|
90401
90844
|
},
|
|
90402
|
-
{
|
|
90403
|
-
id: "tanks",
|
|
90404
|
-
family: "device-events",
|
|
90405
|
-
label: "Tanks (low or full / back to normal)",
|
|
90406
|
-
bad: ["device-tank-low", "device-tank-full"],
|
|
90407
|
-
recovery: ["device-tank-normal"],
|
|
90408
|
-
snapshotLabel: "Tanks low or full now",
|
|
90409
|
-
snapshotSection: "tanks"
|
|
90410
|
-
},
|
|
90411
90845
|
{
|
|
90412
90846
|
id: "motion-noise",
|
|
90413
90847
|
family: "device-events",
|
|
@@ -92325,4 +92759,4 @@ function buildClipModelRegistry(entries) {
|
|
|
92325
92759
|
/** The built-in catalog's registry. */
|
|
92326
92760
|
var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
|
|
92327
92761
|
//#endregion
|
|
92328
|
-
export { MediaFileKindEnum as $,
|
|
92762
|
+
export { MediaFileKindEnum as $, RECORD_QUERY_MAX as $i, consumableFormOf as $n, parseProcStatus as $r, OpsLogEntrySchema as $t, DeclaredDevices as A, summarizeReview as Ai, TrackSideSchema as An, isDefaultAlarmProfileId as Ar, NcAlarmSensorsInputSchema as At, FULL_IMAGE_BBOX as B, viewerLinkBaseOf as Bi, applyModeDelaysEdits as Bn, isScheduleActive as Br, NcRuleUpdateInputSchema as Bt, ClearTrackRelationResultSchema as C, tuple as Ca, sensorRaisedOf as Ci, TimelapseRuleInputSchema as Cn, gifDeriveSpeed as Cr, NC_SNOOZE_MAX_MINUTES as Ct, DEFAULT_TIMELAPSE_PREVIEW_TEXT as D, subKindsOf as Di, TrackPuritySchema as Dn, isAlertEpisodeSeverity as Dr, NC_TEMPLATE_VARS as Dt, DEFAULT_EVENT_COLOR as E, EventCategory as Ea, storageOccupancyCapability as Ei, TrackPlacementSchema as En, isAlertEpisodeOpen as Er, NC_TAXONOMY as Et, EVENT_DENSITY_BATCH_MAX as F, systemEventSummaryScheduleOf as Fi, alarmPanelCapability as Fn, isKnownTemplateVar as Fr, NcRuleActionSchema as Ft, ListTrackRelationsResultSchema as G, evaluateSensorEdge as Gi, audioMetricsCapability as Gn, linkedStepOf as Gr, NcSnoozeSuppressedSchema as Gt, LABEL_SUPPLY_MACRO as H, zoneAnalyticsCapability as Hi, applySecureOnArmEdit as Hn, isSystemEventSummaryRule as Hr, NcSharedSequenceSchema as Ht, EVENT_KIND_BY_CAP as I, systemEventSummarySplitOf as Ii, alertEpisodeId as In, isLabelSupplyStepId as Ir, NcRuleInputSchema as It, MAX_BIRTH_DECISION_RECORDS as J, errMsg as Ji, buildSubjectPath as Jn, ncMediaPolicyError as Jr, NcTaxonomySchema as Jt, LockStateSchema as K, isSourceCap as Ki, audioModeOf as Kn, mayWriteToLocation as Kr, NcStateSummarySectionIdSchema as Kt, EVENT_OWNER_TYPES as L, templateCarriesSummary as Li, alertEpisodeKind as Ln, isMediaOwnerType as Lr, NcRulePatchSchema as Lt, EMBEDDING_MODEL_FAILED as M, systemEventDeliveryProblems as Mi, activateAlarmProfile as Mn, isDrawableSubjectPath as Mr, NcAlarmSettingsPatchSchema as Mt, EMBEDDING_REQUIREMENTS_FAILED as N, systemEventFamilyProblems as Ni, addonWidgetsSourceCapability as Nn, isEventKindLabelKey as Nr, NcConditionDescriptorSchema as Nt, DETECTION_MACRO_CLASSES as O, subjectPathSampleFromBox as Oi, TrackRelationKindSchema as On, isAppLinkBase as Or, NcAlarmConfigSchema as Ot, EMBEDDING_REQUIREMENTS_UNAVAILABLE as P, systemEventFilterApplies as Pi, alarmDeviceSecureOnArm as Pn, isEventOwnerType as Pr, NcConditionsSchema as Pt, MOTION_CLOSE_AFTER_MS as Q, RECORD_MAX_DATA_BYTES as Qi, cloneAlarmSettings as Qn, parseAlertEpisodePayload as Qr, OPS_LOG_DEFAULT_LIMIT as Qt, EXPORT_DENSE_MAX_RANGES as R, templateVarsFor as Ri, alertEpisodePayload as Rn, isRetiredClearKey as Rr, NcRuleSchema as Rt, ClearTrackRelationInputSchema as S, templateLiteral as Sa, secureActuationFor as Si, TRACK_RELATIONS_DEFAULT_LIMIT as Sn, failureContributionCapability as Sr, NC_SENSOR_TRANSITION_KINDS as St, DEFAULT_DETAIL_CROP_CONVENTION as T, unknown as Ta, startMoverUnderClearance as Ti, TimelapseRuleSchema as Tn, isAlarmControllableCap as Tr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Tt, LabelAttributionSchema as U, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Ui, armRemovalReconcile as Un, isVectorIndexDimConflict as Ur, NcSnoozeInputSchema as Ut, FailureCounters as V, withSystemEventClasses as Vi, applyNonBlockingEdit as Vn, isSystemDelivery as Vr, NcScheduleSchema as Vt, ListTrackRelationsInputSchema as W, canonicalHash as Wi, assertTimelapseCadences as Wn, kebabToCamel as Wr, NcSnoozeSchema as Wt, MAX_TRACK_PURITIES as X, CamProfileSchema as Xi, calendarEventLocalSpan as Xn, notificationRulesCapability as Xr, NcTemplatePreviewSchema as Xt, MAX_BIRTH_LATENCY_PROXY_MS as Y, BaseAddon as Yi, buildViewerLink as Yn, normalizeNcMediaPolicy as Yr, NcTemplatePreviewInputSchema as Yt, MAX_TRACK_RELATIONS as Z, InvalidRecordError as Zi, classifyRetrainReview as Zn, occupancyScope as Zr, NcTemplateVarDescriptorSchema as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, object as _a, ruleBelongsToAlarm as _i, SceneMonitorSchema as _n, encodeVectorBase64 as _r, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as _t, CLIP_EMBEDDING_STEP_ID as a, isDeviceScopedCap as aa, readMotionTriggeredBy as ai, RetrainDismissedSchema as an, deriveDetailCropRect as ar, NC_ALARM_NOTIFY_FIELDS as at, BucketAccumulator as b, strictObject as ba, ruleKindOf as bi, SetTrackRelationInputSchema as bn, evictionPolicyOfLocation as br, NC_GROUPING_MAX_SEC as bt, readClusterModelPinStrict as c, sleep as ca, resolveClipSearchMinScore as ci, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as cn, describeSystemEventDeliveryProblem as cr, NC_AUDIO_CONFIRM_HITS_DEFAULT as ct, APPEARANCE_BLOCKS as d, array as da, resolveModeNotifyPolicy as di, SCENE_DEFAULT_CHECK_INTERVAL_SEC as dn, deviceRemovalHookCapability as dr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as dt, createEvent as ea, pickFaceRescoreIntervalMinutes as ei, PackageLlmVerdictSchema as en, consumableLowPercentOf as er, MotionTriggeredBySchema as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, boolean as fa, resolveNcMediaImage as fi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as fn, embeddingEncoderCapability as fr, NC_CLIP_RETENTION_MAX_SEC as ft, ArchivedDebugNoteSchema as g, number as ga, ruleAutoTriggersAlarm as gi, SCENE_RESET_RECAPTURES as gn, embeddingRequirementsUnavailableError as gr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as gt, AlarmArmModeSchema as h, looseObject as ha, rootSupplyServes as hi, SCENE_DIVERGED as hn, embeddingRequirementsFailedError as hr, NC_CONFIRM_DEFAULT_TIMEOUT_MS as ht, CLIP_TEXT_MODELS as i, hydrateSchema as ia, readDeviceStateFrom as ii, RebuildObjectEmbeddingsRefusalSchema as in, deleteAlarmProfile as ir, NC_ALARM_DELAY_MAX_SEC as it, DetectionSourceSchema as j, syncActiveAlarmProfileSettings as ji, TrackSourceSchema as jn, isDetectionMacroClass as jr, NcAlarmSensorsSchema as jt, DETECTION_PIPELINE_CAP_NAME as k, subjectPathSvgPoints as ki, TrackRelationSchema as kn, isAudioClassName as kr, NcAlarmPostTriggeredActionSchema as kt, resolveClusterModelPin as l, ZodObject as la, resolveLocationMode as li, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as ln, describeSystemEventFamilyProblem as lr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as lt, AUDIO_MACRO_LABELS as m, literal as ma, retrainRevisionConflictMessage as mi, SCENE_DEFAULT_UNCOVERED_POLICY as mn, embeddingRefusalOf as mr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as mt, DEFAULT_CLIP_MODEL as n, defineCustomActions as na, plateGalleryCapability as ni, RECORDING_EXPORT_MAX_READ_BYTES as nn, cosineSimilarity as nr, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, nodePin as oa, readTimelapseGeneratedAt as oi, RetrainOriginSchema as on, derivePostTriggeredAction as or, NC_ALARM_SYSTEM_EVENT_KINDS as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, discriminatedUnion as pa, resolvePoolMemoryPolicy as pi, SCENE_DEFAULT_QUIET_SECONDS as pn, embeddingModelFailedError as pr, NC_CONDITION_CATALOG as pt, MAX_ARCHIVED_DEBUG_NOTES as q, DeviceType as qi, buildEventKindDescriptor as qn, memoizePinnedFfmpeg as qr, NcSystemEventKindSchema as qt, CLIP_IMAGE_MODELS as r, defineRecordKinds as ra, projectSubjectPath as ri, RECORDING_SOURCE_CAMSTACK_ADDON as rn, createAlarmProfile as rr, NC_ALARM_DELAY_FIELDS as rt, FACE_EMBEDDING_STEP_ID as s, normalizeNodeId as sa, renameAlarmProfile as si, RetrainStatusSchema as sn, deriveRecordingMode as sr, NC_ALARM_TRIGGERED_MAX_SEC as st, BUILTIN_CLIP_MODELS as t, customAction as ta, pipelineAnalyticsCapability as ti, PoolMemoryWatchdog as tn, coreBlockIdFromAddonId as tr, NC_ALARM_DEFAULT_PROFILE_ID as tt, APPEARANCE_BIN_COUNT as u, _enum as ua, resolveModeDelays as ui, SCENE_DEFAULT_ANCHOR_THRESHOLD as un, deviceAttentionKind as ur, NC_CLIP_POST_ROLL_DEFAULT_SEC as ut, BaseDevice as v, partialRecord as va, ruleDeviceCompatCapQueries as vi, SetTrackPurityInputSchema as vn, ensureAlarmProfiles as vr, NC_DEFAULT_SNOOZE_MINUTES as vt, CoverStateSchema as w, union as wa, servedTemplateVars as wi, TimelapseRulePatchSchema as wn, gifFromMp4Args as wr, NC_STATE_SUMMARY_SECTION_IDS as wt, COCO_TO_MACRO as x, string as xa, sceneMonitorCapability as xi, TIMELAPSE_DENSE_FLOOR_SEC as xn, faceGalleryCapability as xr, NC_GROUPING_MIN_SEC as xt, BirthDecisionRecordSchema as y, record as ya, ruleGroupingApplies as yi, SetTrackPurityResultSchema as yn, eventKindLabel as yr, NC_GROUPING_DEFAULT_SEC as yt, FIRST_LEVEL_MACRO_CLASSES as z, vectorDimFromBase64 as zi, applyBlockingEdit as zn, isRootSuppliableStepId as zr, NcRuleTargetSchema as zt };
|