@camstack/addon-post-analysis 1.2.628 → 1.2.630
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{clip-model-registry-CK0QHBLo.js → clip-model-registry-DB0TSd14.js} +239 -93
- package/dist/{clip-model-registry-CXp8hOtz.mjs → clip-model-registry-wZ4Nt5jo.mjs} +224 -90
- 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-BSMQI14W.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BjktQPk_.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BxPKSyZo.mjs +26 -0
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DdbV-R1z.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-DZur54eI.mjs → hostInit-BMCiXaWO.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +111833 -108469
- package/dist/pipeline-analytics/index.mjs +111654 -108290
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CC5fsXdm.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-DdDfkgWU.mjs +0 -26
|
@@ -30,7 +30,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
30
|
}) : target, mod));
|
|
31
31
|
//#endregion
|
|
32
32
|
let node_crypto = require("node:crypto");
|
|
33
|
-
//#region ../types/dist/event-category-
|
|
33
|
+
//#region ../types/dist/event-category-Ceif8n-v.mjs
|
|
34
34
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
35
35
|
EventCategory["SystemBoot"] = "system.boot";
|
|
36
36
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -502,6 +502,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
502
502
|
* on the device detail page.
|
|
503
503
|
*/
|
|
504
504
|
EventCategory["DoorbellOnPressed"] = "doorbell.onPressed";
|
|
505
|
+
/** Mirrors `runningStateCapability.events.onStarted`. */
|
|
506
|
+
EventCategory["RunningStarted"] = "running.started";
|
|
507
|
+
/** Mirrors `runningStateCapability.events.onFinished`. */
|
|
508
|
+
EventCategory["RunningFinished"] = "running.finished";
|
|
505
509
|
/**
|
|
506
510
|
* Cap event fired by every device that registers the `event-emitter`
|
|
507
511
|
* capability. Mirrors `eventEmitterCapability.events.onEvent`. Carries
|
|
@@ -5659,7 +5663,7 @@ var ZodIssueCode = {
|
|
|
5659
5663
|
var ZodFirstPartyTypeKind;
|
|
5660
5664
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5661
5665
|
//#endregion
|
|
5662
|
-
//#region ../types/dist/sleep-
|
|
5666
|
+
//#region ../types/dist/sleep-CYfIZzGv.mjs
|
|
5663
5667
|
/**
|
|
5664
5668
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5665
5669
|
* window to float samples (D455).
|
|
@@ -5998,7 +6002,7 @@ Object.fromEntries([
|
|
|
5998
6002
|
* `hydrateSchema` to skip the `value` injection for structural-only fields.
|
|
5999
6003
|
*/
|
|
6000
6004
|
function isValuelessField(field) {
|
|
6001
|
-
return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button";
|
|
6005
|
+
return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button" || field.type === "account-sign-in" || field.type === "secret-presence";
|
|
6002
6006
|
}
|
|
6003
6007
|
function hydrateSchema(schema, values, options = {}) {
|
|
6004
6008
|
return {
|
|
@@ -8916,7 +8920,7 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8916
8920
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
8917
8921
|
* (~144MB RSS per runner, D28).
|
|
8918
8922
|
*
|
|
8919
|
-
* Coverage:
|
|
8923
|
+
* Coverage: 91 device-scoped capabilities.
|
|
8920
8924
|
*/
|
|
8921
8925
|
var DEVICE_SCOPED_CAPS = new Set([
|
|
8922
8926
|
"accessories",
|
|
@@ -8988,6 +8992,7 @@ var DEVICE_SCOPED_CAPS = new Set([
|
|
|
8988
8992
|
"recording",
|
|
8989
8993
|
"recording-onboard",
|
|
8990
8994
|
"recording-signal",
|
|
8995
|
+
"running-state",
|
|
8991
8996
|
"scene-monitor",
|
|
8992
8997
|
"script-runner",
|
|
8993
8998
|
"smoke",
|
|
@@ -9407,7 +9412,7 @@ function errMsg(err) {
|
|
|
9407
9412
|
return String(err);
|
|
9408
9413
|
}
|
|
9409
9414
|
//#endregion
|
|
9410
|
-
//#region ../types/dist/composition-
|
|
9415
|
+
//#region ../types/dist/composition-xz-ud5EQ.mjs
|
|
9411
9416
|
/**
|
|
9412
9417
|
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
9413
9418
|
* canonical form sorts object keys alphabetically at every depth so two
|
|
@@ -9868,6 +9873,20 @@ var table = {
|
|
|
9868
9873
|
apply: () => {
|
|
9869
9874
|
throw new ExpressionEvalError("count: stateful evaluation context is required");
|
|
9870
9875
|
}
|
|
9876
|
+
},
|
|
9877
|
+
dwell: {
|
|
9878
|
+
minArgs: 3,
|
|
9879
|
+
maxArgs: 3,
|
|
9880
|
+
apply: () => {
|
|
9881
|
+
throw new ExpressionEvalError("dwell: stateful evaluation context is required");
|
|
9882
|
+
}
|
|
9883
|
+
},
|
|
9884
|
+
latchedAt: {
|
|
9885
|
+
minArgs: 1,
|
|
9886
|
+
maxArgs: 1,
|
|
9887
|
+
apply: () => {
|
|
9888
|
+
throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
|
|
9889
|
+
}
|
|
9871
9890
|
}
|
|
9872
9891
|
};
|
|
9873
9892
|
Object.freeze(Object.assign(Object.create(null), table));
|
|
@@ -17600,7 +17619,15 @@ Object.freeze({
|
|
|
17600
17619
|
kind: "fixed",
|
|
17601
17620
|
result: ["number", "null"]
|
|
17602
17621
|
},
|
|
17603
|
-
count: NUMBER
|
|
17622
|
+
count: NUMBER,
|
|
17623
|
+
dwell: {
|
|
17624
|
+
kind: "fixed",
|
|
17625
|
+
result: ["boolean", "null"]
|
|
17626
|
+
},
|
|
17627
|
+
latchedAt: {
|
|
17628
|
+
kind: "fixed",
|
|
17629
|
+
result: ["number", "null"]
|
|
17630
|
+
}
|
|
17604
17631
|
});
|
|
17605
17632
|
`${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
|
|
17606
17633
|
/**
|
|
@@ -44184,9 +44211,6 @@ var NcSystemEventKindSchema = _enum([
|
|
|
44184
44211
|
"device-battery-normal",
|
|
44185
44212
|
"device-consumable-low",
|
|
44186
44213
|
"device-consumable-normal",
|
|
44187
|
-
"device-tank-low",
|
|
44188
|
-
"device-tank-full",
|
|
44189
|
-
"device-tank-normal",
|
|
44190
44214
|
"stream-online",
|
|
44191
44215
|
"stream-offline",
|
|
44192
44216
|
"node-online",
|
|
@@ -44233,13 +44257,14 @@ var NcSystemEventKindSchema = _enum([
|
|
|
44233
44257
|
"camera-enabled"
|
|
44234
44258
|
]);
|
|
44235
44259
|
/** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
|
|
44236
|
-
var NC_LEGACY_SYSTEM_EVENT_KINDS =
|
|
44260
|
+
var NC_LEGACY_SYSTEM_EVENT_KINDS = [
|
|
44237
44261
|
"camera-online",
|
|
44238
44262
|
"camera-offline",
|
|
44239
44263
|
"camera-disabled",
|
|
44240
44264
|
"camera-enabled"
|
|
44241
|
-
]
|
|
44242
|
-
|
|
44265
|
+
];
|
|
44266
|
+
var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
44267
|
+
NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
|
|
44243
44268
|
/**
|
|
44244
44269
|
* The panel's transitions, as ONE list.
|
|
44245
44270
|
*
|
|
@@ -44269,12 +44294,6 @@ var NC_ALARM_SYSTEM_EVENT_KINDS = [
|
|
|
44269
44294
|
* and both editors read it.
|
|
44270
44295
|
*/
|
|
44271
44296
|
var NC_CONSUMABLE_SYSTEM_EVENT_KINDS = ["device-consumable-low", "device-consumable-normal"];
|
|
44272
|
-
/** A vacuum's tank alerts (D642) — raised on the provider's own verdict. */
|
|
44273
|
-
var NC_TANK_SYSTEM_EVENT_KINDS = [
|
|
44274
|
-
"device-tank-low",
|
|
44275
|
-
"device-tank-full",
|
|
44276
|
-
"device-tank-normal"
|
|
44277
|
-
];
|
|
44278
44297
|
/**
|
|
44279
44298
|
* The consumable threshold a rule that does not state one judges at (D642).
|
|
44280
44299
|
* The operator's number ("default 15 %, configurable on the rule"), and the
|
|
@@ -45450,18 +45469,18 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
45450
45469
|
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
45451
45470
|
* job is not an open state, and the alarm stays instant.
|
|
45452
45471
|
*/
|
|
45453
|
-
var
|
|
45472
|
+
var NC_STATE_SUMMARY_SECTION_IDS = [
|
|
45454
45473
|
"device-state",
|
|
45455
45474
|
"streams",
|
|
45456
45475
|
"battery",
|
|
45457
45476
|
"consumables",
|
|
45458
|
-
"tanks",
|
|
45459
45477
|
"detection-blind",
|
|
45460
45478
|
"nodes",
|
|
45461
45479
|
"addons",
|
|
45462
45480
|
"addon-updates",
|
|
45463
45481
|
"updates"
|
|
45464
|
-
]
|
|
45482
|
+
];
|
|
45483
|
+
var NcStateSummarySectionIdSchema = _enum(NC_STATE_SUMMARY_SECTION_IDS);
|
|
45465
45484
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
45466
45485
|
var NcStateSummaryPreviewSectionSchema = object({
|
|
45467
45486
|
id: NcStateSummarySectionIdSchema,
|
|
@@ -45836,18 +45855,6 @@ var NC_CONDITION_CATALOG = [
|
|
|
45836
45855
|
value: "device-consumable-normal",
|
|
45837
45856
|
label: "Consumable replaced"
|
|
45838
45857
|
},
|
|
45839
|
-
{
|
|
45840
|
-
value: "device-tank-low",
|
|
45841
|
-
label: "Tank low (water, detergent)"
|
|
45842
|
-
},
|
|
45843
|
-
{
|
|
45844
|
-
value: "device-tank-full",
|
|
45845
|
-
label: "Tank full (dirty water, dust)"
|
|
45846
|
-
},
|
|
45847
|
-
{
|
|
45848
|
-
value: "device-tank-normal",
|
|
45849
|
-
label: "Tank back to normal"
|
|
45850
|
-
},
|
|
45851
45858
|
{
|
|
45852
45859
|
value: "export-completed",
|
|
45853
45860
|
label: "Export completed"
|
|
@@ -47595,6 +47602,18 @@ Object.freeze({
|
|
|
47595
47602
|
reason: "camera sensor mappings not loaded"
|
|
47596
47603
|
});
|
|
47597
47604
|
/**
|
|
47605
|
+
* What the vision model must answer before a package event is emitted
|
|
47606
|
+
* when a packages rule has "Confirm with the LLM" on.
|
|
47607
|
+
*
|
|
47608
|
+
* `package` is the verdict. `confidence` is 0..1. `reason` is the model's
|
|
47609
|
+
* one-line explanation, stored on the event so a drop is not silent.
|
|
47610
|
+
*/
|
|
47611
|
+
var PackageLlmVerdictSchema = object({
|
|
47612
|
+
package: boolean(),
|
|
47613
|
+
confidence: number().min(0).max(1),
|
|
47614
|
+
reason: string().min(1)
|
|
47615
|
+
});
|
|
47616
|
+
/**
|
|
47598
47617
|
* A model choice has a SCOPE, and a scope change has a workflow.
|
|
47599
47618
|
*
|
|
47600
47619
|
* ## The two scopes
|
|
@@ -48603,6 +48622,21 @@ var ObjectEventSchema = object({
|
|
|
48603
48622
|
* pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
|
|
48604
48623
|
*/
|
|
48605
48624
|
observedAt: number().optional(),
|
|
48625
|
+
/**
|
|
48626
|
+
* The delivery was emitted without a vision-model yes (D931).
|
|
48627
|
+
*
|
|
48628
|
+
* Set only when the packages rule asked for an LLM confirm and the model
|
|
48629
|
+
* was unreachable, timed out, or answered something that did not parse.
|
|
48630
|
+
* A notification reads it so it can say "possible" instead of a definite
|
|
48631
|
+
* delivery. Absent on every other row, and on a confirm that said yes.
|
|
48632
|
+
*/
|
|
48633
|
+
packagePossible: boolean().optional(),
|
|
48634
|
+
/**
|
|
48635
|
+
* The vision model's verdict, when a packages rule asked for one and the
|
|
48636
|
+
* model answered the schema (D931). A "no" never becomes a row — the
|
|
48637
|
+
* detector drops it and logs the reason. Present on a yes.
|
|
48638
|
+
*/
|
|
48639
|
+
packageLlmVerdict: PackageLlmVerdictSchema.optional(),
|
|
48606
48640
|
/** The parent track's key-event importance [0,1], propagated to every object
|
|
48607
48641
|
* event of the track (so an event row can be sorted by importance without a
|
|
48608
48642
|
* track join). Absent on legacy rows / before the track was scored. */
|
|
@@ -51608,11 +51642,18 @@ var KeptReasonSchema = _enum(["custom-pin"]);
|
|
|
51608
51642
|
* Where a choice's latency came from (D791): this node's own benchmark
|
|
51609
51643
|
* result, or the hardware-class table. Measured on the node beats the table.
|
|
51610
51644
|
*/
|
|
51611
|
-
var LatencySourceSchema = discriminatedUnion("kind", [
|
|
51612
|
-
kind: literal("
|
|
51613
|
-
|
|
51614
|
-
|
|
51615
|
-
|
|
51645
|
+
var LatencySourceSchema = discriminatedUnion("kind", [
|
|
51646
|
+
object({ kind: literal("table") }),
|
|
51647
|
+
object({
|
|
51648
|
+
kind: literal("node-benchmark"),
|
|
51649
|
+
resultId: string(),
|
|
51650
|
+
measuredAtMs: number()
|
|
51651
|
+
}),
|
|
51652
|
+
object({
|
|
51653
|
+
kind: literal("estimated"),
|
|
51654
|
+
estimatedFrom: HardwareClassIdSchema
|
|
51655
|
+
})
|
|
51656
|
+
]);
|
|
51616
51657
|
var DeviceModelChoiceSchema = object({
|
|
51617
51658
|
modelId: string(),
|
|
51618
51659
|
p50Ms: number(),
|
|
@@ -51620,6 +51661,11 @@ var DeviceModelChoiceSchema = object({
|
|
|
51620
51661
|
measured: boolean(),
|
|
51621
51662
|
/** Absent on a plan from before D791 — read as the table. */
|
|
51622
51663
|
source: LatencySourceSchema.optional(),
|
|
51664
|
+
/**
|
|
51665
|
+
* The measured class this latency was scaled from (D930). Absent when the
|
|
51666
|
+
* cell is the table or a node benchmark.
|
|
51667
|
+
*/
|
|
51668
|
+
estimatedFrom: HardwareClassIdSchema.optional(),
|
|
51623
51669
|
/** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
|
|
51624
51670
|
capacitySessions: number(),
|
|
51625
51671
|
personRecall: number()
|
|
@@ -58848,6 +58894,20 @@ _enum([
|
|
|
58848
58894
|
"empty",
|
|
58849
58895
|
"full"
|
|
58850
58896
|
]);
|
|
58897
|
+
/** The kind of an item, with the documented default for an absent one. */
|
|
58898
|
+
function consumableKindOf(item) {
|
|
58899
|
+
return item.kind ?? "wear";
|
|
58900
|
+
}
|
|
58901
|
+
/** The kind's default form: wear → part, waste → bin, supply → product. */
|
|
58902
|
+
var FORM_OF_KIND = {
|
|
58903
|
+
wear: "part",
|
|
58904
|
+
waste: "bin",
|
|
58905
|
+
supply: "product"
|
|
58906
|
+
};
|
|
58907
|
+
/** The form of an item: its own when the provider names one, else its kind's default. */
|
|
58908
|
+
function consumableFormOf(item) {
|
|
58909
|
+
return item.form ?? FORM_OF_KIND[consumableKindOf(item)];
|
|
58910
|
+
}
|
|
58851
58911
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
58852
58912
|
* each. */
|
|
58853
58913
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -64206,6 +64266,30 @@ includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly(
|
|
|
64206
64266
|
})
|
|
64207
64267
|
}
|
|
64208
64268
|
};
|
|
64269
|
+
var CORE_ULTRA_265K_IGPU_CLOCK_MHZ = 2e3;
|
|
64270
|
+
var positiveOrNull = number().nullable().transform((value) => value !== null && Number.isFinite(value) && value > 0 ? value : null);
|
|
64271
|
+
var textOrNull = string().nullable().transform((value) => value !== null && value.trim() !== "" ? value : null);
|
|
64272
|
+
var PrecisionGopsSchema = object({
|
|
64273
|
+
int8: positiveOrNull,
|
|
64274
|
+
fp16: positiveOrNull
|
|
64275
|
+
});
|
|
64276
|
+
/** What one accelerator device reported. Every failed query is null. */
|
|
64277
|
+
var AcceleratorComputeSchema = object({
|
|
64278
|
+
deviceKey: string(),
|
|
64279
|
+
fullDeviceName: textOrNull,
|
|
64280
|
+
executionUnits: positiveOrNull,
|
|
64281
|
+
clockMHz: positiveOrNull,
|
|
64282
|
+
gops: PrecisionGopsSchema.nullable(),
|
|
64283
|
+
architecture: textOrNull,
|
|
64284
|
+
npuName: textOrNull,
|
|
64285
|
+
tops: positiveOrNull,
|
|
64286
|
+
vendor: textOrNull,
|
|
64287
|
+
webgpuArchitecture: textOrNull,
|
|
64288
|
+
webgpuDevice: textOrNull,
|
|
64289
|
+
computeUnits: positiveOrNull
|
|
64290
|
+
});
|
|
64291
|
+
object({ accelerators: array(AcceleratorComputeSchema).nullable() });
|
|
64292
|
+
64 * CORE_ULTRA_265K_IGPU_CLOCK_MHZ;
|
|
64209
64293
|
var ModelFormatSchema = _enum(MODEL_FORMATS);
|
|
64210
64294
|
var HwAccelBackendInputSchema = _enum([
|
|
64211
64295
|
"videotoolbox",
|
|
@@ -64319,7 +64403,12 @@ var HardwareInfoSchema = object({
|
|
|
64319
64403
|
availableRAM_MB: number(),
|
|
64320
64404
|
gpu: GpuInfoSchema.nullable(),
|
|
64321
64405
|
npu: NpuInfoSchema.nullable(),
|
|
64322
|
-
coral: CoralInfoSchema.nullable().optional()
|
|
64406
|
+
coral: CoralInfoSchema.nullable().optional(),
|
|
64407
|
+
/**
|
|
64408
|
+
* Per-accelerator compute (D930). Omitted by a node that has not probed it.
|
|
64409
|
+
* `null` fields inside an entry are a failed query, never a zero.
|
|
64410
|
+
*/
|
|
64411
|
+
accelerators: array(AcceleratorComputeSchema).readonly().optional()
|
|
64323
64412
|
});
|
|
64324
64413
|
var PlatformScoreSchema = object({
|
|
64325
64414
|
runtime: literal("python"),
|
|
@@ -65150,6 +65239,41 @@ var ptzAutotrackCapability = {
|
|
|
65150
65239
|
*/
|
|
65151
65240
|
history: "none"
|
|
65152
65241
|
};
|
|
65242
|
+
var RunningStateSourceSchema = _enum(["native", "assigned"]);
|
|
65243
|
+
var RunningStateStatusSchema = object({
|
|
65244
|
+
/** null = unknown — never coerced to false (D393). */
|
|
65245
|
+
running: boolean().nullable(),
|
|
65246
|
+
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
65247
|
+
since: number().nullable(),
|
|
65248
|
+
source: RunningStateSourceSchema,
|
|
65249
|
+
phase: string().nullable(),
|
|
65250
|
+
lastFetchedAt: number()
|
|
65251
|
+
});
|
|
65252
|
+
var RunningFlipEventDataSchema = object({
|
|
65253
|
+
deviceId: number(),
|
|
65254
|
+
since: number().nullable(),
|
|
65255
|
+
phase: string().nullable()
|
|
65256
|
+
});
|
|
65257
|
+
var runningStateCapability = {
|
|
65258
|
+
name: "running-state",
|
|
65259
|
+
scope: "device",
|
|
65260
|
+
deviceNative: true,
|
|
65261
|
+
mode: "singleton",
|
|
65262
|
+
deviceTypes: Object.values(DeviceType),
|
|
65263
|
+
methods: {},
|
|
65264
|
+
events: {
|
|
65265
|
+
onStarted: { data: RunningFlipEventDataSchema },
|
|
65266
|
+
onFinished: { data: RunningFlipEventDataSchema }
|
|
65267
|
+
},
|
|
65268
|
+
status: {
|
|
65269
|
+
schema: RunningStateStatusSchema,
|
|
65270
|
+
kind: "push"
|
|
65271
|
+
},
|
|
65272
|
+
runtimeState: RunningStateStatusSchema,
|
|
65273
|
+
durability: "restored",
|
|
65274
|
+
history: { fields: { running: { kind: "boolean" } } },
|
|
65275
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
65276
|
+
};
|
|
65153
65277
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
|
|
65154
65278
|
kind: "mutation",
|
|
65155
65279
|
auth: "admin"
|
|
@@ -67177,7 +67301,20 @@ var ZoneRuleSchema = object({
|
|
|
67177
67301
|
* Defaults to `true` so operators creating a rule via the UI
|
|
67178
67302
|
* see it active immediately.
|
|
67179
67303
|
*/
|
|
67180
|
-
enabled: boolean().default(true)
|
|
67304
|
+
enabled: boolean().default(true),
|
|
67305
|
+
/**
|
|
67306
|
+
* Package stage only. When true, a package candidate may open from a
|
|
67307
|
+
* scene difference in this rule's zone after a person leaves. The
|
|
67308
|
+
* package model, when it boxes something overlapping, is extra evidence
|
|
67309
|
+
* and is not the gate. Absent or false keeps today's model path.
|
|
67310
|
+
*/
|
|
67311
|
+
detectBySceneDifference: boolean().optional(),
|
|
67312
|
+
/**
|
|
67313
|
+
* Package stage only. When true, a promoted package is shown to the
|
|
67314
|
+
* `llm` cap before the delivery event is emitted. Absent or false emits
|
|
67315
|
+
* as today. Usable with or without `detectBySceneDifference`.
|
|
67316
|
+
*/
|
|
67317
|
+
confirmWithLlm: boolean().optional()
|
|
67181
67318
|
});
|
|
67182
67319
|
array(ZoneRuleSchema).readonly();
|
|
67183
67320
|
/**
|
|
@@ -70221,6 +70358,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
70221
70358
|
ptzAutotrack: ptzAutotrackCapability,
|
|
70222
70359
|
recordingOnboard: recordingOnboardCapability,
|
|
70223
70360
|
recordingSignal: recordingSignalCapability,
|
|
70361
|
+
runningState: runningStateCapability,
|
|
70224
70362
|
sceneMonitor: sceneMonitorCapability,
|
|
70225
70363
|
scriptRunner: scriptRunnerCapability,
|
|
70226
70364
|
smoke: smokeCapability,
|
|
@@ -78480,6 +78618,13 @@ Object.freeze({
|
|
|
78480
78618
|
access: "create",
|
|
78481
78619
|
role: "admin"
|
|
78482
78620
|
},
|
|
78621
|
+
"runningState.getStatus": {
|
|
78622
|
+
capName: "running-state",
|
|
78623
|
+
capScope: "device",
|
|
78624
|
+
addonId: null,
|
|
78625
|
+
access: "view",
|
|
78626
|
+
role: "viewer"
|
|
78627
|
+
},
|
|
78483
78628
|
"sceneMonitor.captureReference": {
|
|
78484
78629
|
capName: "scene-monitor",
|
|
78485
78630
|
capScope: "device",
|
|
@@ -83194,6 +83339,32 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
83194
83339
|
}],
|
|
83195
83340
|
events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
|
|
83196
83341
|
},
|
|
83342
|
+
"running-state": {
|
|
83343
|
+
scope: "device",
|
|
83344
|
+
noun: t("Running", "In funzione"),
|
|
83345
|
+
state: [{
|
|
83346
|
+
kind: "boolean",
|
|
83347
|
+
field: "running",
|
|
83348
|
+
label: t("Running", "In funzione"),
|
|
83349
|
+
whenTrue: t("When {device} starts", "Quando {device} inizia"),
|
|
83350
|
+
whenFalse: t("When {device} finishes", "Quando {device} finisce"),
|
|
83351
|
+
icon: "play"
|
|
83352
|
+
}],
|
|
83353
|
+
events: {
|
|
83354
|
+
onStarted: {
|
|
83355
|
+
category: EventCategory.RunningStarted,
|
|
83356
|
+
label: t("Started running", "Ha iniziato a funzionare"),
|
|
83357
|
+
phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
|
|
83358
|
+
icon: "play"
|
|
83359
|
+
},
|
|
83360
|
+
onFinished: {
|
|
83361
|
+
category: EventCategory.RunningFinished,
|
|
83362
|
+
label: t("Finished", "Ha finito"),
|
|
83363
|
+
phrase: t("When {device} finishes", "Quando {device} finisce"),
|
|
83364
|
+
icon: "square"
|
|
83365
|
+
}
|
|
83366
|
+
}
|
|
83367
|
+
},
|
|
83197
83368
|
update: {
|
|
83198
83369
|
scope: "device",
|
|
83199
83370
|
noun: t("Firmware update", "Aggiornamento firmware"),
|
|
@@ -86734,6 +86905,11 @@ Object.freeze({
|
|
|
86734
86905
|
form: "single",
|
|
86735
86906
|
optional: true
|
|
86736
86907
|
}],
|
|
86908
|
+
"runningState.getStatus": [{
|
|
86909
|
+
name: "deviceId",
|
|
86910
|
+
form: "single",
|
|
86911
|
+
optional: false
|
|
86912
|
+
}],
|
|
86737
86913
|
"sceneMonitor.captureReference": [{
|
|
86738
86914
|
name: "deviceId",
|
|
86739
86915
|
form: "single",
|
|
@@ -87450,6 +87626,7 @@ new Set(["devices", "classes"]);
|
|
|
87450
87626
|
* narrows, and still fails CLOSED on a subject that cannot produce the identity
|
|
87451
87627
|
* it tests (a device the mirror cannot name is not evidence of a camera).
|
|
87452
87628
|
*/
|
|
87629
|
+
var LEGACY_KINDS_WITHOUT_FILTERS = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
87453
87630
|
/**
|
|
87454
87631
|
* Every filter, for the callers that must cover all of them (guards, tests).
|
|
87455
87632
|
*
|
|
@@ -87473,6 +87650,7 @@ var NC_SYSTEM_EVENT_FILTER_KEYS = [
|
|
|
87473
87650
|
* ignores it and an editor hides its input. It never means "excluded".
|
|
87474
87651
|
*/
|
|
87475
87652
|
function systemEventFilterApplies(kind, filter) {
|
|
87653
|
+
if (LEGACY_KINDS_WITHOUT_FILTERS.has(kind)) return false;
|
|
87476
87654
|
switch (filter) {
|
|
87477
87655
|
case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("motion-") || kind.startsWith("recording-") || kind === "alarm-triggered";
|
|
87478
87656
|
case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind" || kind.startsWith("motion-");
|
|
@@ -87514,9 +87692,6 @@ var NC_SYSTEM_EVENT_FAMILY = {
|
|
|
87514
87692
|
"device-battery-normal": "device-events",
|
|
87515
87693
|
"device-consumable-low": "device-events",
|
|
87516
87694
|
"device-consumable-normal": "device-events",
|
|
87517
|
-
"device-tank-low": "device-events",
|
|
87518
|
-
"device-tank-full": "device-events",
|
|
87519
|
-
"device-tank-normal": "device-events",
|
|
87520
87695
|
"stream-online": "device-events",
|
|
87521
87696
|
"stream-offline": "device-events",
|
|
87522
87697
|
"detection-blind": "device-events",
|
|
@@ -87611,16 +87786,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
87611
87786
|
label: "Consumables",
|
|
87612
87787
|
kinds: ["device-consumable-low", "device-consumable-normal"]
|
|
87613
87788
|
},
|
|
87614
|
-
{
|
|
87615
|
-
id: "tanks",
|
|
87616
|
-
family: "device-events",
|
|
87617
|
-
label: "Tanks",
|
|
87618
|
-
kinds: [
|
|
87619
|
-
"device-tank-low",
|
|
87620
|
-
"device-tank-full",
|
|
87621
|
-
"device-tank-normal"
|
|
87622
|
-
]
|
|
87623
|
-
},
|
|
87624
87789
|
{
|
|
87625
87790
|
id: "detection-blind",
|
|
87626
87791
|
family: "device-events",
|
|
@@ -89029,11 +89194,6 @@ var RULE_BODY_ONLY = ["body"];
|
|
|
89029
89194
|
var RULE_TEXT = ["title", "body"];
|
|
89030
89195
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
89031
89196
|
var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
|
|
89032
|
-
var TANK = [
|
|
89033
|
-
"device-tank-low",
|
|
89034
|
-
"device-tank-full",
|
|
89035
|
-
"device-tank-normal"
|
|
89036
|
-
];
|
|
89037
89197
|
var ALERT_EPISODE = [
|
|
89038
89198
|
"alert-critical",
|
|
89039
89199
|
"alert-error",
|
|
@@ -89065,7 +89225,6 @@ var DEVICE_EVENTS = [
|
|
|
89065
89225
|
"device-enabled",
|
|
89066
89226
|
...BATTERY,
|
|
89067
89227
|
...CONSUMABLE,
|
|
89068
|
-
...TANK,
|
|
89069
89228
|
"stream-online",
|
|
89070
89229
|
"stream-offline",
|
|
89071
89230
|
"detection-blind",
|
|
@@ -89111,12 +89270,6 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
89111
89270
|
example: "Robot — filter 10 %",
|
|
89112
89271
|
kinds: CONSUMABLE
|
|
89113
89272
|
},
|
|
89114
|
-
{
|
|
89115
|
-
name: "summaryTanks",
|
|
89116
|
-
label: "Summary: tanks",
|
|
89117
|
-
example: "Robot — clean water low",
|
|
89118
|
-
kinds: TANK
|
|
89119
|
-
},
|
|
89120
89273
|
{
|
|
89121
89274
|
name: "summaryDetection",
|
|
89122
89275
|
label: "Summary: cameras detecting nothing",
|
|
@@ -89525,18 +89678,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
89525
89678
|
families: ["rule"],
|
|
89526
89679
|
fields: [...RULE_TEXT],
|
|
89527
89680
|
kinds: ["system"],
|
|
89528
|
-
systemEventKinds: [...CONSUMABLE
|
|
89529
|
-
},
|
|
89530
|
-
{
|
|
89531
|
-
name: "tank",
|
|
89532
|
-
label: "Tank",
|
|
89533
|
-
description: "Which tank, as a stable token: cleanWater, dirtyWater, detergent, dustBin, or the device key of any other supply (salt, rinse aid).",
|
|
89534
|
-
example: "clean water",
|
|
89535
|
-
group: "system",
|
|
89536
|
-
families: ["rule"],
|
|
89537
|
-
fields: [...RULE_TEXT],
|
|
89538
|
-
kinds: ["system"],
|
|
89539
|
-
systemEventKinds: [...TANK]
|
|
89681
|
+
systemEventKinds: [...CONSUMABLE]
|
|
89540
89682
|
},
|
|
89541
89683
|
{
|
|
89542
89684
|
name: "profile",
|
|
@@ -90187,9 +90329,6 @@ var NC_TEMPLATE_VARS = [
|
|
|
90187
90329
|
* delete it from here then, and the served catalog names it again.
|
|
90188
90330
|
*/
|
|
90189
90331
|
var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
|
|
90190
|
-
"device-tank-low",
|
|
90191
|
-
"device-tank-full",
|
|
90192
|
-
"device-tank-normal",
|
|
90193
90332
|
"node-restarting",
|
|
90194
90333
|
"node-updating",
|
|
90195
90334
|
"alert-critical",
|
|
@@ -90349,15 +90488,6 @@ var CLASS_BY_KIND = new Map([
|
|
|
90349
90488
|
snapshotLabel: "Consumables low now",
|
|
90350
90489
|
snapshotSection: "consumables"
|
|
90351
90490
|
},
|
|
90352
|
-
{
|
|
90353
|
-
id: "tanks",
|
|
90354
|
-
family: "device-events",
|
|
90355
|
-
label: "Tanks (low or full / back to normal)",
|
|
90356
|
-
bad: ["device-tank-low", "device-tank-full"],
|
|
90357
|
-
recovery: ["device-tank-normal"],
|
|
90358
|
-
snapshotLabel: "Tanks low or full now",
|
|
90359
|
-
snapshotSection: "tanks"
|
|
90360
|
-
},
|
|
90361
90491
|
{
|
|
90362
90492
|
id: "motion-noise",
|
|
90363
90493
|
family: "device-events",
|
|
@@ -91268,6 +91398,10 @@ function readTimelapseGeneratedAt(rule, deviceId) {
|
|
|
91268
91398
|
return rule.lastGeneratedAt ?? 0;
|
|
91269
91399
|
}
|
|
91270
91400
|
MotionOnMotionChangedDataSchema.omit({ triggeredBy: true });
|
|
91401
|
+
Object.freeze({
|
|
91402
|
+
person: .8,
|
|
91403
|
+
vehicle: .8
|
|
91404
|
+
});
|
|
91271
91405
|
object({
|
|
91272
91406
|
/**
|
|
91273
91407
|
* Fraction of the box's own size added on EACH side before cutting.
|
|
@@ -92757,16 +92891,16 @@ Object.defineProperty(exports, "NC_SNOOZE_MAX_MINUTES", {
|
|
|
92757
92891
|
return NC_SNOOZE_MAX_MINUTES;
|
|
92758
92892
|
}
|
|
92759
92893
|
});
|
|
92760
|
-
Object.defineProperty(exports, "
|
|
92894
|
+
Object.defineProperty(exports, "NC_STATE_SUMMARY_SECTION_IDS", {
|
|
92761
92895
|
enumerable: true,
|
|
92762
92896
|
get: function() {
|
|
92763
|
-
return
|
|
92897
|
+
return NC_STATE_SUMMARY_SECTION_IDS;
|
|
92764
92898
|
}
|
|
92765
92899
|
});
|
|
92766
|
-
Object.defineProperty(exports, "
|
|
92900
|
+
Object.defineProperty(exports, "NC_SYSTEM_EVENT_KIND_GROUP_SPECS", {
|
|
92767
92901
|
enumerable: true,
|
|
92768
92902
|
get: function() {
|
|
92769
|
-
return
|
|
92903
|
+
return NC_SYSTEM_EVENT_KIND_GROUP_SPECS;
|
|
92770
92904
|
}
|
|
92771
92905
|
});
|
|
92772
92906
|
Object.defineProperty(exports, "NC_TAXONOMY", {
|
|
@@ -92937,6 +93071,12 @@ Object.defineProperty(exports, "OpsLogEntrySchema", {
|
|
|
92937
93071
|
return OpsLogEntrySchema;
|
|
92938
93072
|
}
|
|
92939
93073
|
});
|
|
93074
|
+
Object.defineProperty(exports, "PackageLlmVerdictSchema", {
|
|
93075
|
+
enumerable: true,
|
|
93076
|
+
get: function() {
|
|
93077
|
+
return PackageLlmVerdictSchema;
|
|
93078
|
+
}
|
|
93079
|
+
});
|
|
92940
93080
|
Object.defineProperty(exports, "PoolMemoryWatchdog", {
|
|
92941
93081
|
enumerable: true,
|
|
92942
93082
|
get: function() {
|
|
@@ -93303,6 +93443,12 @@ Object.defineProperty(exports, "cloneAlarmSettings", {
|
|
|
93303
93443
|
return cloneAlarmSettings;
|
|
93304
93444
|
}
|
|
93305
93445
|
});
|
|
93446
|
+
Object.defineProperty(exports, "consumableFormOf", {
|
|
93447
|
+
enumerable: true,
|
|
93448
|
+
get: function() {
|
|
93449
|
+
return consumableFormOf;
|
|
93450
|
+
}
|
|
93451
|
+
});
|
|
93306
93452
|
Object.defineProperty(exports, "consumableLowPercentOf", {
|
|
93307
93453
|
enumerable: true,
|
|
93308
93454
|
get: function() {
|