@camstack/addon-post-analysis 1.2.664 → 1.2.666
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/CHANGELOG.md +17 -0
- package/dist/{clip-model-registry-TeNUAAPP.js → clip-model-registry-BIhYJRFt.js} +324 -132
- package/dist/{clip-model-registry-Ch9Sz-Qb.mjs → clip-model-registry-Uc_C1x81.mjs} +319 -133
- 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-CXG7YPYq.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-FkeZoNXj.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CnYZAdvw.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-Br6eWzp_.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-BZ_D3_sF.mjs → hostInit-BBhgVoNl.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +430 -46
- package/dist/pipeline-analytics/index.mjs +430 -46
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CIt_RDlm.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-4TTlyJ66.mjs +0 -26
|
@@ -6063,7 +6063,7 @@ var ZodIssueCode = {
|
|
|
6063
6063
|
var ZodFirstPartyTypeKind;
|
|
6064
6064
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
6065
6065
|
//#endregion
|
|
6066
|
-
//#region ../types/dist/sleep-
|
|
6066
|
+
//#region ../types/dist/sleep-C6LqREpb.mjs
|
|
6067
6067
|
/**
|
|
6068
6068
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
6069
6069
|
* window to float samples (D455).
|
|
@@ -6142,6 +6142,22 @@ function buildAlawTable() {
|
|
|
6142
6142
|
}
|
|
6143
6143
|
buildUlawTable();
|
|
6144
6144
|
buildAlawTable();
|
|
6145
|
+
/**
|
|
6146
|
+
* An addon whose own migrations did not apply refuses to initialise (D987). The error is typed
|
|
6147
|
+
* so a runner hosting several addons can tell "this addon is blocked" from a crash and keep its
|
|
6148
|
+
* co-located siblings running. Recognised by NAME and shape, never `instanceof`: a forked addon
|
|
6149
|
+
* bundles its own copy of this module, so the class the runner sees is not the one that threw.
|
|
6150
|
+
*/
|
|
6151
|
+
var MIGRATIONS_BLOCKED_ERROR_NAME = "AddonMigrationsBlockedError";
|
|
6152
|
+
var AddonMigrationsBlockedError = class extends Error {
|
|
6153
|
+
/** The ledger ids that did not apply and block the owner. */
|
|
6154
|
+
migrationIds;
|
|
6155
|
+
constructor(migrationIds) {
|
|
6156
|
+
super(`migration(s) ${migrationIds.join(", ")} did not apply and block this addon — fix or retry them (migrations.retry), then restart it`);
|
|
6157
|
+
this.name = MIGRATIONS_BLOCKED_ERROR_NAME;
|
|
6158
|
+
this.migrationIds = migrationIds;
|
|
6159
|
+
}
|
|
6160
|
+
};
|
|
6145
6161
|
/** Is this field's stored value a credential? */
|
|
6146
6162
|
function isSecretConfigField(field) {
|
|
6147
6163
|
if (field.type === "password") return true;
|
|
@@ -7795,7 +7811,7 @@ var BaseAddon = class {
|
|
|
7795
7811
|
startMigration: (input) => api.startMigration.mutate(input),
|
|
7796
7812
|
finishMigration: (input) => api.finishMigration.mutate(input)
|
|
7797
7813
|
}, migrations, this.ctx.logger);
|
|
7798
|
-
if (report.blockOwner.length > 0) throw new
|
|
7814
|
+
if (report.blockOwner.length > 0) throw new AddonMigrationsBlockedError(report.blockOwner);
|
|
7799
7815
|
return report;
|
|
7800
7816
|
}
|
|
7801
7817
|
/**
|
|
@@ -9830,6 +9846,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9830
9846
|
"backup",
|
|
9831
9847
|
"battery",
|
|
9832
9848
|
"binary",
|
|
9849
|
+
"board-key-source",
|
|
9833
9850
|
"brightness",
|
|
9834
9851
|
"broker",
|
|
9835
9852
|
"button",
|
|
@@ -9951,6 +9968,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9951
9968
|
"privacy-mask",
|
|
9952
9969
|
"ptz",
|
|
9953
9970
|
"ptz-autotrack",
|
|
9971
|
+
"pump-cycle",
|
|
9954
9972
|
"reboot",
|
|
9955
9973
|
"record-entries",
|
|
9956
9974
|
"recording",
|
|
@@ -11243,18 +11261,6 @@ Object.freeze({
|
|
|
11243
11261
|
"path": "pumpRunning",
|
|
11244
11262
|
"valueType": "boolean"
|
|
11245
11263
|
},
|
|
11246
|
-
{
|
|
11247
|
-
"path": "pumpIntervalEnabled",
|
|
11248
|
-
"valueType": "boolean"
|
|
11249
|
-
},
|
|
11250
|
-
{
|
|
11251
|
-
"path": "pumpOnTime",
|
|
11252
|
-
"valueType": "number"
|
|
11253
|
-
},
|
|
11254
|
-
{
|
|
11255
|
-
"path": "pumpOffTime",
|
|
11256
|
-
"valueType": "number"
|
|
11257
|
-
},
|
|
11258
11264
|
{
|
|
11259
11265
|
"path": "lastDrink",
|
|
11260
11266
|
"valueType": "number"
|
|
@@ -11378,6 +11384,20 @@ Object.freeze({
|
|
|
11378
11384
|
"valueType": "number"
|
|
11379
11385
|
}
|
|
11380
11386
|
],
|
|
11387
|
+
"pump-cycle": [
|
|
11388
|
+
{
|
|
11389
|
+
"path": "enabled",
|
|
11390
|
+
"valueType": "boolean"
|
|
11391
|
+
},
|
|
11392
|
+
{
|
|
11393
|
+
"path": "onTime",
|
|
11394
|
+
"valueType": "number"
|
|
11395
|
+
},
|
|
11396
|
+
{
|
|
11397
|
+
"path": "offTime",
|
|
11398
|
+
"valueType": "number"
|
|
11399
|
+
}
|
|
11400
|
+
],
|
|
11381
11401
|
"recording-archive": [
|
|
11382
11402
|
{
|
|
11383
11403
|
"path": "deviceId",
|
|
@@ -11829,7 +11849,7 @@ Object.freeze({
|
|
|
11829
11849
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
11830
11850
|
* (~144MB RSS per runner, D28).
|
|
11831
11851
|
*
|
|
11832
|
-
* Coverage:
|
|
11852
|
+
* Coverage: 102 device-scoped capabilities.
|
|
11833
11853
|
*/
|
|
11834
11854
|
var DEVICE_SCOPED_CAPS = new Set([
|
|
11835
11855
|
"accessories",
|
|
@@ -11906,6 +11926,7 @@ var DEVICE_SCOPED_CAPS = new Set([
|
|
|
11906
11926
|
"privacy-mask",
|
|
11907
11927
|
"ptz",
|
|
11908
11928
|
"ptz-autotrack",
|
|
11929
|
+
"pump-cycle",
|
|
11909
11930
|
"reboot",
|
|
11910
11931
|
"recording",
|
|
11911
11932
|
"recording-onboard",
|
|
@@ -20451,24 +20472,52 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
20451
20472
|
args: { on: false }
|
|
20452
20473
|
},
|
|
20453
20474
|
{
|
|
20454
|
-
id: "petFountain.
|
|
20455
|
-
method: "
|
|
20475
|
+
id: "petFountain.resetDailyConsumption",
|
|
20476
|
+
method: "resetDailyConsumption",
|
|
20477
|
+
label: t("Clear daily consumption", "Azzera il consumo giornaliero"),
|
|
20478
|
+
phrase: t("Clear the daily water consumption of {device}", "Azzera il consumo giornaliero di acqua di {device}"),
|
|
20479
|
+
icon: "rotate-ccw"
|
|
20480
|
+
}
|
|
20481
|
+
],
|
|
20482
|
+
state: [{
|
|
20483
|
+
kind: "boolean",
|
|
20484
|
+
field: "empty",
|
|
20485
|
+
label: t("Tank empty", "Serbatoio vuoto"),
|
|
20486
|
+
whenTrue: t("When the tank of {device} is empty", "Quando il serbatoio di {device} è vuoto"),
|
|
20487
|
+
whenFalse: t("When the tank of {device} is refilled", "Quando il serbatoio di {device} viene riempito"),
|
|
20488
|
+
icon: "droplet"
|
|
20489
|
+
}, {
|
|
20490
|
+
kind: "numeric",
|
|
20491
|
+
field: "waterLevel",
|
|
20492
|
+
quantity: t("the water level", "il livello dell’acqua"),
|
|
20493
|
+
label: t("Water level", "Livello dell’acqua"),
|
|
20494
|
+
unit: "%",
|
|
20495
|
+
icon: "droplets"
|
|
20496
|
+
}]
|
|
20497
|
+
},
|
|
20498
|
+
"pump-cycle": {
|
|
20499
|
+
scope: "device",
|
|
20500
|
+
noun: t("Pump cycle", "Ciclo della pompa"),
|
|
20501
|
+
actions: [
|
|
20502
|
+
{
|
|
20503
|
+
id: "pumpCycle.on",
|
|
20504
|
+
method: "setEnabled",
|
|
20456
20505
|
label: t("Pump cycle on", "Ciclo pompa attivo"),
|
|
20457
20506
|
phrase: t("Run the pump of {device} on its on/off cycle", "Fai lavorare la pompa di {device} a ciclo acceso/spento"),
|
|
20458
20507
|
icon: "timer",
|
|
20459
20508
|
args: { on: true }
|
|
20460
20509
|
},
|
|
20461
20510
|
{
|
|
20462
|
-
id: "
|
|
20463
|
-
method: "
|
|
20511
|
+
id: "pumpCycle.off",
|
|
20512
|
+
method: "setEnabled",
|
|
20464
20513
|
label: t("Pump cycle off", "Ciclo pompa spento"),
|
|
20465
20514
|
phrase: t("Run the pump of {device} continuously", "Fai lavorare la pompa di {device} in continuo"),
|
|
20466
20515
|
icon: "timer-off",
|
|
20467
20516
|
args: { on: false }
|
|
20468
20517
|
},
|
|
20469
20518
|
{
|
|
20470
|
-
id: "
|
|
20471
|
-
method: "
|
|
20519
|
+
id: "pumpCycle.onMinutes",
|
|
20520
|
+
method: "setOnMinutes",
|
|
20472
20521
|
label: t("Set pump run time", "Imposta il tempo di lavoro della pompa"),
|
|
20473
20522
|
phrase: t("Set the pump of {device} to run {minutes} minutes per cycle", "Imposta la pompa di {device} a lavorare {minutes} minuti per ciclo"),
|
|
20474
20523
|
icon: "timer",
|
|
@@ -20484,8 +20533,8 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
20484
20533
|
}]
|
|
20485
20534
|
},
|
|
20486
20535
|
{
|
|
20487
|
-
id: "
|
|
20488
|
-
method: "
|
|
20536
|
+
id: "pumpCycle.offMinutes",
|
|
20537
|
+
method: "setOffMinutes",
|
|
20489
20538
|
label: t("Set pump rest time", "Imposta il tempo di riposo della pompa"),
|
|
20490
20539
|
phrase: t("Set the pump of {device} to rest {minutes} minutes per cycle", "Imposta la pompa di {device} a riposare {minutes} minuti per ciclo"),
|
|
20491
20540
|
icon: "timer-off",
|
|
@@ -20499,29 +20548,15 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
20499
20548
|
unit: "min"
|
|
20500
20549
|
}
|
|
20501
20550
|
}]
|
|
20502
|
-
},
|
|
20503
|
-
{
|
|
20504
|
-
id: "petFountain.resetDailyConsumption",
|
|
20505
|
-
method: "resetDailyConsumption",
|
|
20506
|
-
label: t("Clear daily consumption", "Azzera il consumo giornaliero"),
|
|
20507
|
-
phrase: t("Clear the daily water consumption of {device}", "Azzera il consumo giornaliero di acqua di {device}"),
|
|
20508
|
-
icon: "rotate-ccw"
|
|
20509
20551
|
}
|
|
20510
20552
|
],
|
|
20511
20553
|
state: [{
|
|
20512
20554
|
kind: "boolean",
|
|
20513
|
-
field: "
|
|
20514
|
-
label: t("
|
|
20515
|
-
whenTrue: t("When
|
|
20516
|
-
whenFalse: t("When
|
|
20517
|
-
icon: "
|
|
20518
|
-
}, {
|
|
20519
|
-
kind: "numeric",
|
|
20520
|
-
field: "waterLevel",
|
|
20521
|
-
quantity: t("the water level", "il livello dell’acqua"),
|
|
20522
|
-
label: t("Water level", "Livello dell’acqua"),
|
|
20523
|
-
unit: "%",
|
|
20524
|
-
icon: "droplets"
|
|
20555
|
+
field: "enabled",
|
|
20556
|
+
label: t("Pump cycle", "Ciclo pompa"),
|
|
20557
|
+
whenTrue: t("When {device} starts running its pump on a cycle", "Quando {device} inizia a far lavorare la pompa a ciclo"),
|
|
20558
|
+
whenFalse: t("When {device} runs its pump continuously", "Quando {device} fa lavorare la pompa in continuo"),
|
|
20559
|
+
icon: "timer"
|
|
20525
20560
|
}]
|
|
20526
20561
|
},
|
|
20527
20562
|
"media-player": {
|
|
@@ -22414,6 +22449,7 @@ var SYSTEM_CAP_VOCABULARY = {
|
|
|
22414
22449
|
"audio-analyzer": system(PIPELINE),
|
|
22415
22450
|
"audio-codec": system(INTERNAL),
|
|
22416
22451
|
"auth-provider": system(IDENTITY),
|
|
22452
|
+
"board-key-source": system(INTERNAL),
|
|
22417
22453
|
backup: system("system backups — run and restored from the Backups page"),
|
|
22418
22454
|
broker: system("message-broker connections — configured, not actuated"),
|
|
22419
22455
|
"calendar-source": system(INTERNAL),
|
|
@@ -47564,6 +47600,49 @@ var binaryCapability = {
|
|
|
47564
47600
|
volatileStateFields: ["lastChangedAt"]
|
|
47565
47601
|
};
|
|
47566
47602
|
/**
|
|
47603
|
+
* Why a board key could not be read. Typed so a caller reports the cause and
|
|
47604
|
+
* never treats "could not read" as "has no key" (D49).
|
|
47605
|
+
*/
|
|
47606
|
+
var BoardKeyFailureReasonSchema = _enum([
|
|
47607
|
+
"unknown-source",
|
|
47608
|
+
"not-admin",
|
|
47609
|
+
"no-builder",
|
|
47610
|
+
"no-ingress-url",
|
|
47611
|
+
"unreachable",
|
|
47612
|
+
"unknown-board",
|
|
47613
|
+
"no-encryption-key",
|
|
47614
|
+
"unreadable-config"
|
|
47615
|
+
]);
|
|
47616
|
+
var BoardKeySourceSchema = object({
|
|
47617
|
+
sourceId: string(),
|
|
47618
|
+
name: string()
|
|
47619
|
+
});
|
|
47620
|
+
var BoardKeyBoardSchema = object({
|
|
47621
|
+
/** The builder's file name, e.g. `kitchen.yaml`: the handle `getBoardKey` takes. */
|
|
47622
|
+
configuration: string(),
|
|
47623
|
+
/** The node name the builder gives the board. */
|
|
47624
|
+
name: string(),
|
|
47625
|
+
/** The address the builder knows the board by, when it has one. */
|
|
47626
|
+
address: string().nullable()
|
|
47627
|
+
});
|
|
47628
|
+
var BoardKeyFailureSchema = object({
|
|
47629
|
+
ok: literal(false),
|
|
47630
|
+
reason: BoardKeyFailureReasonSchema,
|
|
47631
|
+
detail: string().optional()
|
|
47632
|
+
});
|
|
47633
|
+
var ListBoardsResultSchema = discriminatedUnion("ok", [object({
|
|
47634
|
+
ok: literal(true),
|
|
47635
|
+
boards: array(BoardKeyBoardSchema).readonly()
|
|
47636
|
+
}), BoardKeyFailureSchema]);
|
|
47637
|
+
var GetBoardKeyResultSchema = discriminatedUnion("ok", [object({
|
|
47638
|
+
ok: literal(true),
|
|
47639
|
+
key: string()
|
|
47640
|
+
}), BoardKeyFailureSchema]);
|
|
47641
|
+
method(_void(), array(BoardKeySourceSchema).readonly(), { auth: "admin" }), method(object({ sourceId: string().min(1) }), ListBoardsResultSchema, { auth: "admin" }), method(object({
|
|
47642
|
+
sourceId: string().min(1),
|
|
47643
|
+
configuration: string().min(1)
|
|
47644
|
+
}), GetBoardKeyResultSchema, { auth: "admin" });
|
|
47645
|
+
/**
|
|
47567
47646
|
* Dimmable-light brightness control. Co-exists with `switch` on the
|
|
47568
47647
|
* same device — the switch toggles on/off, this cap sets the level
|
|
47569
47648
|
* applied when the light is on. Drivers map their per-vendor dim
|
|
@@ -54145,7 +54224,7 @@ var DishwasherStatusSchema = object({
|
|
|
54145
54224
|
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
54146
54225
|
lastFetchedAt: number()
|
|
54147
54226
|
});
|
|
54148
|
-
var DeviceIdSchema$
|
|
54227
|
+
var DeviceIdSchema$2 = number().int().nonnegative();
|
|
54149
54228
|
/** A value a program option or setting can take. */
|
|
54150
54229
|
var DishwasherValueSchema = union([
|
|
54151
54230
|
boolean(),
|
|
@@ -54220,77 +54299,77 @@ var dishwasherCapability = {
|
|
|
54220
54299
|
* option feature keys; each is checked against the program's constraints.
|
|
54221
54300
|
*/
|
|
54222
54301
|
start: method(object({
|
|
54223
|
-
deviceId: DeviceIdSchema$
|
|
54302
|
+
deviceId: DeviceIdSchema$2,
|
|
54224
54303
|
program: string().min(1).optional(),
|
|
54225
54304
|
options: record(string(), DishwasherValueSchema).optional()
|
|
54226
54305
|
}), _void(), {
|
|
54227
54306
|
kind: "mutation",
|
|
54228
54307
|
auth: "protected"
|
|
54229
54308
|
}),
|
|
54230
|
-
pause: method(object({ deviceId: DeviceIdSchema$
|
|
54309
|
+
pause: method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
54231
54310
|
kind: "mutation",
|
|
54232
54311
|
auth: "protected"
|
|
54233
54312
|
}),
|
|
54234
|
-
resume: method(object({ deviceId: DeviceIdSchema$
|
|
54313
|
+
resume: method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
54235
54314
|
kind: "mutation",
|
|
54236
54315
|
auth: "protected"
|
|
54237
54316
|
}),
|
|
54238
|
-
stop: method(object({ deviceId: DeviceIdSchema$
|
|
54317
|
+
stop: method(object({ deviceId: DeviceIdSchema$2 }), _void(), {
|
|
54239
54318
|
kind: "mutation",
|
|
54240
54319
|
auth: "protected"
|
|
54241
54320
|
}),
|
|
54242
54321
|
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
54243
54322
|
setProgram: method(object({
|
|
54244
|
-
deviceId: DeviceIdSchema$
|
|
54323
|
+
deviceId: DeviceIdSchema$2,
|
|
54245
54324
|
program: string().min(1)
|
|
54246
54325
|
}), _void(), {
|
|
54247
54326
|
kind: "mutation",
|
|
54248
54327
|
auth: "protected"
|
|
54249
54328
|
}),
|
|
54250
54329
|
setPower: method(object({
|
|
54251
|
-
deviceId: DeviceIdSchema$
|
|
54330
|
+
deviceId: DeviceIdSchema$2,
|
|
54252
54331
|
on: boolean()
|
|
54253
54332
|
}), _void(), {
|
|
54254
54333
|
kind: "mutation",
|
|
54255
54334
|
auth: "protected"
|
|
54256
54335
|
}),
|
|
54257
54336
|
setHalfLoad: method(object({
|
|
54258
|
-
deviceId: DeviceIdSchema$
|
|
54337
|
+
deviceId: DeviceIdSchema$2,
|
|
54259
54338
|
on: boolean()
|
|
54260
54339
|
}), _void(), {
|
|
54261
54340
|
kind: "mutation",
|
|
54262
54341
|
auth: "protected"
|
|
54263
54342
|
}),
|
|
54264
54343
|
setHygienePlus: method(object({
|
|
54265
|
-
deviceId: DeviceIdSchema$
|
|
54344
|
+
deviceId: DeviceIdSchema$2,
|
|
54266
54345
|
on: boolean()
|
|
54267
54346
|
}), _void(), {
|
|
54268
54347
|
kind: "mutation",
|
|
54269
54348
|
auth: "protected"
|
|
54270
54349
|
}),
|
|
54271
54350
|
setExtraDry: method(object({
|
|
54272
|
-
deviceId: DeviceIdSchema$
|
|
54351
|
+
deviceId: DeviceIdSchema$2,
|
|
54273
54352
|
on: boolean()
|
|
54274
54353
|
}), _void(), {
|
|
54275
54354
|
kind: "mutation",
|
|
54276
54355
|
auth: "protected"
|
|
54277
54356
|
}),
|
|
54278
54357
|
setIntensiveZone: method(object({
|
|
54279
|
-
deviceId: DeviceIdSchema$
|
|
54358
|
+
deviceId: DeviceIdSchema$2,
|
|
54280
54359
|
on: boolean()
|
|
54281
54360
|
}), _void(), {
|
|
54282
54361
|
kind: "mutation",
|
|
54283
54362
|
auth: "protected"
|
|
54284
54363
|
}),
|
|
54285
54364
|
setVarioSpeedPlus: method(object({
|
|
54286
|
-
deviceId: DeviceIdSchema$
|
|
54365
|
+
deviceId: DeviceIdSchema$2,
|
|
54287
54366
|
on: boolean()
|
|
54288
54367
|
}), _void(), {
|
|
54289
54368
|
kind: "mutation",
|
|
54290
54369
|
auth: "protected"
|
|
54291
54370
|
}),
|
|
54292
54371
|
setChildLock: method(object({
|
|
54293
|
-
deviceId: DeviceIdSchema$
|
|
54372
|
+
deviceId: DeviceIdSchema$2,
|
|
54294
54373
|
on: boolean()
|
|
54295
54374
|
}), _void(), {
|
|
54296
54375
|
kind: "mutation",
|
|
@@ -54302,7 +54381,7 @@ var dishwasherCapability = {
|
|
|
54302
54381
|
* its declared range / members.
|
|
54303
54382
|
*/
|
|
54304
54383
|
setOption: method(object({
|
|
54305
|
-
deviceId: DeviceIdSchema$
|
|
54384
|
+
deviceId: DeviceIdSchema$2,
|
|
54306
54385
|
key: string().min(1),
|
|
54307
54386
|
value: DishwasherValueSchema
|
|
54308
54387
|
}), _void(), {
|
|
@@ -54310,7 +54389,7 @@ var dishwasherCapability = {
|
|
|
54310
54389
|
auth: "protected"
|
|
54311
54390
|
}),
|
|
54312
54391
|
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
54313
|
-
getOptions: method(object({ deviceId: DeviceIdSchema$
|
|
54392
|
+
getOptions: method(object({ deviceId: DeviceIdSchema$2 }), DishwasherOptionsSchema, { auth: "protected" })
|
|
54314
54393
|
},
|
|
54315
54394
|
status: {
|
|
54316
54395
|
schema: DishwasherStatusSchema,
|
|
@@ -69136,6 +69215,21 @@ var NcTemplateVarKindSchema = _enum([
|
|
|
69136
69215
|
"sound",
|
|
69137
69216
|
"system"
|
|
69138
69217
|
]);
|
|
69218
|
+
/**
|
|
69219
|
+
* The default title/body a rule of one SITUATION is delivered with when the
|
|
69220
|
+
* operator wrote no template — served so an editor can pre-fill it (and the
|
|
69221
|
+
* operator can rebuild it from placeholders) instead of starting from a blank
|
|
69222
|
+
* box that, once saved, silently replaces it. `id` names the situation inside
|
|
69223
|
+
* a rule `kind`: `appliance-cycle` is a `sensor` rule whose device is an
|
|
69224
|
+
* appliance finishing a cycle. Texts are raw templates (`{{var}}` intact), in
|
|
69225
|
+
* the hub's current language and with its overrides applied.
|
|
69226
|
+
*/
|
|
69227
|
+
var NcTemplateDefaultSchema = object({
|
|
69228
|
+
id: _enum(["appliance-cycle"]),
|
|
69229
|
+
kind: NcRuleKindSchema,
|
|
69230
|
+
title: string(),
|
|
69231
|
+
body: string()
|
|
69232
|
+
});
|
|
69139
69233
|
/** Which producer renders a template: an ordinary rule, a timelapse, a digest. */
|
|
69140
69234
|
var NcTemplateFamilySchema = _enum([
|
|
69141
69235
|
"rule",
|
|
@@ -70698,7 +70792,11 @@ var notificationRulesCapability = {
|
|
|
70698
70792
|
taxonomy: NcTaxonomySchema.optional()
|
|
70699
70793
|
})),
|
|
70700
70794
|
/** The declared `{{var}}` vocabulary; editors filter it with `templateVarsFor`. */
|
|
70701
|
-
getTemplateCatalog: method(object({}), object({
|
|
70795
|
+
getTemplateCatalog: method(object({}), object({
|
|
70796
|
+
vars: array(NcTemplateVarDescriptorSchema),
|
|
70797
|
+
/** Per-situation default texts; absent on a hub that predates them. */
|
|
70798
|
+
defaults: array(NcTemplateDefaultSchema)
|
|
70799
|
+
})),
|
|
70702
70800
|
/**
|
|
70703
70801
|
* Render a template with example values, through the hub's text catalog.
|
|
70704
70802
|
* Pure: sends nothing. A MUTATION only for transport — a 2.5k-char draft in
|
|
@@ -71708,7 +71806,7 @@ var petFeederCapability = {
|
|
|
71708
71806
|
/**
|
|
71709
71807
|
* Pet water-fountain cap. Models the telemetry and the control surface of a
|
|
71710
71808
|
* circulating drinking fountain: how much water is in the tank, how much the
|
|
71711
|
-
* pet drank, whether the pump runs
|
|
71809
|
+
* pet drank, whether the pump runs.
|
|
71712
71810
|
*
|
|
71713
71811
|
* It has no native vendor provider of its own: a fountain reaches CamStack as
|
|
71714
71812
|
* a container of loose entities (a pump switch, two number boxes, a "filter
|
|
@@ -71724,8 +71822,10 @@ var petFeederCapability = {
|
|
|
71724
71822
|
* never here. Every reading may be `null`: a source that is offline or does
|
|
71725
71823
|
* not report is unknown, never zero.
|
|
71726
71824
|
*
|
|
71727
|
-
* The
|
|
71728
|
-
* cap
|
|
71825
|
+
* The pump's on/off duty cycle is model-specific and lives in the optional
|
|
71826
|
+
* `pump-cycle` cap. The filter, the cleaning and the water change are not
|
|
71827
|
+
* fields of this cap: they are items of the `consumables` cap on the same
|
|
71828
|
+
* device (kind `wear`), reset by the same forward mechanism.
|
|
71729
71829
|
*/
|
|
71730
71830
|
var PetFountainStatusSchema = object({
|
|
71731
71831
|
/** Water in the tank, 0..100 (%). Null while the source has not reported. */
|
|
@@ -71736,27 +71836,20 @@ var PetFountainStatusSchema = object({
|
|
|
71736
71836
|
empty: boolean().nullable(),
|
|
71737
71837
|
/** True while the pump is running. Null while unknown. */
|
|
71738
71838
|
pumpRunning: boolean().nullable(),
|
|
71739
|
-
/** True when the pump works on an on/off duty cycle rather than continuously. */
|
|
71740
|
-
pumpIntervalEnabled: boolean().nullable(),
|
|
71741
|
-
/** How long the pump runs per cycle, in seconds. */
|
|
71742
|
-
pumpOnTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
71743
|
-
/** How long the pump rests per cycle, in seconds. */
|
|
71744
|
-
pumpOffTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
71745
71839
|
/** Water drunk in the last drink, in litres. */
|
|
71746
71840
|
lastDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
71747
71841
|
/** Water drunk in the current hour, in litres. */
|
|
71748
71842
|
currentHourDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
71749
71843
|
/** Water drunk over the last 24 hours (rolling), in litres. */
|
|
71750
71844
|
last24hDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
71751
|
-
/** Water drunk since local midnight, in litres. */
|
|
71845
|
+
/** Water drunk since local midnight, in litres. Null when the fountain has no such sensor. */
|
|
71752
71846
|
todayDrink: number().min(0).nullable().meta(readingMeta("volume")),
|
|
71753
71847
|
/** Decoded fault message. Null means healthy; a non-null string is an active fault. */
|
|
71754
71848
|
error: string().nullable(),
|
|
71755
71849
|
/** Ms epoch when the slice was last refreshed. */
|
|
71756
71850
|
lastFetchedAt: number()
|
|
71757
71851
|
});
|
|
71758
|
-
var DeviceIdSchema = number().int().nonnegative();
|
|
71759
|
-
var MinutesSchema = number().int().min(0);
|
|
71852
|
+
var DeviceIdSchema$1 = number().int().nonnegative();
|
|
71760
71853
|
var petFountainCapability = {
|
|
71761
71854
|
name: "pet-fountain",
|
|
71762
71855
|
scope: "device",
|
|
@@ -71766,38 +71859,14 @@ var petFountainCapability = {
|
|
|
71766
71859
|
methods: {
|
|
71767
71860
|
/** Start or stop the pump. */
|
|
71768
71861
|
setPump: method(object({
|
|
71769
|
-
deviceId: DeviceIdSchema,
|
|
71770
|
-
on: boolean()
|
|
71771
|
-
}), _void(), {
|
|
71772
|
-
kind: "mutation",
|
|
71773
|
-
auth: "protected"
|
|
71774
|
-
}),
|
|
71775
|
-
/** Switch the on/off duty cycle on or off (off = the pump runs continuously). */
|
|
71776
|
-
setPumpInterval: method(object({
|
|
71777
|
-
deviceId: DeviceIdSchema,
|
|
71862
|
+
deviceId: DeviceIdSchema$1,
|
|
71778
71863
|
on: boolean()
|
|
71779
71864
|
}), _void(), {
|
|
71780
71865
|
kind: "mutation",
|
|
71781
71866
|
auth: "protected"
|
|
71782
71867
|
}),
|
|
71783
|
-
/** Set how many minutes the pump runs per cycle. */
|
|
71784
|
-
setPumpOnMinutes: method(object({
|
|
71785
|
-
deviceId: DeviceIdSchema,
|
|
71786
|
-
minutes: MinutesSchema
|
|
71787
|
-
}), _void(), {
|
|
71788
|
-
kind: "mutation",
|
|
71789
|
-
auth: "protected"
|
|
71790
|
-
}),
|
|
71791
|
-
/** Set how many minutes the pump rests per cycle. */
|
|
71792
|
-
setPumpOffMinutes: method(object({
|
|
71793
|
-
deviceId: DeviceIdSchema,
|
|
71794
|
-
minutes: MinutesSchema
|
|
71795
|
-
}), _void(), {
|
|
71796
|
-
kind: "mutation",
|
|
71797
|
-
auth: "protected"
|
|
71798
|
-
}),
|
|
71799
71868
|
/** Clear the rolling daily consumption counters on the device. */
|
|
71800
|
-
resetDailyConsumption: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
71869
|
+
resetDailyConsumption: method(object({ deviceId: DeviceIdSchema$1 }), _void(), {
|
|
71801
71870
|
kind: "mutation",
|
|
71802
71871
|
auth: "protected"
|
|
71803
71872
|
})
|
|
@@ -74165,6 +74234,79 @@ var ptzAutotrackCapability = {
|
|
|
74165
74234
|
*/
|
|
74166
74235
|
history: "none"
|
|
74167
74236
|
};
|
|
74237
|
+
/**
|
|
74238
|
+
* The on/off duty cycle of a pet fountain's pump. Some models run the pump
|
|
74239
|
+
* continuously and have nothing to configure; others can alternate a run time
|
|
74240
|
+
* and a rest time. That is model-specific, so it is its own optional cap on the
|
|
74241
|
+
* fountain device: a fountain without cycle entities simply never composes it
|
|
74242
|
+
* (planning#366), and the `pet-fountain` cap stays the model-independent core.
|
|
74243
|
+
*
|
|
74244
|
+
* Like `pet-fountain` it has no native vendor provider: an operator BUILDS the
|
|
74245
|
+
* cycle from loose entities (a cycle switch and two number boxes) and every
|
|
74246
|
+
* method is a forward to one source entity (D659, D967). Durations are stored
|
|
74247
|
+
* in SECONDS (D944); a number box that cannot be read back leaves them `null`
|
|
74248
|
+
* — unknown, never zero (D393).
|
|
74249
|
+
*/
|
|
74250
|
+
var PumpCycleStatusSchema = object({
|
|
74251
|
+
/** True when the pump works on the on/off cycle, false when it runs continuously. Null while unknown. */
|
|
74252
|
+
enabled: boolean().nullable(),
|
|
74253
|
+
/** How long the pump runs per cycle, in seconds. Null while unknown. */
|
|
74254
|
+
onTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
74255
|
+
/** How long the pump rests per cycle, in seconds. Null while unknown. */
|
|
74256
|
+
offTime: number().min(0).nullable().meta(readingMeta("duration")),
|
|
74257
|
+
/** Ms epoch when the slice was last refreshed. */
|
|
74258
|
+
lastFetchedAt: number()
|
|
74259
|
+
});
|
|
74260
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
74261
|
+
var MinutesSchema = number().int().min(0);
|
|
74262
|
+
var pumpCycleCapability = {
|
|
74263
|
+
name: "pump-cycle",
|
|
74264
|
+
scope: "device",
|
|
74265
|
+
deviceNative: true,
|
|
74266
|
+
mode: "singleton",
|
|
74267
|
+
deviceTypes: [DeviceType.PetFountain],
|
|
74268
|
+
methods: {
|
|
74269
|
+
/** Switch the on/off duty cycle on or off (off = the pump runs continuously). */
|
|
74270
|
+
setEnabled: method(object({
|
|
74271
|
+
deviceId: DeviceIdSchema,
|
|
74272
|
+
on: boolean()
|
|
74273
|
+
}), _void(), {
|
|
74274
|
+
kind: "mutation",
|
|
74275
|
+
auth: "protected"
|
|
74276
|
+
}),
|
|
74277
|
+
/** Set how many minutes the pump runs per cycle. */
|
|
74278
|
+
setOnMinutes: method(object({
|
|
74279
|
+
deviceId: DeviceIdSchema,
|
|
74280
|
+
minutes: MinutesSchema
|
|
74281
|
+
}), _void(), {
|
|
74282
|
+
kind: "mutation",
|
|
74283
|
+
auth: "protected"
|
|
74284
|
+
}),
|
|
74285
|
+
/** Set how many minutes the pump rests per cycle. */
|
|
74286
|
+
setOffMinutes: method(object({
|
|
74287
|
+
deviceId: DeviceIdSchema,
|
|
74288
|
+
minutes: MinutesSchema
|
|
74289
|
+
}), _void(), {
|
|
74290
|
+
kind: "mutation",
|
|
74291
|
+
auth: "protected"
|
|
74292
|
+
})
|
|
74293
|
+
},
|
|
74294
|
+
status: {
|
|
74295
|
+
schema: PumpCycleStatusSchema,
|
|
74296
|
+
kind: "push"
|
|
74297
|
+
},
|
|
74298
|
+
/** Runtime-state slice — mirrored by the kernel; the hero card reads it whole. */
|
|
74299
|
+
runtimeState: PumpCycleStatusSchema,
|
|
74300
|
+
/**
|
|
74301
|
+
* Runtime-state durability: **session** — live appliance state re-published on connect.
|
|
74302
|
+
*
|
|
74303
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
74304
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
74305
|
+
*/
|
|
74306
|
+
durability: "session",
|
|
74307
|
+
/** History (D850): a duty-cycle setting is not a series worth recording. */
|
|
74308
|
+
history: "none"
|
|
74309
|
+
};
|
|
74168
74310
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, DeviceType.Gateway, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
74169
74311
|
kind: "mutation",
|
|
74170
74312
|
auth: "admin"
|
|
@@ -83459,6 +83601,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
83459
83601
|
pressureSensor: pressureSensorCapability,
|
|
83460
83602
|
privacyMask: privacyMaskCapability,
|
|
83461
83603
|
ptzAutotrack: ptzAutotrackCapability,
|
|
83604
|
+
pumpCycle: pumpCycleCapability,
|
|
83462
83605
|
recordingOnboard: recordingOnboardCapability,
|
|
83463
83606
|
recordingSignal: recordingSignalCapability,
|
|
83464
83607
|
runningState: runningStateCapability,
|
|
@@ -85149,6 +85292,27 @@ Object.freeze({
|
|
|
85149
85292
|
access: "view",
|
|
85150
85293
|
role: "viewer"
|
|
85151
85294
|
},
|
|
85295
|
+
"boardKeySource.getBoardKey": {
|
|
85296
|
+
capName: "board-key-source",
|
|
85297
|
+
capScope: "system",
|
|
85298
|
+
addonId: null,
|
|
85299
|
+
access: "view",
|
|
85300
|
+
role: "admin"
|
|
85301
|
+
},
|
|
85302
|
+
"boardKeySource.listBoards": {
|
|
85303
|
+
capName: "board-key-source",
|
|
85304
|
+
capScope: "system",
|
|
85305
|
+
addonId: null,
|
|
85306
|
+
access: "view",
|
|
85307
|
+
role: "admin"
|
|
85308
|
+
},
|
|
85309
|
+
"boardKeySource.listSources": {
|
|
85310
|
+
capName: "board-key-source",
|
|
85311
|
+
capScope: "system",
|
|
85312
|
+
addonId: null,
|
|
85313
|
+
access: "view",
|
|
85314
|
+
role: "admin"
|
|
85315
|
+
},
|
|
85152
85316
|
"brightness.getStatus": {
|
|
85153
85317
|
capName: "brightness",
|
|
85154
85318
|
capScope: "device",
|
|
@@ -89972,27 +90136,6 @@ Object.freeze({
|
|
|
89972
90136
|
access: "create",
|
|
89973
90137
|
role: "viewer"
|
|
89974
90138
|
},
|
|
89975
|
-
"petFountain.setPumpInterval": {
|
|
89976
|
-
capName: "pet-fountain",
|
|
89977
|
-
capScope: "device",
|
|
89978
|
-
addonId: null,
|
|
89979
|
-
access: "create",
|
|
89980
|
-
role: "viewer"
|
|
89981
|
-
},
|
|
89982
|
-
"petFountain.setPumpOffMinutes": {
|
|
89983
|
-
capName: "pet-fountain",
|
|
89984
|
-
capScope: "device",
|
|
89985
|
-
addonId: null,
|
|
89986
|
-
access: "create",
|
|
89987
|
-
role: "viewer"
|
|
89988
|
-
},
|
|
89989
|
-
"petFountain.setPumpOnMinutes": {
|
|
89990
|
-
capName: "pet-fountain",
|
|
89991
|
-
capScope: "device",
|
|
89992
|
-
addonId: null,
|
|
89993
|
-
access: "create",
|
|
89994
|
-
role: "viewer"
|
|
89995
|
-
},
|
|
89996
90139
|
"pipelineAnalytics.addRetrainFrameFromRecording": {
|
|
89997
90140
|
capName: "pipeline-analytics",
|
|
89998
90141
|
capScope: "device",
|
|
@@ -91771,6 +91914,34 @@ Object.freeze({
|
|
|
91771
91914
|
access: "create",
|
|
91772
91915
|
role: "admin"
|
|
91773
91916
|
},
|
|
91917
|
+
"pumpCycle.getStatus": {
|
|
91918
|
+
capName: "pump-cycle",
|
|
91919
|
+
capScope: "device",
|
|
91920
|
+
addonId: null,
|
|
91921
|
+
access: "view",
|
|
91922
|
+
role: "viewer"
|
|
91923
|
+
},
|
|
91924
|
+
"pumpCycle.setEnabled": {
|
|
91925
|
+
capName: "pump-cycle",
|
|
91926
|
+
capScope: "device",
|
|
91927
|
+
addonId: null,
|
|
91928
|
+
access: "create",
|
|
91929
|
+
role: "viewer"
|
|
91930
|
+
},
|
|
91931
|
+
"pumpCycle.setOffMinutes": {
|
|
91932
|
+
capName: "pump-cycle",
|
|
91933
|
+
capScope: "device",
|
|
91934
|
+
addonId: null,
|
|
91935
|
+
access: "create",
|
|
91936
|
+
role: "viewer"
|
|
91937
|
+
},
|
|
91938
|
+
"pumpCycle.setOnMinutes": {
|
|
91939
|
+
capName: "pump-cycle",
|
|
91940
|
+
capScope: "device",
|
|
91941
|
+
addonId: null,
|
|
91942
|
+
access: "create",
|
|
91943
|
+
role: "viewer"
|
|
91944
|
+
},
|
|
91774
91945
|
"reboot.reboot": {
|
|
91775
91946
|
capName: "reboot",
|
|
91776
91947
|
capScope: "device",
|
|
@@ -96315,21 +96486,6 @@ Object.freeze({
|
|
|
96315
96486
|
form: "single",
|
|
96316
96487
|
optional: false
|
|
96317
96488
|
}],
|
|
96318
|
-
"petFountain.setPumpInterval": [{
|
|
96319
|
-
name: "deviceId",
|
|
96320
|
-
form: "single",
|
|
96321
|
-
optional: false
|
|
96322
|
-
}],
|
|
96323
|
-
"petFountain.setPumpOffMinutes": [{
|
|
96324
|
-
name: "deviceId",
|
|
96325
|
-
form: "single",
|
|
96326
|
-
optional: false
|
|
96327
|
-
}],
|
|
96328
|
-
"petFountain.setPumpOnMinutes": [{
|
|
96329
|
-
name: "deviceId",
|
|
96330
|
-
form: "single",
|
|
96331
|
-
optional: false
|
|
96332
|
-
}],
|
|
96333
96489
|
"pipelineAnalytics.addRetrainFrameFromRecording": [{
|
|
96334
96490
|
name: "deviceId",
|
|
96335
96491
|
form: "single",
|
|
@@ -96965,6 +97121,26 @@ Object.freeze({
|
|
|
96965
97121
|
form: "single",
|
|
96966
97122
|
optional: false
|
|
96967
97123
|
}],
|
|
97124
|
+
"pumpCycle.getStatus": [{
|
|
97125
|
+
name: "deviceId",
|
|
97126
|
+
form: "single",
|
|
97127
|
+
optional: false
|
|
97128
|
+
}],
|
|
97129
|
+
"pumpCycle.setEnabled": [{
|
|
97130
|
+
name: "deviceId",
|
|
97131
|
+
form: "single",
|
|
97132
|
+
optional: false
|
|
97133
|
+
}],
|
|
97134
|
+
"pumpCycle.setOffMinutes": [{
|
|
97135
|
+
name: "deviceId",
|
|
97136
|
+
form: "single",
|
|
97137
|
+
optional: false
|
|
97138
|
+
}],
|
|
97139
|
+
"pumpCycle.setOnMinutes": [{
|
|
97140
|
+
name: "deviceId",
|
|
97141
|
+
form: "single",
|
|
97142
|
+
optional: false
|
|
97143
|
+
}],
|
|
96968
97144
|
"reboot.reboot": [{
|
|
96969
97145
|
name: "deviceId",
|
|
96970
97146
|
form: "single",
|
|
@@ -100234,6 +100410,16 @@ var NC_TEMPLATE_VARS = [
|
|
|
100234
100410
|
kinds: ["system"],
|
|
100235
100411
|
systemEventKinds: [...COMBINED_ALARM]
|
|
100236
100412
|
},
|
|
100413
|
+
{
|
|
100414
|
+
name: "changes",
|
|
100415
|
+
label: "Intrusion changes",
|
|
100416
|
+
example: "Laundry lock unlocked, Back door open",
|
|
100417
|
+
group: "system",
|
|
100418
|
+
families: ["rule"],
|
|
100419
|
+
fields: [...RULE_TEXT],
|
|
100420
|
+
kinds: ["system"],
|
|
100421
|
+
systemEventKinds: [...COMBINED_ALARM]
|
|
100422
|
+
},
|
|
100237
100423
|
{
|
|
100238
100424
|
name: "deviceId",
|
|
100239
100425
|
label: "Device id",
|
|
@@ -103702,6 +103888,12 @@ Object.defineProperty(exports, "NcTaxonomySchema", {
|
|
|
103702
103888
|
return NcTaxonomySchema;
|
|
103703
103889
|
}
|
|
103704
103890
|
});
|
|
103891
|
+
Object.defineProperty(exports, "NcTemplateDefaultSchema", {
|
|
103892
|
+
enumerable: true,
|
|
103893
|
+
get: function() {
|
|
103894
|
+
return NcTemplateDefaultSchema;
|
|
103895
|
+
}
|
|
103896
|
+
});
|
|
103705
103897
|
Object.defineProperty(exports, "NcTemplatePreviewInputSchema", {
|
|
103706
103898
|
enumerable: true,
|
|
103707
103899
|
get: function() {
|