@camstack/addon-post-analysis 1.2.86 → 1.2.91
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/{dist-Crk9pYee.js → dist-CTIUuGRB.js} +105 -5
- package/dist/{dist-CzdBsvoR.mjs → dist-CquggoRC.mjs} +100 -6
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-GLqrUCoW.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Q3EjHtct.mjs} +2 -2
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-lmolSw2P.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-bze3q2fV.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-DtD0Fd_e.mjs → hostInit-D2EZ3nOf.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +6811 -5947
- package/dist/pipeline-analytics/index.mjs +6811 -5948
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -7855,6 +7855,12 @@ var RecordingConfigSchema = object({
|
|
|
7855
7855
|
/** DERIVED summary of `bands`, stamped by the recorder on every save.
|
|
7856
7856
|
* Authoring it has no effect — see {@link RecordingStorageModeSchema}. */
|
|
7857
7857
|
mode: RecordingStorageModeSchema.optional(),
|
|
7858
|
+
/**
|
|
7859
|
+
* Which assigned broker slots to record. Absent / empty = {@link
|
|
7860
|
+
* DEFAULT_RECORDING_PROFILES} (`high`+`low`) intersected with the
|
|
7861
|
+
* camera's currently assigned slots — never `mid` unless the operator
|
|
7862
|
+
* picks it, and never a slot the broker has not assigned.
|
|
7863
|
+
*/
|
|
7858
7864
|
profiles: array(CamProfileSchema).optional(),
|
|
7859
7865
|
segmentSeconds: number().int().positive().optional(),
|
|
7860
7866
|
/**
|
|
@@ -7879,7 +7885,7 @@ var RecordingConfigSchema = object({
|
|
|
7879
7885
|
*
|
|
7880
7886
|
* THE one definition: the recorder stamps `config.mode` with it on save and
|
|
7881
7887
|
* reports it as the cap's `activeMode`, and the settings UI reads it back to
|
|
7882
|
-
*
|
|
7888
|
+
* highlight the Off/Events/Continuous shortcut. Two copies would drift, and the
|
|
7883
7889
|
* symptom (a status dot disagreeing with what is being recorded) is exactly the
|
|
7884
7890
|
* bug this field was added to fix.
|
|
7885
7891
|
*/
|
|
@@ -7951,7 +7957,11 @@ var RelocateFootageInputSchema = object({
|
|
|
7951
7957
|
profiles: array(string()).optional(),
|
|
7952
7958
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7953
7959
|
* never allowed to starve live writers. */
|
|
7954
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
7960
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
7961
|
+
/** Move only segments whose startMs is >= this. Absent = the whole source
|
|
7962
|
+
* pile. Used when a full drain is too expensive and the operator only
|
|
7963
|
+
* wants the recent window on the new disk. */
|
|
7964
|
+
sinceMs: number().int().optional()
|
|
7955
7965
|
});
|
|
7956
7966
|
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7957
7967
|
* from persistent recording settings: a migration never changes
|
|
@@ -17986,6 +17996,12 @@ var TrackCascadeCountsSchema = object({
|
|
|
17986
17996
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
17987
17997
|
embeddings: number().int()
|
|
17988
17998
|
});
|
|
17999
|
+
/** Disk-wins reconcile: media rows whose blobs are gone, then empty tracks. */
|
|
18000
|
+
var DiskReconcileCountsSchema = object({
|
|
18001
|
+
mediaDropped: number().int(),
|
|
18002
|
+
tracks: number().int(),
|
|
18003
|
+
events: number().int()
|
|
18004
|
+
});
|
|
17989
18005
|
/** Event-store footprint for one camera. */
|
|
17990
18006
|
var EventStoreDeviceFootprintSchema = object({
|
|
17991
18007
|
deviceId: number(),
|
|
@@ -18271,6 +18287,17 @@ var pipelineAnalyticsCapability = {
|
|
|
18271
18287
|
auth: "admin"
|
|
18272
18288
|
}),
|
|
18273
18289
|
/**
|
|
18290
|
+
* Disk-wins reconcile for one camera. Drops media index rows whose blobs
|
|
18291
|
+
* are gone, then cascades tracks (including favourited and staging) that
|
|
18292
|
+
* have no remaining files. Enrolled identity/vehicle/scene media is never
|
|
18293
|
+
* probed. Trackless motion/audio events with no remaining file are dropped,
|
|
18294
|
+
* including snapshot-less rows.
|
|
18295
|
+
*/
|
|
18296
|
+
reconcileFromDisk: method(object({ deviceId: number() }), DiskReconcileCountsSchema, {
|
|
18297
|
+
kind: "mutation",
|
|
18298
|
+
auth: "admin"
|
|
18299
|
+
}),
|
|
18300
|
+
/**
|
|
18274
18301
|
* Delete whole tracks (object events) by id for the given device,
|
|
18275
18302
|
* cascading their media in lockstep. Returns the number of tracks
|
|
18276
18303
|
* actually deleted plus the ids that could not be removed.
|
|
@@ -20105,6 +20132,24 @@ var CameraStatusDegradationSchema = object({
|
|
|
20105
20132
|
*
|
|
20106
20133
|
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
20107
20134
|
*/
|
|
20135
|
+
var DiskReconcileJobSchema = object({
|
|
20136
|
+
state: _enum([
|
|
20137
|
+
"idle",
|
|
20138
|
+
"running",
|
|
20139
|
+
"done",
|
|
20140
|
+
"error"
|
|
20141
|
+
]),
|
|
20142
|
+
total: number().int().nonnegative(),
|
|
20143
|
+
completed: number().int().nonnegative(),
|
|
20144
|
+
currentDeviceId: number().int().nullable(),
|
|
20145
|
+
failed: array(number().int()).readonly(),
|
|
20146
|
+
mediaDropped: number().int().nonnegative(),
|
|
20147
|
+
tracks: number().int().nonnegative(),
|
|
20148
|
+
events: number().int().nonnegative(),
|
|
20149
|
+
startedAtMs: number().int().nullable(),
|
|
20150
|
+
finishedAtMs: number().int().nullable(),
|
|
20151
|
+
error: string().nullable()
|
|
20152
|
+
});
|
|
20108
20153
|
var CameraStatusSchema = object({
|
|
20109
20154
|
deviceId: number(),
|
|
20110
20155
|
assignment: CameraAssignmentStatusSchema,
|
|
@@ -20336,7 +20381,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
|
20336
20381
|
}), CameraSwitchGroupSchema, {
|
|
20337
20382
|
kind: "mutation",
|
|
20338
20383
|
auth: "admin"
|
|
20339
|
-
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(),
|
|
20384
|
+
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
|
|
20385
|
+
kind: "mutation",
|
|
20386
|
+
auth: "admin"
|
|
20387
|
+
}), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
20340
20388
|
name: string(),
|
|
20341
20389
|
description: string().optional(),
|
|
20342
20390
|
config: CameraPipelineConfigSchema
|
|
@@ -21968,7 +22016,14 @@ var SearchResultSchema = object({
|
|
|
21968
22016
|
});
|
|
21969
22017
|
var AutoUpdateSettingsSchema = object({
|
|
21970
22018
|
channel: ChannelSchema,
|
|
21971
|
-
intervalSeconds: number()
|
|
22019
|
+
intervalSeconds: number(),
|
|
22020
|
+
/**
|
|
22021
|
+
* Cadence of the "an update exists" POLLER, in seconds. Independent of
|
|
22022
|
+
* `channel`: the poller runs while auto-apply is `off`, because being told
|
|
22023
|
+
* about a publish and installing it are different decisions. Clamped
|
|
22024
|
+
* server-side to 900 s … 604800 s; defaults to 21600 s (6 h).
|
|
22025
|
+
*/
|
|
22026
|
+
updateCheckIntervalSeconds: number()
|
|
21972
22027
|
});
|
|
21973
22028
|
var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
21974
22029
|
var RestartAddonResultSchema = unknown();
|
|
@@ -22109,7 +22164,9 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
22109
22164
|
auth: "admin"
|
|
22110
22165
|
}), method(_void(), AutoUpdateSettingsSchema, { auth: "admin" }), method(object({
|
|
22111
22166
|
channel: ChannelSchema,
|
|
22112
|
-
intervalSeconds: number().min(300).max(86400).optional()
|
|
22167
|
+
intervalSeconds: number().min(300).max(86400).optional(),
|
|
22168
|
+
/** Availability-poll cadence; see AutoUpdateSettingsSchema. */
|
|
22169
|
+
updateCheckIntervalSeconds: number().min(900).max(604800).optional()
|
|
22113
22170
|
}), unknown(), {
|
|
22114
22171
|
kind: "mutation",
|
|
22115
22172
|
auth: "admin"
|
|
@@ -34268,6 +34325,12 @@ Object.freeze({
|
|
|
34268
34325
|
addonId: null,
|
|
34269
34326
|
access: "create"
|
|
34270
34327
|
},
|
|
34328
|
+
"pipelineAnalytics.reconcileFromDisk": {
|
|
34329
|
+
capName: "pipeline-analytics",
|
|
34330
|
+
capScope: "device",
|
|
34331
|
+
addonId: null,
|
|
34332
|
+
access: "create"
|
|
34333
|
+
},
|
|
34271
34334
|
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
34272
34335
|
capName: "pipeline-analytics",
|
|
34273
34336
|
capScope: "device",
|
|
@@ -34670,6 +34733,12 @@ Object.freeze({
|
|
|
34670
34733
|
addonId: null,
|
|
34671
34734
|
access: "view"
|
|
34672
34735
|
},
|
|
34736
|
+
"pipelineOrchestrator.getReconcileFromDiskStatus": {
|
|
34737
|
+
capName: "pipeline-orchestrator",
|
|
34738
|
+
capScope: "system",
|
|
34739
|
+
addonId: null,
|
|
34740
|
+
access: "view"
|
|
34741
|
+
},
|
|
34673
34742
|
"pipelineOrchestrator.listAgentSettings": {
|
|
34674
34743
|
capName: "pipeline-orchestrator",
|
|
34675
34744
|
capScope: "system",
|
|
@@ -34694,6 +34763,12 @@ Object.freeze({
|
|
|
34694
34763
|
addonId: null,
|
|
34695
34764
|
access: "create"
|
|
34696
34765
|
},
|
|
34766
|
+
"pipelineOrchestrator.reconcileFromDisk": {
|
|
34767
|
+
capName: "pipeline-orchestrator",
|
|
34768
|
+
capScope: "system",
|
|
34769
|
+
addonId: null,
|
|
34770
|
+
access: "create"
|
|
34771
|
+
},
|
|
34697
34772
|
"pipelineOrchestrator.removeAgentSettings": {
|
|
34698
34773
|
capName: "pipeline-orchestrator",
|
|
34699
34774
|
capScope: "system",
|
|
@@ -37685,6 +37760,11 @@ Object.freeze({
|
|
|
37685
37760
|
form: "single",
|
|
37686
37761
|
optional: true
|
|
37687
37762
|
}],
|
|
37763
|
+
"pipelineAnalytics.reconcileFromDisk": [{
|
|
37764
|
+
name: "deviceId",
|
|
37765
|
+
form: "single",
|
|
37766
|
+
optional: false
|
|
37767
|
+
}],
|
|
37688
37768
|
"pipelineAnalytics.restageRetrainTrack": [{
|
|
37689
37769
|
name: "deviceId",
|
|
37690
37770
|
form: "single",
|
|
@@ -38464,6 +38544,20 @@ function isScheduleActive(schedule, atMs) {
|
|
|
38464
38544
|
return schedule.invert === true ? !inside : inside;
|
|
38465
38545
|
}
|
|
38466
38546
|
/**
|
|
38547
|
+
* Does `filter` say anything about `kind`?
|
|
38548
|
+
*
|
|
38549
|
+
* `false` means the filter is not part of this kind's vocabulary: the engine
|
|
38550
|
+
* ignores it and an editor hides its input. It never means "excluded".
|
|
38551
|
+
*/
|
|
38552
|
+
function systemEventFilterApplies(kind, filter) {
|
|
38553
|
+
switch (filter) {
|
|
38554
|
+
case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind === "alarm-triggered" || kind === "export-completed";
|
|
38555
|
+
case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind";
|
|
38556
|
+
case "nodeIds": return kind.startsWith("node-") || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "server-updated";
|
|
38557
|
+
case "packageNames": return kind.endsWith("update-available") || kind === "addon-updated" || kind === "server-updated";
|
|
38558
|
+
}
|
|
38559
|
+
}
|
|
38560
|
+
/**
|
|
38467
38561
|
* TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
|
|
38468
38562
|
*
|
|
38469
38563
|
* Spec: `docs/superpowers/specs/2026-07-24-nc-occupancy-timelapse-design.md`
|
|
@@ -39455,6 +39549,12 @@ Object.defineProperty(exports, "subKindsOf", {
|
|
|
39455
39549
|
return subKindsOf;
|
|
39456
39550
|
}
|
|
39457
39551
|
});
|
|
39552
|
+
Object.defineProperty(exports, "systemEventFilterApplies", {
|
|
39553
|
+
enumerable: true,
|
|
39554
|
+
get: function() {
|
|
39555
|
+
return systemEventFilterApplies;
|
|
39556
|
+
}
|
|
39557
|
+
});
|
|
39458
39558
|
Object.defineProperty(exports, "unknown", {
|
|
39459
39559
|
enumerable: true,
|
|
39460
39560
|
get: function() {
|
|
@@ -7824,6 +7824,12 @@ var RecordingConfigSchema = object({
|
|
|
7824
7824
|
/** DERIVED summary of `bands`, stamped by the recorder on every save.
|
|
7825
7825
|
* Authoring it has no effect — see {@link RecordingStorageModeSchema}. */
|
|
7826
7826
|
mode: RecordingStorageModeSchema.optional(),
|
|
7827
|
+
/**
|
|
7828
|
+
* Which assigned broker slots to record. Absent / empty = {@link
|
|
7829
|
+
* DEFAULT_RECORDING_PROFILES} (`high`+`low`) intersected with the
|
|
7830
|
+
* camera's currently assigned slots — never `mid` unless the operator
|
|
7831
|
+
* picks it, and never a slot the broker has not assigned.
|
|
7832
|
+
*/
|
|
7827
7833
|
profiles: array(CamProfileSchema).optional(),
|
|
7828
7834
|
segmentSeconds: number().int().positive().optional(),
|
|
7829
7835
|
/**
|
|
@@ -7848,7 +7854,7 @@ var RecordingConfigSchema = object({
|
|
|
7848
7854
|
*
|
|
7849
7855
|
* THE one definition: the recorder stamps `config.mode` with it on save and
|
|
7850
7856
|
* reports it as the cap's `activeMode`, and the settings UI reads it back to
|
|
7851
|
-
*
|
|
7857
|
+
* highlight the Off/Events/Continuous shortcut. Two copies would drift, and the
|
|
7852
7858
|
* symptom (a status dot disagreeing with what is being recorded) is exactly the
|
|
7853
7859
|
* bug this field was added to fix.
|
|
7854
7860
|
*/
|
|
@@ -7920,7 +7926,11 @@ var RelocateFootageInputSchema = object({
|
|
|
7920
7926
|
profiles: array(string()).optional(),
|
|
7921
7927
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7922
7928
|
* never allowed to starve live writers. */
|
|
7923
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
7929
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
7930
|
+
/** Move only segments whose startMs is >= this. Absent = the whole source
|
|
7931
|
+
* pile. Used when a full drain is too expensive and the operator only
|
|
7932
|
+
* wants the recent window on the new disk. */
|
|
7933
|
+
sinceMs: number().int().optional()
|
|
7924
7934
|
});
|
|
7925
7935
|
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7926
7936
|
* from persistent recording settings: a migration never changes
|
|
@@ -17955,6 +17965,12 @@ var TrackCascadeCountsSchema = object({
|
|
|
17955
17965
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
17956
17966
|
embeddings: number().int()
|
|
17957
17967
|
});
|
|
17968
|
+
/** Disk-wins reconcile: media rows whose blobs are gone, then empty tracks. */
|
|
17969
|
+
var DiskReconcileCountsSchema = object({
|
|
17970
|
+
mediaDropped: number().int(),
|
|
17971
|
+
tracks: number().int(),
|
|
17972
|
+
events: number().int()
|
|
17973
|
+
});
|
|
17958
17974
|
/** Event-store footprint for one camera. */
|
|
17959
17975
|
var EventStoreDeviceFootprintSchema = object({
|
|
17960
17976
|
deviceId: number(),
|
|
@@ -18240,6 +18256,17 @@ var pipelineAnalyticsCapability = {
|
|
|
18240
18256
|
auth: "admin"
|
|
18241
18257
|
}),
|
|
18242
18258
|
/**
|
|
18259
|
+
* Disk-wins reconcile for one camera. Drops media index rows whose blobs
|
|
18260
|
+
* are gone, then cascades tracks (including favourited and staging) that
|
|
18261
|
+
* have no remaining files. Enrolled identity/vehicle/scene media is never
|
|
18262
|
+
* probed. Trackless motion/audio events with no remaining file are dropped,
|
|
18263
|
+
* including snapshot-less rows.
|
|
18264
|
+
*/
|
|
18265
|
+
reconcileFromDisk: method(object({ deviceId: number() }), DiskReconcileCountsSchema, {
|
|
18266
|
+
kind: "mutation",
|
|
18267
|
+
auth: "admin"
|
|
18268
|
+
}),
|
|
18269
|
+
/**
|
|
18243
18270
|
* Delete whole tracks (object events) by id for the given device,
|
|
18244
18271
|
* cascading their media in lockstep. Returns the number of tracks
|
|
18245
18272
|
* actually deleted plus the ids that could not be removed.
|
|
@@ -20074,6 +20101,24 @@ var CameraStatusDegradationSchema = object({
|
|
|
20074
20101
|
*
|
|
20075
20102
|
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
20076
20103
|
*/
|
|
20104
|
+
var DiskReconcileJobSchema = object({
|
|
20105
|
+
state: _enum([
|
|
20106
|
+
"idle",
|
|
20107
|
+
"running",
|
|
20108
|
+
"done",
|
|
20109
|
+
"error"
|
|
20110
|
+
]),
|
|
20111
|
+
total: number().int().nonnegative(),
|
|
20112
|
+
completed: number().int().nonnegative(),
|
|
20113
|
+
currentDeviceId: number().int().nullable(),
|
|
20114
|
+
failed: array(number().int()).readonly(),
|
|
20115
|
+
mediaDropped: number().int().nonnegative(),
|
|
20116
|
+
tracks: number().int().nonnegative(),
|
|
20117
|
+
events: number().int().nonnegative(),
|
|
20118
|
+
startedAtMs: number().int().nullable(),
|
|
20119
|
+
finishedAtMs: number().int().nullable(),
|
|
20120
|
+
error: string().nullable()
|
|
20121
|
+
});
|
|
20077
20122
|
var CameraStatusSchema = object({
|
|
20078
20123
|
deviceId: number(),
|
|
20079
20124
|
assignment: CameraAssignmentStatusSchema,
|
|
@@ -20305,7 +20350,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
|
20305
20350
|
}), CameraSwitchGroupSchema, {
|
|
20306
20351
|
kind: "mutation",
|
|
20307
20352
|
auth: "admin"
|
|
20308
|
-
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(),
|
|
20353
|
+
}), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
|
|
20354
|
+
kind: "mutation",
|
|
20355
|
+
auth: "admin"
|
|
20356
|
+
}), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
20309
20357
|
name: string(),
|
|
20310
20358
|
description: string().optional(),
|
|
20311
20359
|
config: CameraPipelineConfigSchema
|
|
@@ -21937,7 +21985,14 @@ var SearchResultSchema = object({
|
|
|
21937
21985
|
});
|
|
21938
21986
|
var AutoUpdateSettingsSchema = object({
|
|
21939
21987
|
channel: ChannelSchema,
|
|
21940
|
-
intervalSeconds: number()
|
|
21988
|
+
intervalSeconds: number(),
|
|
21989
|
+
/**
|
|
21990
|
+
* Cadence of the "an update exists" POLLER, in seconds. Independent of
|
|
21991
|
+
* `channel`: the poller runs while auto-apply is `off`, because being told
|
|
21992
|
+
* about a publish and installing it are different decisions. Clamped
|
|
21993
|
+
* server-side to 900 s … 604800 s; defaults to 21600 s (6 h).
|
|
21994
|
+
*/
|
|
21995
|
+
updateCheckIntervalSeconds: number()
|
|
21941
21996
|
});
|
|
21942
21997
|
var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
21943
21998
|
var RestartAddonResultSchema = unknown();
|
|
@@ -22078,7 +22133,9 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
22078
22133
|
auth: "admin"
|
|
22079
22134
|
}), method(_void(), AutoUpdateSettingsSchema, { auth: "admin" }), method(object({
|
|
22080
22135
|
channel: ChannelSchema,
|
|
22081
|
-
intervalSeconds: number().min(300).max(86400).optional()
|
|
22136
|
+
intervalSeconds: number().min(300).max(86400).optional(),
|
|
22137
|
+
/** Availability-poll cadence; see AutoUpdateSettingsSchema. */
|
|
22138
|
+
updateCheckIntervalSeconds: number().min(900).max(604800).optional()
|
|
22082
22139
|
}), unknown(), {
|
|
22083
22140
|
kind: "mutation",
|
|
22084
22141
|
auth: "admin"
|
|
@@ -34237,6 +34294,12 @@ Object.freeze({
|
|
|
34237
34294
|
addonId: null,
|
|
34238
34295
|
access: "create"
|
|
34239
34296
|
},
|
|
34297
|
+
"pipelineAnalytics.reconcileFromDisk": {
|
|
34298
|
+
capName: "pipeline-analytics",
|
|
34299
|
+
capScope: "device",
|
|
34300
|
+
addonId: null,
|
|
34301
|
+
access: "create"
|
|
34302
|
+
},
|
|
34240
34303
|
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
34241
34304
|
capName: "pipeline-analytics",
|
|
34242
34305
|
capScope: "device",
|
|
@@ -34639,6 +34702,12 @@ Object.freeze({
|
|
|
34639
34702
|
addonId: null,
|
|
34640
34703
|
access: "view"
|
|
34641
34704
|
},
|
|
34705
|
+
"pipelineOrchestrator.getReconcileFromDiskStatus": {
|
|
34706
|
+
capName: "pipeline-orchestrator",
|
|
34707
|
+
capScope: "system",
|
|
34708
|
+
addonId: null,
|
|
34709
|
+
access: "view"
|
|
34710
|
+
},
|
|
34642
34711
|
"pipelineOrchestrator.listAgentSettings": {
|
|
34643
34712
|
capName: "pipeline-orchestrator",
|
|
34644
34713
|
capScope: "system",
|
|
@@ -34663,6 +34732,12 @@ Object.freeze({
|
|
|
34663
34732
|
addonId: null,
|
|
34664
34733
|
access: "create"
|
|
34665
34734
|
},
|
|
34735
|
+
"pipelineOrchestrator.reconcileFromDisk": {
|
|
34736
|
+
capName: "pipeline-orchestrator",
|
|
34737
|
+
capScope: "system",
|
|
34738
|
+
addonId: null,
|
|
34739
|
+
access: "create"
|
|
34740
|
+
},
|
|
34666
34741
|
"pipelineOrchestrator.removeAgentSettings": {
|
|
34667
34742
|
capName: "pipeline-orchestrator",
|
|
34668
34743
|
capScope: "system",
|
|
@@ -37654,6 +37729,11 @@ Object.freeze({
|
|
|
37654
37729
|
form: "single",
|
|
37655
37730
|
optional: true
|
|
37656
37731
|
}],
|
|
37732
|
+
"pipelineAnalytics.reconcileFromDisk": [{
|
|
37733
|
+
name: "deviceId",
|
|
37734
|
+
form: "single",
|
|
37735
|
+
optional: false
|
|
37736
|
+
}],
|
|
37657
37737
|
"pipelineAnalytics.restageRetrainTrack": [{
|
|
37658
37738
|
name: "deviceId",
|
|
37659
37739
|
form: "single",
|
|
@@ -38433,6 +38513,20 @@ function isScheduleActive(schedule, atMs) {
|
|
|
38433
38513
|
return schedule.invert === true ? !inside : inside;
|
|
38434
38514
|
}
|
|
38435
38515
|
/**
|
|
38516
|
+
* Does `filter` say anything about `kind`?
|
|
38517
|
+
*
|
|
38518
|
+
* `false` means the filter is not part of this kind's vocabulary: the engine
|
|
38519
|
+
* ignores it and an editor hides its input. It never means "excluded".
|
|
38520
|
+
*/
|
|
38521
|
+
function systemEventFilterApplies(kind, filter) {
|
|
38522
|
+
switch (filter) {
|
|
38523
|
+
case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind === "alarm-triggered" || kind === "export-completed";
|
|
38524
|
+
case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind";
|
|
38525
|
+
case "nodeIds": return kind.startsWith("node-") || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "server-updated";
|
|
38526
|
+
case "packageNames": return kind.endsWith("update-available") || kind === "addon-updated" || kind === "server-updated";
|
|
38527
|
+
}
|
|
38528
|
+
}
|
|
38529
|
+
/**
|
|
38436
38530
|
* TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
|
|
38437
38531
|
*
|
|
38438
38532
|
* Spec: `docs/superpowers/specs/2026-07-24-nc-occupancy-timelapse-design.md`
|
|
@@ -38914,4 +39008,4 @@ function vectorDimFromBase64(encoded) {
|
|
|
38914
39008
|
return Math.floor(Buffer.from(encoded, "base64").byteLength / 4);
|
|
38915
39009
|
}
|
|
38916
39010
|
//#endregion
|
|
38917
|
-
export { faceGalleryCapability as $, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as A,
|
|
39011
|
+
export { faceGalleryCapability as $, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as A, partialRecord as At, VISIT_MERGE_GAP_MS as B, NcSnoozeSchema as C, _enum as Ct, OpsLogEntrySchema as D, literal as Dt, NcTaxonomySchema as E, discriminatedUnion as Et, TIMELAPSE_DENSE_FLOOR_SEC as F, audioModeOf as G, alarmPanelCapability as H, TimelapseRuleInputSchema as I, customAction as J, buildEventKindDescriptor as K, TimelapseRulePatchSchema as L, SCENE_DEFAULT_UNCOVERED_POLICY as M, string as Mt, SCENE_DIVERGED as N, unknown as Nt, RECORDING_EXPORT_MAX_READ_BYTES as O, number as Ot, SceneMonitorSchema as P, EventCategory as Pt, encodeVectorBase64 as Q, TimelapseRuleSchema as R, NcSnoozeInputSchema as S, sleep as St, NcSystemEventKindSchema as T, boolean as Tt, assertTimelapseCadences as U, addonWidgetsSourceCapability as V, audioMetricsCapability as W, deriveRecordingMode as X, defineCustomActions as Y, embeddingEncoderCapability as Z, NcRuleInputSchema as _, DeviceType as _t, DETECTION_PIPELINE_CAP_NAME as a, pipelineAnalyticsCapability as at, NcRuleTargetSchema as b, isDeviceScopedCap as bt, EVENT_PAD_MS as c, readTimelapseGeneratedAt as ct, NC_ALARM_SYSTEM_EVENT_KINDS as d, systemEventFilterApplies as dt, hfModelUrl as et, NC_CONDITION_CATALOG as f, vectorDimFromBase64 as ft, NcConditionDescriptorSchema as g, BaseAddon as gt, NC_TAXONOMY as h, errMsg as ht, DETECTION_MACRO_CLASSES as i, notificationRulesCapability as it, SCENE_DEFAULT_ANCHOR_THRESHOLD as j, record as jt, RetrainStatusSchema as k, object as kt, LabelAttributionSchema as l, sceneMonitorCapability as lt, NC_SNOOZE_MAX_MINUTES as m, zoneAnalyticsCapability as mt, DEFAULT_EVENT_COLOR as n, isScheduleActive as nt, DeclaredDevices as o, plateGalleryCapability as ot, NC_DEFAULT_SNOOZE_MINUTES as p, videoclipsCapability as pt, cosineSimilarity as q, DEFAULT_TIMELAPSE_PREVIEW_TEXT as r, kebabToCamel as rt, EVENT_KIND_BY_CAP as s, readDeviceStateFrom as st, BaseDevice as t, isDetectionMacroClass as tt, MACRO_LABELS as u, subKindsOf as ut, NcRulePatchSchema as v, createEvent as vt, NcSnoozeSuppressedSchema as w, array as wt, NcScheduleSchema as x, nodePin as xt, NcRuleSchema as y, hydrateSchema as yt, TrackSourceSchema as z };
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-CTIUuGRB.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_fs$1 = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Z as embeddingEncoderCapability, et as hfModelUrl,
|
|
1
|
+
import { Z as embeddingEncoderCapability, et as hfModelUrl, gt as BaseAddon } from "../dist-CquggoRC.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import "node:fs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-C0AuF9av.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-bze3q2fV.mjs";
|
|
4
4
|
import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
|
|
5
5
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
6
6
|
var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), y = (e) => {
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.85",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.58",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|