@camstack/addon-post-analysis 1.2.226 → 1.2.227
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-BypQW8jz.js → dist-BmhTo2Yp.js} +174 -62
- package/dist/{dist-B-cXIX_e.mjs → dist-C7-GAwZ9.mjs} +163 -57
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +35 -39
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-ChXdkiVq.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-JHb4u0Nk.mjs} +3 -3
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BCU_bvyw.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-yat2fBJg.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-B95vfMXS.mjs → hostInit-Bui_t0wo.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +3525 -2786
- package/dist/pipeline-analytics/index.mjs +3525 -2786
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../types/dist/event-category-
|
|
1
|
+
//#region ../types/dist/event-category-ZyX6jcse.mjs
|
|
2
2
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
3
3
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4
4
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -559,7 +559,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
559
559
|
* a package zone — a newly-appeared stationary object of a package class
|
|
560
560
|
* that cleared the class / zone / dwell / size gates. Payload:
|
|
561
561
|
* `PipelineAnalyticsPackageDeliveredPayload` carrying `{ deviceId,
|
|
562
|
-
* entryId, className, zoneIds,
|
|
562
|
+
* entryId, className, zoneIds, keyFrameMediaId?, bbox, timestamp }`.
|
|
563
563
|
* Telemetry (D8): the durable record is the `package-events` store row;
|
|
564
564
|
* this bus topic drives notifier rules + live UI. See
|
|
565
565
|
* docs/superpowers/specs/2026-07-17-package-zones-design.md §5.1.
|
|
@@ -5345,7 +5345,7 @@ var ZodIssueCode = {
|
|
|
5345
5345
|
var ZodFirstPartyTypeKind;
|
|
5346
5346
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5347
5347
|
//#endregion
|
|
5348
|
-
//#region ../types/dist/sleep-
|
|
5348
|
+
//#region ../types/dist/sleep-CnLyvg3w.mjs
|
|
5349
5349
|
/**
|
|
5350
5350
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5351
5351
|
* window to float samples (D455).
|
|
@@ -7491,7 +7491,7 @@ function errMsg(err) {
|
|
|
7491
7491
|
if (typeof err === "string") return err;
|
|
7492
7492
|
return String(err);
|
|
7493
7493
|
}
|
|
7494
|
-
new Set([
|
|
7494
|
+
var OWNER_TYPES = new Set([
|
|
7495
7495
|
"track",
|
|
7496
7496
|
"summary",
|
|
7497
7497
|
"face",
|
|
@@ -7501,12 +7501,20 @@ new Set([
|
|
|
7501
7501
|
"scene",
|
|
7502
7502
|
"motion",
|
|
7503
7503
|
"object",
|
|
7504
|
-
"audio"
|
|
7504
|
+
"audio",
|
|
7505
|
+
"mosaic"
|
|
7505
7506
|
]);
|
|
7506
|
-
/**
|
|
7507
|
-
|
|
7508
|
-
|
|
7509
|
-
|
|
7507
|
+
/**
|
|
7508
|
+
* Is this string a declared media owner type?
|
|
7509
|
+
*
|
|
7510
|
+
* Exported because the `event-media` plane's path parser needs it (D482): a
|
|
7511
|
+
* path segment is an arbitrary string until something narrows it, and a
|
|
7512
|
+
* hand-written list at the door would drift from {@link MEDIA_OWNER_TYPES} the
|
|
7513
|
+
* day an owner kind is added — the failure this module's own docblock already
|
|
7514
|
+
* records for `vehicle` and `scene`.
|
|
7515
|
+
*/
|
|
7516
|
+
function isMediaOwnerType(value) {
|
|
7517
|
+
return OWNER_TYPES.has(value);
|
|
7510
7518
|
}
|
|
7511
7519
|
/**
|
|
7512
7520
|
* The owner types that are event tables, in the order the event-media resolver
|
|
@@ -7518,7 +7526,21 @@ var EVENT_OWNER_TYPES = [
|
|
|
7518
7526
|
"object",
|
|
7519
7527
|
"audio"
|
|
7520
7528
|
];
|
|
7521
|
-
|
|
7529
|
+
/**
|
|
7530
|
+
* The same list as a Zod enum, for the cap inputs that must NAME the table
|
|
7531
|
+
* (D482: `getEventMedia` / `listEventMedia` take an owner, and an owner is
|
|
7532
|
+
* `(table, id)`).
|
|
7533
|
+
*
|
|
7534
|
+
* Built FROM {@link EVENT_OWNER_TYPES} rather than re-spelled: a fourth event
|
|
7535
|
+
* table would otherwise be accepted by the codec and refused at the door, with
|
|
7536
|
+
* nothing failing until a caller asked.
|
|
7537
|
+
*/
|
|
7538
|
+
var EventOwnerTypeSchema = _enum(EVENT_OWNER_TYPES);
|
|
7539
|
+
var EVENT_OWNER_TYPE_SET = new Set(EVENT_OWNER_TYPES);
|
|
7540
|
+
/** True when this key's owner is one of the three event tables. */
|
|
7541
|
+
function isEventOwnerType(ownerType) {
|
|
7542
|
+
return EVENT_OWNER_TYPE_SET.has(ownerType);
|
|
7543
|
+
}
|
|
7522
7544
|
var EncodeProfileSchema = object({
|
|
7523
7545
|
video: object({
|
|
7524
7546
|
codec: _enum([
|
|
@@ -13122,6 +13144,16 @@ method(object({
|
|
|
13122
13144
|
filter: QueryFilterSchema.optional(),
|
|
13123
13145
|
columns: array(string()).readonly().optional()
|
|
13124
13146
|
}), array(SettingsRecordSchema).readonly()), method(object({
|
|
13147
|
+
namespace: string().optional(),
|
|
13148
|
+
collection: string(),
|
|
13149
|
+
/** Declared columns identifying the slot; must be covered by a UNIQUE
|
|
13150
|
+
* index on the collection. Never empty. */
|
|
13151
|
+
conflict: array(string()).readonly(),
|
|
13152
|
+
record: BulkRecordSchema
|
|
13153
|
+
}), object({
|
|
13154
|
+
/** The id the row HAS: assigned by SQLite on an insert, or the existing
|
|
13155
|
+
* row's own id on an update. */
|
|
13156
|
+
id: union([string(), number()]) }), { kind: "mutation" }), method(object({
|
|
13125
13157
|
namespace: string().optional(),
|
|
13126
13158
|
collection: string(),
|
|
13127
13159
|
record: object({
|
|
@@ -13256,6 +13288,14 @@ method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
|
13256
13288
|
id: union([string(), number()]) }), {
|
|
13257
13289
|
kind: "mutation",
|
|
13258
13290
|
auth: "admin"
|
|
13291
|
+
}), method(object({
|
|
13292
|
+
namespace: string().optional(),
|
|
13293
|
+
collection: string(),
|
|
13294
|
+
conflict: array(string()).readonly(),
|
|
13295
|
+
record: BulkRecordSchema
|
|
13296
|
+
}), object({ id: union([string(), number()]) }), {
|
|
13297
|
+
kind: "mutation",
|
|
13298
|
+
auth: "admin"
|
|
13259
13299
|
}), method(object({
|
|
13260
13300
|
namespace: string().optional(),
|
|
13261
13301
|
collection: string(),
|
|
@@ -20324,8 +20364,8 @@ var TrackPositionSchema = object({
|
|
|
20324
20364
|
var TrackSnapshotSchema = object({
|
|
20325
20365
|
timestamp: number(),
|
|
20326
20366
|
position: TrackPositionSchema,
|
|
20327
|
-
/**
|
|
20328
|
-
|
|
20367
|
+
/** The snapshot's media row id (D482); resolve via `listTrackMedia({ trackId })`. */
|
|
20368
|
+
mediaId: number().int()
|
|
20329
20369
|
});
|
|
20330
20370
|
/**
|
|
20331
20371
|
* Normalized 0..1 trajectory envelope (min/max over every position bbox,
|
|
@@ -20929,14 +20969,14 @@ var ObjectEventSchema = object({
|
|
|
20929
20969
|
* pixel-space `bbox` onto a displayed image. Omitted in slim projection. */
|
|
20930
20970
|
frameWidth: number().optional(),
|
|
20931
20971
|
frameHeight: number().optional(),
|
|
20932
|
-
/**
|
|
20933
|
-
|
|
20934
|
-
/** Design B:
|
|
20972
|
+
/** Media row id of the crop attached to this event (if any) — D482. */
|
|
20973
|
+
mediaId: number().int().optional(),
|
|
20974
|
+
/** Design B: media row id of the track's native-resolution key frame (the
|
|
20935
20975
|
* best-detection full frame). Resolve via the event-media data-plane
|
|
20936
|
-
* (`/addon/<addonId>/event-media/<
|
|
20976
|
+
* (`/addon/<addonId>/event-media/m/<keyFrameMediaId>`) for a detail view that
|
|
20937
20977
|
* draws `bbox` over the native frame. Absent on legacy rows / non-decoded
|
|
20938
|
-
* sources — consumers fall back to `
|
|
20939
|
-
|
|
20978
|
+
* sources — consumers fall back to `mediaId` (the tight crop). */
|
|
20979
|
+
keyFrameMediaId: number().int().optional(),
|
|
20940
20980
|
/** Populated by B5 (recording playback URL for this event). */
|
|
20941
20981
|
mediaUrl: string().optional(),
|
|
20942
20982
|
/** The parent track's key-event importance [0,1], propagated to every object
|
|
@@ -20986,7 +21026,7 @@ var MediaFileKindEnum = _enum([
|
|
|
20986
21026
|
* hub-main's heap on the way past — for an `<img>` that would have cached it.
|
|
20987
21027
|
*
|
|
20988
21028
|
* `url` points at the `event-media` data plane
|
|
20989
|
-
* (`/addon/<addonId>/event-media/<
|
|
21029
|
+
* (`/addon/<addonId>/event-media/m/<mediaId>` — D482), which serves the same blob
|
|
20990
21030
|
* with an ETag and `Cache-Control: immutable`, honours conditional GETs, can
|
|
20991
21031
|
* render a `?variant=thumb`, and streams. The hub gate in front of it requires
|
|
20992
21032
|
* a bearer or the session cookie (`access: 'authenticated'`), so the bytes are
|
|
@@ -20994,10 +21034,13 @@ var MediaFileKindEnum = _enum([
|
|
|
20994
21034
|
* `data-plane-access.ts` for the rule and the one gap it does not close
|
|
20995
21035
|
* (per-device scoping).
|
|
20996
21036
|
*
|
|
20997
|
-
* The URL is built from the row's
|
|
20998
|
-
*
|
|
21037
|
+
* The URL is built from the row's own id, which since D482 says nothing about
|
|
21038
|
+
* the row's owner or kind — and that is the point. The published `kind` is not
|
|
21039
|
+
* the stored one (a track's face/plate crop is stored as `crop` under
|
|
20999
21040
|
* `('face'|'plate', '<prefix>-<trackId>')` and published as
|
|
21000
|
-
* `faceCrop`/`plateCrop
|
|
21041
|
+
* `faceCrop`/`plateCrop`), and under the old composite key the URL had to be
|
|
21042
|
+
* taken from `row.key` verbatim or it 404'd exactly those two rows. An id
|
|
21043
|
+
* cannot be mis-reconstructed, because there is nothing in it to reconstruct.
|
|
21001
21044
|
*
|
|
21002
21045
|
* ## `base64` is TRANSITIONAL and is going away
|
|
21003
21046
|
*
|
|
@@ -21010,7 +21053,19 @@ var MediaFileKindEnum = _enum([
|
|
|
21010
21053
|
* `analytics-query-facade.ts`; nothing else reads it.
|
|
21011
21054
|
*/
|
|
21012
21055
|
var MediaFileSchema = object({
|
|
21013
|
-
|
|
21056
|
+
/**
|
|
21057
|
+
* The media row's OWN id — the rowid SQLite assigned it (D482).
|
|
21058
|
+
*
|
|
21059
|
+
* It used to be the row's composite key, `<ownerType>:<ownerId>:<fileKind>
|
|
21060
|
+
* [:<timestampMs>]`, which embedded a FOREIGN id. D474 made event ids
|
|
21061
|
+
* per-table rowid aliases, so `object:101314` and `motion:101314` are two
|
|
21062
|
+
* different rows that spell the same number, and a track whose
|
|
21063
|
+
* `bestEventId` was an object event was served a motion event's snapshot —
|
|
21064
|
+
* a night-time thumbnail on an afternoon track, with no error anywhere. A
|
|
21065
|
+
* surrogate id cannot name the wrong row's owner, because it names no owner
|
|
21066
|
+
* at all.
|
|
21067
|
+
*/
|
|
21068
|
+
mediaId: number().int(),
|
|
21014
21069
|
kind: MediaFileKindEnum,
|
|
21015
21070
|
sizeBytes: number(),
|
|
21016
21071
|
timestamp: number()
|
|
@@ -21118,7 +21173,7 @@ var RetrainTrackSchema = object({
|
|
|
21118
21173
|
});
|
|
21119
21174
|
/** A frame the picker may offer — an index row, no blob was read to produce it. */
|
|
21120
21175
|
var RetrainFrameCandidateSchema = object({
|
|
21121
|
-
|
|
21176
|
+
mediaId: number().int(),
|
|
21122
21177
|
kind: MediaFileKindEnum,
|
|
21123
21178
|
timestamp: number(),
|
|
21124
21179
|
sizeBytes: number().int(),
|
|
@@ -21132,7 +21187,7 @@ var RetrainFrameSchema = object({
|
|
|
21132
21187
|
deviceId: number(),
|
|
21133
21188
|
trackId: string(),
|
|
21134
21189
|
/** Provenance only. It may already point at nothing — that is expected. */
|
|
21135
|
-
|
|
21190
|
+
sourceMediaId: number().int(),
|
|
21136
21191
|
sourceKind: MediaFileKindEnum,
|
|
21137
21192
|
sizeBytes: number().int(),
|
|
21138
21193
|
width: number().int(),
|
|
@@ -21148,7 +21203,7 @@ var RetrainCopyRefusalSchema = _enum([
|
|
|
21148
21203
|
var RetrainFrameSelectionSchema = object({
|
|
21149
21204
|
copied: array(RetrainFrameSchema).readonly(),
|
|
21150
21205
|
refused: array(object({
|
|
21151
|
-
|
|
21206
|
+
sourceMediaId: number().int(),
|
|
21152
21207
|
reason: RetrainCopyRefusalSchema
|
|
21153
21208
|
})).readonly()
|
|
21154
21209
|
});
|
|
@@ -21156,7 +21211,7 @@ var RetrainFrameListSchema = object({
|
|
|
21156
21211
|
candidates: array(RetrainFrameCandidateSchema).readonly(),
|
|
21157
21212
|
copies: array(RetrainFrameSchema).readonly(),
|
|
21158
21213
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
21159
|
-
|
|
21214
|
+
autoPickMediaId: number().int().optional()
|
|
21160
21215
|
});
|
|
21161
21216
|
/** What the operator asked the assist to look for. */
|
|
21162
21217
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
@@ -21251,9 +21306,11 @@ var RecentTracksQueryInput = object({
|
|
|
21251
21306
|
});
|
|
21252
21307
|
/**
|
|
21253
21308
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
21254
|
-
* `
|
|
21255
|
-
* served by the event-media plane
|
|
21256
|
-
* member visible has been materialised
|
|
21309
|
+
* `groupShotMediaId` is the media ROW id of its group shot (`ownerKind:
|
|
21310
|
+
* 'summary'`, served by the event-media plane at `/m/<id>`), null until the
|
|
21311
|
+
* first frame with a member visible has been materialised (D482 — it was the
|
|
21312
|
+
* row's composite key, which embedded the owner and could name another table's
|
|
21313
|
+
* row once event ids became per-table rowids).
|
|
21257
21314
|
*/
|
|
21258
21315
|
var SummarySchema = object({
|
|
21259
21316
|
id: string(),
|
|
@@ -21262,7 +21319,7 @@ var SummarySchema = object({
|
|
|
21262
21319
|
lastActiveAt: number(),
|
|
21263
21320
|
sealedAt: number().nullable(),
|
|
21264
21321
|
memberCount: number().int().nonnegative(),
|
|
21265
|
-
|
|
21322
|
+
groupShotMediaId: number().int().nullable()
|
|
21266
21323
|
});
|
|
21267
21324
|
var SummariesQueryInput = object({
|
|
21268
21325
|
deviceIds: array(number()).min(1),
|
|
@@ -22245,7 +22302,7 @@ var pipelineAnalyticsCapability = {
|
|
|
22245
22302
|
selectRetrainFrames: method(object({
|
|
22246
22303
|
deviceId: number(),
|
|
22247
22304
|
trackId: string(),
|
|
22248
|
-
|
|
22305
|
+
mediaIds: array(number().int()).min(1)
|
|
22249
22306
|
}), RetrainFrameSelectionSchema, {
|
|
22250
22307
|
kind: "mutation",
|
|
22251
22308
|
auth: "admin"
|
|
@@ -22409,8 +22466,29 @@ var pipelineAnalyticsCapability = {
|
|
|
22409
22466
|
kind: "query",
|
|
22410
22467
|
auth: "admin"
|
|
22411
22468
|
}),
|
|
22469
|
+
/**
|
|
22470
|
+
* The media an EVENT owns.
|
|
22471
|
+
*
|
|
22472
|
+
* `ownerType` is REQUIRED, and that is the whole correction (D482). An
|
|
22473
|
+
* event is a row in ONE of three tables, and since D474 each numbers from
|
|
22474
|
+
* 1 independently: `motion:101314` and `object:101314` both exist. This
|
|
22475
|
+
* method took a bare `eventId` and the provider probed motion → object →
|
|
22476
|
+
* audio, stopping at the first hit — so on the live hub, where object
|
|
22477
|
+
* events own no media of their own and 299 883 of 300 559 media rows are
|
|
22478
|
+
* motion-owned, EVERY object event resolved to its motion namesake. A
|
|
22479
|
+
* track from 17:34 on camera 615 was served a snapshot from 22:35 eleven
|
|
22480
|
+
* days earlier, silently.
|
|
22481
|
+
*
|
|
22482
|
+
* D476 had already disambiguated the KEY (`motion:` vs `object:`); this is
|
|
22483
|
+
* the API catching up to it. Naming the table is not a "qualification" of
|
|
22484
|
+
* the ambiguity — a listing BY OWNER has no address to make surrogate: the
|
|
22485
|
+
* owner IS (table, id), and half of it is not a question.
|
|
22486
|
+
*/
|
|
22412
22487
|
getEventMedia: method(object({
|
|
22413
|
-
|
|
22488
|
+
/** Which of the three event tables owns the row. */
|
|
22489
|
+
ownerType: EventOwnerTypeSchema,
|
|
22490
|
+
/** The event's rowid in that table (D474: an event id is a number). */
|
|
22491
|
+
eventId: number().int(),
|
|
22414
22492
|
kind: MediaFileKindEnum.optional(),
|
|
22415
22493
|
deviceId: number()
|
|
22416
22494
|
}), array(MediaFileSchema).readonly()),
|
|
@@ -22455,11 +22533,14 @@ var pipelineAnalyticsCapability = {
|
|
|
22455
22533
|
* the live hub: one event's `fullFrameBoxed` is 2 824 077 B, base64'd to
|
|
22456
22534
|
* ~3.8 MB, allocated whole in hub-main's heap, for a list of keys.
|
|
22457
22535
|
*
|
|
22458
|
-
* Same `deviceId` authorization subject as `getEventMedia`,
|
|
22459
|
-
*
|
|
22536
|
+
* Same `deviceId` authorization subject as `getEventMedia`, the same
|
|
22537
|
+
* REQUIRED `ownerType` (read that method's docblock for the night-time
|
|
22538
|
+
* thumbnail this closes — D482), and the same rows: this is a projection
|
|
22539
|
+
* of that method, never a different question.
|
|
22460
22540
|
*/
|
|
22461
22541
|
listEventMedia: method(object({
|
|
22462
|
-
|
|
22542
|
+
ownerType: EventOwnerTypeSchema,
|
|
22543
|
+
eventId: number().int(),
|
|
22463
22544
|
deviceId: number()
|
|
22464
22545
|
}), array(MediaFileInfoSchema).readonly()),
|
|
22465
22546
|
/**
|
|
@@ -27747,8 +27828,8 @@ var IdentitySchema = object({
|
|
|
27747
27828
|
id: string(),
|
|
27748
27829
|
name: string(),
|
|
27749
27830
|
sampleCount: number().int().nonnegative(),
|
|
27750
|
-
|
|
27751
|
-
/** Inline base64 of the cover sample's crop, resolved from `
|
|
27831
|
+
coverMediaId: number().int().optional(),
|
|
27832
|
+
/** Inline base64 of the cover sample's crop, resolved from `coverMediaId`.
|
|
27752
27833
|
* Lets the UI render the person's face avatar instead of a placeholder icon. */
|
|
27753
27834
|
coverBase64: string().optional()
|
|
27754
27835
|
});
|
|
@@ -27774,8 +27855,8 @@ var IdentitySampleAuditRowSchema = object({
|
|
|
27774
27855
|
enrolledAt: number().int(),
|
|
27775
27856
|
deviceId: number().int().optional(),
|
|
27776
27857
|
source: _enum(["detected", "photo"]),
|
|
27777
|
-
/** The enrolled crop's media
|
|
27778
|
-
|
|
27858
|
+
/** The enrolled crop's media row id, so the panel can show the evidence. */
|
|
27859
|
+
mediaId: number().int().optional(),
|
|
27779
27860
|
/**
|
|
27780
27861
|
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
27781
27862
|
* across feature spaces is a well-formed float with no meaning. Every number
|
|
@@ -27844,15 +27925,15 @@ var FaceInfoSchema = object({
|
|
|
27844
27925
|
*/
|
|
27845
27926
|
cropUrl: string().optional(),
|
|
27846
27927
|
/** Design B: the face bbox (pixel space) on the key frame — lets a detail
|
|
27847
|
-
* view draw the box over the native `
|
|
27928
|
+
* view draw the box over the native `keyFrameMediaId` frame. Absent on
|
|
27848
27929
|
* legacy rows written before design B. */
|
|
27849
27930
|
faceBbox: BoundingBoxSchema.optional(),
|
|
27850
27931
|
/** Design B: MediaStore key of the track's native-resolution key frame.
|
|
27851
27932
|
* Fetch the native JPEG via the event-media data-plane
|
|
27852
|
-
* (`/addon/<addonId>/event-media/<
|
|
27933
|
+
* (`/addon/<addonId>/event-media/m/<keyFrameMediaId>`). Absent when the
|
|
27853
27934
|
* track produced no key frame (e.g. native/onboard source) — the UI falls
|
|
27854
27935
|
* back to the inline `base64` face crop. */
|
|
27855
|
-
|
|
27936
|
+
keyFrameMediaId: number().int().optional(),
|
|
27856
27937
|
/** Winning identity-match cosine (0..1) for this face's track, when an
|
|
27857
27938
|
* identity was auto-confirmed. Lets the UI surface WHY a face was assigned
|
|
27858
27939
|
* (confidence badge / low-confidence audit). Absent on legacy rows and on
|
|
@@ -27921,11 +28002,14 @@ var FaceClusterSchema = object({
|
|
|
27921
28002
|
* `data:image/jpeg;base64,…` from a row whose `key` sat right beside it, in a
|
|
27922
28003
|
* dialog already rendering its key FRAME from the `event-media` plane.
|
|
27923
28004
|
*
|
|
27924
|
-
* `url` is `/addon/<addonId>/event-media/<
|
|
27925
|
-
* media
|
|
28005
|
+
* `url` is `/addon/<addonId>/event-media/m/<mediaId>` (D482). The plane
|
|
28006
|
+
* resolves a media row by its own id, so this needed no new plane and no new
|
|
28007
|
+
* access decision.
|
|
27926
28008
|
*/
|
|
27927
28009
|
var MediaFileLiteSchema$1 = object({
|
|
27928
|
-
|
|
28010
|
+
/** The media row's own id — the same address `MediaFileRef.mediaId` carries
|
|
28011
|
+
* (D482). It was the row's composite key, which embedded the owner. */
|
|
28012
|
+
mediaId: number().int(),
|
|
27929
28013
|
kind: string(),
|
|
27930
28014
|
url: string(),
|
|
27931
28015
|
sizeBytes: number(),
|
|
@@ -27947,7 +28031,7 @@ var faceGalleryCapability = {
|
|
|
27947
28031
|
* covers inline, ~10 KB of base64 per row, on a query this UI mounts
|
|
27948
28032
|
* four times and the viewer holds at `staleTime: 30_000`.
|
|
27949
28033
|
*
|
|
27950
|
-
* Nothing loses its avatar: `
|
|
28034
|
+
* Nothing loses its avatar: `coverMediaId` is already on every row and
|
|
27951
28035
|
* the `event-media` plane serves that key `immutable` with an ETag.
|
|
27952
28036
|
*
|
|
27953
28037
|
* **This is an INPUT field, so it does not reach the addon until the
|
|
@@ -31369,8 +31453,8 @@ var VehicleSchema = object({
|
|
|
31369
31453
|
id: string(),
|
|
31370
31454
|
name: string(),
|
|
31371
31455
|
sampleCount: number().int().nonnegative(),
|
|
31372
|
-
|
|
31373
|
-
/** Inline base64 of the cover sample's plate crop, resolved from `
|
|
31456
|
+
coverMediaId: number().int().optional(),
|
|
31457
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaId`. */
|
|
31374
31458
|
coverBase64: string().optional()
|
|
31375
31459
|
});
|
|
31376
31460
|
var VehicleSampleInfoSchema = object({
|
|
@@ -31403,7 +31487,7 @@ var PlateInfoSchema = object({
|
|
|
31403
31487
|
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
31404
31488
|
plateBbox: BoundingBoxSchema.optional(),
|
|
31405
31489
|
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
31406
|
-
|
|
31490
|
+
keyFrameMediaId: number().int().optional(),
|
|
31407
31491
|
base64: string().optional(),
|
|
31408
31492
|
/**
|
|
31409
31493
|
* Same crop as a data-plane URL, always present when the plate has a stored
|
|
@@ -31424,11 +31508,14 @@ var PlateInfoSchema = object({
|
|
|
31424
31508
|
* `data:image/jpeg;base64,…` from a row whose `key` sat right beside it, in a
|
|
31425
31509
|
* dialog already rendering its key FRAME from the `event-media` plane.
|
|
31426
31510
|
*
|
|
31427
|
-
* `url` is `/addon/<addonId>/event-media/<
|
|
31428
|
-
* media
|
|
31511
|
+
* `url` is `/addon/<addonId>/event-media/m/<mediaId>` (D482). The plane
|
|
31512
|
+
* resolves a media row by its own id, so this needed no new plane and no new
|
|
31513
|
+
* access decision.
|
|
31429
31514
|
*/
|
|
31430
31515
|
var MediaFileLiteSchema = object({
|
|
31431
|
-
|
|
31516
|
+
/** The media row's own id — the same address `MediaFileRef.mediaId` carries
|
|
31517
|
+
* (D482). It was the row's composite key, which embedded the owner. */
|
|
31518
|
+
mediaId: number().int(),
|
|
31432
31519
|
kind: string(),
|
|
31433
31520
|
url: string(),
|
|
31434
31521
|
sizeBytes: number(),
|
|
@@ -31510,7 +31597,7 @@ var plateGalleryCapability = {
|
|
|
31510
31597
|
listVehicles: method(object({
|
|
31511
31598
|
/** Inline {@link VehicleSchema.coverBase64} on every row. Default
|
|
31512
31599
|
* `false` — the vehicle twin of `faceGallery.listIdentities`'s
|
|
31513
|
-
* option; `
|
|
31600
|
+
* option; `coverMediaId` + the `event-media` plane carry the picture.
|
|
31514
31601
|
* INPUT field: stripped by the hub router until the train ships, which
|
|
31515
31602
|
* resolves to `false` and is exactly the intended default. */
|
|
31516
31603
|
includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly()),
|
|
@@ -33114,7 +33201,14 @@ var SceneReferenceSchema = object({
|
|
|
33114
33201
|
modelId: string(),
|
|
33115
33202
|
condition: SceneConditionSchema,
|
|
33116
33203
|
capturedAt: number(),
|
|
33117
|
-
|
|
33204
|
+
/**
|
|
33205
|
+
* The reference thumbnail's media ROW id (D482).
|
|
33206
|
+
*
|
|
33207
|
+
* The name already said `mediaId` while the value was the row's composite
|
|
33208
|
+
* key — a leftover that read as done and was not. It is the row's own id
|
|
33209
|
+
* now, addressed at `/addon/<addonId>/event-media/m/<id>`.
|
|
33210
|
+
*/
|
|
33211
|
+
thumbnailMediaId: number().int().optional(),
|
|
33118
33212
|
/** Whole-frame (downscaled) embedding captured alongside the ROI crop. The
|
|
33119
33213
|
* anti-view-shift anchor: a bumped camera, a PTZ preset or a re-aim makes the
|
|
33120
33214
|
* normalized rect frame a different piece of world, and the scene would
|
|
@@ -35099,7 +35193,7 @@ var StationaryObjectSchema = object({
|
|
|
35099
35193
|
/** Enrichment label carried from the source track (identity / plate). */
|
|
35100
35194
|
label: string().optional(),
|
|
35101
35195
|
/** Native-resolution key-frame media key for the parked object's best image. */
|
|
35102
|
-
|
|
35196
|
+
keyFrameMediaId: number().int().optional()
|
|
35103
35197
|
});
|
|
35104
35198
|
var CameraOccupancySnapshotSchema = object({
|
|
35105
35199
|
/** Frame timestamp of the inference result that produced this snapshot. */
|
|
@@ -37613,6 +37707,12 @@ Object.freeze({
|
|
|
37613
37707
|
addonId: null,
|
|
37614
37708
|
access: "create"
|
|
37615
37709
|
},
|
|
37710
|
+
"dataStoreProvider.upsert": {
|
|
37711
|
+
capName: "data-store-provider",
|
|
37712
|
+
capScope: "system",
|
|
37713
|
+
addonId: null,
|
|
37714
|
+
access: "create"
|
|
37715
|
+
},
|
|
37616
37716
|
"dayNight.getOptions": {
|
|
37617
37717
|
capName: "day-night",
|
|
37618
37718
|
capScope: "device",
|
|
@@ -41477,6 +41577,12 @@ Object.freeze({
|
|
|
41477
41577
|
addonId: null,
|
|
41478
41578
|
access: "create"
|
|
41479
41579
|
},
|
|
41580
|
+
"settingsStore.upsert": {
|
|
41581
|
+
capName: "settings-store",
|
|
41582
|
+
capScope: "system",
|
|
41583
|
+
addonId: null,
|
|
41584
|
+
access: "create"
|
|
41585
|
+
},
|
|
41480
41586
|
"smtpProvider.getStatus": {
|
|
41481
41587
|
capName: "smtp-provider",
|
|
41482
41588
|
capScope: "system",
|
|
@@ -45837,4 +45943,4 @@ function vectorDimFromBase64(encoded) {
|
|
|
45837
45943
|
return Math.floor(Buffer.from(encoded, "base64").byteLength / 4);
|
|
45838
45944
|
}
|
|
45839
45945
|
//#endregion
|
|
45840
|
-
export { TimelapseRuleSchema as $,
|
|
45946
|
+
export { TimelapseRuleSchema as $, boolean as $t, NcConditionDescriptorSchema as A, plateGalleryCapability as At, NcTaxonomySchema as B, videoclipsCapability as Bt, MOTION_CLOSE_AFTER_MS as C, isSourceCap as Ct, NC_DEFAULT_SNOOZE_MINUTES as D, parseProcStatus as Dt, NC_CONDITION_CATALOG as E, notificationRulesCapability as Et, NcScheduleSchema as F, sceneMonitorCapability as Ft, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as G, DeviceType as Gt, PoolMemoryWatchdog as H, errMsg as Ht, NcSnoozeInputSchema as I, storageOccupancyCapability as It, SCENE_DIVERGED as J, isDeviceScopedCap as Jt, SCENE_DEFAULT_ANCHOR_THRESHOLD as K, createEvent as Kt, NcSnoozeSchema as L, subKindsOf as Lt, NcRulePatchSchema as M, readTimelapseGeneratedAt as Mt, NcRuleSchema as N, resolveLocationMode as Nt, NC_SNOOZE_MAX_MINUTES as O, pickClusterStepModels as Ot, NcRuleTargetSchema as P, resolvePoolMemoryPolicy as Pt, TimelapseRulePatchSchema as Q, array as Qt, NcSnoozeSuppressedSchema as R, systemEventFilterApplies as Rt, MAX_BIRTH_LATENCY_PROXY_MS as S, isScheduleActive as St, NC_ALARM_SYSTEM_EVENT_KINDS as T, mayWriteToLocation as Tt, RECORDING_EXPORT_MAX_READ_BYTES as U, BaseAddon as Ut, OpsLogEntrySchema as V, zoneAnalyticsCapability as Vt, RetrainStatusSchema as W, CamProfileSchema as Wt, TIMELAPSE_DENSE_FLOOR_SEC as X, sleep as Xt, SceneMonitorSchema as Y, nodePin as Yt, TimelapseRuleInputSchema as Z, _enum as Zt, FULL_IMAGE_BBOX as _, failureContributionCapability as _t, CLUSTER_MODEL_SCOPED_STEPS as a, record as an, audioMetricsCapability as at, MAX_ARCHIVED_DEBUG_NOTES as b, isEventOwnerType as bt, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as c, EventCategory as cn, cosineSimilarity as ct, DETECTION_PIPELINE_CAP_NAME as d, deriveRecordingMode as dt, discriminatedUnion as en, TrackSourceSchema as et, DeclaredDevices as f, embeddingEncoderCapability as ft, FIRST_LEVEL_MACRO_CLASSES as g, faceGalleryCapability as gt, EVENT_PAD_MS as h, evictionPolicyOfLocation as ht, BirthDecisionRecordSchema as i, partialRecord as in, assertTimelapseCadences as it, NcRuleInputSchema as j, readDeviceStateFrom as jt, NC_TAXONOMY as k, pipelineAnalyticsCapability as kt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as l, customAction as lt, EVENT_OWNER_TYPES as m, evaluateSensorEdge as mt, ArchivedDebugNoteSchema as n, number as nn, addonWidgetsSourceCapability as nt, COCO_TO_MACRO as o, string as on, audioModeOf as ot, EVENT_KIND_BY_CAP as p, encodeVectorBase64 as pt, SCENE_DEFAULT_UNCOVERED_POLICY as q, hydrateSchema as qt, BaseDevice as r, object as rn, alarmPanelCapability as rt, DEFAULT_EVENT_COLOR as s, unknown as sn, buildEventKindDescriptor as st, AUDIO_MACRO_LABELS as t, literal as tn, VISIT_MERGE_GAP_MS as tt, DETECTION_MACRO_CLASSES as u, defineCustomActions as ut, FailureCounters as v, hfModelUrl as vt, MediaFileKindEnum as w, kebabToCamel as wt, MAX_BIRTH_DECISION_RECORDS as x, isMediaOwnerType as xt, LabelAttributionSchema as y, isDetectionMacroClass as yt, NcSystemEventKindSchema as z, vectorDimFromBase64 as zt };
|
|
@@ -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-BmhTo2Yp.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dt as parseProcStatus, H as PoolMemoryWatchdog, Pt as resolvePoolMemoryPolicy, Ut as BaseAddon, ft as embeddingEncoderCapability, vt as hfModelUrl } from "../dist-C7-GAwZ9.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,14 +1,12 @@
|
|
|
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-yat2fBJg.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
|
-
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
6
|
-
var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(),
|
|
7
|
-
let t =
|
|
5
|
+
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
6
|
+
var _ = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), v = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), y = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), b = (e) => {
|
|
7
|
+
let t = y(e);
|
|
8
8
|
return t.charAt(0).toUpperCase() + t.slice(1);
|
|
9
|
-
},
|
|
10
|
-
for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
|
|
11
|
-
}, S = {
|
|
9
|
+
}, x = {
|
|
12
10
|
xmlns: "http://www.w3.org/2000/svg",
|
|
13
11
|
width: 24,
|
|
14
12
|
height: 24,
|
|
@@ -18,24 +16,27 @@ var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) =
|
|
|
18
16
|
strokeWidth: 2,
|
|
19
17
|
strokeLinecap: "round",
|
|
20
18
|
strokeLinejoin: "round"
|
|
19
|
+
}, S = (e) => {
|
|
20
|
+
for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
|
|
21
|
+
return !1;
|
|
21
22
|
}, C = n(({ color: e = "currentColor", size: t = 24, strokeWidth: n = 2, absoluteStrokeWidth: r, className: i = "", children: o, iconNode: s, ...c }, l) => a("svg", {
|
|
22
23
|
ref: l,
|
|
23
|
-
...
|
|
24
|
+
...x,
|
|
24
25
|
width: t,
|
|
25
26
|
height: t,
|
|
26
27
|
stroke: e,
|
|
27
28
|
strokeWidth: r ? Number(n) * 24 / Number(t) : n,
|
|
28
|
-
className:
|
|
29
|
-
...!o && !
|
|
29
|
+
className: _("lucide", i),
|
|
30
|
+
...!o && !S(c) && { "aria-hidden": "true" },
|
|
30
31
|
...c
|
|
31
32
|
}, [...s.map(([e, t]) => a(e, t)), ...Array.isArray(o) ? o : [o]])), w = (e, t) => {
|
|
32
33
|
let r = n(({ className: n, ...r }, i) => a(C, {
|
|
33
34
|
ref: i,
|
|
34
35
|
iconNode: t,
|
|
35
|
-
className:
|
|
36
|
+
className: _(`lucide-${v(b(e))}`, `lucide-${e}`, n),
|
|
36
37
|
...r
|
|
37
38
|
}));
|
|
38
|
-
return r.displayName =
|
|
39
|
+
return r.displayName = b(e), r;
|
|
39
40
|
}, T = w("activity", [["path", {
|
|
40
41
|
d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
|
|
41
42
|
key: "169zse"
|
|
@@ -131,51 +132,46 @@ var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) =
|
|
|
131
132
|
key: "13wojd"
|
|
132
133
|
}]
|
|
133
134
|
]), A = w("mic-off", [
|
|
134
|
-
["
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
y1: "2",
|
|
138
|
-
y2: "22",
|
|
139
|
-
key: "a6p6uj"
|
|
135
|
+
["path", {
|
|
136
|
+
d: "M12 19v3",
|
|
137
|
+
key: "npa21l"
|
|
140
138
|
}],
|
|
141
139
|
["path", {
|
|
142
|
-
d: "
|
|
143
|
-
key: "
|
|
140
|
+
d: "M15 9.34V5a3 3 0 0 0-5.68-1.33",
|
|
141
|
+
key: "1gzdoj"
|
|
144
142
|
}],
|
|
145
143
|
["path", {
|
|
146
|
-
d: "
|
|
147
|
-
key: "
|
|
144
|
+
d: "M16.95 16.95A7 7 0 0 1 5 12v-2",
|
|
145
|
+
key: "cqa7eg"
|
|
148
146
|
}],
|
|
149
147
|
["path", {
|
|
150
|
-
d: "
|
|
151
|
-
key: "
|
|
148
|
+
d: "M18.89 13.23A7 7 0 0 0 19 12v-2",
|
|
149
|
+
key: "16hl24"
|
|
150
|
+
}],
|
|
151
|
+
["path", {
|
|
152
|
+
d: "m2 2 20 20",
|
|
153
|
+
key: "1ooewy"
|
|
152
154
|
}],
|
|
153
155
|
["path", {
|
|
154
156
|
d: "M9 9v3a3 3 0 0 0 5.12 2.12",
|
|
155
157
|
key: "r2i35w"
|
|
156
|
-
}],
|
|
157
|
-
["line", {
|
|
158
|
-
x1: "12",
|
|
159
|
-
x2: "12",
|
|
160
|
-
y1: "19",
|
|
161
|
-
y2: "22",
|
|
162
|
-
key: "x3vr5v"
|
|
163
158
|
}]
|
|
164
159
|
]), j = w("mic", [
|
|
165
160
|
["path", {
|
|
166
|
-
d: "M12
|
|
167
|
-
key: "
|
|
161
|
+
d: "M12 19v3",
|
|
162
|
+
key: "npa21l"
|
|
168
163
|
}],
|
|
169
164
|
["path", {
|
|
170
165
|
d: "M19 10v2a7 7 0 0 1-14 0v-2",
|
|
171
166
|
key: "1vc78b"
|
|
172
167
|
}],
|
|
173
|
-
["
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
168
|
+
["rect", {
|
|
169
|
+
x: "9",
|
|
170
|
+
y: "2",
|
|
171
|
+
width: "6",
|
|
172
|
+
height: "13",
|
|
173
|
+
rx: "3",
|
|
174
|
+
key: "s6n7sd"
|
|
179
175
|
}]
|
|
180
176
|
]);
|
|
181
177
|
//#endregion
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.103",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -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.183",
|
|
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.151",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|