@camstack/addon-model-studio 1.1.299 → 1.1.301
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 +19 -0
- package/dist/{MotionZonesSettings-sz-ODYZW.mjs → MotionZonesSettings-DyZoYI0U.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-6vNqzYvt.mjs → PrivacyMaskSettings-B37uji0h.mjs} +4 -4
- package/dist/{SceneMonitorEditor-DILUr4Mu.mjs → SceneMonitorEditor-adwuwWhh.mjs} +3 -3
- package/dist/_stub.js +631 -631
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page--ME5lZcf.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BI-yAY3a.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CrWbJfbZ.mjs +26 -0
- package/dist/addon-model-studio.css +1 -1
- package/dist/{hostInit-CtIHp-Co.mjs → hostInit-B4Xfj0Lp.mjs} +2 -2
- package/dist/model-studio.addon.js +144 -7
- package/dist/model-studio.addon.mjs +144 -7
- package/dist/{player-overlays-D_Gu9LQG.mjs → player-overlays-NWrAt23J.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-EDVJCyVr.mjs → responsive-D0VqJmUb.mjs} +1 -1
- package/dist/{scene-monitor-copy-CNS1lQNa.mjs → scene-monitor-copy-CFRppIGJ.mjs} +1 -1
- package/dist/{square-DmAYvpZY.mjs → square-0_tIf9AN.mjs} +1 -1
- package/dist/{trash-2-C4LJKmdi.mjs → trash-2-BLOVJO98.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-brpqeKaY.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-n-MaBs9H.mjs} +1 -1
- package/package.json +4 -2
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dcmr_zC_.mjs +0 -26
|
@@ -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,
|
|
@@ -394,7 +394,7 @@ function buildPluginCatalogRegistryDescriptor(entry) {
|
|
|
394
394
|
};
|
|
395
395
|
}
|
|
396
396
|
//#endregion
|
|
397
|
-
//#region ../types/dist/event-category-
|
|
397
|
+
//#region ../types/dist/event-category-CT-hz5Rb.mjs
|
|
398
398
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
399
399
|
EventCategory["SystemBoot"] = "system.boot";
|
|
400
400
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -720,6 +720,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
720
720
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
721
721
|
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
722
722
|
/**
|
|
723
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
724
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
725
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
726
|
+
*/
|
|
727
|
+
EventCategory["PipelinePackageLlmSilent"] = "pipeline.package-llm-silent";
|
|
728
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
729
|
+
EventCategory["PipelinePackageLlmAnswered"] = "pipeline.package-llm-answered";
|
|
730
|
+
/**
|
|
723
731
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
724
732
|
* (a settings change via `setAgentInferenceDevices` /
|
|
725
733
|
* `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
|
|
@@ -5829,7 +5837,7 @@ var ZodIssueCode = {
|
|
|
5829
5837
|
var ZodFirstPartyTypeKind;
|
|
5830
5838
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5831
5839
|
//#endregion
|
|
5832
|
-
//#region ../types/dist/sleep-
|
|
5840
|
+
//#region ../types/dist/sleep-bykKrTgu.mjs
|
|
5833
5841
|
/**
|
|
5834
5842
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5835
5843
|
* window to float samples (D455).
|
|
@@ -9032,6 +9040,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9032
9040
|
"filesystem-browse",
|
|
9033
9041
|
"flood",
|
|
9034
9042
|
"gas",
|
|
9043
|
+
"group-commands",
|
|
9035
9044
|
"group-status",
|
|
9036
9045
|
"heating-valve",
|
|
9037
9046
|
"humidifier",
|
|
@@ -11196,7 +11205,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11196
11205
|
return DeviceRole;
|
|
11197
11206
|
}({});
|
|
11198
11207
|
//#endregion
|
|
11199
|
-
//#region ../types/dist/composition-
|
|
11208
|
+
//#region ../types/dist/composition-OhpuespA.mjs
|
|
11200
11209
|
/**
|
|
11201
11210
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11202
11211
|
*
|
|
@@ -11975,7 +11984,9 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
11975
11984
|
"leak",
|
|
11976
11985
|
"smoke",
|
|
11977
11986
|
"occupancy",
|
|
11978
|
-
"binary"
|
|
11987
|
+
"binary",
|
|
11988
|
+
"switch",
|
|
11989
|
+
"light"
|
|
11979
11990
|
];
|
|
11980
11991
|
var NUMERIC_AGGREGATES = [
|
|
11981
11992
|
"mean",
|
|
@@ -11985,6 +11996,8 @@ var NUMERIC_AGGREGATES = [
|
|
|
11985
11996
|
"sum"
|
|
11986
11997
|
];
|
|
11987
11998
|
var BINARY_AGGREGATES = ["any", "all"];
|
|
11999
|
+
/** How an actuator group decides it is on. Unknown members never count as off. */
|
|
12000
|
+
var ACTIVE_CRITERIA = ["at-least-one", "all"];
|
|
11988
12001
|
var AGGREGATE_REDUCERS = [
|
|
11989
12002
|
"mean",
|
|
11990
12003
|
"median",
|
|
@@ -11996,6 +12009,7 @@ var AGGREGATE_REDUCERS = [
|
|
|
11996
12009
|
];
|
|
11997
12010
|
var GroupTemplateIdSchema = _enum(GROUP_TEMPLATE_IDS);
|
|
11998
12011
|
var AggregateReducerSchema = _enum(AGGREGATE_REDUCERS);
|
|
12012
|
+
var ActiveCriterionSchema = _enum(ACTIVE_CRITERIA);
|
|
11999
12013
|
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
12000
12014
|
var HelperMemberSchema = object({
|
|
12001
12015
|
source: CompositionSourceRefSchema,
|
|
@@ -12006,7 +12020,9 @@ var HelperSpecSchema = discriminatedUnion("kind", [object({
|
|
|
12006
12020
|
kind: literal("group"),
|
|
12007
12021
|
templateId: GroupTemplateIdSchema,
|
|
12008
12022
|
aggregate: AggregateReducerSchema,
|
|
12009
|
-
members: array(HelperMemberSchema).min(1).max(64)
|
|
12023
|
+
members: array(HelperMemberSchema).min(1).max(64),
|
|
12024
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
12025
|
+
active: ActiveCriterionSchema.optional()
|
|
12010
12026
|
})]);
|
|
12011
12027
|
/** A composed device's stableId is this prefix plus the block id. */
|
|
12012
12028
|
var COMPOSED_DEVICE_STABLE_ID_PREFIX = "composed-";
|
|
@@ -18649,6 +18665,7 @@ function numeric(input) {
|
|
|
18649
18665
|
family: "numeric",
|
|
18650
18666
|
deviceType: DeviceType.Sensor,
|
|
18651
18667
|
memberDeviceType: DeviceType.Sensor,
|
|
18668
|
+
commandCaps: [],
|
|
18652
18669
|
baseUnit: baseUnitOf(input.quantity),
|
|
18653
18670
|
aggregates: NUMERIC_AGGREGATES,
|
|
18654
18671
|
accept: [{
|
|
@@ -18663,6 +18680,7 @@ function binary(input) {
|
|
|
18663
18680
|
family: "binary",
|
|
18664
18681
|
deviceType: DeviceType.Sensor,
|
|
18665
18682
|
memberDeviceType: DeviceType.Sensor,
|
|
18683
|
+
commandCaps: [],
|
|
18666
18684
|
quantity: "none",
|
|
18667
18685
|
baseUnit: void 0,
|
|
18668
18686
|
aggregates: BINARY_AGGREGATES,
|
|
@@ -18857,9 +18875,47 @@ var GROUP_TEMPLATES = [
|
|
|
18857
18875
|
fieldPath: "on"
|
|
18858
18876
|
}],
|
|
18859
18877
|
companions: [CHANGED]
|
|
18878
|
+
}),
|
|
18879
|
+
actuator({
|
|
18880
|
+
id: "switch",
|
|
18881
|
+
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.",
|
|
18882
|
+
deviceType: DeviceType.Switch,
|
|
18883
|
+
outputCap: "switch",
|
|
18884
|
+
commandCaps: ["switch"]
|
|
18885
|
+
}),
|
|
18886
|
+
actuator({
|
|
18887
|
+
id: "light",
|
|
18888
|
+
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.",
|
|
18889
|
+
deviceType: DeviceType.Light,
|
|
18890
|
+
outputCap: "switch",
|
|
18891
|
+
commandCaps: [
|
|
18892
|
+
"switch",
|
|
18893
|
+
"brightness",
|
|
18894
|
+
"color"
|
|
18895
|
+
]
|
|
18860
18896
|
})
|
|
18861
18897
|
];
|
|
18898
|
+
function actuator(input) {
|
|
18899
|
+
return {
|
|
18900
|
+
...input,
|
|
18901
|
+
family: "actuator",
|
|
18902
|
+
role: void 0,
|
|
18903
|
+
memberDeviceType: input.deviceType,
|
|
18904
|
+
outputField: "on",
|
|
18905
|
+
quantity: "none",
|
|
18906
|
+
baseUnit: void 0,
|
|
18907
|
+
aggregates: BINARY_AGGREGATES,
|
|
18908
|
+
defaultAggregate: "any",
|
|
18909
|
+
empty: "offline",
|
|
18910
|
+
accept: [{
|
|
18911
|
+
cap: "switch",
|
|
18912
|
+
fieldPath: "on"
|
|
18913
|
+
}],
|
|
18914
|
+
companions: [CHANGED]
|
|
18915
|
+
};
|
|
18916
|
+
}
|
|
18862
18917
|
new Map(GROUP_TEMPLATES.map((template) => [template.id, template]));
|
|
18918
|
+
DeviceFeature.LightColorRgb, DeviceFeature.LightColorHsv, DeviceFeature.LightColorMired;
|
|
18863
18919
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
18864
18920
|
/**
|
|
18865
18921
|
* What a composition may BUILD on a device type (G2, D676): the caps a new
|
|
@@ -45460,6 +45516,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
45460
45516
|
"detection-blind",
|
|
45461
45517
|
"motion-noisy",
|
|
45462
45518
|
"motion-calm",
|
|
45519
|
+
"package-llm-silent",
|
|
45520
|
+
"package-llm-answered",
|
|
45463
45521
|
"recording-stalled",
|
|
45464
45522
|
"recording-healthy",
|
|
45465
45523
|
"recording-degraded",
|
|
@@ -56474,6 +56532,28 @@ var PackageVersionInfoSchema = object({
|
|
|
56474
56532
|
deprecated: string().optional(),
|
|
56475
56533
|
distTags: array(string()).readonly()
|
|
56476
56534
|
});
|
|
56535
|
+
/**
|
|
56536
|
+
* One published document. `ok` is markdown from the registry. `missing` means
|
|
56537
|
+
* the registry answered and the file was not there. `error` is a registry or
|
|
56538
|
+
* tarball failure — never an empty string standing in for either.
|
|
56539
|
+
*/
|
|
56540
|
+
var PackageDocBodySchema = discriminatedUnion("status", [
|
|
56541
|
+
object({
|
|
56542
|
+
status: literal("ok"),
|
|
56543
|
+
markdown: string()
|
|
56544
|
+
}),
|
|
56545
|
+
object({ status: literal("missing") }),
|
|
56546
|
+
object({
|
|
56547
|
+
status: literal("error"),
|
|
56548
|
+
message: string()
|
|
56549
|
+
})
|
|
56550
|
+
]);
|
|
56551
|
+
var PackageDocsSchema = object({
|
|
56552
|
+
name: string(),
|
|
56553
|
+
version: string(),
|
|
56554
|
+
readme: PackageDocBodySchema,
|
|
56555
|
+
changelog: PackageDocBodySchema
|
|
56556
|
+
});
|
|
56477
56557
|
var SearchResultSchema = object({
|
|
56478
56558
|
name: string(),
|
|
56479
56559
|
version: string(),
|
|
@@ -56692,7 +56772,10 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
56692
56772
|
}), object({ success: literal(true) }), {
|
|
56693
56773
|
kind: "mutation",
|
|
56694
56774
|
auth: "admin"
|
|
56695
|
-
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56775
|
+
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56776
|
+
name: string().min(1),
|
|
56777
|
+
version: string().min(1).optional()
|
|
56778
|
+
}), PackageDocsSchema, { auth: "admin" }), method(object({ addonId: string() }), RestartAddonResultSchema, {
|
|
56696
56779
|
kind: "mutation",
|
|
56697
56780
|
auth: "admin"
|
|
56698
56781
|
}), method(object({ packageName: string() }), object({ success: literal(true) }), {
|
|
@@ -58714,6 +58797,18 @@ object({
|
|
|
58714
58797
|
lastChangedAt: number()
|
|
58715
58798
|
});
|
|
58716
58799
|
DeviceType.Sensor;
|
|
58800
|
+
object({
|
|
58801
|
+
/** One row per member that has been commanded. A later command replaces that member's row. */
|
|
58802
|
+
results: array(object({
|
|
58803
|
+
deviceId: number().int().nonnegative(),
|
|
58804
|
+
cap: string().min(1),
|
|
58805
|
+
method: string().min(1),
|
|
58806
|
+
ok: boolean(),
|
|
58807
|
+
error: string().optional(),
|
|
58808
|
+
/** Ms epoch of the attempt. */
|
|
58809
|
+
at: number()
|
|
58810
|
+
})) });
|
|
58811
|
+
DeviceType.Switch, DeviceType.Light;
|
|
58717
58812
|
object({
|
|
58718
58813
|
/** Members whose current value entered the aggregate. */
|
|
58719
58814
|
included: number().int().nonnegative().meta(readingMeta("count", {
|
|
@@ -58731,7 +58826,7 @@ object({
|
|
|
58731
58826
|
label: "Members"
|
|
58732
58827
|
}))
|
|
58733
58828
|
});
|
|
58734
|
-
DeviceType.Sensor;
|
|
58829
|
+
DeviceType.Sensor, DeviceType.Switch, DeviceType.Light;
|
|
58735
58830
|
object({
|
|
58736
58831
|
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
58737
58832
|
position: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
@@ -66001,6 +66096,13 @@ Object.freeze({
|
|
|
66001
66096
|
access: "view",
|
|
66002
66097
|
role: "admin"
|
|
66003
66098
|
},
|
|
66099
|
+
"addons.getPackageDocs": {
|
|
66100
|
+
capName: "addons",
|
|
66101
|
+
capScope: "system",
|
|
66102
|
+
addonId: null,
|
|
66103
|
+
access: "view",
|
|
66104
|
+
role: "admin"
|
|
66105
|
+
},
|
|
66004
66106
|
"addons.getVersions": {
|
|
66005
66107
|
capName: "addons",
|
|
66006
66108
|
capScope: "system",
|
|
@@ -69109,6 +69211,13 @@ Object.freeze({
|
|
|
69109
69211
|
access: "view",
|
|
69110
69212
|
role: "viewer"
|
|
69111
69213
|
},
|
|
69214
|
+
"groupCommands.getStatus": {
|
|
69215
|
+
capName: "group-commands",
|
|
69216
|
+
capScope: "device",
|
|
69217
|
+
addonId: null,
|
|
69218
|
+
access: "view",
|
|
69219
|
+
role: "viewer"
|
|
69220
|
+
},
|
|
69112
69221
|
"groupStatus.getStatus": {
|
|
69113
69222
|
capName: "group-status",
|
|
69114
69223
|
capScope: "device",
|
|
@@ -78938,6 +79047,10 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
78938
79047
|
icon: "flame"
|
|
78939
79048
|
}]
|
|
78940
79049
|
},
|
|
79050
|
+
"group-commands": {
|
|
79051
|
+
scope: "device",
|
|
79052
|
+
noun: t("Group command", "Comando di gruppo")
|
|
79053
|
+
},
|
|
78941
79054
|
"group-status": {
|
|
78942
79055
|
scope: "device",
|
|
78943
79056
|
noun: t("Group", "Gruppo"),
|
|
@@ -80430,6 +80543,11 @@ Object.freeze({
|
|
|
80430
80543
|
form: "single",
|
|
80431
80544
|
optional: false
|
|
80432
80545
|
}],
|
|
80546
|
+
"groupCommands.getStatus": [{
|
|
80547
|
+
name: "deviceId",
|
|
80548
|
+
form: "single",
|
|
80549
|
+
optional: false
|
|
80550
|
+
}],
|
|
80433
80551
|
"groupStatus.getStatus": [{
|
|
80434
80552
|
name: "deviceId",
|
|
80435
80553
|
form: "single",
|
|
@@ -82419,6 +82537,8 @@ new Map(Object.entries({
|
|
|
82419
82537
|
"detection-blind": "device-events",
|
|
82420
82538
|
"motion-noisy": "device-events",
|
|
82421
82539
|
"motion-calm": "device-events",
|
|
82540
|
+
"package-llm-silent": "device-events",
|
|
82541
|
+
"package-llm-answered": "device-events",
|
|
82422
82542
|
"recording-stalled": "device-events",
|
|
82423
82543
|
"recording-healthy": "device-events",
|
|
82424
82544
|
"recording-degraded": "device-events",
|
|
@@ -82502,6 +82622,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
82502
82622
|
label: "Motion without a subject",
|
|
82503
82623
|
kinds: ["motion-noisy", "motion-calm"]
|
|
82504
82624
|
},
|
|
82625
|
+
{
|
|
82626
|
+
id: "package-llm",
|
|
82627
|
+
family: "device-events",
|
|
82628
|
+
label: "Package confirm",
|
|
82629
|
+
kinds: ["package-llm-silent", "package-llm-answered"]
|
|
82630
|
+
},
|
|
82505
82631
|
{
|
|
82506
82632
|
id: "recording",
|
|
82507
82633
|
family: "device-events",
|
|
@@ -82683,6 +82809,8 @@ var DEVICE_EVENTS = [
|
|
|
82683
82809
|
"detection-blind",
|
|
82684
82810
|
"motion-noisy",
|
|
82685
82811
|
"motion-calm",
|
|
82812
|
+
"package-llm-silent",
|
|
82813
|
+
"package-llm-answered",
|
|
82686
82814
|
"recording-stalled",
|
|
82687
82815
|
"recording-healthy",
|
|
82688
82816
|
"recording-degraded",
|
|
@@ -82951,6 +83079,15 @@ new Map([
|
|
|
82951
83079
|
snapshotLabel: "Cameras with constant motion now",
|
|
82952
83080
|
snapshotSection: null
|
|
82953
83081
|
},
|
|
83082
|
+
{
|
|
83083
|
+
id: "package-llm-confirm",
|
|
83084
|
+
family: "device-events",
|
|
83085
|
+
label: "Package confirm (not answering / answering again)",
|
|
83086
|
+
bad: ["package-llm-silent"],
|
|
83087
|
+
recovery: ["package-llm-answered"],
|
|
83088
|
+
snapshotLabel: "Cameras whose package confirm is not answering",
|
|
83089
|
+
snapshotSection: null
|
|
83090
|
+
},
|
|
82954
83091
|
{
|
|
82955
83092
|
id: "recording-health",
|
|
82956
83093
|
family: "device-events",
|
|
@@ -368,7 +368,7 @@ function buildPluginCatalogRegistryDescriptor(entry) {
|
|
|
368
368
|
};
|
|
369
369
|
}
|
|
370
370
|
//#endregion
|
|
371
|
-
//#region ../types/dist/event-category-
|
|
371
|
+
//#region ../types/dist/event-category-CT-hz5Rb.mjs
|
|
372
372
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
373
373
|
EventCategory["SystemBoot"] = "system.boot";
|
|
374
374
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -694,6 +694,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
694
694
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
695
695
|
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
696
696
|
/**
|
|
697
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
698
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
699
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
700
|
+
*/
|
|
701
|
+
EventCategory["PipelinePackageLlmSilent"] = "pipeline.package-llm-silent";
|
|
702
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
703
|
+
EventCategory["PipelinePackageLlmAnswered"] = "pipeline.package-llm-answered";
|
|
704
|
+
/**
|
|
697
705
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
698
706
|
* (a settings change via `setAgentInferenceDevices` /
|
|
699
707
|
* `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
|
|
@@ -5803,7 +5811,7 @@ var ZodIssueCode = {
|
|
|
5803
5811
|
var ZodFirstPartyTypeKind;
|
|
5804
5812
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5805
5813
|
//#endregion
|
|
5806
|
-
//#region ../types/dist/sleep-
|
|
5814
|
+
//#region ../types/dist/sleep-bykKrTgu.mjs
|
|
5807
5815
|
/**
|
|
5808
5816
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5809
5817
|
* window to float samples (D455).
|
|
@@ -9006,6 +9014,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9006
9014
|
"filesystem-browse",
|
|
9007
9015
|
"flood",
|
|
9008
9016
|
"gas",
|
|
9017
|
+
"group-commands",
|
|
9009
9018
|
"group-status",
|
|
9010
9019
|
"heating-valve",
|
|
9011
9020
|
"humidifier",
|
|
@@ -11170,7 +11179,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11170
11179
|
return DeviceRole;
|
|
11171
11180
|
}({});
|
|
11172
11181
|
//#endregion
|
|
11173
|
-
//#region ../types/dist/composition-
|
|
11182
|
+
//#region ../types/dist/composition-OhpuespA.mjs
|
|
11174
11183
|
/**
|
|
11175
11184
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11176
11185
|
*
|
|
@@ -11949,7 +11958,9 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
11949
11958
|
"leak",
|
|
11950
11959
|
"smoke",
|
|
11951
11960
|
"occupancy",
|
|
11952
|
-
"binary"
|
|
11961
|
+
"binary",
|
|
11962
|
+
"switch",
|
|
11963
|
+
"light"
|
|
11953
11964
|
];
|
|
11954
11965
|
var NUMERIC_AGGREGATES = [
|
|
11955
11966
|
"mean",
|
|
@@ -11959,6 +11970,8 @@ var NUMERIC_AGGREGATES = [
|
|
|
11959
11970
|
"sum"
|
|
11960
11971
|
];
|
|
11961
11972
|
var BINARY_AGGREGATES = ["any", "all"];
|
|
11973
|
+
/** How an actuator group decides it is on. Unknown members never count as off. */
|
|
11974
|
+
var ACTIVE_CRITERIA = ["at-least-one", "all"];
|
|
11962
11975
|
var AGGREGATE_REDUCERS = [
|
|
11963
11976
|
"mean",
|
|
11964
11977
|
"median",
|
|
@@ -11970,6 +11983,7 @@ var AGGREGATE_REDUCERS = [
|
|
|
11970
11983
|
];
|
|
11971
11984
|
var GroupTemplateIdSchema = _enum(GROUP_TEMPLATE_IDS);
|
|
11972
11985
|
var AggregateReducerSchema = _enum(AGGREGATE_REDUCERS);
|
|
11986
|
+
var ActiveCriterionSchema = _enum(ACTIVE_CRITERIA);
|
|
11973
11987
|
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
11974
11988
|
var HelperMemberSchema = object({
|
|
11975
11989
|
source: CompositionSourceRefSchema,
|
|
@@ -11980,7 +11994,9 @@ var HelperSpecSchema = discriminatedUnion("kind", [object({
|
|
|
11980
11994
|
kind: literal("group"),
|
|
11981
11995
|
templateId: GroupTemplateIdSchema,
|
|
11982
11996
|
aggregate: AggregateReducerSchema,
|
|
11983
|
-
members: array(HelperMemberSchema).min(1).max(64)
|
|
11997
|
+
members: array(HelperMemberSchema).min(1).max(64),
|
|
11998
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
11999
|
+
active: ActiveCriterionSchema.optional()
|
|
11984
12000
|
})]);
|
|
11985
12001
|
/** A composed device's stableId is this prefix plus the block id. */
|
|
11986
12002
|
var COMPOSED_DEVICE_STABLE_ID_PREFIX = "composed-";
|
|
@@ -18623,6 +18639,7 @@ function numeric(input) {
|
|
|
18623
18639
|
family: "numeric",
|
|
18624
18640
|
deviceType: DeviceType.Sensor,
|
|
18625
18641
|
memberDeviceType: DeviceType.Sensor,
|
|
18642
|
+
commandCaps: [],
|
|
18626
18643
|
baseUnit: baseUnitOf(input.quantity),
|
|
18627
18644
|
aggregates: NUMERIC_AGGREGATES,
|
|
18628
18645
|
accept: [{
|
|
@@ -18637,6 +18654,7 @@ function binary(input) {
|
|
|
18637
18654
|
family: "binary",
|
|
18638
18655
|
deviceType: DeviceType.Sensor,
|
|
18639
18656
|
memberDeviceType: DeviceType.Sensor,
|
|
18657
|
+
commandCaps: [],
|
|
18640
18658
|
quantity: "none",
|
|
18641
18659
|
baseUnit: void 0,
|
|
18642
18660
|
aggregates: BINARY_AGGREGATES,
|
|
@@ -18831,9 +18849,47 @@ var GROUP_TEMPLATES = [
|
|
|
18831
18849
|
fieldPath: "on"
|
|
18832
18850
|
}],
|
|
18833
18851
|
companions: [CHANGED]
|
|
18852
|
+
}),
|
|
18853
|
+
actuator({
|
|
18854
|
+
id: "switch",
|
|
18855
|
+
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.",
|
|
18856
|
+
deviceType: DeviceType.Switch,
|
|
18857
|
+
outputCap: "switch",
|
|
18858
|
+
commandCaps: ["switch"]
|
|
18859
|
+
}),
|
|
18860
|
+
actuator({
|
|
18861
|
+
id: "light",
|
|
18862
|
+
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.",
|
|
18863
|
+
deviceType: DeviceType.Light,
|
|
18864
|
+
outputCap: "switch",
|
|
18865
|
+
commandCaps: [
|
|
18866
|
+
"switch",
|
|
18867
|
+
"brightness",
|
|
18868
|
+
"color"
|
|
18869
|
+
]
|
|
18834
18870
|
})
|
|
18835
18871
|
];
|
|
18872
|
+
function actuator(input) {
|
|
18873
|
+
return {
|
|
18874
|
+
...input,
|
|
18875
|
+
family: "actuator",
|
|
18876
|
+
role: void 0,
|
|
18877
|
+
memberDeviceType: input.deviceType,
|
|
18878
|
+
outputField: "on",
|
|
18879
|
+
quantity: "none",
|
|
18880
|
+
baseUnit: void 0,
|
|
18881
|
+
aggregates: BINARY_AGGREGATES,
|
|
18882
|
+
defaultAggregate: "any",
|
|
18883
|
+
empty: "offline",
|
|
18884
|
+
accept: [{
|
|
18885
|
+
cap: "switch",
|
|
18886
|
+
fieldPath: "on"
|
|
18887
|
+
}],
|
|
18888
|
+
companions: [CHANGED]
|
|
18889
|
+
};
|
|
18890
|
+
}
|
|
18836
18891
|
new Map(GROUP_TEMPLATES.map((template) => [template.id, template]));
|
|
18892
|
+
DeviceFeature.LightColorRgb, DeviceFeature.LightColorHsv, DeviceFeature.LightColorMired;
|
|
18837
18893
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
18838
18894
|
/**
|
|
18839
18895
|
* What a composition may BUILD on a device type (G2, D676): the caps a new
|
|
@@ -45434,6 +45490,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
45434
45490
|
"detection-blind",
|
|
45435
45491
|
"motion-noisy",
|
|
45436
45492
|
"motion-calm",
|
|
45493
|
+
"package-llm-silent",
|
|
45494
|
+
"package-llm-answered",
|
|
45437
45495
|
"recording-stalled",
|
|
45438
45496
|
"recording-healthy",
|
|
45439
45497
|
"recording-degraded",
|
|
@@ -56448,6 +56506,28 @@ var PackageVersionInfoSchema = object({
|
|
|
56448
56506
|
deprecated: string().optional(),
|
|
56449
56507
|
distTags: array(string()).readonly()
|
|
56450
56508
|
});
|
|
56509
|
+
/**
|
|
56510
|
+
* One published document. `ok` is markdown from the registry. `missing` means
|
|
56511
|
+
* the registry answered and the file was not there. `error` is a registry or
|
|
56512
|
+
* tarball failure — never an empty string standing in for either.
|
|
56513
|
+
*/
|
|
56514
|
+
var PackageDocBodySchema = discriminatedUnion("status", [
|
|
56515
|
+
object({
|
|
56516
|
+
status: literal("ok"),
|
|
56517
|
+
markdown: string()
|
|
56518
|
+
}),
|
|
56519
|
+
object({ status: literal("missing") }),
|
|
56520
|
+
object({
|
|
56521
|
+
status: literal("error"),
|
|
56522
|
+
message: string()
|
|
56523
|
+
})
|
|
56524
|
+
]);
|
|
56525
|
+
var PackageDocsSchema = object({
|
|
56526
|
+
name: string(),
|
|
56527
|
+
version: string(),
|
|
56528
|
+
readme: PackageDocBodySchema,
|
|
56529
|
+
changelog: PackageDocBodySchema
|
|
56530
|
+
});
|
|
56451
56531
|
var SearchResultSchema = object({
|
|
56452
56532
|
name: string(),
|
|
56453
56533
|
version: string(),
|
|
@@ -56666,7 +56746,10 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
56666
56746
|
}), object({ success: literal(true) }), {
|
|
56667
56747
|
kind: "mutation",
|
|
56668
56748
|
auth: "admin"
|
|
56669
|
-
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56749
|
+
}), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({
|
|
56750
|
+
name: string().min(1),
|
|
56751
|
+
version: string().min(1).optional()
|
|
56752
|
+
}), PackageDocsSchema, { auth: "admin" }), method(object({ addonId: string() }), RestartAddonResultSchema, {
|
|
56670
56753
|
kind: "mutation",
|
|
56671
56754
|
auth: "admin"
|
|
56672
56755
|
}), method(object({ packageName: string() }), object({ success: literal(true) }), {
|
|
@@ -58688,6 +58771,18 @@ object({
|
|
|
58688
58771
|
lastChangedAt: number()
|
|
58689
58772
|
});
|
|
58690
58773
|
DeviceType.Sensor;
|
|
58774
|
+
object({
|
|
58775
|
+
/** One row per member that has been commanded. A later command replaces that member's row. */
|
|
58776
|
+
results: array(object({
|
|
58777
|
+
deviceId: number().int().nonnegative(),
|
|
58778
|
+
cap: string().min(1),
|
|
58779
|
+
method: string().min(1),
|
|
58780
|
+
ok: boolean(),
|
|
58781
|
+
error: string().optional(),
|
|
58782
|
+
/** Ms epoch of the attempt. */
|
|
58783
|
+
at: number()
|
|
58784
|
+
})) });
|
|
58785
|
+
DeviceType.Switch, DeviceType.Light;
|
|
58691
58786
|
object({
|
|
58692
58787
|
/** Members whose current value entered the aggregate. */
|
|
58693
58788
|
included: number().int().nonnegative().meta(readingMeta("count", {
|
|
@@ -58705,7 +58800,7 @@ object({
|
|
|
58705
58800
|
label: "Members"
|
|
58706
58801
|
}))
|
|
58707
58802
|
});
|
|
58708
|
-
DeviceType.Sensor;
|
|
58803
|
+
DeviceType.Sensor, DeviceType.Switch, DeviceType.Light;
|
|
58709
58804
|
object({
|
|
58710
58805
|
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
58711
58806
|
position: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
@@ -65975,6 +66070,13 @@ Object.freeze({
|
|
|
65975
66070
|
access: "view",
|
|
65976
66071
|
role: "admin"
|
|
65977
66072
|
},
|
|
66073
|
+
"addons.getPackageDocs": {
|
|
66074
|
+
capName: "addons",
|
|
66075
|
+
capScope: "system",
|
|
66076
|
+
addonId: null,
|
|
66077
|
+
access: "view",
|
|
66078
|
+
role: "admin"
|
|
66079
|
+
},
|
|
65978
66080
|
"addons.getVersions": {
|
|
65979
66081
|
capName: "addons",
|
|
65980
66082
|
capScope: "system",
|
|
@@ -69083,6 +69185,13 @@ Object.freeze({
|
|
|
69083
69185
|
access: "view",
|
|
69084
69186
|
role: "viewer"
|
|
69085
69187
|
},
|
|
69188
|
+
"groupCommands.getStatus": {
|
|
69189
|
+
capName: "group-commands",
|
|
69190
|
+
capScope: "device",
|
|
69191
|
+
addonId: null,
|
|
69192
|
+
access: "view",
|
|
69193
|
+
role: "viewer"
|
|
69194
|
+
},
|
|
69086
69195
|
"groupStatus.getStatus": {
|
|
69087
69196
|
capName: "group-status",
|
|
69088
69197
|
capScope: "device",
|
|
@@ -78912,6 +79021,10 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
78912
79021
|
icon: "flame"
|
|
78913
79022
|
}]
|
|
78914
79023
|
},
|
|
79024
|
+
"group-commands": {
|
|
79025
|
+
scope: "device",
|
|
79026
|
+
noun: t("Group command", "Comando di gruppo")
|
|
79027
|
+
},
|
|
78915
79028
|
"group-status": {
|
|
78916
79029
|
scope: "device",
|
|
78917
79030
|
noun: t("Group", "Gruppo"),
|
|
@@ -80404,6 +80517,11 @@ Object.freeze({
|
|
|
80404
80517
|
form: "single",
|
|
80405
80518
|
optional: false
|
|
80406
80519
|
}],
|
|
80520
|
+
"groupCommands.getStatus": [{
|
|
80521
|
+
name: "deviceId",
|
|
80522
|
+
form: "single",
|
|
80523
|
+
optional: false
|
|
80524
|
+
}],
|
|
80407
80525
|
"groupStatus.getStatus": [{
|
|
80408
80526
|
name: "deviceId",
|
|
80409
80527
|
form: "single",
|
|
@@ -82393,6 +82511,8 @@ new Map(Object.entries({
|
|
|
82393
82511
|
"detection-blind": "device-events",
|
|
82394
82512
|
"motion-noisy": "device-events",
|
|
82395
82513
|
"motion-calm": "device-events",
|
|
82514
|
+
"package-llm-silent": "device-events",
|
|
82515
|
+
"package-llm-answered": "device-events",
|
|
82396
82516
|
"recording-stalled": "device-events",
|
|
82397
82517
|
"recording-healthy": "device-events",
|
|
82398
82518
|
"recording-degraded": "device-events",
|
|
@@ -82476,6 +82596,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
82476
82596
|
label: "Motion without a subject",
|
|
82477
82597
|
kinds: ["motion-noisy", "motion-calm"]
|
|
82478
82598
|
},
|
|
82599
|
+
{
|
|
82600
|
+
id: "package-llm",
|
|
82601
|
+
family: "device-events",
|
|
82602
|
+
label: "Package confirm",
|
|
82603
|
+
kinds: ["package-llm-silent", "package-llm-answered"]
|
|
82604
|
+
},
|
|
82479
82605
|
{
|
|
82480
82606
|
id: "recording",
|
|
82481
82607
|
family: "device-events",
|
|
@@ -82657,6 +82783,8 @@ var DEVICE_EVENTS = [
|
|
|
82657
82783
|
"detection-blind",
|
|
82658
82784
|
"motion-noisy",
|
|
82659
82785
|
"motion-calm",
|
|
82786
|
+
"package-llm-silent",
|
|
82787
|
+
"package-llm-answered",
|
|
82660
82788
|
"recording-stalled",
|
|
82661
82789
|
"recording-healthy",
|
|
82662
82790
|
"recording-degraded",
|
|
@@ -82925,6 +83053,15 @@ new Map([
|
|
|
82925
83053
|
snapshotLabel: "Cameras with constant motion now",
|
|
82926
83054
|
snapshotSection: null
|
|
82927
83055
|
},
|
|
83056
|
+
{
|
|
83057
|
+
id: "package-llm-confirm",
|
|
83058
|
+
family: "device-events",
|
|
83059
|
+
label: "Package confirm (not answering / answering again)",
|
|
83060
|
+
bad: ["package-llm-silent"],
|
|
83061
|
+
recovery: ["package-llm-answered"],
|
|
83062
|
+
snapshotLabel: "Cameras whose package confirm is not answering",
|
|
83063
|
+
snapshotSection: null
|
|
83064
|
+
},
|
|
82928
83065
|
{
|
|
82929
83066
|
id: "recording-health",
|
|
82930
83067
|
family: "device-events",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
|
|
2
2
|
import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
3
|
-
import { _ as s, g as c } from "./responsive-
|
|
3
|
+
import { _ as s, g as c } from "./responsive-D0VqJmUb.mjs";
|
|
4
4
|
var l = s("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
|
6
6
|
key: "qrunsl"
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-n-MaBs9H.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as e, d as t, g as n, i as r, l as i, n as a, r as o, u as s, v as c, y as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { x as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CrWbJfbZ.mjs";
|
|
4
4
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
5
5
|
e();
|
|
6
6
|
var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as e, g as t, l as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
|
|
2
2
|
import { n as i } from "./ui-text-BqZa5BNK.mjs";
|
|
3
|
-
import { _ as a } from "./responsive-
|
|
3
|
+
import { _ as a } from "./responsive-D0VqJmUb.mjs";
|
|
4
4
|
var o = a("camera", [["path", {
|
|
5
5
|
d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
|
|
6
6
|
key: "18u6gg"
|