@camstack/addon-pipeline 1.2.225 → 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/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-BseJDKpG.js → default-detection-model-C1etqCJk.js} +1 -1
- package/dist/{default-detection-model-A2qZmOuO.mjs → default-detection-model-CNwum1uC.mjs} +1 -1
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-DXilmc1W.js → dist-BGdDektN.js} +131 -50
- package/dist/{dist-InCt3_5U.mjs → dist-d1K9t4mU.mjs} +131 -50
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node--Icxw2jo.js → node-CQ5yofm2.js} +1 -1
- package/dist/{node-B6Wz_gqK.mjs → node-CpckZhmU.mjs} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-pGbtKNsw.js → process-memory-D2NCFwt_.js} +1 -1
- package/dist/{process-memory-DnuJjAW1.mjs → process-memory-iUDS4M_G.mjs} +1 -1
- package/dist/recorder/index.js +2 -2
- package/dist/recorder/index.mjs +2 -2
- package/dist/{segment-demux-js-jnT5YAxt.js → segment-demux-js-Dk_Pvocs.js} +1 -1
- package/dist/{segment-demux-js-CB9SGcWW.mjs → segment-demux-js-iVyZ1H9j.mjs} +1 -1
- package/dist/stream-broker/_stub.js +26 -25
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-qdJULtL7.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-7qCmXLC3.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Bc-sSkWV.mjs +26 -0
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CKUGpDns.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CUMGe_Dp.mjs} +1 -1
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-DyfYYXXI.mjs → hostInit-D6wBZr7_.mjs} +3 -3
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-gz4b6miC.mjs +0 -26
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_process_memory = require("../process-memory-
|
|
6
|
+
const require_dist = require("../dist-BGdDektN.js");
|
|
7
|
+
const require_process_memory = require("../process-memory-D2NCFwt_.js");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
10
10
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { Gt as BaseAddon, N as audioAnalysisCapability, P as audioAnalyzerCapability, Qt as hydrateSchema, Rt as errMsg, Yt as audioChunkBytesPerSample, Zt as expandAudioChunkToF32le, ct as mapAudioLabelToMacro, kt as resolvePoolMemoryPolicy, n as AUDIO_BACKEND_CHOICES, nn as nodePin, s as DEFAULT_AUDIO_ANALYZER_CONFIG, w as PoolMemoryWatchdog, y as HF_BASE_URL, yn as EventCategory } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { Gt as BaseAddon, N as audioAnalysisCapability, P as audioAnalyzerCapability, Qt as hydrateSchema, Rt as errMsg, Yt as audioChunkBytesPerSample, Zt as expandAudioChunkToF32le, ct as mapAudioLabelToMacro, kt as resolvePoolMemoryPolicy, n as AUDIO_BACKEND_CHOICES, nn as nodePin, s as DEFAULT_AUDIO_ANALYZER_CONFIG, w as PoolMemoryWatchdog, y as HF_BASE_URL, yn as EventCategory } from "../dist-d1K9t4mU.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-iUDS4M_G.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as audioKindId, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS, rt as hfModelUrl } from "./dist-
|
|
1
|
+
import { F as audioKindId, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS, rt as hfModelUrl } from "./dist-d1K9t4mU.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
|
|
4
4
|
/**
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-BGdDektN.js");
|
|
7
|
+
const require_node = require("../node-CQ5yofm2.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-C1etqCJk.js");
|
|
9
9
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-D2NCFwt_.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_chunk.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { Et as resolveClusterStepModelId, Gt as BaseAddon, H as defaultDeviceFor$1, It as supportedRuntimes$1, Q as evaluateZoneRules, Qt as hydrateSchema, Rt as errMsg, X as enumerateInferenceDevices, Xt as createEvent, _n as string, _t as pickClusterStepModels, c as DEFAULT_CLUSTER_STEP_MODELS, cn as array, ht as overlayClusterStepSettings, it as inferModelProvider, j as YAMNET_TO_MACRO, jt as runtimeDevices$1, kt as resolvePoolMemoryPolicy, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, mn as object, nn as nodePin, on as sleep, ot as loadContributionCapability, q as detectionPipelineCapability, rn as parseJsonUnknown, t as APPLE_SA_TO_MACRO, vn as union, vt as pickClusterStepSettings, w as PoolMemoryWatchdog, xt as pipelineExecutorCapability, yn as EventCategory } from "../dist-
|
|
3
|
-
import { o as readProcessCost } from "../node-
|
|
4
|
-
import { a as ALL_PIPELINE_STEPS, c as getStep, d as landmarkPrecisionVerdict, l as getStepDefinition, n as resolveDefaultDetectionModel, o as ALL_STEPS, r as localFrameRegistry, s as getDefaultModelForFormat, u as resolveModelForFormat } from "../default-detection-model-
|
|
2
|
+
import { Et as resolveClusterStepModelId, Gt as BaseAddon, H as defaultDeviceFor$1, It as supportedRuntimes$1, Q as evaluateZoneRules, Qt as hydrateSchema, Rt as errMsg, X as enumerateInferenceDevices, Xt as createEvent, _n as string, _t as pickClusterStepModels, c as DEFAULT_CLUSTER_STEP_MODELS, cn as array, ht as overlayClusterStepSettings, it as inferModelProvider, j as YAMNET_TO_MACRO, jt as runtimeDevices$1, kt as resolvePoolMemoryPolicy, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, mn as object, nn as nodePin, on as sleep, ot as loadContributionCapability, q as detectionPipelineCapability, rn as parseJsonUnknown, t as APPLE_SA_TO_MACRO, vn as union, vt as pickClusterStepSettings, w as PoolMemoryWatchdog, xt as pipelineExecutorCapability, yn as EventCategory } from "../dist-d1K9t4mU.mjs";
|
|
3
|
+
import { o as readProcessCost } from "../node-CpckZhmU.mjs";
|
|
4
|
+
import { a as ALL_PIPELINE_STEPS, c as getStep, d as landmarkPrecisionVerdict, l as getStepDefinition, n as resolveDefaultDetectionModel, o as ALL_STEPS, r as localFrameRegistry, s as getDefaultModelForFormat, u as resolveModelForFormat } from "../default-detection-model-CNwum1uC.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
6
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-iUDS4M_G.mjs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
let node_crypto = require("node:crypto");
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-ZyX6jcse.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -560,7 +560,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
560
560
|
* a package zone — a newly-appeared stationary object of a package class
|
|
561
561
|
* that cleared the class / zone / dwell / size gates. Payload:
|
|
562
562
|
* `PipelineAnalyticsPackageDeliveredPayload` carrying `{ deviceId,
|
|
563
|
-
* entryId, className, zoneIds,
|
|
563
|
+
* entryId, className, zoneIds, keyFrameMediaId?, bbox, timestamp }`.
|
|
564
564
|
* Telemetry (D8): the durable record is the `package-events` store row;
|
|
565
565
|
* this bus topic drives notifier rules + live UI. See
|
|
566
566
|
* docs/superpowers/specs/2026-07-17-package-zones-design.md §5.1.
|
|
@@ -5346,7 +5346,7 @@ var ZodIssueCode = {
|
|
|
5346
5346
|
var ZodFirstPartyTypeKind;
|
|
5347
5347
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5348
5348
|
//#endregion
|
|
5349
|
-
//#region ../types/dist/sleep-
|
|
5349
|
+
//#region ../types/dist/sleep-CnLyvg3w.mjs
|
|
5350
5350
|
/**
|
|
5351
5351
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5352
5352
|
* window to float samples (D455).
|
|
@@ -8171,13 +8171,30 @@ new Set([
|
|
|
8171
8171
|
"scene",
|
|
8172
8172
|
"motion",
|
|
8173
8173
|
"object",
|
|
8174
|
-
"audio"
|
|
8174
|
+
"audio",
|
|
8175
|
+
"mosaic"
|
|
8175
8176
|
]);
|
|
8176
|
-
|
|
8177
|
+
/**
|
|
8178
|
+
* The owner types that are event tables, in the order the event-media resolver
|
|
8179
|
+
* should consider them. Exported so a consumer asking "is this key an event?"
|
|
8180
|
+
* does not re-spell the list and drift from it.
|
|
8181
|
+
*/
|
|
8182
|
+
var EVENT_OWNER_TYPES = [
|
|
8177
8183
|
"motion",
|
|
8178
8184
|
"object",
|
|
8179
8185
|
"audio"
|
|
8180
|
-
]
|
|
8186
|
+
];
|
|
8187
|
+
/**
|
|
8188
|
+
* The same list as a Zod enum, for the cap inputs that must NAME the table
|
|
8189
|
+
* (D482: `getEventMedia` / `listEventMedia` take an owner, and an owner is
|
|
8190
|
+
* `(table, id)`).
|
|
8191
|
+
*
|
|
8192
|
+
* Built FROM {@link EVENT_OWNER_TYPES} rather than re-spelled: a fourth event
|
|
8193
|
+
* table would otherwise be accepted by the codec and refused at the door, with
|
|
8194
|
+
* nothing failing until a caller asked.
|
|
8195
|
+
*/
|
|
8196
|
+
var EventOwnerTypeSchema = _enum(EVENT_OWNER_TYPES);
|
|
8197
|
+
new Set(EVENT_OWNER_TYPES);
|
|
8181
8198
|
var EncodeProfileSchema = object({
|
|
8182
8199
|
video: object({
|
|
8183
8200
|
codec: _enum([
|
|
@@ -14565,6 +14582,16 @@ method(object({
|
|
|
14565
14582
|
filter: QueryFilterSchema.optional(),
|
|
14566
14583
|
columns: array(string()).readonly().optional()
|
|
14567
14584
|
}), array(SettingsRecordSchema).readonly()), method(object({
|
|
14585
|
+
namespace: string().optional(),
|
|
14586
|
+
collection: string(),
|
|
14587
|
+
/** Declared columns identifying the slot; must be covered by a UNIQUE
|
|
14588
|
+
* index on the collection. Never empty. */
|
|
14589
|
+
conflict: array(string()).readonly(),
|
|
14590
|
+
record: BulkRecordSchema
|
|
14591
|
+
}), object({
|
|
14592
|
+
/** The id the row HAS: assigned by SQLite on an insert, or the existing
|
|
14593
|
+
* row's own id on an update. */
|
|
14594
|
+
id: union([string(), number()]) }), { kind: "mutation" }), method(object({
|
|
14568
14595
|
namespace: string().optional(),
|
|
14569
14596
|
collection: string(),
|
|
14570
14597
|
record: object({
|
|
@@ -14699,6 +14726,14 @@ method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
|
14699
14726
|
id: union([string(), number()]) }), {
|
|
14700
14727
|
kind: "mutation",
|
|
14701
14728
|
auth: "admin"
|
|
14729
|
+
}), method(object({
|
|
14730
|
+
namespace: string().optional(),
|
|
14731
|
+
collection: string(),
|
|
14732
|
+
conflict: array(string()).readonly(),
|
|
14733
|
+
record: BulkRecordSchema
|
|
14734
|
+
}), object({ id: union([string(), number()]) }), {
|
|
14735
|
+
kind: "mutation",
|
|
14736
|
+
auth: "admin"
|
|
14702
14737
|
}), method(object({
|
|
14703
14738
|
namespace: string().optional(),
|
|
14704
14739
|
collection: string(),
|
|
@@ -21527,8 +21562,8 @@ var TrackPositionSchema = object({
|
|
|
21527
21562
|
var TrackSnapshotSchema = object({
|
|
21528
21563
|
timestamp: number(),
|
|
21529
21564
|
position: TrackPositionSchema,
|
|
21530
|
-
/**
|
|
21531
|
-
|
|
21565
|
+
/** The snapshot's media row id (D482); resolve via `listTrackMedia({ trackId })`. */
|
|
21566
|
+
mediaId: number().int()
|
|
21532
21567
|
});
|
|
21533
21568
|
/**
|
|
21534
21569
|
* Normalized 0..1 trajectory envelope (min/max over every position bbox,
|
|
@@ -22132,14 +22167,14 @@ var ObjectEventSchema = object({
|
|
|
22132
22167
|
* pixel-space `bbox` onto a displayed image. Omitted in slim projection. */
|
|
22133
22168
|
frameWidth: number().optional(),
|
|
22134
22169
|
frameHeight: number().optional(),
|
|
22135
|
-
/**
|
|
22136
|
-
|
|
22137
|
-
/** Design B:
|
|
22170
|
+
/** Media row id of the crop attached to this event (if any) — D482. */
|
|
22171
|
+
mediaId: number().int().optional(),
|
|
22172
|
+
/** Design B: media row id of the track's native-resolution key frame (the
|
|
22138
22173
|
* best-detection full frame). Resolve via the event-media data-plane
|
|
22139
|
-
* (`/addon/<addonId>/event-media/<
|
|
22174
|
+
* (`/addon/<addonId>/event-media/m/<keyFrameMediaId>`) for a detail view that
|
|
22140
22175
|
* draws `bbox` over the native frame. Absent on legacy rows / non-decoded
|
|
22141
|
-
* sources — consumers fall back to `
|
|
22142
|
-
|
|
22176
|
+
* sources — consumers fall back to `mediaId` (the tight crop). */
|
|
22177
|
+
keyFrameMediaId: number().int().optional(),
|
|
22143
22178
|
/** Populated by B5 (recording playback URL for this event). */
|
|
22144
22179
|
mediaUrl: string().optional(),
|
|
22145
22180
|
/** The parent track's key-event importance [0,1], propagated to every object
|
|
@@ -22189,7 +22224,7 @@ var MediaFileKindEnum = _enum([
|
|
|
22189
22224
|
* hub-main's heap on the way past — for an `<img>` that would have cached it.
|
|
22190
22225
|
*
|
|
22191
22226
|
* `url` points at the `event-media` data plane
|
|
22192
|
-
* (`/addon/<addonId>/event-media/<
|
|
22227
|
+
* (`/addon/<addonId>/event-media/m/<mediaId>` — D482), which serves the same blob
|
|
22193
22228
|
* with an ETag and `Cache-Control: immutable`, honours conditional GETs, can
|
|
22194
22229
|
* render a `?variant=thumb`, and streams. The hub gate in front of it requires
|
|
22195
22230
|
* a bearer or the session cookie (`access: 'authenticated'`), so the bytes are
|
|
@@ -22197,10 +22232,13 @@ var MediaFileKindEnum = _enum([
|
|
|
22197
22232
|
* `data-plane-access.ts` for the rule and the one gap it does not close
|
|
22198
22233
|
* (per-device scoping).
|
|
22199
22234
|
*
|
|
22200
|
-
* The URL is built from the row's
|
|
22201
|
-
*
|
|
22235
|
+
* The URL is built from the row's own id, which since D482 says nothing about
|
|
22236
|
+
* the row's owner or kind — and that is the point. The published `kind` is not
|
|
22237
|
+
* the stored one (a track's face/plate crop is stored as `crop` under
|
|
22202
22238
|
* `('face'|'plate', '<prefix>-<trackId>')` and published as
|
|
22203
|
-
* `faceCrop`/`plateCrop
|
|
22239
|
+
* `faceCrop`/`plateCrop`), and under the old composite key the URL had to be
|
|
22240
|
+
* taken from `row.key` verbatim or it 404'd exactly those two rows. An id
|
|
22241
|
+
* cannot be mis-reconstructed, because there is nothing in it to reconstruct.
|
|
22204
22242
|
*
|
|
22205
22243
|
* ## `base64` is TRANSITIONAL and is going away
|
|
22206
22244
|
*
|
|
@@ -22213,7 +22251,19 @@ var MediaFileKindEnum = _enum([
|
|
|
22213
22251
|
* `analytics-query-facade.ts`; nothing else reads it.
|
|
22214
22252
|
*/
|
|
22215
22253
|
var MediaFileSchema = object({
|
|
22216
|
-
|
|
22254
|
+
/**
|
|
22255
|
+
* The media row's OWN id — the rowid SQLite assigned it (D482).
|
|
22256
|
+
*
|
|
22257
|
+
* It used to be the row's composite key, `<ownerType>:<ownerId>:<fileKind>
|
|
22258
|
+
* [:<timestampMs>]`, which embedded a FOREIGN id. D474 made event ids
|
|
22259
|
+
* per-table rowid aliases, so `object:101314` and `motion:101314` are two
|
|
22260
|
+
* different rows that spell the same number, and a track whose
|
|
22261
|
+
* `bestEventId` was an object event was served a motion event's snapshot —
|
|
22262
|
+
* a night-time thumbnail on an afternoon track, with no error anywhere. A
|
|
22263
|
+
* surrogate id cannot name the wrong row's owner, because it names no owner
|
|
22264
|
+
* at all.
|
|
22265
|
+
*/
|
|
22266
|
+
mediaId: number().int(),
|
|
22217
22267
|
kind: MediaFileKindEnum,
|
|
22218
22268
|
sizeBytes: number(),
|
|
22219
22269
|
timestamp: number()
|
|
@@ -22321,7 +22371,7 @@ var RetrainTrackSchema = object({
|
|
|
22321
22371
|
});
|
|
22322
22372
|
/** A frame the picker may offer — an index row, no blob was read to produce it. */
|
|
22323
22373
|
var RetrainFrameCandidateSchema = object({
|
|
22324
|
-
|
|
22374
|
+
mediaId: number().int(),
|
|
22325
22375
|
kind: MediaFileKindEnum,
|
|
22326
22376
|
timestamp: number(),
|
|
22327
22377
|
sizeBytes: number().int(),
|
|
@@ -22335,7 +22385,7 @@ var RetrainFrameSchema = object({
|
|
|
22335
22385
|
deviceId: number(),
|
|
22336
22386
|
trackId: string(),
|
|
22337
22387
|
/** Provenance only. It may already point at nothing — that is expected. */
|
|
22338
|
-
|
|
22388
|
+
sourceMediaId: number().int(),
|
|
22339
22389
|
sourceKind: MediaFileKindEnum,
|
|
22340
22390
|
sizeBytes: number().int(),
|
|
22341
22391
|
width: number().int(),
|
|
@@ -22351,7 +22401,7 @@ var RetrainCopyRefusalSchema = _enum([
|
|
|
22351
22401
|
var RetrainFrameSelectionSchema = object({
|
|
22352
22402
|
copied: array(RetrainFrameSchema).readonly(),
|
|
22353
22403
|
refused: array(object({
|
|
22354
|
-
|
|
22404
|
+
sourceMediaId: number().int(),
|
|
22355
22405
|
reason: RetrainCopyRefusalSchema
|
|
22356
22406
|
})).readonly()
|
|
22357
22407
|
});
|
|
@@ -22359,7 +22409,7 @@ var RetrainFrameListSchema = object({
|
|
|
22359
22409
|
candidates: array(RetrainFrameCandidateSchema).readonly(),
|
|
22360
22410
|
copies: array(RetrainFrameSchema).readonly(),
|
|
22361
22411
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
22362
|
-
|
|
22412
|
+
autoPickMediaId: number().int().optional()
|
|
22363
22413
|
});
|
|
22364
22414
|
/** What the operator asked the assist to look for. */
|
|
22365
22415
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
@@ -22454,9 +22504,11 @@ var RecentTracksQueryInput = object({
|
|
|
22454
22504
|
});
|
|
22455
22505
|
/**
|
|
22456
22506
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
22457
|
-
* `
|
|
22458
|
-
* served by the event-media plane
|
|
22459
|
-
* member visible has been materialised
|
|
22507
|
+
* `groupShotMediaId` is the media ROW id of its group shot (`ownerKind:
|
|
22508
|
+
* 'summary'`, served by the event-media plane at `/m/<id>`), null until the
|
|
22509
|
+
* first frame with a member visible has been materialised (D482 — it was the
|
|
22510
|
+
* row's composite key, which embedded the owner and could name another table's
|
|
22511
|
+
* row once event ids became per-table rowids).
|
|
22460
22512
|
*/
|
|
22461
22513
|
var SummarySchema = object({
|
|
22462
22514
|
id: string(),
|
|
@@ -22465,7 +22517,7 @@ var SummarySchema = object({
|
|
|
22465
22517
|
lastActiveAt: number(),
|
|
22466
22518
|
sealedAt: number().nullable(),
|
|
22467
22519
|
memberCount: number().int().nonnegative(),
|
|
22468
|
-
|
|
22520
|
+
groupShotMediaId: number().int().nullable()
|
|
22469
22521
|
});
|
|
22470
22522
|
var SummariesQueryInput = object({
|
|
22471
22523
|
deviceIds: array(number()).min(1),
|
|
@@ -23019,7 +23071,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23019
23071
|
}), method(object({
|
|
23020
23072
|
deviceId: number(),
|
|
23021
23073
|
trackId: string(),
|
|
23022
|
-
|
|
23074
|
+
mediaIds: array(number().int()).min(1)
|
|
23023
23075
|
}), RetrainFrameSelectionSchema, {
|
|
23024
23076
|
kind: "mutation",
|
|
23025
23077
|
auth: "admin"
|
|
@@ -23087,7 +23139,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23087
23139
|
kind: "query",
|
|
23088
23140
|
auth: "admin"
|
|
23089
23141
|
}), method(object({
|
|
23090
|
-
|
|
23142
|
+
/** Which of the three event tables owns the row. */
|
|
23143
|
+
ownerType: EventOwnerTypeSchema,
|
|
23144
|
+
/** The event's rowid in that table (D474: an event id is a number). */
|
|
23145
|
+
eventId: number().int(),
|
|
23091
23146
|
kind: MediaFileKindEnum.optional(),
|
|
23092
23147
|
deviceId: number()
|
|
23093
23148
|
}), array(MediaFileSchema).readonly()), method(object({
|
|
@@ -23098,7 +23153,8 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23098
23153
|
trackId: string(),
|
|
23099
23154
|
deviceId: number()
|
|
23100
23155
|
}), array(MediaFileInfoSchema).readonly()), method(object({
|
|
23101
|
-
|
|
23156
|
+
ownerType: EventOwnerTypeSchema,
|
|
23157
|
+
eventId: number().int(),
|
|
23102
23158
|
deviceId: number()
|
|
23103
23159
|
}), array(MediaFileInfoSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), method(object({}), WipeObjectEmbeddingsResultSchema, {
|
|
23104
23160
|
kind: "mutation",
|
|
@@ -27926,8 +27982,8 @@ var IdentitySchema = object({
|
|
|
27926
27982
|
id: string(),
|
|
27927
27983
|
name: string(),
|
|
27928
27984
|
sampleCount: number().int().nonnegative(),
|
|
27929
|
-
|
|
27930
|
-
/** Inline base64 of the cover sample's crop, resolved from `
|
|
27985
|
+
coverMediaId: number().int().optional(),
|
|
27986
|
+
/** Inline base64 of the cover sample's crop, resolved from `coverMediaId`.
|
|
27931
27987
|
* Lets the UI render the person's face avatar instead of a placeholder icon. */
|
|
27932
27988
|
coverBase64: string().optional()
|
|
27933
27989
|
});
|
|
@@ -27953,8 +28009,8 @@ var IdentitySampleAuditRowSchema = object({
|
|
|
27953
28009
|
enrolledAt: number().int(),
|
|
27954
28010
|
deviceId: number().int().optional(),
|
|
27955
28011
|
source: _enum(["detected", "photo"]),
|
|
27956
|
-
/** The enrolled crop's media
|
|
27957
|
-
|
|
28012
|
+
/** The enrolled crop's media row id, so the panel can show the evidence. */
|
|
28013
|
+
mediaId: number().int().optional(),
|
|
27958
28014
|
/**
|
|
27959
28015
|
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
27960
28016
|
* across feature spaces is a well-formed float with no meaning. Every number
|
|
@@ -28023,15 +28079,15 @@ var FaceInfoSchema = object({
|
|
|
28023
28079
|
*/
|
|
28024
28080
|
cropUrl: string().optional(),
|
|
28025
28081
|
/** Design B: the face bbox (pixel space) on the key frame — lets a detail
|
|
28026
|
-
* view draw the box over the native `
|
|
28082
|
+
* view draw the box over the native `keyFrameMediaId` frame. Absent on
|
|
28027
28083
|
* legacy rows written before design B. */
|
|
28028
28084
|
faceBbox: BoundingBoxSchema.optional(),
|
|
28029
28085
|
/** Design B: MediaStore key of the track's native-resolution key frame.
|
|
28030
28086
|
* Fetch the native JPEG via the event-media data-plane
|
|
28031
|
-
* (`/addon/<addonId>/event-media/<
|
|
28087
|
+
* (`/addon/<addonId>/event-media/m/<keyFrameMediaId>`). Absent when the
|
|
28032
28088
|
* track produced no key frame (e.g. native/onboard source) — the UI falls
|
|
28033
28089
|
* back to the inline `base64` face crop. */
|
|
28034
|
-
|
|
28090
|
+
keyFrameMediaId: number().int().optional(),
|
|
28035
28091
|
/** Winning identity-match cosine (0..1) for this face's track, when an
|
|
28036
28092
|
* identity was auto-confirmed. Lets the UI surface WHY a face was assigned
|
|
28037
28093
|
* (confidence badge / low-confidence audit). Absent on legacy rows and on
|
|
@@ -28100,11 +28156,14 @@ var FaceClusterSchema = object({
|
|
|
28100
28156
|
* `data:image/jpeg;base64,…` from a row whose `key` sat right beside it, in a
|
|
28101
28157
|
* dialog already rendering its key FRAME from the `event-media` plane.
|
|
28102
28158
|
*
|
|
28103
|
-
* `url` is `/addon/<addonId>/event-media/<
|
|
28104
|
-
* media
|
|
28159
|
+
* `url` is `/addon/<addonId>/event-media/m/<mediaId>` (D482). The plane
|
|
28160
|
+
* resolves a media row by its own id, so this needed no new plane and no new
|
|
28161
|
+
* access decision.
|
|
28105
28162
|
*/
|
|
28106
28163
|
var MediaFileLiteSchema$1 = object({
|
|
28107
|
-
|
|
28164
|
+
/** The media row's own id — the same address `MediaFileRef.mediaId` carries
|
|
28165
|
+
* (D482). It was the row's composite key, which embedded the owner. */
|
|
28166
|
+
mediaId: number().int(),
|
|
28108
28167
|
kind: string(),
|
|
28109
28168
|
url: string(),
|
|
28110
28169
|
sizeBytes: number(),
|
|
@@ -28121,7 +28180,7 @@ method(object({
|
|
|
28121
28180
|
* covers inline, ~10 KB of base64 per row, on a query this UI mounts
|
|
28122
28181
|
* four times and the viewer holds at `staleTime: 30_000`.
|
|
28123
28182
|
*
|
|
28124
|
-
* Nothing loses its avatar: `
|
|
28183
|
+
* Nothing loses its avatar: `coverMediaId` is already on every row and
|
|
28125
28184
|
* the `event-media` plane serves that key `immutable` with an ETag.
|
|
28126
28185
|
*
|
|
28127
28186
|
* **This is an INPUT field, so it does not reach the addon until the
|
|
@@ -30614,8 +30673,8 @@ var VehicleSchema = object({
|
|
|
30614
30673
|
id: string(),
|
|
30615
30674
|
name: string(),
|
|
30616
30675
|
sampleCount: number().int().nonnegative(),
|
|
30617
|
-
|
|
30618
|
-
/** Inline base64 of the cover sample's plate crop, resolved from `
|
|
30676
|
+
coverMediaId: number().int().optional(),
|
|
30677
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaId`. */
|
|
30619
30678
|
coverBase64: string().optional()
|
|
30620
30679
|
});
|
|
30621
30680
|
var VehicleSampleInfoSchema = object({
|
|
@@ -30648,7 +30707,7 @@ var PlateInfoSchema = object({
|
|
|
30648
30707
|
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
30649
30708
|
plateBbox: BoundingBoxSchema.optional(),
|
|
30650
30709
|
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
30651
|
-
|
|
30710
|
+
keyFrameMediaId: number().int().optional(),
|
|
30652
30711
|
base64: string().optional(),
|
|
30653
30712
|
/**
|
|
30654
30713
|
* Same crop as a data-plane URL, always present when the plate has a stored
|
|
@@ -30669,11 +30728,14 @@ var PlateInfoSchema = object({
|
|
|
30669
30728
|
* `data:image/jpeg;base64,…` from a row whose `key` sat right beside it, in a
|
|
30670
30729
|
* dialog already rendering its key FRAME from the `event-media` plane.
|
|
30671
30730
|
*
|
|
30672
|
-
* `url` is `/addon/<addonId>/event-media/<
|
|
30673
|
-
* media
|
|
30731
|
+
* `url` is `/addon/<addonId>/event-media/m/<mediaId>` (D482). The plane
|
|
30732
|
+
* resolves a media row by its own id, so this needed no new plane and no new
|
|
30733
|
+
* access decision.
|
|
30674
30734
|
*/
|
|
30675
30735
|
var MediaFileLiteSchema = object({
|
|
30676
|
-
|
|
30736
|
+
/** The media row's own id — the same address `MediaFileRef.mediaId` carries
|
|
30737
|
+
* (D482). It was the row's composite key, which embedded the owner. */
|
|
30738
|
+
mediaId: number().int(),
|
|
30677
30739
|
kind: string(),
|
|
30678
30740
|
url: string(),
|
|
30679
30741
|
sizeBytes: number(),
|
|
@@ -30732,7 +30794,7 @@ method(object({
|
|
|
30732
30794
|
}), method(object({
|
|
30733
30795
|
/** Inline {@link VehicleSchema.coverBase64} on every row. Default
|
|
30734
30796
|
* `false` — the vehicle twin of `faceGallery.listIdentities`'s
|
|
30735
|
-
* option; `
|
|
30797
|
+
* option; `coverMediaId` + the `event-media` plane carry the picture.
|
|
30736
30798
|
* INPUT field: stripped by the hub router until the train ships, which
|
|
30737
30799
|
* resolves to `false` and is exactly the intended default. */
|
|
30738
30800
|
includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
@@ -32311,7 +32373,14 @@ var SceneReferenceSchema = object({
|
|
|
32311
32373
|
modelId: string(),
|
|
32312
32374
|
condition: SceneConditionSchema,
|
|
32313
32375
|
capturedAt: number(),
|
|
32314
|
-
|
|
32376
|
+
/**
|
|
32377
|
+
* The reference thumbnail's media ROW id (D482).
|
|
32378
|
+
*
|
|
32379
|
+
* The name already said `mediaId` while the value was the row's composite
|
|
32380
|
+
* key — a leftover that read as done and was not. It is the row's own id
|
|
32381
|
+
* now, addressed at `/addon/<addonId>/event-media/m/<id>`.
|
|
32382
|
+
*/
|
|
32383
|
+
thumbnailMediaId: number().int().optional(),
|
|
32315
32384
|
/** Whole-frame (downscaled) embedding captured alongside the ROI crop. The
|
|
32316
32385
|
* anti-view-shift anchor: a bumped camera, a PTZ preset or a re-aim makes the
|
|
32317
32386
|
* normalized rect frame a different piece of world, and the scene would
|
|
@@ -33759,7 +33828,7 @@ var StationaryObjectSchema = object({
|
|
|
33759
33828
|
/** Enrichment label carried from the source track (identity / plate). */
|
|
33760
33829
|
label: string().optional(),
|
|
33761
33830
|
/** Native-resolution key-frame media key for the parked object's best image. */
|
|
33762
|
-
|
|
33831
|
+
keyFrameMediaId: number().int().optional()
|
|
33763
33832
|
});
|
|
33764
33833
|
var CameraOccupancySnapshotSchema = object({
|
|
33765
33834
|
/** Frame timestamp of the inference result that produced this snapshot. */
|
|
@@ -35074,6 +35143,12 @@ Object.freeze({
|
|
|
35074
35143
|
addonId: null,
|
|
35075
35144
|
access: "create"
|
|
35076
35145
|
},
|
|
35146
|
+
"dataStoreProvider.upsert": {
|
|
35147
|
+
capName: "data-store-provider",
|
|
35148
|
+
capScope: "system",
|
|
35149
|
+
addonId: null,
|
|
35150
|
+
access: "create"
|
|
35151
|
+
},
|
|
35077
35152
|
"dayNight.getOptions": {
|
|
35078
35153
|
capName: "day-night",
|
|
35079
35154
|
capScope: "device",
|
|
@@ -38938,6 +39013,12 @@ Object.freeze({
|
|
|
38938
39013
|
addonId: null,
|
|
38939
39014
|
access: "create"
|
|
38940
39015
|
},
|
|
39016
|
+
"settingsStore.upsert": {
|
|
39017
|
+
capName: "settings-store",
|
|
39018
|
+
capScope: "system",
|
|
39019
|
+
addonId: null,
|
|
39020
|
+
access: "create"
|
|
39021
|
+
},
|
|
38941
39022
|
"smtpProvider.getStatus": {
|
|
38942
39023
|
capName: "smtp-provider",
|
|
38943
39024
|
capScope: "system",
|