@camstack/addon-pipeline-orchestrator 1.2.188 → 1.2.189
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/_stub.js +43 -48
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-D4_6sMzz.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-CKC1HyvR.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DluAmt4_.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DZ_ciK86.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-C37IKEFG.mjs} +1 -1
- package/dist/{hostInit-BKs-oOQW.mjs → hostInit-BUfKiroM.mjs} +3 -3
- package/dist/index.js +131 -50
- package/dist/index.mjs +131 -50
- package/dist/remoteEntry.js +1 -1
- package/package.json +2 -2
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C-1z1cZL.mjs +0 -26
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ node_fs = __toESM(node_fs);
|
|
|
30
30
|
let node_path = require("node:path");
|
|
31
31
|
node_path = __toESM(node_path);
|
|
32
32
|
let node_url = require("node:url");
|
|
33
|
-
//#region ../types/dist/event-category-
|
|
33
|
+
//#region ../types/dist/event-category-ZyX6jcse.mjs
|
|
34
34
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
35
35
|
EventCategory["SystemBoot"] = "system.boot";
|
|
36
36
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -591,7 +591,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
591
591
|
* a package zone — a newly-appeared stationary object of a package class
|
|
592
592
|
* that cleared the class / zone / dwell / size gates. Payload:
|
|
593
593
|
* `PipelineAnalyticsPackageDeliveredPayload` carrying `{ deviceId,
|
|
594
|
-
* entryId, className, zoneIds,
|
|
594
|
+
* entryId, className, zoneIds, keyFrameMediaId?, bbox, timestamp }`.
|
|
595
595
|
* Telemetry (D8): the durable record is the `package-events` store row;
|
|
596
596
|
* this bus topic drives notifier rules + live UI. See
|
|
597
597
|
* docs/superpowers/specs/2026-07-17-package-zones-design.md §5.1.
|
|
@@ -5377,7 +5377,7 @@ var ZodIssueCode = {
|
|
|
5377
5377
|
var ZodFirstPartyTypeKind;
|
|
5378
5378
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5379
5379
|
//#endregion
|
|
5380
|
-
//#region ../types/dist/sleep-
|
|
5380
|
+
//#region ../types/dist/sleep-CnLyvg3w.mjs
|
|
5381
5381
|
/**
|
|
5382
5382
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5383
5383
|
* window to float samples (D455).
|
|
@@ -7908,13 +7908,30 @@ new Set([
|
|
|
7908
7908
|
"scene",
|
|
7909
7909
|
"motion",
|
|
7910
7910
|
"object",
|
|
7911
|
-
"audio"
|
|
7911
|
+
"audio",
|
|
7912
|
+
"mosaic"
|
|
7912
7913
|
]);
|
|
7913
|
-
|
|
7914
|
+
/**
|
|
7915
|
+
* The owner types that are event tables, in the order the event-media resolver
|
|
7916
|
+
* should consider them. Exported so a consumer asking "is this key an event?"
|
|
7917
|
+
* does not re-spell the list and drift from it.
|
|
7918
|
+
*/
|
|
7919
|
+
var EVENT_OWNER_TYPES = [
|
|
7914
7920
|
"motion",
|
|
7915
7921
|
"object",
|
|
7916
7922
|
"audio"
|
|
7917
|
-
]
|
|
7923
|
+
];
|
|
7924
|
+
/**
|
|
7925
|
+
* The same list as a Zod enum, for the cap inputs that must NAME the table
|
|
7926
|
+
* (D482: `getEventMedia` / `listEventMedia` take an owner, and an owner is
|
|
7927
|
+
* `(table, id)`).
|
|
7928
|
+
*
|
|
7929
|
+
* Built FROM {@link EVENT_OWNER_TYPES} rather than re-spelled: a fourth event
|
|
7930
|
+
* table would otherwise be accepted by the codec and refused at the door, with
|
|
7931
|
+
* nothing failing until a caller asked.
|
|
7932
|
+
*/
|
|
7933
|
+
var EventOwnerTypeSchema = _enum(EVENT_OWNER_TYPES);
|
|
7934
|
+
new Set(EVENT_OWNER_TYPES);
|
|
7918
7935
|
var EncodeProfileSchema = object({
|
|
7919
7936
|
video: object({
|
|
7920
7937
|
codec: _enum([
|
|
@@ -13371,6 +13388,16 @@ method(object({
|
|
|
13371
13388
|
filter: QueryFilterSchema.optional(),
|
|
13372
13389
|
columns: array(string()).readonly().optional()
|
|
13373
13390
|
}), array(SettingsRecordSchema).readonly()), method(object({
|
|
13391
|
+
namespace: string().optional(),
|
|
13392
|
+
collection: string(),
|
|
13393
|
+
/** Declared columns identifying the slot; must be covered by a UNIQUE
|
|
13394
|
+
* index on the collection. Never empty. */
|
|
13395
|
+
conflict: array(string()).readonly(),
|
|
13396
|
+
record: BulkRecordSchema
|
|
13397
|
+
}), object({
|
|
13398
|
+
/** The id the row HAS: assigned by SQLite on an insert, or the existing
|
|
13399
|
+
* row's own id on an update. */
|
|
13400
|
+
id: union([string(), number()]) }), { kind: "mutation" }), method(object({
|
|
13374
13401
|
namespace: string().optional(),
|
|
13375
13402
|
collection: string(),
|
|
13376
13403
|
record: object({
|
|
@@ -13505,6 +13532,14 @@ method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
|
13505
13532
|
id: union([string(), number()]) }), {
|
|
13506
13533
|
kind: "mutation",
|
|
13507
13534
|
auth: "admin"
|
|
13535
|
+
}), method(object({
|
|
13536
|
+
namespace: string().optional(),
|
|
13537
|
+
collection: string(),
|
|
13538
|
+
conflict: array(string()).readonly(),
|
|
13539
|
+
record: BulkRecordSchema
|
|
13540
|
+
}), object({ id: union([string(), number()]) }), {
|
|
13541
|
+
kind: "mutation",
|
|
13542
|
+
auth: "admin"
|
|
13508
13543
|
}), method(object({
|
|
13509
13544
|
namespace: string().optional(),
|
|
13510
13545
|
collection: string(),
|
|
@@ -19945,8 +19980,8 @@ var TrackPositionSchema = object({
|
|
|
19945
19980
|
var TrackSnapshotSchema = object({
|
|
19946
19981
|
timestamp: number(),
|
|
19947
19982
|
position: TrackPositionSchema,
|
|
19948
|
-
/**
|
|
19949
|
-
|
|
19983
|
+
/** The snapshot's media row id (D482); resolve via `listTrackMedia({ trackId })`. */
|
|
19984
|
+
mediaId: number().int()
|
|
19950
19985
|
});
|
|
19951
19986
|
/**
|
|
19952
19987
|
* Normalized 0..1 trajectory envelope (min/max over every position bbox,
|
|
@@ -20550,14 +20585,14 @@ var ObjectEventSchema = object({
|
|
|
20550
20585
|
* pixel-space `bbox` onto a displayed image. Omitted in slim projection. */
|
|
20551
20586
|
frameWidth: number().optional(),
|
|
20552
20587
|
frameHeight: number().optional(),
|
|
20553
|
-
/**
|
|
20554
|
-
|
|
20555
|
-
/** Design B:
|
|
20588
|
+
/** Media row id of the crop attached to this event (if any) — D482. */
|
|
20589
|
+
mediaId: number().int().optional(),
|
|
20590
|
+
/** Design B: media row id of the track's native-resolution key frame (the
|
|
20556
20591
|
* best-detection full frame). Resolve via the event-media data-plane
|
|
20557
|
-
* (`/addon/<addonId>/event-media/<
|
|
20592
|
+
* (`/addon/<addonId>/event-media/m/<keyFrameMediaId>`) for a detail view that
|
|
20558
20593
|
* draws `bbox` over the native frame. Absent on legacy rows / non-decoded
|
|
20559
|
-
* sources — consumers fall back to `
|
|
20560
|
-
|
|
20594
|
+
* sources — consumers fall back to `mediaId` (the tight crop). */
|
|
20595
|
+
keyFrameMediaId: number().int().optional(),
|
|
20561
20596
|
/** Populated by B5 (recording playback URL for this event). */
|
|
20562
20597
|
mediaUrl: string().optional(),
|
|
20563
20598
|
/** The parent track's key-event importance [0,1], propagated to every object
|
|
@@ -20607,7 +20642,7 @@ var MediaFileKindEnum = _enum([
|
|
|
20607
20642
|
* hub-main's heap on the way past — for an `<img>` that would have cached it.
|
|
20608
20643
|
*
|
|
20609
20644
|
* `url` points at the `event-media` data plane
|
|
20610
|
-
* (`/addon/<addonId>/event-media/<
|
|
20645
|
+
* (`/addon/<addonId>/event-media/m/<mediaId>` — D482), which serves the same blob
|
|
20611
20646
|
* with an ETag and `Cache-Control: immutable`, honours conditional GETs, can
|
|
20612
20647
|
* render a `?variant=thumb`, and streams. The hub gate in front of it requires
|
|
20613
20648
|
* a bearer or the session cookie (`access: 'authenticated'`), so the bytes are
|
|
@@ -20615,10 +20650,13 @@ var MediaFileKindEnum = _enum([
|
|
|
20615
20650
|
* `data-plane-access.ts` for the rule and the one gap it does not close
|
|
20616
20651
|
* (per-device scoping).
|
|
20617
20652
|
*
|
|
20618
|
-
* The URL is built from the row's
|
|
20619
|
-
*
|
|
20653
|
+
* The URL is built from the row's own id, which since D482 says nothing about
|
|
20654
|
+
* the row's owner or kind — and that is the point. The published `kind` is not
|
|
20655
|
+
* the stored one (a track's face/plate crop is stored as `crop` under
|
|
20620
20656
|
* `('face'|'plate', '<prefix>-<trackId>')` and published as
|
|
20621
|
-
* `faceCrop`/`plateCrop
|
|
20657
|
+
* `faceCrop`/`plateCrop`), and under the old composite key the URL had to be
|
|
20658
|
+
* taken from `row.key` verbatim or it 404'd exactly those two rows. An id
|
|
20659
|
+
* cannot be mis-reconstructed, because there is nothing in it to reconstruct.
|
|
20622
20660
|
*
|
|
20623
20661
|
* ## `base64` is TRANSITIONAL and is going away
|
|
20624
20662
|
*
|
|
@@ -20631,7 +20669,19 @@ var MediaFileKindEnum = _enum([
|
|
|
20631
20669
|
* `analytics-query-facade.ts`; nothing else reads it.
|
|
20632
20670
|
*/
|
|
20633
20671
|
var MediaFileSchema = object({
|
|
20634
|
-
|
|
20672
|
+
/**
|
|
20673
|
+
* The media row's OWN id — the rowid SQLite assigned it (D482).
|
|
20674
|
+
*
|
|
20675
|
+
* It used to be the row's composite key, `<ownerType>:<ownerId>:<fileKind>
|
|
20676
|
+
* [:<timestampMs>]`, which embedded a FOREIGN id. D474 made event ids
|
|
20677
|
+
* per-table rowid aliases, so `object:101314` and `motion:101314` are two
|
|
20678
|
+
* different rows that spell the same number, and a track whose
|
|
20679
|
+
* `bestEventId` was an object event was served a motion event's snapshot —
|
|
20680
|
+
* a night-time thumbnail on an afternoon track, with no error anywhere. A
|
|
20681
|
+
* surrogate id cannot name the wrong row's owner, because it names no owner
|
|
20682
|
+
* at all.
|
|
20683
|
+
*/
|
|
20684
|
+
mediaId: number().int(),
|
|
20635
20685
|
kind: MediaFileKindEnum,
|
|
20636
20686
|
sizeBytes: number(),
|
|
20637
20687
|
timestamp: number()
|
|
@@ -20739,7 +20789,7 @@ var RetrainTrackSchema = object({
|
|
|
20739
20789
|
});
|
|
20740
20790
|
/** A frame the picker may offer — an index row, no blob was read to produce it. */
|
|
20741
20791
|
var RetrainFrameCandidateSchema = object({
|
|
20742
|
-
|
|
20792
|
+
mediaId: number().int(),
|
|
20743
20793
|
kind: MediaFileKindEnum,
|
|
20744
20794
|
timestamp: number(),
|
|
20745
20795
|
sizeBytes: number().int(),
|
|
@@ -20753,7 +20803,7 @@ var RetrainFrameSchema = object({
|
|
|
20753
20803
|
deviceId: number(),
|
|
20754
20804
|
trackId: string(),
|
|
20755
20805
|
/** Provenance only. It may already point at nothing — that is expected. */
|
|
20756
|
-
|
|
20806
|
+
sourceMediaId: number().int(),
|
|
20757
20807
|
sourceKind: MediaFileKindEnum,
|
|
20758
20808
|
sizeBytes: number().int(),
|
|
20759
20809
|
width: number().int(),
|
|
@@ -20769,7 +20819,7 @@ var RetrainCopyRefusalSchema = _enum([
|
|
|
20769
20819
|
var RetrainFrameSelectionSchema = object({
|
|
20770
20820
|
copied: array(RetrainFrameSchema).readonly(),
|
|
20771
20821
|
refused: array(object({
|
|
20772
|
-
|
|
20822
|
+
sourceMediaId: number().int(),
|
|
20773
20823
|
reason: RetrainCopyRefusalSchema
|
|
20774
20824
|
})).readonly()
|
|
20775
20825
|
});
|
|
@@ -20777,7 +20827,7 @@ var RetrainFrameListSchema = object({
|
|
|
20777
20827
|
candidates: array(RetrainFrameCandidateSchema).readonly(),
|
|
20778
20828
|
copies: array(RetrainFrameSchema).readonly(),
|
|
20779
20829
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
20780
|
-
|
|
20830
|
+
autoPickMediaId: number().int().optional()
|
|
20781
20831
|
});
|
|
20782
20832
|
/** What the operator asked the assist to look for. */
|
|
20783
20833
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
@@ -20872,9 +20922,11 @@ var RecentTracksQueryInput = object({
|
|
|
20872
20922
|
});
|
|
20873
20923
|
/**
|
|
20874
20924
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
20875
|
-
* `
|
|
20876
|
-
* served by the event-media plane
|
|
20877
|
-
* member visible has been materialised
|
|
20925
|
+
* `groupShotMediaId` is the media ROW id of its group shot (`ownerKind:
|
|
20926
|
+
* 'summary'`, served by the event-media plane at `/m/<id>`), null until the
|
|
20927
|
+
* first frame with a member visible has been materialised (D482 — it was the
|
|
20928
|
+
* row's composite key, which embedded the owner and could name another table's
|
|
20929
|
+
* row once event ids became per-table rowids).
|
|
20878
20930
|
*/
|
|
20879
20931
|
var SummarySchema = object({
|
|
20880
20932
|
id: string(),
|
|
@@ -20883,7 +20935,7 @@ var SummarySchema = object({
|
|
|
20883
20935
|
lastActiveAt: number(),
|
|
20884
20936
|
sealedAt: number().nullable(),
|
|
20885
20937
|
memberCount: number().int().nonnegative(),
|
|
20886
|
-
|
|
20938
|
+
groupShotMediaId: number().int().nullable()
|
|
20887
20939
|
});
|
|
20888
20940
|
var SummariesQueryInput = object({
|
|
20889
20941
|
deviceIds: array(number()).min(1),
|
|
@@ -21437,7 +21489,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21437
21489
|
}), method(object({
|
|
21438
21490
|
deviceId: number(),
|
|
21439
21491
|
trackId: string(),
|
|
21440
|
-
|
|
21492
|
+
mediaIds: array(number().int()).min(1)
|
|
21441
21493
|
}), RetrainFrameSelectionSchema, {
|
|
21442
21494
|
kind: "mutation",
|
|
21443
21495
|
auth: "admin"
|
|
@@ -21505,7 +21557,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21505
21557
|
kind: "query",
|
|
21506
21558
|
auth: "admin"
|
|
21507
21559
|
}), method(object({
|
|
21508
|
-
|
|
21560
|
+
/** Which of the three event tables owns the row. */
|
|
21561
|
+
ownerType: EventOwnerTypeSchema,
|
|
21562
|
+
/** The event's rowid in that table (D474: an event id is a number). */
|
|
21563
|
+
eventId: number().int(),
|
|
21509
21564
|
kind: MediaFileKindEnum.optional(),
|
|
21510
21565
|
deviceId: number()
|
|
21511
21566
|
}), array(MediaFileSchema).readonly()), method(object({
|
|
@@ -21516,7 +21571,8 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21516
21571
|
trackId: string(),
|
|
21517
21572
|
deviceId: number()
|
|
21518
21573
|
}), array(MediaFileInfoSchema).readonly()), method(object({
|
|
21519
|
-
|
|
21574
|
+
ownerType: EventOwnerTypeSchema,
|
|
21575
|
+
eventId: number().int(),
|
|
21520
21576
|
deviceId: number()
|
|
21521
21577
|
}), array(MediaFileInfoSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), method(object({}), WipeObjectEmbeddingsResultSchema, {
|
|
21522
21578
|
kind: "mutation",
|
|
@@ -26497,8 +26553,8 @@ var IdentitySchema = object({
|
|
|
26497
26553
|
id: string(),
|
|
26498
26554
|
name: string(),
|
|
26499
26555
|
sampleCount: number().int().nonnegative(),
|
|
26500
|
-
|
|
26501
|
-
/** Inline base64 of the cover sample's crop, resolved from `
|
|
26556
|
+
coverMediaId: number().int().optional(),
|
|
26557
|
+
/** Inline base64 of the cover sample's crop, resolved from `coverMediaId`.
|
|
26502
26558
|
* Lets the UI render the person's face avatar instead of a placeholder icon. */
|
|
26503
26559
|
coverBase64: string().optional()
|
|
26504
26560
|
});
|
|
@@ -26524,8 +26580,8 @@ var IdentitySampleAuditRowSchema = object({
|
|
|
26524
26580
|
enrolledAt: number().int(),
|
|
26525
26581
|
deviceId: number().int().optional(),
|
|
26526
26582
|
source: _enum(["detected", "photo"]),
|
|
26527
|
-
/** The enrolled crop's media
|
|
26528
|
-
|
|
26583
|
+
/** The enrolled crop's media row id, so the panel can show the evidence. */
|
|
26584
|
+
mediaId: number().int().optional(),
|
|
26529
26585
|
/**
|
|
26530
26586
|
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
26531
26587
|
* across feature spaces is a well-formed float with no meaning. Every number
|
|
@@ -26594,15 +26650,15 @@ var FaceInfoSchema = object({
|
|
|
26594
26650
|
*/
|
|
26595
26651
|
cropUrl: string().optional(),
|
|
26596
26652
|
/** Design B: the face bbox (pixel space) on the key frame — lets a detail
|
|
26597
|
-
* view draw the box over the native `
|
|
26653
|
+
* view draw the box over the native `keyFrameMediaId` frame. Absent on
|
|
26598
26654
|
* legacy rows written before design B. */
|
|
26599
26655
|
faceBbox: BoundingBoxSchema.optional(),
|
|
26600
26656
|
/** Design B: MediaStore key of the track's native-resolution key frame.
|
|
26601
26657
|
* Fetch the native JPEG via the event-media data-plane
|
|
26602
|
-
* (`/addon/<addonId>/event-media/<
|
|
26658
|
+
* (`/addon/<addonId>/event-media/m/<keyFrameMediaId>`). Absent when the
|
|
26603
26659
|
* track produced no key frame (e.g. native/onboard source) — the UI falls
|
|
26604
26660
|
* back to the inline `base64` face crop. */
|
|
26605
|
-
|
|
26661
|
+
keyFrameMediaId: number().int().optional(),
|
|
26606
26662
|
/** Winning identity-match cosine (0..1) for this face's track, when an
|
|
26607
26663
|
* identity was auto-confirmed. Lets the UI surface WHY a face was assigned
|
|
26608
26664
|
* (confidence badge / low-confidence audit). Absent on legacy rows and on
|
|
@@ -26671,11 +26727,14 @@ var FaceClusterSchema = object({
|
|
|
26671
26727
|
* `data:image/jpeg;base64,…` from a row whose `key` sat right beside it, in a
|
|
26672
26728
|
* dialog already rendering its key FRAME from the `event-media` plane.
|
|
26673
26729
|
*
|
|
26674
|
-
* `url` is `/addon/<addonId>/event-media/<
|
|
26675
|
-
* media
|
|
26730
|
+
* `url` is `/addon/<addonId>/event-media/m/<mediaId>` (D482). The plane
|
|
26731
|
+
* resolves a media row by its own id, so this needed no new plane and no new
|
|
26732
|
+
* access decision.
|
|
26676
26733
|
*/
|
|
26677
26734
|
var MediaFileLiteSchema$1 = object({
|
|
26678
|
-
|
|
26735
|
+
/** The media row's own id — the same address `MediaFileRef.mediaId` carries
|
|
26736
|
+
* (D482). It was the row's composite key, which embedded the owner. */
|
|
26737
|
+
mediaId: number().int(),
|
|
26679
26738
|
kind: string(),
|
|
26680
26739
|
url: string(),
|
|
26681
26740
|
sizeBytes: number(),
|
|
@@ -26692,7 +26751,7 @@ method(object({
|
|
|
26692
26751
|
* covers inline, ~10 KB of base64 per row, on a query this UI mounts
|
|
26693
26752
|
* four times and the viewer holds at `staleTime: 30_000`.
|
|
26694
26753
|
*
|
|
26695
|
-
* Nothing loses its avatar: `
|
|
26754
|
+
* Nothing loses its avatar: `coverMediaId` is already on every row and
|
|
26696
26755
|
* the `event-media` plane serves that key `immutable` with an ETag.
|
|
26697
26756
|
*
|
|
26698
26757
|
* **This is an INPUT field, so it does not reach the addon until the
|
|
@@ -29160,8 +29219,8 @@ var VehicleSchema = object({
|
|
|
29160
29219
|
id: string(),
|
|
29161
29220
|
name: string(),
|
|
29162
29221
|
sampleCount: number().int().nonnegative(),
|
|
29163
|
-
|
|
29164
|
-
/** Inline base64 of the cover sample's plate crop, resolved from `
|
|
29222
|
+
coverMediaId: number().int().optional(),
|
|
29223
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaId`. */
|
|
29165
29224
|
coverBase64: string().optional()
|
|
29166
29225
|
});
|
|
29167
29226
|
var VehicleSampleInfoSchema = object({
|
|
@@ -29194,7 +29253,7 @@ var PlateInfoSchema = object({
|
|
|
29194
29253
|
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
29195
29254
|
plateBbox: BoundingBoxSchema.optional(),
|
|
29196
29255
|
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
29197
|
-
|
|
29256
|
+
keyFrameMediaId: number().int().optional(),
|
|
29198
29257
|
base64: string().optional(),
|
|
29199
29258
|
/**
|
|
29200
29259
|
* Same crop as a data-plane URL, always present when the plate has a stored
|
|
@@ -29215,11 +29274,14 @@ var PlateInfoSchema = object({
|
|
|
29215
29274
|
* `data:image/jpeg;base64,…` from a row whose `key` sat right beside it, in a
|
|
29216
29275
|
* dialog already rendering its key FRAME from the `event-media` plane.
|
|
29217
29276
|
*
|
|
29218
|
-
* `url` is `/addon/<addonId>/event-media/<
|
|
29219
|
-
* media
|
|
29277
|
+
* `url` is `/addon/<addonId>/event-media/m/<mediaId>` (D482). The plane
|
|
29278
|
+
* resolves a media row by its own id, so this needed no new plane and no new
|
|
29279
|
+
* access decision.
|
|
29220
29280
|
*/
|
|
29221
29281
|
var MediaFileLiteSchema = object({
|
|
29222
|
-
|
|
29282
|
+
/** The media row's own id — the same address `MediaFileRef.mediaId` carries
|
|
29283
|
+
* (D482). It was the row's composite key, which embedded the owner. */
|
|
29284
|
+
mediaId: number().int(),
|
|
29223
29285
|
kind: string(),
|
|
29224
29286
|
url: string(),
|
|
29225
29287
|
sizeBytes: number(),
|
|
@@ -29278,7 +29340,7 @@ method(object({
|
|
|
29278
29340
|
}), method(object({
|
|
29279
29341
|
/** Inline {@link VehicleSchema.coverBase64} on every row. Default
|
|
29280
29342
|
* `false` — the vehicle twin of `faceGallery.listIdentities`'s
|
|
29281
|
-
* option; `
|
|
29343
|
+
* option; `coverMediaId` + the `event-media` plane carry the picture.
|
|
29282
29344
|
* INPUT field: stripped by the hub router until the train ships, which
|
|
29283
29345
|
* resolves to `false` and is exactly the intended default. */
|
|
29284
29346
|
includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
@@ -30632,7 +30694,14 @@ var SceneReferenceSchema = object({
|
|
|
30632
30694
|
modelId: string(),
|
|
30633
30695
|
condition: SceneConditionSchema,
|
|
30634
30696
|
capturedAt: number(),
|
|
30635
|
-
|
|
30697
|
+
/**
|
|
30698
|
+
* The reference thumbnail's media ROW id (D482).
|
|
30699
|
+
*
|
|
30700
|
+
* The name already said `mediaId` while the value was the row's composite
|
|
30701
|
+
* key — a leftover that read as done and was not. It is the row's own id
|
|
30702
|
+
* now, addressed at `/addon/<addonId>/event-media/m/<id>`.
|
|
30703
|
+
*/
|
|
30704
|
+
thumbnailMediaId: number().int().optional(),
|
|
30636
30705
|
/** Whole-frame (downscaled) embedding captured alongside the ROI crop. The
|
|
30637
30706
|
* anti-view-shift anchor: a bumped camera, a PTZ preset or a re-aim makes the
|
|
30638
30707
|
* normalized rect frame a different piece of world, and the scene would
|
|
@@ -32080,7 +32149,7 @@ var StationaryObjectSchema = object({
|
|
|
32080
32149
|
/** Enrichment label carried from the source track (identity / plate). */
|
|
32081
32150
|
label: string().optional(),
|
|
32082
32151
|
/** Native-resolution key-frame media key for the parked object's best image. */
|
|
32083
|
-
|
|
32152
|
+
keyFrameMediaId: number().int().optional()
|
|
32084
32153
|
});
|
|
32085
32154
|
var CameraOccupancySnapshotSchema = object({
|
|
32086
32155
|
/** Frame timestamp of the inference result that produced this snapshot. */
|
|
@@ -33320,6 +33389,12 @@ Object.freeze({
|
|
|
33320
33389
|
addonId: null,
|
|
33321
33390
|
access: "create"
|
|
33322
33391
|
},
|
|
33392
|
+
"dataStoreProvider.upsert": {
|
|
33393
|
+
capName: "data-store-provider",
|
|
33394
|
+
capScope: "system",
|
|
33395
|
+
addonId: null,
|
|
33396
|
+
access: "create"
|
|
33397
|
+
},
|
|
33323
33398
|
"dayNight.getOptions": {
|
|
33324
33399
|
capName: "day-night",
|
|
33325
33400
|
capScope: "device",
|
|
@@ -37184,6 +37259,12 @@ Object.freeze({
|
|
|
37184
37259
|
addonId: null,
|
|
37185
37260
|
access: "create"
|
|
37186
37261
|
},
|
|
37262
|
+
"settingsStore.upsert": {
|
|
37263
|
+
capName: "settings-store",
|
|
37264
|
+
capScope: "system",
|
|
37265
|
+
addonId: null,
|
|
37266
|
+
access: "create"
|
|
37267
|
+
},
|
|
37187
37268
|
"smtpProvider.getStatus": {
|
|
37188
37269
|
capName: "smtp-provider",
|
|
37189
37270
|
capScope: "system",
|