@camstack/types 1.2.70 → 1.2.71
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/addon.js +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/notification-rules.cap.d.ts +42 -0
- package/dist/capabilities/osd-manager.cap.d.ts +12 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +7 -1
- package/dist/enums/event-category.d.ts +27 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-Cv9dO26A.mjs → event-category-Bxo5yJjt.mjs} +27 -0
- package/dist/{event-category-DxZbWydC.js → event-category-D3gG7oil.js} +27 -0
- package/dist/index.js +79 -4
- package/dist/index.mjs +79 -4
- package/dist/interfaces/event-bus.d.ts +16 -0
- package/dist/{sleep-CwERnGrD.mjs → sleep-CTgUmjYq.mjs} +1 -1
- package/dist/{sleep-YuacOD41.js → sleep-DbVrpKVz.js} +1 -1
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_event_category = require("./event-category-
|
|
3
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_event_category = require("./event-category-D3gG7oil.js");
|
|
3
|
+
const require_sleep = require("./sleep-DbVrpKVz.js");
|
|
4
4
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
5
5
|
//#region src/generated/collection-array-methods.ts
|
|
6
6
|
/**
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as EventCategory } from "./event-category-
|
|
2
|
-
import { C as DeviceType, F as nodePin, H as scopeKey, I as readNodePin, R as ReadinessRegistry, _t as normalizeAddonInitResult, a as asJsonObject, bt as emitReadiness, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, gt as BaseAddon, ht as DisposerChain, k as expandCapMethods, mt as DATAPLANE_SECRET_HEADER, p as createDeviceProxy, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, w as adminUiCapability, y as viewerUiCapability, z as ReadinessTimeoutError } from "./sleep-
|
|
1
|
+
import { t as EventCategory } from "./event-category-Bxo5yJjt.mjs";
|
|
2
|
+
import { C as DeviceType, F as nodePin, H as scopeKey, I as readNodePin, R as ReadinessRegistry, _t as normalizeAddonInitResult, a as asJsonObject, bt as emitReadiness, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, gt as BaseAddon, ht as DisposerChain, k as expandCapMethods, mt as DATAPLANE_SECRET_HEADER, p as createDeviceProxy, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, w as adminUiCapability, y as viewerUiCapability, z as ReadinessTimeoutError } from "./sleep-CTgUmjYq.mjs";
|
|
3
3
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
4
4
|
//#region src/generated/collection-array-methods.ts
|
|
5
5
|
/**
|
|
@@ -74,6 +74,8 @@ export declare const NcSystemEventKindSchema: z.ZodEnum<{
|
|
|
74
74
|
"stream-offline": "stream-offline";
|
|
75
75
|
"node-online": "node-online";
|
|
76
76
|
"node-offline": "node-offline";
|
|
77
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
78
|
+
"detection-blind": "detection-blind";
|
|
77
79
|
"addon-update-available": "addon-update-available";
|
|
78
80
|
"server-update-available": "server-update-available";
|
|
79
81
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -121,6 +123,8 @@ export declare const NcSystemEventConditionSchema: z.ZodObject<{
|
|
|
121
123
|
"stream-offline": "stream-offline";
|
|
122
124
|
"node-online": "node-online";
|
|
123
125
|
"node-offline": "node-offline";
|
|
126
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
127
|
+
"detection-blind": "detection-blind";
|
|
124
128
|
"addon-update-available": "addon-update-available";
|
|
125
129
|
"server-update-available": "server-update-available";
|
|
126
130
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -520,6 +524,8 @@ export declare const NcConditionsSchema: z.ZodObject<{
|
|
|
520
524
|
"stream-offline": "stream-offline";
|
|
521
525
|
"node-online": "node-online";
|
|
522
526
|
"node-offline": "node-offline";
|
|
527
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
528
|
+
"detection-blind": "detection-blind";
|
|
523
529
|
"addon-update-available": "addon-update-available";
|
|
524
530
|
"server-update-available": "server-update-available";
|
|
525
531
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -787,6 +793,8 @@ export declare const NcRuleInputSchema: z.ZodObject<{
|
|
|
787
793
|
"stream-offline": "stream-offline";
|
|
788
794
|
"node-online": "node-online";
|
|
789
795
|
"node-offline": "node-offline";
|
|
796
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
797
|
+
"detection-blind": "detection-blind";
|
|
790
798
|
"addon-update-available": "addon-update-available";
|
|
791
799
|
"server-update-available": "server-update-available";
|
|
792
800
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -952,6 +960,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
|
|
|
952
960
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
953
961
|
}, z.core.$strip>>;
|
|
954
962
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
963
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
955
964
|
}, z.core.$strip>;
|
|
956
965
|
export type NcRuleInput = z.infer<typeof NcRuleInputSchema>;
|
|
957
966
|
/**
|
|
@@ -1058,6 +1067,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
|
|
|
1058
1067
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
1059
1068
|
}, z.core.$strip>>>;
|
|
1060
1069
|
waitForEnhancement: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
1070
|
+
groupIdleSec: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
1061
1071
|
disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1062
1072
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1063
1073
|
conditions: z.ZodOptional<z.ZodObject<{
|
|
@@ -1116,6 +1126,8 @@ export declare const NcRulePatchSchema: z.ZodObject<{
|
|
|
1116
1126
|
"stream-offline": "stream-offline";
|
|
1117
1127
|
"node-online": "node-online";
|
|
1118
1128
|
"node-offline": "node-offline";
|
|
1129
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
1130
|
+
"detection-blind": "detection-blind";
|
|
1119
1131
|
"addon-update-available": "addon-update-available";
|
|
1120
1132
|
"server-update-available": "server-update-available";
|
|
1121
1133
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -1264,6 +1276,8 @@ export declare const NcRuleSchema: z.ZodObject<{
|
|
|
1264
1276
|
"stream-offline": "stream-offline";
|
|
1265
1277
|
"node-online": "node-online";
|
|
1266
1278
|
"node-offline": "node-offline";
|
|
1279
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
1280
|
+
"detection-blind": "detection-blind";
|
|
1267
1281
|
"addon-update-available": "addon-update-available";
|
|
1268
1282
|
"server-update-available": "server-update-available";
|
|
1269
1283
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -1429,6 +1443,7 @@ export declare const NcRuleSchema: z.ZodObject<{
|
|
|
1429
1443
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
1430
1444
|
}, z.core.$strip>>;
|
|
1431
1445
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
1446
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
1432
1447
|
id: z.ZodString;
|
|
1433
1448
|
createdBy: z.ZodString;
|
|
1434
1449
|
createdAt: z.ZodNumber;
|
|
@@ -1561,6 +1576,8 @@ export declare const NcHistorySubjectSchema: z.ZodObject<{
|
|
|
1561
1576
|
"stream-offline": "stream-offline";
|
|
1562
1577
|
"node-online": "node-online";
|
|
1563
1578
|
"node-offline": "node-offline";
|
|
1579
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
1580
|
+
"detection-blind": "detection-blind";
|
|
1564
1581
|
"addon-update-available": "addon-update-available";
|
|
1565
1582
|
"server-update-available": "server-update-available";
|
|
1566
1583
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -1638,6 +1655,8 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
|
|
|
1638
1655
|
"stream-offline": "stream-offline";
|
|
1639
1656
|
"node-online": "node-online";
|
|
1640
1657
|
"node-offline": "node-offline";
|
|
1658
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
1659
|
+
"detection-blind": "detection-blind";
|
|
1641
1660
|
"addon-update-available": "addon-update-available";
|
|
1642
1661
|
"server-update-available": "server-update-available";
|
|
1643
1662
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -1922,6 +1941,8 @@ export declare const notificationRulesCapability: {
|
|
|
1922
1941
|
"stream-offline": "stream-offline";
|
|
1923
1942
|
"node-online": "node-online";
|
|
1924
1943
|
"node-offline": "node-offline";
|
|
1944
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
1945
|
+
"detection-blind": "detection-blind";
|
|
1925
1946
|
"addon-update-available": "addon-update-available";
|
|
1926
1947
|
"server-update-available": "server-update-available";
|
|
1927
1948
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -2087,6 +2108,7 @@ export declare const notificationRulesCapability: {
|
|
|
2087
2108
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
2088
2109
|
}, z.core.$strip>>;
|
|
2089
2110
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
2111
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
2090
2112
|
id: z.ZodString;
|
|
2091
2113
|
createdBy: z.ZodString;
|
|
2092
2114
|
createdAt: z.ZodNumber;
|
|
@@ -2163,6 +2185,8 @@ export declare const notificationRulesCapability: {
|
|
|
2163
2185
|
"stream-offline": "stream-offline";
|
|
2164
2186
|
"node-online": "node-online";
|
|
2165
2187
|
"node-offline": "node-offline";
|
|
2188
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
2189
|
+
"detection-blind": "detection-blind";
|
|
2166
2190
|
"addon-update-available": "addon-update-available";
|
|
2167
2191
|
"server-update-available": "server-update-available";
|
|
2168
2192
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -2328,6 +2352,7 @@ export declare const notificationRulesCapability: {
|
|
|
2328
2352
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
2329
2353
|
}, z.core.$strip>>;
|
|
2330
2354
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
2355
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
2331
2356
|
id: z.ZodString;
|
|
2332
2357
|
createdBy: z.ZodString;
|
|
2333
2358
|
createdAt: z.ZodNumber;
|
|
@@ -2402,6 +2427,8 @@ export declare const notificationRulesCapability: {
|
|
|
2402
2427
|
"stream-offline": "stream-offline";
|
|
2403
2428
|
"node-online": "node-online";
|
|
2404
2429
|
"node-offline": "node-offline";
|
|
2430
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
2431
|
+
"detection-blind": "detection-blind";
|
|
2405
2432
|
"addon-update-available": "addon-update-available";
|
|
2406
2433
|
"server-update-available": "server-update-available";
|
|
2407
2434
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -2567,6 +2594,7 @@ export declare const notificationRulesCapability: {
|
|
|
2567
2594
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
2568
2595
|
}, z.core.$strip>>;
|
|
2569
2596
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
2597
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
2570
2598
|
}, z.core.$strip>;
|
|
2571
2599
|
}, z.core.$strip>, z.ZodObject<{
|
|
2572
2600
|
rule: z.ZodObject<{
|
|
@@ -2635,6 +2663,8 @@ export declare const notificationRulesCapability: {
|
|
|
2635
2663
|
"stream-offline": "stream-offline";
|
|
2636
2664
|
"node-online": "node-online";
|
|
2637
2665
|
"node-offline": "node-offline";
|
|
2666
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
2667
|
+
"detection-blind": "detection-blind";
|
|
2638
2668
|
"addon-update-available": "addon-update-available";
|
|
2639
2669
|
"server-update-available": "server-update-available";
|
|
2640
2670
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -2800,6 +2830,7 @@ export declare const notificationRulesCapability: {
|
|
|
2800
2830
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
2801
2831
|
}, z.core.$strip>>;
|
|
2802
2832
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
2833
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
2803
2834
|
id: z.ZodString;
|
|
2804
2835
|
createdBy: z.ZodString;
|
|
2805
2836
|
createdAt: z.ZodNumber;
|
|
@@ -2906,6 +2937,7 @@ export declare const notificationRulesCapability: {
|
|
|
2906
2937
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
2907
2938
|
}, z.core.$strip>>>;
|
|
2908
2939
|
waitForEnhancement: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
2940
|
+
groupIdleSec: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
2909
2941
|
disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2910
2942
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
2911
2943
|
conditions: z.ZodOptional<z.ZodObject<{
|
|
@@ -2964,6 +2996,8 @@ export declare const notificationRulesCapability: {
|
|
|
2964
2996
|
"stream-offline": "stream-offline";
|
|
2965
2997
|
"node-online": "node-online";
|
|
2966
2998
|
"node-offline": "node-offline";
|
|
2999
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
3000
|
+
"detection-blind": "detection-blind";
|
|
2967
3001
|
"addon-update-available": "addon-update-available";
|
|
2968
3002
|
"server-update-available": "server-update-available";
|
|
2969
3003
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -3111,6 +3145,8 @@ export declare const notificationRulesCapability: {
|
|
|
3111
3145
|
"stream-offline": "stream-offline";
|
|
3112
3146
|
"node-online": "node-online";
|
|
3113
3147
|
"node-offline": "node-offline";
|
|
3148
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
3149
|
+
"detection-blind": "detection-blind";
|
|
3114
3150
|
"addon-update-available": "addon-update-available";
|
|
3115
3151
|
"server-update-available": "server-update-available";
|
|
3116
3152
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -3276,6 +3312,7 @@ export declare const notificationRulesCapability: {
|
|
|
3276
3312
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
3277
3313
|
}, z.core.$strip>>;
|
|
3278
3314
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
3315
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
3279
3316
|
id: z.ZodString;
|
|
3280
3317
|
createdBy: z.ZodString;
|
|
3281
3318
|
createdAt: z.ZodNumber;
|
|
@@ -3398,6 +3435,8 @@ export declare const notificationRulesCapability: {
|
|
|
3398
3435
|
"stream-offline": "stream-offline";
|
|
3399
3436
|
"node-online": "node-online";
|
|
3400
3437
|
"node-offline": "node-offline";
|
|
3438
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
3439
|
+
"detection-blind": "detection-blind";
|
|
3401
3440
|
"addon-update-available": "addon-update-available";
|
|
3402
3441
|
"server-update-available": "server-update-available";
|
|
3403
3442
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -3563,6 +3602,7 @@ export declare const notificationRulesCapability: {
|
|
|
3563
3602
|
maxImagePx: z.ZodDefault<z.ZodNumber>;
|
|
3564
3603
|
}, z.core.$strip>>;
|
|
3565
3604
|
waitForEnhancement: z.ZodOptional<z.ZodBoolean>;
|
|
3605
|
+
groupIdleSec: z.ZodOptional<z.ZodNumber>;
|
|
3566
3606
|
}, z.core.$strip>;
|
|
3567
3607
|
lookbackMinutes: z.ZodDefault<z.ZodNumber>;
|
|
3568
3608
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -3740,6 +3780,8 @@ export declare const notificationRulesCapability: {
|
|
|
3740
3780
|
"stream-offline": "stream-offline";
|
|
3741
3781
|
"node-online": "node-online";
|
|
3742
3782
|
"node-offline": "node-offline";
|
|
3783
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
3784
|
+
"detection-blind": "detection-blind";
|
|
3743
3785
|
"addon-update-available": "addon-update-available";
|
|
3744
3786
|
"server-update-available": "server-update-available";
|
|
3745
3787
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -144,6 +144,8 @@ export declare const OsdSlotBindingSchema: z.ZodObject<{
|
|
|
144
144
|
"stream-offline": "stream-offline";
|
|
145
145
|
"node-online": "node-online";
|
|
146
146
|
"node-offline": "node-offline";
|
|
147
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
148
|
+
"detection-blind": "detection-blind";
|
|
147
149
|
"addon-update-available": "addon-update-available";
|
|
148
150
|
"server-update-available": "server-update-available";
|
|
149
151
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -292,6 +294,8 @@ export declare const OsdSlotViewSchema: z.ZodObject<{
|
|
|
292
294
|
"stream-offline": "stream-offline";
|
|
293
295
|
"node-online": "node-online";
|
|
294
296
|
"node-offline": "node-offline";
|
|
297
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
298
|
+
"detection-blind": "detection-blind";
|
|
295
299
|
"addon-update-available": "addon-update-available";
|
|
296
300
|
"server-update-available": "server-update-available";
|
|
297
301
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -512,6 +516,8 @@ export declare const osdManagerCapability: {
|
|
|
512
516
|
"stream-offline": "stream-offline";
|
|
513
517
|
"node-online": "node-online";
|
|
514
518
|
"node-offline": "node-offline";
|
|
519
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
520
|
+
"detection-blind": "detection-blind";
|
|
515
521
|
"addon-update-available": "addon-update-available";
|
|
516
522
|
"server-update-available": "server-update-available";
|
|
517
523
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -748,6 +754,8 @@ export declare const osdManagerCapability: {
|
|
|
748
754
|
"stream-offline": "stream-offline";
|
|
749
755
|
"node-online": "node-online";
|
|
750
756
|
"node-offline": "node-offline";
|
|
757
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
758
|
+
"detection-blind": "detection-blind";
|
|
751
759
|
"addon-update-available": "addon-update-available";
|
|
752
760
|
"server-update-available": "server-update-available";
|
|
753
761
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -895,6 +903,8 @@ export declare const osdManagerCapability: {
|
|
|
895
903
|
"stream-offline": "stream-offline";
|
|
896
904
|
"node-online": "node-online";
|
|
897
905
|
"node-offline": "node-offline";
|
|
906
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
907
|
+
"detection-blind": "detection-blind";
|
|
898
908
|
"addon-update-available": "addon-update-available";
|
|
899
909
|
"server-update-available": "server-update-available";
|
|
900
910
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -1074,6 +1084,8 @@ export declare const osdManagerCapability: {
|
|
|
1074
1084
|
"stream-offline": "stream-offline";
|
|
1075
1085
|
"node-online": "node-online";
|
|
1076
1086
|
"node-offline": "node-offline";
|
|
1087
|
+
"node-inference-unavailable": "node-inference-unavailable";
|
|
1088
|
+
"detection-blind": "detection-blind";
|
|
1077
1089
|
"addon-update-available": "addon-update-available";
|
|
1078
1090
|
"server-update-available": "server-update-available";
|
|
1079
1091
|
"alarm-triggered": "alarm-triggered";
|
|
@@ -202,7 +202,7 @@ export type TrackEnvelope = z.infer<typeof TrackEnvelopeSchema>;
|
|
|
202
202
|
* `snapshots[]` references — megabytes across a page of tracks. `slim`
|
|
203
203
|
* keeps every scalar the list surfaces actually render (ids, class(es),
|
|
204
204
|
* label / audioLabels / importance enrichment, firstSeen/lastSeen, state,
|
|
205
|
-
* zonesVisited, bestEventId, envelope, hasFace) and returns `positions` /
|
|
205
|
+
* zonesVisited, bestEventId, envelope, hasFace, hasRider) and returns `positions` /
|
|
206
206
|
* `snapshots` as EMPTY arrays — detail views re-fetch the full row via
|
|
207
207
|
* `getTrack`. Mirrors the event-store `projection` convention
|
|
208
208
|
* (`getObjectEvents` et al.).
|
|
@@ -432,6 +432,7 @@ declare const TrackSchema: z.ZodObject<{
|
|
|
432
432
|
maxY: z.ZodNumber;
|
|
433
433
|
}, z.core.$strip>>;
|
|
434
434
|
hasFace: z.ZodOptional<z.ZodBoolean>;
|
|
435
|
+
hasRider: z.ZodOptional<z.ZodBoolean>;
|
|
435
436
|
label: z.ZodOptional<z.ZodString>;
|
|
436
437
|
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
437
438
|
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
@@ -1081,6 +1082,7 @@ declare const RecentTracksPageSchema: z.ZodObject<{
|
|
|
1081
1082
|
maxY: z.ZodNumber;
|
|
1082
1083
|
}, z.core.$strip>>;
|
|
1083
1084
|
hasFace: z.ZodOptional<z.ZodBoolean>;
|
|
1085
|
+
hasRider: z.ZodOptional<z.ZodBoolean>;
|
|
1084
1086
|
label: z.ZodOptional<z.ZodString>;
|
|
1085
1087
|
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1086
1088
|
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
@@ -1332,6 +1334,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1332
1334
|
maxY: z.ZodNumber;
|
|
1333
1335
|
}, z.core.$strip>>;
|
|
1334
1336
|
hasFace: z.ZodOptional<z.ZodBoolean>;
|
|
1337
|
+
hasRider: z.ZodOptional<z.ZodBoolean>;
|
|
1335
1338
|
label: z.ZodOptional<z.ZodString>;
|
|
1336
1339
|
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1337
1340
|
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
@@ -1426,6 +1429,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1426
1429
|
maxY: z.ZodNumber;
|
|
1427
1430
|
}, z.core.$strip>>;
|
|
1428
1431
|
hasFace: z.ZodOptional<z.ZodBoolean>;
|
|
1432
|
+
hasRider: z.ZodOptional<z.ZodBoolean>;
|
|
1429
1433
|
label: z.ZodOptional<z.ZodString>;
|
|
1430
1434
|
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1431
1435
|
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
@@ -1542,6 +1546,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1542
1546
|
maxY: z.ZodNumber;
|
|
1543
1547
|
}, z.core.$strip>>;
|
|
1544
1548
|
hasFace: z.ZodOptional<z.ZodBoolean>;
|
|
1549
|
+
hasRider: z.ZodOptional<z.ZodBoolean>;
|
|
1545
1550
|
label: z.ZodOptional<z.ZodString>;
|
|
1546
1551
|
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1547
1552
|
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
@@ -1654,6 +1659,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1654
1659
|
maxY: z.ZodNumber;
|
|
1655
1660
|
}, z.core.$strip>>;
|
|
1656
1661
|
hasFace: z.ZodOptional<z.ZodBoolean>;
|
|
1662
|
+
hasRider: z.ZodOptional<z.ZodBoolean>;
|
|
1657
1663
|
label: z.ZodOptional<z.ZodString>;
|
|
1658
1664
|
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1659
1665
|
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
@@ -203,6 +203,33 @@ export declare enum EventCategory {
|
|
|
203
203
|
*/
|
|
204
204
|
PipelineCameraAssigned = "pipeline.camera-assigned",
|
|
205
205
|
PipelineCameraUnassigned = "pipeline.camera-unassigned",
|
|
206
|
+
/**
|
|
207
|
+
* A node the orchestrator would otherwise place cameras on has NO usable
|
|
208
|
+
* inference device: the operator enabled one or more accelerators there and
|
|
209
|
+
* the live probe reports every one of them unavailable. Emitted once per
|
|
210
|
+
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
211
|
+
* from the placement candidate set for as long as it holds.
|
|
212
|
+
*
|
|
213
|
+
* This exists because the state was previously invisible: little-unraid
|
|
214
|
+
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
215
|
+
* and nothing in the system said so.
|
|
216
|
+
*
|
|
217
|
+
* A node with no accelerators configured at all is NOT this — its devices
|
|
218
|
+
* are `disabled`, not `unavailable`, and the runner's default CPU pool
|
|
219
|
+
* serves it exactly as before.
|
|
220
|
+
*/
|
|
221
|
+
PipelineNodeInferenceUnavailable = "pipeline.node-inference-unavailable",
|
|
222
|
+
/**
|
|
223
|
+
* A camera has an OPEN detection session and has produced no detection at
|
|
224
|
+
* all for longer than the blind threshold — the camera is being decoded and
|
|
225
|
+
* inferred and is returning nothing. Emitted once per transition into blind,
|
|
226
|
+
* per camera.
|
|
227
|
+
*
|
|
228
|
+
* The failure it reports: a 1h43 detection blackout on the entrance camera
|
|
229
|
+
* that nobody noticed, because "a camera that detects nothing" and "a quiet
|
|
230
|
+
* camera" produce byte-identical silence.
|
|
231
|
+
*/
|
|
232
|
+
PipelineDetectionBlind = "pipeline.detection-blind",
|
|
206
233
|
/**
|
|
207
234
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
208
235
|
* (3-level settings change via `setAgentAddonDefaults` /
|
package/dist/enums.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_event_category = require("./event-category-
|
|
2
|
+
const require_event_category = require("./event-category-D3gG7oil.js");
|
|
3
3
|
//#region src/enums/event-source-type.ts
|
|
4
4
|
var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
|
|
5
5
|
EventSourceType["Addon"] = "addon";
|
package/dist/enums.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as EventCategory } from "./event-category-
|
|
1
|
+
import { t as EventCategory } from "./event-category-Bxo5yJjt.mjs";
|
|
2
2
|
//#region src/enums/event-source-type.ts
|
|
3
3
|
var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
|
|
4
4
|
EventSourceType["Addon"] = "addon";
|
|
@@ -205,6 +205,33 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
205
205
|
EventCategory["PipelineCameraAssigned"] = "pipeline.camera-assigned";
|
|
206
206
|
EventCategory["PipelineCameraUnassigned"] = "pipeline.camera-unassigned";
|
|
207
207
|
/**
|
|
208
|
+
* A node the orchestrator would otherwise place cameras on has NO usable
|
|
209
|
+
* inference device: the operator enabled one or more accelerators there and
|
|
210
|
+
* the live probe reports every one of them unavailable. Emitted once per
|
|
211
|
+
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
212
|
+
* from the placement candidate set for as long as it holds.
|
|
213
|
+
*
|
|
214
|
+
* This exists because the state was previously invisible: little-unraid
|
|
215
|
+
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
216
|
+
* and nothing in the system said so.
|
|
217
|
+
*
|
|
218
|
+
* A node with no accelerators configured at all is NOT this — its devices
|
|
219
|
+
* are `disabled`, not `unavailable`, and the runner's default CPU pool
|
|
220
|
+
* serves it exactly as before.
|
|
221
|
+
*/
|
|
222
|
+
EventCategory["PipelineNodeInferenceUnavailable"] = "pipeline.node-inference-unavailable";
|
|
223
|
+
/**
|
|
224
|
+
* A camera has an OPEN detection session and has produced no detection at
|
|
225
|
+
* all for longer than the blind threshold — the camera is being decoded and
|
|
226
|
+
* inferred and is returning nothing. Emitted once per transition into blind,
|
|
227
|
+
* per camera.
|
|
228
|
+
*
|
|
229
|
+
* The failure it reports: a 1h43 detection blackout on the entrance camera
|
|
230
|
+
* that nobody noticed, because "a camera that detects nothing" and "a quiet
|
|
231
|
+
* camera" produce byte-identical silence.
|
|
232
|
+
*/
|
|
233
|
+
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
234
|
+
/**
|
|
208
235
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
209
236
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
210
237
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -205,6 +205,33 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
205
205
|
EventCategory["PipelineCameraAssigned"] = "pipeline.camera-assigned";
|
|
206
206
|
EventCategory["PipelineCameraUnassigned"] = "pipeline.camera-unassigned";
|
|
207
207
|
/**
|
|
208
|
+
* A node the orchestrator would otherwise place cameras on has NO usable
|
|
209
|
+
* inference device: the operator enabled one or more accelerators there and
|
|
210
|
+
* the live probe reports every one of them unavailable. Emitted once per
|
|
211
|
+
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
212
|
+
* from the placement candidate set for as long as it holds.
|
|
213
|
+
*
|
|
214
|
+
* This exists because the state was previously invisible: little-unraid
|
|
215
|
+
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
216
|
+
* and nothing in the system said so.
|
|
217
|
+
*
|
|
218
|
+
* A node with no accelerators configured at all is NOT this — its devices
|
|
219
|
+
* are `disabled`, not `unavailable`, and the runner's default CPU pool
|
|
220
|
+
* serves it exactly as before.
|
|
221
|
+
*/
|
|
222
|
+
EventCategory["PipelineNodeInferenceUnavailable"] = "pipeline.node-inference-unavailable";
|
|
223
|
+
/**
|
|
224
|
+
* A camera has an OPEN detection session and has produced no detection at
|
|
225
|
+
* all for longer than the blind threshold — the camera is being decoded and
|
|
226
|
+
* inferred and is returning nothing. Emitted once per transition into blind,
|
|
227
|
+
* per camera.
|
|
228
|
+
*
|
|
229
|
+
* The failure it reports: a 1h43 detection blackout on the entrance camera
|
|
230
|
+
* that nobody noticed, because "a camera that detects nothing" and "a quiet
|
|
231
|
+
* camera" produce byte-identical silence.
|
|
232
|
+
*/
|
|
233
|
+
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
234
|
+
/**
|
|
208
235
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
209
236
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
210
237
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_event_category = require("./event-category-
|
|
3
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_event_category = require("./event-category-D3gG7oil.js");
|
|
3
|
+
const require_sleep = require("./sleep-DbVrpKVz.js");
|
|
4
4
|
const require_canonical_hash = require("./canonical-hash-DNV8S5ET.js");
|
|
5
5
|
const require_enums = require("./enums.js");
|
|
6
6
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
@@ -11958,6 +11958,8 @@ var NcSystemEventKindSchema = zod.z.enum([
|
|
|
11958
11958
|
"stream-offline",
|
|
11959
11959
|
"node-online",
|
|
11960
11960
|
"node-offline",
|
|
11961
|
+
"node-inference-unavailable",
|
|
11962
|
+
"detection-blind",
|
|
11961
11963
|
"addon-update-available",
|
|
11962
11964
|
"server-update-available",
|
|
11963
11965
|
"alarm-triggered",
|
|
@@ -12802,7 +12804,50 @@ var NcRuleInputSchema = zod.z.object({
|
|
|
12802
12804
|
* tests every zone the track visited and a `crossing` condition can no longer
|
|
12803
12805
|
* be satisfied, because a closed track carries no crossing.
|
|
12804
12806
|
*/
|
|
12805
|
-
waitForEnhancement: zod.z.boolean().optional()
|
|
12807
|
+
waitForEnhancement: zod.z.boolean().optional(),
|
|
12808
|
+
/**
|
|
12809
|
+
* GROUP a burst of subjects into ONE notification that grows.
|
|
12810
|
+
*
|
|
12811
|
+
* Seconds of quiet after the last matching subject before the burst is
|
|
12812
|
+
* considered over. While it is open, the first subject enqueues immediately —
|
|
12813
|
+
* **exactly as today, with no added latency** — and every real growth (a new
|
|
12814
|
+
* subject, or a name confirmed on one already in it) REPLACES that
|
|
12815
|
+
* notification with an updated one naming everybody. The push carries the
|
|
12816
|
+
* group's own coalescing tag, so the phone replaces rather than stacks.
|
|
12817
|
+
*
|
|
12818
|
+
* `0` / absent = off, and off is today's behaviour byte for byte.
|
|
12819
|
+
*
|
|
12820
|
+
* ### Why an idle cutoff and not a window
|
|
12821
|
+
*
|
|
12822
|
+
* The measured seven-person arrival on device 590 spans 110 s with every
|
|
12823
|
+
* internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
|
|
12824
|
+
* idle cutoff holds it as one and ends it when the arrival actually ends.
|
|
12825
|
+
* 30 is Frigate's shipped value for the same decision.
|
|
12826
|
+
*
|
|
12827
|
+
* ### What it replaces
|
|
12828
|
+
*
|
|
12829
|
+
* The blind cooldown, which collapses a burst by DISCARDING it. Measured on
|
|
12830
|
+
* device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
|
|
12831
|
+
* notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
|
|
12832
|
+
* track that did fire and 7 carrying a confirmed identity nobody heard about.
|
|
12833
|
+
* A group collapses the same volume by MERGING, so the cooldown becomes a
|
|
12834
|
+
* budget over GROUPS — which is what it always meant — and a growth is never
|
|
12835
|
+
* throttled by the window its own first member spent.
|
|
12836
|
+
*
|
|
12837
|
+
* ### Interaction with {@link waitForEnhancement}
|
|
12838
|
+
*
|
|
12839
|
+
* They compose, and the order matters. `waitForEnhancement` defers the rule to
|
|
12840
|
+
* TRACK CLOSE, so with both set the group is opened by the first member to
|
|
12841
|
+
* CLOSE — already carrying its name — and grows as later members close. That
|
|
12842
|
+
* is later, and complete. With grouping alone the group opens on the first
|
|
12843
|
+
* object event and picks up names as they are confirmed, through the growth
|
|
12844
|
+
* path. Neither combination fires twice for one subject.
|
|
12845
|
+
*
|
|
12846
|
+
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
12847
|
+
* on the addon cap path, so absent must keep meaning what it meant before this
|
|
12848
|
+
* field existed.
|
|
12849
|
+
*/
|
|
12850
|
+
groupIdleSec: zod.z.number().int().min(0).max(600).optional()
|
|
12806
12851
|
});
|
|
12807
12852
|
/**
|
|
12808
12853
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -12989,6 +13034,14 @@ var NC_CONDITION_CATALOG = [
|
|
|
12989
13034
|
value: "node-offline",
|
|
12990
13035
|
label: "Node offline"
|
|
12991
13036
|
},
|
|
13037
|
+
{
|
|
13038
|
+
value: "node-inference-unavailable",
|
|
13039
|
+
label: "Node has no usable inference device"
|
|
13040
|
+
},
|
|
13041
|
+
{
|
|
13042
|
+
value: "detection-blind",
|
|
13043
|
+
label: "Camera detecting nothing"
|
|
13044
|
+
},
|
|
12992
13045
|
{
|
|
12993
13046
|
value: "addon-update-available",
|
|
12994
13047
|
label: "Addon update available"
|
|
@@ -14250,7 +14303,7 @@ var TrackEnvelopeSchema = zod.z.object({
|
|
|
14250
14303
|
* `snapshots[]` references — megabytes across a page of tracks. `slim`
|
|
14251
14304
|
* keeps every scalar the list surfaces actually render (ids, class(es),
|
|
14252
14305
|
* label / audioLabels / importance enrichment, firstSeen/lastSeen, state,
|
|
14253
|
-
* zonesVisited, bestEventId, envelope, hasFace) and returns `positions` /
|
|
14306
|
+
* zonesVisited, bestEventId, envelope, hasFace, hasRider) and returns `positions` /
|
|
14254
14307
|
* `snapshots` as EMPTY arrays — detail views re-fetch the full row via
|
|
14255
14308
|
* `getTrack`. Mirrors the event-store `projection` convention
|
|
14256
14309
|
* (`getObjectEvents` et al.).
|
|
@@ -14553,6 +14606,28 @@ var TrackSchema = zod.z.object({
|
|
|
14553
14606
|
* `=== true` and render nothing otherwise, never infer "no face".
|
|
14554
14607
|
*/
|
|
14555
14608
|
hasFace: zod.z.boolean().optional(),
|
|
14609
|
+
/**
|
|
14610
|
+
* This subject CONTAINS a folded rider — a person the rider-pairing step
|
|
14611
|
+
* ([D34](../decisions/adr-0034.md)) removed from the frame BEFORE the tracker,
|
|
14612
|
+
* so the passage is tracked once and as a VEHICLE.
|
|
14613
|
+
*
|
|
14614
|
+
* It exists because the fold's record was dishonest. D34 and the code both
|
|
14615
|
+
* said "the person is not lost — it is reported so both entities stay on the
|
|
14616
|
+
* record"; in fact the pair went into a per-processor RAM field behind an
|
|
14617
|
+
* accessor nobody called, and every durable surface said `vehicle`, full
|
|
14618
|
+
* stop. This is the composition note that makes the row true.
|
|
14619
|
+
*
|
|
14620
|
+
* A COMPOSITION, never a class and never a label. "This vehicle contains a
|
|
14621
|
+
* person" is not an answer to "what is this" — both label tiers would refuse
|
|
14622
|
+
* a macro token anyway (D89), and correctly. Nothing here changes what the
|
|
14623
|
+
* subject IS: a cyclist stays one vehicle track, occupancy still counts one,
|
|
14624
|
+
* and a `person` rule still does not fire for someone cycling past.
|
|
14625
|
+
*
|
|
14626
|
+
* **Absent ≠ false**, exactly like {@link hasFace}: every row written before
|
|
14627
|
+
* the column, and every hub that predates the field, omits it. Test
|
|
14628
|
+
* `=== true` and render nothing otherwise — never infer "no rider".
|
|
14629
|
+
*/
|
|
14630
|
+
hasRider: zod.z.boolean().optional(),
|
|
14556
14631
|
...TrackFlagFields,
|
|
14557
14632
|
...TrackRetrainFields
|
|
14558
14633
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as EventCategory } from "./event-category-
|
|
2
|
-
import { $ as FrameHandleFormatSchema, A as isDeviceConfigCap, B as emitDownForOwnedCaps, C as DeviceType, Ct as WELL_KNOWN_TAB_MAP, D as DEVICE_STATUS_METHOD, Dt as resolveHydratedFieldValue, E as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Et as hydrateSchema, F as nodePin, G as CAM_PROFILE_ORDER, H as scopeKey, I as readNodePin, J as CamStreamResolutionSchema, K as CamProfileSchema, L as toNodeId, M as resolveCapMount, N as systemMethod, O as event, P as CAP_NODE_PIN_CONTEXT_KEY, Q as EncodedPacketSchema, R as ReadinessRegistry, S as DeviceRole, St as WELL_KNOWN_TABS, T as DEFAULT_RUNTIME_STATE_DURABILITY, Tt as collectHydratedFieldValues, U as BrokerStatsSchema, V as readinessKey, W as BrokerStatusSchema, X as DecodedAudioChunkSchema, Y as CameraStreamSchema, Z as DecodedFrameSchema, _ as RawStateResultSchema, _t as normalizeAddonInitResult, a as asJsonObject, at as StreamSourceSchema, b as ChargingStatus, bt as emitReadiness, c as parseJsonArray, ct as SubscribeFramesInputSchema, d as DEVICE_SCOPED_CAPS, dt as makeSourceBrokerId, et as FrameHandleSchema, f as isDeviceScopedCap, ft as parseProfileBrokerId, g as createSliceHandle, gt as BaseAddon, h as createMirrorSource, ht as DisposerChain, i as asJsonArray, it as StreamSourceEntrySchema, j as method, k as expandCapMethods, l as parseJsonObject, lt as SubscribeFramesResultSchema, m as createLazyTrpcSource, mt as DATAPLANE_SECRET_HEADER, n as sleepCancellable, nt as ProfileSlotSchema, o as asNumber, ot as SubscribeAudioChunksInputSchema, p as createDeviceProxy, pt as selectAssignedProfileSlots, q as CamStreamKindSchema, r as asBoolean, rt as ProfileSlotStatusSchema, s as asString, st as SubscribeAudioChunksResultSchema, t as sleep, tt as ProfileRtspEntrySchema, u as parseJsonUnknown, ut as makeProfileBrokerId, v as deviceOpsCapability, vt as createDurableState, w as adminUiCapability, wt as collectHydratedFieldEntries, x as DeviceFeature, xt as isEvent, y as viewerUiCapability, yt as createEvent, z as ReadinessTimeoutError } from "./sleep-
|
|
1
|
+
import { t as EventCategory } from "./event-category-Bxo5yJjt.mjs";
|
|
2
|
+
import { $ as FrameHandleFormatSchema, A as isDeviceConfigCap, B as emitDownForOwnedCaps, C as DeviceType, Ct as WELL_KNOWN_TAB_MAP, D as DEVICE_STATUS_METHOD, Dt as resolveHydratedFieldValue, E as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Et as hydrateSchema, F as nodePin, G as CAM_PROFILE_ORDER, H as scopeKey, I as readNodePin, J as CamStreamResolutionSchema, K as CamProfileSchema, L as toNodeId, M as resolveCapMount, N as systemMethod, O as event, P as CAP_NODE_PIN_CONTEXT_KEY, Q as EncodedPacketSchema, R as ReadinessRegistry, S as DeviceRole, St as WELL_KNOWN_TABS, T as DEFAULT_RUNTIME_STATE_DURABILITY, Tt as collectHydratedFieldValues, U as BrokerStatsSchema, V as readinessKey, W as BrokerStatusSchema, X as DecodedAudioChunkSchema, Y as CameraStreamSchema, Z as DecodedFrameSchema, _ as RawStateResultSchema, _t as normalizeAddonInitResult, a as asJsonObject, at as StreamSourceSchema, b as ChargingStatus, bt as emitReadiness, c as parseJsonArray, ct as SubscribeFramesInputSchema, d as DEVICE_SCOPED_CAPS, dt as makeSourceBrokerId, et as FrameHandleSchema, f as isDeviceScopedCap, ft as parseProfileBrokerId, g as createSliceHandle, gt as BaseAddon, h as createMirrorSource, ht as DisposerChain, i as asJsonArray, it as StreamSourceEntrySchema, j as method, k as expandCapMethods, l as parseJsonObject, lt as SubscribeFramesResultSchema, m as createLazyTrpcSource, mt as DATAPLANE_SECRET_HEADER, n as sleepCancellable, nt as ProfileSlotSchema, o as asNumber, ot as SubscribeAudioChunksInputSchema, p as createDeviceProxy, pt as selectAssignedProfileSlots, q as CamStreamKindSchema, r as asBoolean, rt as ProfileSlotStatusSchema, s as asString, st as SubscribeAudioChunksResultSchema, t as sleep, tt as ProfileRtspEntrySchema, u as parseJsonUnknown, ut as makeProfileBrokerId, v as deviceOpsCapability, vt as createDurableState, w as adminUiCapability, wt as collectHydratedFieldEntries, x as DeviceFeature, xt as isEvent, y as viewerUiCapability, yt as createEvent, z as ReadinessTimeoutError } from "./sleep-CTgUmjYq.mjs";
|
|
3
3
|
import { a as buildAudioArgs, c as buildVideoArgs, d as logBannerArgs, f as pickVideoEncoder, i as audioPlanFromEncodeProfile, l as invocationFromEncodeProfile, n as Fmp4BoxSplitter, o as buildFfmpegArgs, r as AUDIO_PRESETS, s as buildInputArgs, t as canonicalHash, u as isSoftwareDecode } from "./canonical-hash-rO1sRmEK.mjs";
|
|
4
4
|
import { EventSourceType } from "./enums.mjs";
|
|
5
5
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
@@ -11957,6 +11957,8 @@ var NcSystemEventKindSchema = z.enum([
|
|
|
11957
11957
|
"stream-offline",
|
|
11958
11958
|
"node-online",
|
|
11959
11959
|
"node-offline",
|
|
11960
|
+
"node-inference-unavailable",
|
|
11961
|
+
"detection-blind",
|
|
11960
11962
|
"addon-update-available",
|
|
11961
11963
|
"server-update-available",
|
|
11962
11964
|
"alarm-triggered",
|
|
@@ -12801,7 +12803,50 @@ var NcRuleInputSchema = z.object({
|
|
|
12801
12803
|
* tests every zone the track visited and a `crossing` condition can no longer
|
|
12802
12804
|
* be satisfied, because a closed track carries no crossing.
|
|
12803
12805
|
*/
|
|
12804
|
-
waitForEnhancement: z.boolean().optional()
|
|
12806
|
+
waitForEnhancement: z.boolean().optional(),
|
|
12807
|
+
/**
|
|
12808
|
+
* GROUP a burst of subjects into ONE notification that grows.
|
|
12809
|
+
*
|
|
12810
|
+
* Seconds of quiet after the last matching subject before the burst is
|
|
12811
|
+
* considered over. While it is open, the first subject enqueues immediately —
|
|
12812
|
+
* **exactly as today, with no added latency** — and every real growth (a new
|
|
12813
|
+
* subject, or a name confirmed on one already in it) REPLACES that
|
|
12814
|
+
* notification with an updated one naming everybody. The push carries the
|
|
12815
|
+
* group's own coalescing tag, so the phone replaces rather than stacks.
|
|
12816
|
+
*
|
|
12817
|
+
* `0` / absent = off, and off is today's behaviour byte for byte.
|
|
12818
|
+
*
|
|
12819
|
+
* ### Why an idle cutoff and not a window
|
|
12820
|
+
*
|
|
12821
|
+
* The measured seven-person arrival on device 590 spans 110 s with every
|
|
12822
|
+
* internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
|
|
12823
|
+
* idle cutoff holds it as one and ends it when the arrival actually ends.
|
|
12824
|
+
* 30 is Frigate's shipped value for the same decision.
|
|
12825
|
+
*
|
|
12826
|
+
* ### What it replaces
|
|
12827
|
+
*
|
|
12828
|
+
* The blind cooldown, which collapses a burst by DISCARDING it. Measured on
|
|
12829
|
+
* device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
|
|
12830
|
+
* notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
|
|
12831
|
+
* track that did fire and 7 carrying a confirmed identity nobody heard about.
|
|
12832
|
+
* A group collapses the same volume by MERGING, so the cooldown becomes a
|
|
12833
|
+
* budget over GROUPS — which is what it always meant — and a growth is never
|
|
12834
|
+
* throttled by the window its own first member spent.
|
|
12835
|
+
*
|
|
12836
|
+
* ### Interaction with {@link waitForEnhancement}
|
|
12837
|
+
*
|
|
12838
|
+
* They compose, and the order matters. `waitForEnhancement` defers the rule to
|
|
12839
|
+
* TRACK CLOSE, so with both set the group is opened by the first member to
|
|
12840
|
+
* CLOSE — already carrying its name — and grows as later members close. That
|
|
12841
|
+
* is later, and complete. With grouping alone the group opens on the first
|
|
12842
|
+
* object event and picks up names as they are confirmed, through the growth
|
|
12843
|
+
* path. Neither combination fires twice for one subject.
|
|
12844
|
+
*
|
|
12845
|
+
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
12846
|
+
* on the addon cap path, so absent must keep meaning what it meant before this
|
|
12847
|
+
* field existed.
|
|
12848
|
+
*/
|
|
12849
|
+
groupIdleSec: z.number().int().min(0).max(600).optional()
|
|
12805
12850
|
});
|
|
12806
12851
|
/**
|
|
12807
12852
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -12988,6 +13033,14 @@ var NC_CONDITION_CATALOG = [
|
|
|
12988
13033
|
value: "node-offline",
|
|
12989
13034
|
label: "Node offline"
|
|
12990
13035
|
},
|
|
13036
|
+
{
|
|
13037
|
+
value: "node-inference-unavailable",
|
|
13038
|
+
label: "Node has no usable inference device"
|
|
13039
|
+
},
|
|
13040
|
+
{
|
|
13041
|
+
value: "detection-blind",
|
|
13042
|
+
label: "Camera detecting nothing"
|
|
13043
|
+
},
|
|
12991
13044
|
{
|
|
12992
13045
|
value: "addon-update-available",
|
|
12993
13046
|
label: "Addon update available"
|
|
@@ -14249,7 +14302,7 @@ var TrackEnvelopeSchema = z.object({
|
|
|
14249
14302
|
* `snapshots[]` references — megabytes across a page of tracks. `slim`
|
|
14250
14303
|
* keeps every scalar the list surfaces actually render (ids, class(es),
|
|
14251
14304
|
* label / audioLabels / importance enrichment, firstSeen/lastSeen, state,
|
|
14252
|
-
* zonesVisited, bestEventId, envelope, hasFace) and returns `positions` /
|
|
14305
|
+
* zonesVisited, bestEventId, envelope, hasFace, hasRider) and returns `positions` /
|
|
14253
14306
|
* `snapshots` as EMPTY arrays — detail views re-fetch the full row via
|
|
14254
14307
|
* `getTrack`. Mirrors the event-store `projection` convention
|
|
14255
14308
|
* (`getObjectEvents` et al.).
|
|
@@ -14552,6 +14605,28 @@ var TrackSchema = z.object({
|
|
|
14552
14605
|
* `=== true` and render nothing otherwise, never infer "no face".
|
|
14553
14606
|
*/
|
|
14554
14607
|
hasFace: z.boolean().optional(),
|
|
14608
|
+
/**
|
|
14609
|
+
* This subject CONTAINS a folded rider — a person the rider-pairing step
|
|
14610
|
+
* ([D34](../decisions/adr-0034.md)) removed from the frame BEFORE the tracker,
|
|
14611
|
+
* so the passage is tracked once and as a VEHICLE.
|
|
14612
|
+
*
|
|
14613
|
+
* It exists because the fold's record was dishonest. D34 and the code both
|
|
14614
|
+
* said "the person is not lost — it is reported so both entities stay on the
|
|
14615
|
+
* record"; in fact the pair went into a per-processor RAM field behind an
|
|
14616
|
+
* accessor nobody called, and every durable surface said `vehicle`, full
|
|
14617
|
+
* stop. This is the composition note that makes the row true.
|
|
14618
|
+
*
|
|
14619
|
+
* A COMPOSITION, never a class and never a label. "This vehicle contains a
|
|
14620
|
+
* person" is not an answer to "what is this" — both label tiers would refuse
|
|
14621
|
+
* a macro token anyway (D89), and correctly. Nothing here changes what the
|
|
14622
|
+
* subject IS: a cyclist stays one vehicle track, occupancy still counts one,
|
|
14623
|
+
* and a `person` rule still does not fire for someone cycling past.
|
|
14624
|
+
*
|
|
14625
|
+
* **Absent ≠ false**, exactly like {@link hasFace}: every row written before
|
|
14626
|
+
* the column, and every hub that predates the field, omits it. Test
|
|
14627
|
+
* `=== true` and render nothing otherwise — never infer "no rider".
|
|
14628
|
+
*/
|
|
14629
|
+
hasRider: z.boolean().optional(),
|
|
14555
14630
|
...TrackFlagFields,
|
|
14556
14631
|
...TrackRetrainFields
|
|
14557
14632
|
});
|
|
@@ -890,6 +890,22 @@ export interface EventCatalog {
|
|
|
890
890
|
'pipeline.camera-assigned': PipelineCameraAssignmentPayload;
|
|
891
891
|
/** Camera released from an agent runner. */
|
|
892
892
|
'pipeline.camera-unassigned': PipelineCameraAssignmentPayload;
|
|
893
|
+
/** A node whose every ENABLED inference device is unavailable — dropped from
|
|
894
|
+
* the placement candidate set until one comes back. */
|
|
895
|
+
'pipeline.node-inference-unavailable': {
|
|
896
|
+
readonly nodeId: string;
|
|
897
|
+
/** The enabled device keys the live probe did not report. */
|
|
898
|
+
readonly unavailableDeviceKeys: readonly string[];
|
|
899
|
+
};
|
|
900
|
+
/** A camera with an open detection session that has detected nothing for
|
|
901
|
+
* longer than the blind threshold. */
|
|
902
|
+
'pipeline.detection-blind': {
|
|
903
|
+
readonly deviceId: number;
|
|
904
|
+
/** How long it has been blind, in ms. */
|
|
905
|
+
readonly blindForMs: number;
|
|
906
|
+
/** The threshold that was crossed, in ms. */
|
|
907
|
+
readonly thresholdMs: number;
|
|
908
|
+
};
|
|
893
909
|
/** Per-camera pipeline config changed — orchestrator hot-reloads the assigned runner. */
|
|
894
910
|
'pipeline.camera-updated': {
|
|
895
911
|
readonly deviceId: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_event_category = require("./event-category-
|
|
1
|
+
const require_event_category = require("./event-category-D3gG7oil.js");
|
|
2
2
|
let zod = require("zod");
|
|
3
3
|
//#region src/interfaces/config-ui.ts
|
|
4
4
|
/** Predefined tabs with standard label, icon, and sort order.
|