@camstack/addon-training 0.1.85 → 0.1.87
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 +12 -0
- package/README.md +22 -0
- package/dist/{MotionZonesSettings-DTU9fMJZ.mjs → MotionZonesSettings-1v53BmVJ.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-8MmRT5Ow.mjs → PrivacyMaskSettings-B1WrMGZy.mjs} +2 -2
- package/dist/{SceneMonitorEditor-qbsyyldN.mjs → SceneMonitorEditor-wJjFFoHA.mjs} +1 -1
- package/dist/_stub.js +5684 -5136
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-_MdKeniv.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BNJmzVCS.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-VNxr7qQe.mjs +26 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-vmoGj7S3.mjs → dist-CUYMVsX0.mjs} +144 -7
- package/dist/{dist-DIvqaK45.js → dist-CnS9QrjX.js} +144 -7
- package/dist/{hostInit-BKy0E1EU.mjs → hostInit-BxKuKvEv.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-B_I7m2Ml.mjs → player-overlays-BvnJqnez.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-BlFhgdjv.mjs → responsive-Dfx762zU.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-BH-X_-uQ.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-BvSjPfq3.mjs} +1 -1
- package/package.json +4 -2
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CHXZ7Vwy.mjs +0 -26
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "node:crypto";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-CT-hz5Rb.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -325,6 +325,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
325
325
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
326
326
|
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
327
327
|
/**
|
|
328
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
329
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
330
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
331
|
+
*/
|
|
332
|
+
EventCategory["PipelinePackageLlmSilent"] = "pipeline.package-llm-silent";
|
|
333
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
334
|
+
EventCategory["PipelinePackageLlmAnswered"] = "pipeline.package-llm-answered";
|
|
335
|
+
/**
|
|
328
336
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
329
337
|
* (a settings change via `setAgentInferenceDevices` /
|
|
330
338
|
* `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
|
|
@@ -5567,7 +5575,7 @@ var ZodIssueCode = {
|
|
|
5567
5575
|
var ZodFirstPartyTypeKind;
|
|
5568
5576
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5569
5577
|
//#endregion
|
|
5570
|
-
//#region ../types/dist/sleep-
|
|
5578
|
+
//#region ../types/dist/sleep-bykKrTgu.mjs
|
|
5571
5579
|
/**
|
|
5572
5580
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5573
5581
|
* window to float samples (D455).
|
|
@@ -8937,6 +8945,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
8937
8945
|
"filesystem-browse",
|
|
8938
8946
|
"flood",
|
|
8939
8947
|
"gas",
|
|
8948
|
+
"group-commands",
|
|
8940
8949
|
"group-status",
|
|
8941
8950
|
"heating-valve",
|
|
8942
8951
|
"humidifier",
|
|
@@ -11101,7 +11110,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11101
11110
|
return DeviceRole;
|
|
11102
11111
|
}({});
|
|
11103
11112
|
//#endregion
|
|
11104
|
-
//#region ../types/dist/composition-
|
|
11113
|
+
//#region ../types/dist/composition-OhpuespA.mjs
|
|
11105
11114
|
/**
|
|
11106
11115
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11107
11116
|
*
|
|
@@ -11880,7 +11889,9 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
11880
11889
|
"leak",
|
|
11881
11890
|
"smoke",
|
|
11882
11891
|
"occupancy",
|
|
11883
|
-
"binary"
|
|
11892
|
+
"binary",
|
|
11893
|
+
"switch",
|
|
11894
|
+
"light"
|
|
11884
11895
|
];
|
|
11885
11896
|
var NUMERIC_AGGREGATES = [
|
|
11886
11897
|
"mean",
|
|
@@ -11890,6 +11901,8 @@ var NUMERIC_AGGREGATES = [
|
|
|
11890
11901
|
"sum"
|
|
11891
11902
|
];
|
|
11892
11903
|
var BINARY_AGGREGATES = ["any", "all"];
|
|
11904
|
+
/** How an actuator group decides it is on. Unknown members never count as off. */
|
|
11905
|
+
var ACTIVE_CRITERIA = ["at-least-one", "all"];
|
|
11893
11906
|
var AGGREGATE_REDUCERS = [
|
|
11894
11907
|
"mean",
|
|
11895
11908
|
"median",
|
|
@@ -11901,6 +11914,7 @@ var AGGREGATE_REDUCERS = [
|
|
|
11901
11914
|
];
|
|
11902
11915
|
var GroupTemplateIdSchema = _enum(GROUP_TEMPLATE_IDS);
|
|
11903
11916
|
var AggregateReducerSchema = _enum(AGGREGATE_REDUCERS);
|
|
11917
|
+
var ActiveCriterionSchema = _enum(ACTIVE_CRITERIA);
|
|
11904
11918
|
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
11905
11919
|
var HelperMemberSchema = object({
|
|
11906
11920
|
source: CompositionSourceRefSchema,
|
|
@@ -11911,7 +11925,9 @@ var HelperSpecSchema = discriminatedUnion("kind", [object({
|
|
|
11911
11925
|
kind: literal("group"),
|
|
11912
11926
|
templateId: GroupTemplateIdSchema,
|
|
11913
11927
|
aggregate: AggregateReducerSchema,
|
|
11914
|
-
members: array(HelperMemberSchema).min(1).max(64)
|
|
11928
|
+
members: array(HelperMemberSchema).min(1).max(64),
|
|
11929
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
11930
|
+
active: ActiveCriterionSchema.optional()
|
|
11915
11931
|
})]);
|
|
11916
11932
|
/** A composed device's stableId is this prefix plus the block id. */
|
|
11917
11933
|
var COMPOSED_DEVICE_STABLE_ID_PREFIX = "composed-";
|
|
@@ -18433,6 +18449,7 @@ function numeric(input) {
|
|
|
18433
18449
|
family: "numeric",
|
|
18434
18450
|
deviceType: DeviceType.Sensor,
|
|
18435
18451
|
memberDeviceType: DeviceType.Sensor,
|
|
18452
|
+
commandCaps: [],
|
|
18436
18453
|
baseUnit: baseUnitOf(input.quantity),
|
|
18437
18454
|
aggregates: NUMERIC_AGGREGATES,
|
|
18438
18455
|
accept: [{
|
|
@@ -18447,6 +18464,7 @@ function binary(input) {
|
|
|
18447
18464
|
family: "binary",
|
|
18448
18465
|
deviceType: DeviceType.Sensor,
|
|
18449
18466
|
memberDeviceType: DeviceType.Sensor,
|
|
18467
|
+
commandCaps: [],
|
|
18450
18468
|
quantity: "none",
|
|
18451
18469
|
baseUnit: void 0,
|
|
18452
18470
|
aggregates: BINARY_AGGREGATES,
|
|
@@ -18641,9 +18659,47 @@ var GROUP_TEMPLATES = [
|
|
|
18641
18659
|
fieldPath: "on"
|
|
18642
18660
|
}],
|
|
18643
18661
|
companions: [CHANGED]
|
|
18662
|
+
}),
|
|
18663
|
+
actuator({
|
|
18664
|
+
id: "switch",
|
|
18665
|
+
summary: "On when at least one switch is on, or when all of them are. Offline and unknown members are left out of that decision, never read as off, and still receive the command.",
|
|
18666
|
+
deviceType: DeviceType.Switch,
|
|
18667
|
+
outputCap: "switch",
|
|
18668
|
+
commandCaps: ["switch"]
|
|
18669
|
+
}),
|
|
18670
|
+
actuator({
|
|
18671
|
+
id: "light",
|
|
18672
|
+
summary: "On when at least one light is on, or when all of them are. Brightness and colour are offered only when every member has them. A command is not sent to a member that lacks it.",
|
|
18673
|
+
deviceType: DeviceType.Light,
|
|
18674
|
+
outputCap: "switch",
|
|
18675
|
+
commandCaps: [
|
|
18676
|
+
"switch",
|
|
18677
|
+
"brightness",
|
|
18678
|
+
"color"
|
|
18679
|
+
]
|
|
18644
18680
|
})
|
|
18645
18681
|
];
|
|
18682
|
+
function actuator(input) {
|
|
18683
|
+
return {
|
|
18684
|
+
...input,
|
|
18685
|
+
family: "actuator",
|
|
18686
|
+
role: void 0,
|
|
18687
|
+
memberDeviceType: input.deviceType,
|
|
18688
|
+
outputField: "on",
|
|
18689
|
+
quantity: "none",
|
|
18690
|
+
baseUnit: void 0,
|
|
18691
|
+
aggregates: BINARY_AGGREGATES,
|
|
18692
|
+
defaultAggregate: "any",
|
|
18693
|
+
empty: "offline",
|
|
18694
|
+
accept: [{
|
|
18695
|
+
cap: "switch",
|
|
18696
|
+
fieldPath: "on"
|
|
18697
|
+
}],
|
|
18698
|
+
companions: [CHANGED]
|
|
18699
|
+
};
|
|
18700
|
+
}
|
|
18646
18701
|
new Map(GROUP_TEMPLATES.map((template) => [template.id, template]));
|
|
18702
|
+
DeviceFeature.LightColorRgb, DeviceFeature.LightColorHsv, DeviceFeature.LightColorMired;
|
|
18647
18703
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
18648
18704
|
/**
|
|
18649
18705
|
* What a composition may BUILD on a device type (G2, D676): the caps a new
|
|
@@ -45210,6 +45266,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
45210
45266
|
"detection-blind",
|
|
45211
45267
|
"motion-noisy",
|
|
45212
45268
|
"motion-calm",
|
|
45269
|
+
"package-llm-silent",
|
|
45270
|
+
"package-llm-answered",
|
|
45213
45271
|
"recording-stalled",
|
|
45214
45272
|
"recording-healthy",
|
|
45215
45273
|
"recording-degraded",
|
|
@@ -56224,6 +56282,28 @@ var PackageVersionInfoSchema = object({
|
|
|
56224
56282
|
deprecated: string().optional(),
|
|
56225
56283
|
distTags: array(string()).readonly()
|
|
56226
56284
|
});
|
|
56285
|
+
/**
|
|
56286
|
+
* One published document. `ok` is markdown from the registry. `missing` means
|
|
56287
|
+
* the registry answered and the file was not there. `error` is a registry or
|
|
56288
|
+
* tarball failure — never an empty string standing in for either.
|
|
56289
|
+
*/
|
|
56290
|
+
var PackageDocBodySchema = discriminatedUnion("status", [
|
|
56291
|
+
object({
|
|
56292
|
+
status: literal("ok"),
|
|
56293
|
+
markdown: string()
|
|
56294
|
+
}),
|
|
56295
|
+
object({ status: literal("missing") }),
|
|
56296
|
+
object({
|
|
56297
|
+
status: literal("error"),
|
|
56298
|
+
message: string()
|
|
56299
|
+
})
|
|
56300
|
+
]);
|
|
56301
|
+
var PackageDocsSchema = object({
|
|
56302
|
+
name: string(),
|
|
56303
|
+
version: string(),
|
|
56304
|
+
readme: PackageDocBodySchema,
|
|
56305
|
+
changelog: PackageDocBodySchema
|
|
56306
|
+
});
|
|
56227
56307
|
var SearchResultSchema = object({
|
|
56228
56308
|
name: string(),
|
|
56229
56309
|
version: string(),
|
|
@@ -56442,7 +56522,10 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
56442
56522
|
}), object({ success: literal(true) }), {
|
|
56443
56523
|
kind: "mutation",
|
|
56444
56524
|
auth: "admin"
|
|
56445
|
-
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56525
|
+
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56526
|
+
name: string().min(1),
|
|
56527
|
+
version: string().min(1).optional()
|
|
56528
|
+
}), PackageDocsSchema, { auth: "admin" }), method(object({ addonId: string() }), RestartAddonResultSchema, {
|
|
56446
56529
|
kind: "mutation",
|
|
56447
56530
|
auth: "admin"
|
|
56448
56531
|
}), method(object({ packageName: string() }), object({ success: literal(true) }), {
|
|
@@ -58464,6 +58547,18 @@ object({
|
|
|
58464
58547
|
lastChangedAt: number()
|
|
58465
58548
|
});
|
|
58466
58549
|
DeviceType.Sensor;
|
|
58550
|
+
object({
|
|
58551
|
+
/** One row per member that has been commanded. A later command replaces that member's row. */
|
|
58552
|
+
results: array(object({
|
|
58553
|
+
deviceId: number().int().nonnegative(),
|
|
58554
|
+
cap: string().min(1),
|
|
58555
|
+
method: string().min(1),
|
|
58556
|
+
ok: boolean(),
|
|
58557
|
+
error: string().optional(),
|
|
58558
|
+
/** Ms epoch of the attempt. */
|
|
58559
|
+
at: number()
|
|
58560
|
+
})) });
|
|
58561
|
+
DeviceType.Switch, DeviceType.Light;
|
|
58467
58562
|
object({
|
|
58468
58563
|
/** Members whose current value entered the aggregate. */
|
|
58469
58564
|
included: number().int().nonnegative().meta(readingMeta("count", {
|
|
@@ -58481,7 +58576,7 @@ object({
|
|
|
58481
58576
|
label: "Members"
|
|
58482
58577
|
}))
|
|
58483
58578
|
});
|
|
58484
|
-
DeviceType.Sensor;
|
|
58579
|
+
DeviceType.Sensor, DeviceType.Switch, DeviceType.Light;
|
|
58485
58580
|
object({
|
|
58486
58581
|
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
58487
58582
|
position: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
@@ -65755,6 +65850,13 @@ Object.freeze({
|
|
|
65755
65850
|
access: "view",
|
|
65756
65851
|
role: "admin"
|
|
65757
65852
|
},
|
|
65853
|
+
"addons.getPackageDocs": {
|
|
65854
|
+
capName: "addons",
|
|
65855
|
+
capScope: "system",
|
|
65856
|
+
addonId: null,
|
|
65857
|
+
access: "view",
|
|
65858
|
+
role: "admin"
|
|
65859
|
+
},
|
|
65758
65860
|
"addons.getVersions": {
|
|
65759
65861
|
capName: "addons",
|
|
65760
65862
|
capScope: "system",
|
|
@@ -68863,6 +68965,13 @@ Object.freeze({
|
|
|
68863
68965
|
access: "view",
|
|
68864
68966
|
role: "viewer"
|
|
68865
68967
|
},
|
|
68968
|
+
"groupCommands.getStatus": {
|
|
68969
|
+
capName: "group-commands",
|
|
68970
|
+
capScope: "device",
|
|
68971
|
+
addonId: null,
|
|
68972
|
+
access: "view",
|
|
68973
|
+
role: "viewer"
|
|
68974
|
+
},
|
|
68866
68975
|
"groupStatus.getStatus": {
|
|
68867
68976
|
capName: "group-status",
|
|
68868
68977
|
capScope: "device",
|
|
@@ -78692,6 +78801,10 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
78692
78801
|
icon: "flame"
|
|
78693
78802
|
}]
|
|
78694
78803
|
},
|
|
78804
|
+
"group-commands": {
|
|
78805
|
+
scope: "device",
|
|
78806
|
+
noun: t("Group command", "Comando di gruppo")
|
|
78807
|
+
},
|
|
78695
78808
|
"group-status": {
|
|
78696
78809
|
scope: "device",
|
|
78697
78810
|
noun: t("Group", "Gruppo"),
|
|
@@ -80184,6 +80297,11 @@ Object.freeze({
|
|
|
80184
80297
|
form: "single",
|
|
80185
80298
|
optional: false
|
|
80186
80299
|
}],
|
|
80300
|
+
"groupCommands.getStatus": [{
|
|
80301
|
+
name: "deviceId",
|
|
80302
|
+
form: "single",
|
|
80303
|
+
optional: false
|
|
80304
|
+
}],
|
|
80187
80305
|
"groupStatus.getStatus": [{
|
|
80188
80306
|
name: "deviceId",
|
|
80189
80307
|
form: "single",
|
|
@@ -82173,6 +82291,8 @@ new Map(Object.entries({
|
|
|
82173
82291
|
"detection-blind": "device-events",
|
|
82174
82292
|
"motion-noisy": "device-events",
|
|
82175
82293
|
"motion-calm": "device-events",
|
|
82294
|
+
"package-llm-silent": "device-events",
|
|
82295
|
+
"package-llm-answered": "device-events",
|
|
82176
82296
|
"recording-stalled": "device-events",
|
|
82177
82297
|
"recording-healthy": "device-events",
|
|
82178
82298
|
"recording-degraded": "device-events",
|
|
@@ -82256,6 +82376,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
82256
82376
|
label: "Motion without a subject",
|
|
82257
82377
|
kinds: ["motion-noisy", "motion-calm"]
|
|
82258
82378
|
},
|
|
82379
|
+
{
|
|
82380
|
+
id: "package-llm",
|
|
82381
|
+
family: "device-events",
|
|
82382
|
+
label: "Package confirm",
|
|
82383
|
+
kinds: ["package-llm-silent", "package-llm-answered"]
|
|
82384
|
+
},
|
|
82259
82385
|
{
|
|
82260
82386
|
id: "recording",
|
|
82261
82387
|
family: "device-events",
|
|
@@ -82437,6 +82563,8 @@ var DEVICE_EVENTS = [
|
|
|
82437
82563
|
"detection-blind",
|
|
82438
82564
|
"motion-noisy",
|
|
82439
82565
|
"motion-calm",
|
|
82566
|
+
"package-llm-silent",
|
|
82567
|
+
"package-llm-answered",
|
|
82440
82568
|
"recording-stalled",
|
|
82441
82569
|
"recording-healthy",
|
|
82442
82570
|
"recording-degraded",
|
|
@@ -82705,6 +82833,15 @@ new Map([
|
|
|
82705
82833
|
snapshotLabel: "Cameras with constant motion now",
|
|
82706
82834
|
snapshotSection: null
|
|
82707
82835
|
},
|
|
82836
|
+
{
|
|
82837
|
+
id: "package-llm-confirm",
|
|
82838
|
+
family: "device-events",
|
|
82839
|
+
label: "Package confirm (not answering / answering again)",
|
|
82840
|
+
bad: ["package-llm-silent"],
|
|
82841
|
+
recovery: ["package-llm-answered"],
|
|
82842
|
+
snapshotLabel: "Cameras whose package confirm is not answering",
|
|
82843
|
+
snapshotSection: null
|
|
82844
|
+
},
|
|
82708
82845
|
{
|
|
82709
82846
|
id: "recording-health",
|
|
82710
82847
|
family: "device-events",
|
|
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
}) : target, mod));
|
|
33
33
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
34
|
require("node:crypto");
|
|
35
|
-
//#region ../types/dist/event-category-
|
|
35
|
+
//#region ../types/dist/event-category-CT-hz5Rb.mjs
|
|
36
36
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
37
37
|
EventCategory["SystemBoot"] = "system.boot";
|
|
38
38
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -358,6 +358,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
358
358
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
359
359
|
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
360
360
|
/**
|
|
361
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
362
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
363
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
364
|
+
*/
|
|
365
|
+
EventCategory["PipelinePackageLlmSilent"] = "pipeline.package-llm-silent";
|
|
366
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
367
|
+
EventCategory["PipelinePackageLlmAnswered"] = "pipeline.package-llm-answered";
|
|
368
|
+
/**
|
|
361
369
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
362
370
|
* (a settings change via `setAgentInferenceDevices` /
|
|
363
371
|
* `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
|
|
@@ -5600,7 +5608,7 @@ var ZodIssueCode = {
|
|
|
5600
5608
|
var ZodFirstPartyTypeKind;
|
|
5601
5609
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5602
5610
|
//#endregion
|
|
5603
|
-
//#region ../types/dist/sleep-
|
|
5611
|
+
//#region ../types/dist/sleep-bykKrTgu.mjs
|
|
5604
5612
|
/**
|
|
5605
5613
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5606
5614
|
* window to float samples (D455).
|
|
@@ -8970,6 +8978,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
8970
8978
|
"filesystem-browse",
|
|
8971
8979
|
"flood",
|
|
8972
8980
|
"gas",
|
|
8981
|
+
"group-commands",
|
|
8973
8982
|
"group-status",
|
|
8974
8983
|
"heating-valve",
|
|
8975
8984
|
"humidifier",
|
|
@@ -11134,7 +11143,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11134
11143
|
return DeviceRole;
|
|
11135
11144
|
}({});
|
|
11136
11145
|
//#endregion
|
|
11137
|
-
//#region ../types/dist/composition-
|
|
11146
|
+
//#region ../types/dist/composition-OhpuespA.mjs
|
|
11138
11147
|
/**
|
|
11139
11148
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11140
11149
|
*
|
|
@@ -11913,7 +11922,9 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
11913
11922
|
"leak",
|
|
11914
11923
|
"smoke",
|
|
11915
11924
|
"occupancy",
|
|
11916
|
-
"binary"
|
|
11925
|
+
"binary",
|
|
11926
|
+
"switch",
|
|
11927
|
+
"light"
|
|
11917
11928
|
];
|
|
11918
11929
|
var NUMERIC_AGGREGATES = [
|
|
11919
11930
|
"mean",
|
|
@@ -11923,6 +11934,8 @@ var NUMERIC_AGGREGATES = [
|
|
|
11923
11934
|
"sum"
|
|
11924
11935
|
];
|
|
11925
11936
|
var BINARY_AGGREGATES = ["any", "all"];
|
|
11937
|
+
/** How an actuator group decides it is on. Unknown members never count as off. */
|
|
11938
|
+
var ACTIVE_CRITERIA = ["at-least-one", "all"];
|
|
11926
11939
|
var AGGREGATE_REDUCERS = [
|
|
11927
11940
|
"mean",
|
|
11928
11941
|
"median",
|
|
@@ -11934,6 +11947,7 @@ var AGGREGATE_REDUCERS = [
|
|
|
11934
11947
|
];
|
|
11935
11948
|
var GroupTemplateIdSchema = _enum(GROUP_TEMPLATE_IDS);
|
|
11936
11949
|
var AggregateReducerSchema = _enum(AGGREGATE_REDUCERS);
|
|
11950
|
+
var ActiveCriterionSchema = _enum(ACTIVE_CRITERIA);
|
|
11937
11951
|
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
11938
11952
|
var HelperMemberSchema = object({
|
|
11939
11953
|
source: CompositionSourceRefSchema,
|
|
@@ -11944,7 +11958,9 @@ var HelperSpecSchema = discriminatedUnion("kind", [object({
|
|
|
11944
11958
|
kind: literal("group"),
|
|
11945
11959
|
templateId: GroupTemplateIdSchema,
|
|
11946
11960
|
aggregate: AggregateReducerSchema,
|
|
11947
|
-
members: array(HelperMemberSchema).min(1).max(64)
|
|
11961
|
+
members: array(HelperMemberSchema).min(1).max(64),
|
|
11962
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
11963
|
+
active: ActiveCriterionSchema.optional()
|
|
11948
11964
|
})]);
|
|
11949
11965
|
/** A composed device's stableId is this prefix plus the block id. */
|
|
11950
11966
|
var COMPOSED_DEVICE_STABLE_ID_PREFIX = "composed-";
|
|
@@ -18466,6 +18482,7 @@ function numeric(input) {
|
|
|
18466
18482
|
family: "numeric",
|
|
18467
18483
|
deviceType: DeviceType.Sensor,
|
|
18468
18484
|
memberDeviceType: DeviceType.Sensor,
|
|
18485
|
+
commandCaps: [],
|
|
18469
18486
|
baseUnit: baseUnitOf(input.quantity),
|
|
18470
18487
|
aggregates: NUMERIC_AGGREGATES,
|
|
18471
18488
|
accept: [{
|
|
@@ -18480,6 +18497,7 @@ function binary(input) {
|
|
|
18480
18497
|
family: "binary",
|
|
18481
18498
|
deviceType: DeviceType.Sensor,
|
|
18482
18499
|
memberDeviceType: DeviceType.Sensor,
|
|
18500
|
+
commandCaps: [],
|
|
18483
18501
|
quantity: "none",
|
|
18484
18502
|
baseUnit: void 0,
|
|
18485
18503
|
aggregates: BINARY_AGGREGATES,
|
|
@@ -18674,9 +18692,47 @@ var GROUP_TEMPLATES = [
|
|
|
18674
18692
|
fieldPath: "on"
|
|
18675
18693
|
}],
|
|
18676
18694
|
companions: [CHANGED]
|
|
18695
|
+
}),
|
|
18696
|
+
actuator({
|
|
18697
|
+
id: "switch",
|
|
18698
|
+
summary: "On when at least one switch is on, or when all of them are. Offline and unknown members are left out of that decision, never read as off, and still receive the command.",
|
|
18699
|
+
deviceType: DeviceType.Switch,
|
|
18700
|
+
outputCap: "switch",
|
|
18701
|
+
commandCaps: ["switch"]
|
|
18702
|
+
}),
|
|
18703
|
+
actuator({
|
|
18704
|
+
id: "light",
|
|
18705
|
+
summary: "On when at least one light is on, or when all of them are. Brightness and colour are offered only when every member has them. A command is not sent to a member that lacks it.",
|
|
18706
|
+
deviceType: DeviceType.Light,
|
|
18707
|
+
outputCap: "switch",
|
|
18708
|
+
commandCaps: [
|
|
18709
|
+
"switch",
|
|
18710
|
+
"brightness",
|
|
18711
|
+
"color"
|
|
18712
|
+
]
|
|
18677
18713
|
})
|
|
18678
18714
|
];
|
|
18715
|
+
function actuator(input) {
|
|
18716
|
+
return {
|
|
18717
|
+
...input,
|
|
18718
|
+
family: "actuator",
|
|
18719
|
+
role: void 0,
|
|
18720
|
+
memberDeviceType: input.deviceType,
|
|
18721
|
+
outputField: "on",
|
|
18722
|
+
quantity: "none",
|
|
18723
|
+
baseUnit: void 0,
|
|
18724
|
+
aggregates: BINARY_AGGREGATES,
|
|
18725
|
+
defaultAggregate: "any",
|
|
18726
|
+
empty: "offline",
|
|
18727
|
+
accept: [{
|
|
18728
|
+
cap: "switch",
|
|
18729
|
+
fieldPath: "on"
|
|
18730
|
+
}],
|
|
18731
|
+
companions: [CHANGED]
|
|
18732
|
+
};
|
|
18733
|
+
}
|
|
18679
18734
|
new Map(GROUP_TEMPLATES.map((template) => [template.id, template]));
|
|
18735
|
+
DeviceFeature.LightColorRgb, DeviceFeature.LightColorHsv, DeviceFeature.LightColorMired;
|
|
18680
18736
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
18681
18737
|
/**
|
|
18682
18738
|
* What a composition may BUILD on a device type (G2, D676): the caps a new
|
|
@@ -45243,6 +45299,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
45243
45299
|
"detection-blind",
|
|
45244
45300
|
"motion-noisy",
|
|
45245
45301
|
"motion-calm",
|
|
45302
|
+
"package-llm-silent",
|
|
45303
|
+
"package-llm-answered",
|
|
45246
45304
|
"recording-stalled",
|
|
45247
45305
|
"recording-healthy",
|
|
45248
45306
|
"recording-degraded",
|
|
@@ -56257,6 +56315,28 @@ var PackageVersionInfoSchema = object({
|
|
|
56257
56315
|
deprecated: string().optional(),
|
|
56258
56316
|
distTags: array(string()).readonly()
|
|
56259
56317
|
});
|
|
56318
|
+
/**
|
|
56319
|
+
* One published document. `ok` is markdown from the registry. `missing` means
|
|
56320
|
+
* the registry answered and the file was not there. `error` is a registry or
|
|
56321
|
+
* tarball failure — never an empty string standing in for either.
|
|
56322
|
+
*/
|
|
56323
|
+
var PackageDocBodySchema = discriminatedUnion("status", [
|
|
56324
|
+
object({
|
|
56325
|
+
status: literal("ok"),
|
|
56326
|
+
markdown: string()
|
|
56327
|
+
}),
|
|
56328
|
+
object({ status: literal("missing") }),
|
|
56329
|
+
object({
|
|
56330
|
+
status: literal("error"),
|
|
56331
|
+
message: string()
|
|
56332
|
+
})
|
|
56333
|
+
]);
|
|
56334
|
+
var PackageDocsSchema = object({
|
|
56335
|
+
name: string(),
|
|
56336
|
+
version: string(),
|
|
56337
|
+
readme: PackageDocBodySchema,
|
|
56338
|
+
changelog: PackageDocBodySchema
|
|
56339
|
+
});
|
|
56260
56340
|
var SearchResultSchema = object({
|
|
56261
56341
|
name: string(),
|
|
56262
56342
|
version: string(),
|
|
@@ -56475,7 +56555,10 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
56475
56555
|
}), object({ success: literal(true) }), {
|
|
56476
56556
|
kind: "mutation",
|
|
56477
56557
|
auth: "admin"
|
|
56478
|
-
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56558
|
+
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56559
|
+
name: string().min(1),
|
|
56560
|
+
version: string().min(1).optional()
|
|
56561
|
+
}), PackageDocsSchema, { auth: "admin" }), method(object({ addonId: string() }), RestartAddonResultSchema, {
|
|
56479
56562
|
kind: "mutation",
|
|
56480
56563
|
auth: "admin"
|
|
56481
56564
|
}), method(object({ packageName: string() }), object({ success: literal(true) }), {
|
|
@@ -58497,6 +58580,18 @@ object({
|
|
|
58497
58580
|
lastChangedAt: number()
|
|
58498
58581
|
});
|
|
58499
58582
|
DeviceType.Sensor;
|
|
58583
|
+
object({
|
|
58584
|
+
/** One row per member that has been commanded. A later command replaces that member's row. */
|
|
58585
|
+
results: array(object({
|
|
58586
|
+
deviceId: number().int().nonnegative(),
|
|
58587
|
+
cap: string().min(1),
|
|
58588
|
+
method: string().min(1),
|
|
58589
|
+
ok: boolean(),
|
|
58590
|
+
error: string().optional(),
|
|
58591
|
+
/** Ms epoch of the attempt. */
|
|
58592
|
+
at: number()
|
|
58593
|
+
})) });
|
|
58594
|
+
DeviceType.Switch, DeviceType.Light;
|
|
58500
58595
|
object({
|
|
58501
58596
|
/** Members whose current value entered the aggregate. */
|
|
58502
58597
|
included: number().int().nonnegative().meta(readingMeta("count", {
|
|
@@ -58514,7 +58609,7 @@ object({
|
|
|
58514
58609
|
label: "Members"
|
|
58515
58610
|
}))
|
|
58516
58611
|
});
|
|
58517
|
-
DeviceType.Sensor;
|
|
58612
|
+
DeviceType.Sensor, DeviceType.Switch, DeviceType.Light;
|
|
58518
58613
|
object({
|
|
58519
58614
|
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
58520
58615
|
position: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
@@ -65788,6 +65883,13 @@ Object.freeze({
|
|
|
65788
65883
|
access: "view",
|
|
65789
65884
|
role: "admin"
|
|
65790
65885
|
},
|
|
65886
|
+
"addons.getPackageDocs": {
|
|
65887
|
+
capName: "addons",
|
|
65888
|
+
capScope: "system",
|
|
65889
|
+
addonId: null,
|
|
65890
|
+
access: "view",
|
|
65891
|
+
role: "admin"
|
|
65892
|
+
},
|
|
65791
65893
|
"addons.getVersions": {
|
|
65792
65894
|
capName: "addons",
|
|
65793
65895
|
capScope: "system",
|
|
@@ -68896,6 +68998,13 @@ Object.freeze({
|
|
|
68896
68998
|
access: "view",
|
|
68897
68999
|
role: "viewer"
|
|
68898
69000
|
},
|
|
69001
|
+
"groupCommands.getStatus": {
|
|
69002
|
+
capName: "group-commands",
|
|
69003
|
+
capScope: "device",
|
|
69004
|
+
addonId: null,
|
|
69005
|
+
access: "view",
|
|
69006
|
+
role: "viewer"
|
|
69007
|
+
},
|
|
68899
69008
|
"groupStatus.getStatus": {
|
|
68900
69009
|
capName: "group-status",
|
|
68901
69010
|
capScope: "device",
|
|
@@ -78725,6 +78834,10 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
78725
78834
|
icon: "flame"
|
|
78726
78835
|
}]
|
|
78727
78836
|
},
|
|
78837
|
+
"group-commands": {
|
|
78838
|
+
scope: "device",
|
|
78839
|
+
noun: t("Group command", "Comando di gruppo")
|
|
78840
|
+
},
|
|
78728
78841
|
"group-status": {
|
|
78729
78842
|
scope: "device",
|
|
78730
78843
|
noun: t("Group", "Gruppo"),
|
|
@@ -80217,6 +80330,11 @@ Object.freeze({
|
|
|
80217
80330
|
form: "single",
|
|
80218
80331
|
optional: false
|
|
80219
80332
|
}],
|
|
80333
|
+
"groupCommands.getStatus": [{
|
|
80334
|
+
name: "deviceId",
|
|
80335
|
+
form: "single",
|
|
80336
|
+
optional: false
|
|
80337
|
+
}],
|
|
80220
80338
|
"groupStatus.getStatus": [{
|
|
80221
80339
|
name: "deviceId",
|
|
80222
80340
|
form: "single",
|
|
@@ -82206,6 +82324,8 @@ new Map(Object.entries({
|
|
|
82206
82324
|
"detection-blind": "device-events",
|
|
82207
82325
|
"motion-noisy": "device-events",
|
|
82208
82326
|
"motion-calm": "device-events",
|
|
82327
|
+
"package-llm-silent": "device-events",
|
|
82328
|
+
"package-llm-answered": "device-events",
|
|
82209
82329
|
"recording-stalled": "device-events",
|
|
82210
82330
|
"recording-healthy": "device-events",
|
|
82211
82331
|
"recording-degraded": "device-events",
|
|
@@ -82289,6 +82409,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
82289
82409
|
label: "Motion without a subject",
|
|
82290
82410
|
kinds: ["motion-noisy", "motion-calm"]
|
|
82291
82411
|
},
|
|
82412
|
+
{
|
|
82413
|
+
id: "package-llm",
|
|
82414
|
+
family: "device-events",
|
|
82415
|
+
label: "Package confirm",
|
|
82416
|
+
kinds: ["package-llm-silent", "package-llm-answered"]
|
|
82417
|
+
},
|
|
82292
82418
|
{
|
|
82293
82419
|
id: "recording",
|
|
82294
82420
|
family: "device-events",
|
|
@@ -82470,6 +82596,8 @@ var DEVICE_EVENTS = [
|
|
|
82470
82596
|
"detection-blind",
|
|
82471
82597
|
"motion-noisy",
|
|
82472
82598
|
"motion-calm",
|
|
82599
|
+
"package-llm-silent",
|
|
82600
|
+
"package-llm-answered",
|
|
82473
82601
|
"recording-stalled",
|
|
82474
82602
|
"recording-healthy",
|
|
82475
82603
|
"recording-degraded",
|
|
@@ -82738,6 +82866,15 @@ new Map([
|
|
|
82738
82866
|
snapshotLabel: "Cameras with constant motion now",
|
|
82739
82867
|
snapshotSection: null
|
|
82740
82868
|
},
|
|
82869
|
+
{
|
|
82870
|
+
id: "package-llm-confirm",
|
|
82871
|
+
family: "device-events",
|
|
82872
|
+
label: "Package confirm (not answering / answering again)",
|
|
82873
|
+
bad: ["package-llm-silent"],
|
|
82874
|
+
recovery: ["package-llm-answered"],
|
|
82875
|
+
snapshotLabel: "Cameras whose package confirm is not answering",
|
|
82876
|
+
snapshotSection: null
|
|
82877
|
+
},
|
|
82741
82878
|
{
|
|
82742
82879
|
id: "recording-health",
|
|
82743
82880
|
family: "device-events",
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.419",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.330",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
require("./dist-
|
|
2
|
+
require("./dist-CnS9QrjX.js");
|
|
3
3
|
const require_orchestrator_training_addon = require("./orchestrator/training.addon.js");
|
|
4
4
|
const require_providers_modal_training_modal_addon = require("./providers/modal/training-modal.addon.js");
|
|
5
5
|
//#region src/providers/fake/fake-provider.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-CnS9QrjX.js");
|
|
3
3
|
let node_path = require("node:path");
|
|
4
4
|
node_path = require_dist.__toESM(node_path);
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, m as defineRecordKinds, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA, u as RECORD_MAX_DATA_BYTES } from "../dist-
|
|
1
|
+
import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, m as defineRecordKinds, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA, u as RECORD_MAX_DATA_BYTES } from "../dist-CUYMVsX0.mjs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { createReadStream } from "node:fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { d as e, u as t, w as n, y as r } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
|
|
2
2
|
import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
|
|
3
3
|
import { n as s, t as c } from "./chevron-right-cA8Hucbi.mjs";
|
|
4
|
-
import { g as l } from "./responsive-
|
|
4
|
+
import { g as l } from "./responsive-Dfx762zU.mjs";
|
|
5
5
|
//#region ../ui-library/src/composites/widget-panel.tsx
|
|
6
6
|
n();
|
|
7
7
|
function u({ title: e, icon: t, headerRight: n, collapsible: l = !1, defaultOpen: u = !0, open: d, onOpenChange: f, bodyClassName: p = "p-3", children: m }) {
|