@camstack/addon-pipeline 1.2.146 → 1.2.148
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/detection-pipeline/index.js +8 -6
- package/dist/detection-pipeline/index.mjs +7 -5
- package/dist/{dist-DML3mpn9.js → dist-DLy_uz82.js} +121 -13
- package/dist/{dist-cZopp8Xm.mjs → dist-DjplinYP.mjs} +121 -13
- package/dist/{lazy-sharp-BzXIjfN8.js → lazy-sharp-BI4LsfMM.js} +1 -1
- package/dist/{local-frame-registry-Ctv_TzmF.mjs → local-frame-registry-77FL9ua_.mjs} +1 -1
- package/dist/{local-frame-registry-DO8-LuSo.js → local-frame-registry-Dr_U_xCG.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-OvVqe9eh.js → node-BHFLhfkh.js} +1 -1
- package/dist/{node-Br6p9KvD.mjs → node-D7uxWSXD.mjs} +1 -1
- package/dist/pipeline-runner/index.js +5 -5
- package/dist/pipeline-runner/index.mjs +4 -4
- package/dist/{process-memory-DX25Z60Q.mjs → process-memory-B2tApNua.mjs} +1 -1
- package/dist/{process-memory-NWKrKfmi.js → process-memory-M8WiR3qj.js} +1 -1
- package/dist/recorder/index.js +619 -381
- package/dist/recorder/index.mjs +619 -381
- package/dist/{segment-demux-js-DGmFQ1Zj.mjs → segment-demux-js-3niBZUpJ.mjs} +1 -1
- package/dist/{segment-demux-js-CerfMroc.js → segment-demux-js-Cc_If7C_.js} +1 -1
- package/dist/session-decode/decode-worker-child.js +2 -2
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DQNgiTjz.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-QfvsYvjB.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DXrU11Bz.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-bjYJYwAq.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CgIcw5Wl.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-NShcJE25.mjs → hostInit-Dd2CEvDK.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/dist/{worker-protocol-CUCQ1IPR.mjs → worker-protocol-Cvln9GmS.mjs} +1 -1
- package/dist/{worker-protocol-Dt3zWCQY.js → worker-protocol-basMNc_q.js} +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D4-thZGg.mjs +0 -26
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_process_memory = require("../process-memory-
|
|
5
|
+
const require_dist = require("../dist-DLy_uz82.js");
|
|
6
|
+
const require_process_memory = require("../process-memory-M8WiR3qj.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as audioAnalysisCapability, It as hydrateSchema, S as PoolMemoryWatchdog, _t as resolvePoolMemoryPolicy, j as audioAnalyzerCapability, jt as BaseAddon, n as AUDIO_BACKEND_CHOICES, nt as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL, wt as errMsg } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { A as audioAnalysisCapability, It as hydrateSchema, S as PoolMemoryWatchdog, _t as resolvePoolMemoryPolicy, j as audioAnalyzerCapability, jt as BaseAddon, n as AUDIO_BACKEND_CHOICES, nt as mapAudioLabelToMacro, s as DEFAULT_AUDIO_ANALYZER_CONFIG, v as HF_BASE_URL, wt as errMsg } from "../dist-DjplinYP.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B2tApNua.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";
|
|
@@ -2,12 +2,12 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_node = require("../node-
|
|
7
|
-
const require_local_frame_registry = require("../local-frame-registry-
|
|
8
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-DLy_uz82.js");
|
|
6
|
+
const require_node = require("../node-BHFLhfkh.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-Dr_U_xCG.js");
|
|
8
|
+
const require_lazy_sharp = require("../lazy-sharp-BI4LsfMM.js");
|
|
9
9
|
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DaUBcb13.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-M8WiR3qj.js");
|
|
11
11
|
let node_fs = require("node:fs");
|
|
12
12
|
node_fs = require_dist.__toESM(node_fs);
|
|
13
13
|
let node_path = require("node:path");
|
|
@@ -7496,8 +7496,11 @@ var DetectionPipelineProvider = class DetectionPipelineProvider {
|
|
|
7496
7496
|
await this.clusterModels.refresh(this.addonCtx?.api);
|
|
7497
7497
|
const nodeId = this.addonCtx?.kernel?.localNodeId ?? "hub";
|
|
7498
7498
|
const sessionId = input.sessionId ?? `run-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
7499
|
+
const isRuntime = Boolean(input.frame || input.frameRef);
|
|
7500
|
+
const progressToBus = !isRuntime || input.sessionId !== void 0;
|
|
7499
7501
|
const emit = (message, extra) => {
|
|
7500
7502
|
onProgress?.(message);
|
|
7503
|
+
if (!progressToBus) return;
|
|
7501
7504
|
this.eventBus?.emit(require_dist.createEvent(require_dist.EventCategory.PipelineProgress, {
|
|
7502
7505
|
type: "pipeline",
|
|
7503
7506
|
id: "pipeline-test"
|
|
@@ -7753,7 +7756,6 @@ var DetectionPipelineProvider = class DetectionPipelineProvider {
|
|
|
7753
7756
|
emit("Running inference...");
|
|
7754
7757
|
const tree = buildExecutableTree(benchmarkSteps, (stepId) => dispatchFactory.getEngine(stepId), this.customModelResolver);
|
|
7755
7758
|
setupMs = performance.now() - wallT0 - decodeMs;
|
|
7756
|
-
const isRuntime = Boolean(runtimeFrame || runtimeFrameRef);
|
|
7757
7759
|
const effectiveDeviceId = input.deviceId ?? 0;
|
|
7758
7760
|
const deviceOverrides = effectiveDeviceId > 0 ? await this.deviceOverrides.resolve(effectiveDeviceId) : {};
|
|
7759
7761
|
const effectiveTree = Object.keys(deviceOverrides).length > 0 ? applyDeviceOverridesToTree(tree, "object-detection", deviceOverrides) : tree;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { Bt as nodePin, Ft as createEvent, It as hydrateSchema, Kt as array, O as YAMNET_TO_MACRO, Q as inferModelProvider, Qt as object, S as PoolMemoryWatchdog, St as supportedRuntimes$1, Vt as parseJsonUnknown, W as detectionPipelineCapability, Wt as sleep, Y as evaluateZoneRules, _t as resolvePoolMemoryPolicy, at as overlayClusterStepSettings, c as DEFAULT_CLUSTER_STEP_MODELS, ct as pickClusterStepSettings, dt as pipelineExecutorCapability, en as string, et as loadContributionCapability, ht as resolveClusterStepModelId, jt as BaseAddon, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, q as enumerateInferenceDevices, st as pickClusterStepModels, t as APPLE_SA_TO_MACRO, tn as union, wt as errMsg, yt as runtimeDevices$1, z as defaultDeviceFor$1 } from "../dist-
|
|
3
|
-
import { a as readProcessCost } from "../node-
|
|
4
|
-
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep, t as localFrameRegistry, u as landmarkPrecisionVerdict } from "../local-frame-registry-
|
|
2
|
+
import { Bt as nodePin, Ft as createEvent, It as hydrateSchema, Kt as array, O as YAMNET_TO_MACRO, Q as inferModelProvider, Qt as object, S as PoolMemoryWatchdog, St as supportedRuntimes$1, Vt as parseJsonUnknown, W as detectionPipelineCapability, Wt as sleep, Y as evaluateZoneRules, _t as resolvePoolMemoryPolicy, at as overlayClusterStepSettings, c as DEFAULT_CLUSTER_STEP_MODELS, ct as pickClusterStepSettings, dt as pipelineExecutorCapability, en as string, et as loadContributionCapability, ht as resolveClusterStepModelId, jt as BaseAddon, l as DEFAULT_CLUSTER_STEP_SETTINGS, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, q as enumerateInferenceDevices, st as pickClusterStepModels, t as APPLE_SA_TO_MACRO, tn as union, wt as errMsg, yt as runtimeDevices$1, z as defaultDeviceFor$1 } from "../dist-DjplinYP.mjs";
|
|
3
|
+
import { a as readProcessCost } from "../node-D7uxWSXD.mjs";
|
|
4
|
+
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep, t as localFrameRegistry, u as landmarkPrecisionVerdict } from "../local-frame-registry-77FL9ua_.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
6
|
import { n as startEventLoopStallMonitor } from "../event-loop-stall-monitor-DXLNBMkY.mjs";
|
|
7
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
7
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B2tApNua.mjs";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
10
10
|
import { spawn } from "node:child_process";
|
|
@@ -7489,8 +7489,11 @@ var DetectionPipelineProvider = class DetectionPipelineProvider {
|
|
|
7489
7489
|
await this.clusterModels.refresh(this.addonCtx?.api);
|
|
7490
7490
|
const nodeId = this.addonCtx?.kernel?.localNodeId ?? "hub";
|
|
7491
7491
|
const sessionId = input.sessionId ?? `run-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
7492
|
+
const isRuntime = Boolean(input.frame || input.frameRef);
|
|
7493
|
+
const progressToBus = !isRuntime || input.sessionId !== void 0;
|
|
7492
7494
|
const emit = (message, extra) => {
|
|
7493
7495
|
onProgress?.(message);
|
|
7496
|
+
if (!progressToBus) return;
|
|
7494
7497
|
this.eventBus?.emit(createEvent(EventCategory.PipelineProgress, {
|
|
7495
7498
|
type: "pipeline",
|
|
7496
7499
|
id: "pipeline-test"
|
|
@@ -7746,7 +7749,6 @@ var DetectionPipelineProvider = class DetectionPipelineProvider {
|
|
|
7746
7749
|
emit("Running inference...");
|
|
7747
7750
|
const tree = buildExecutableTree(benchmarkSteps, (stepId) => dispatchFactory.getEngine(stepId), this.customModelResolver);
|
|
7748
7751
|
setupMs = performance.now() - wallT0 - decodeMs;
|
|
7749
|
-
const isRuntime = Boolean(runtimeFrame || runtimeFrameRef);
|
|
7750
7752
|
const effectiveDeviceId = input.deviceId ?? 0;
|
|
7751
7753
|
const deviceOverrides = effectiveDeviceId > 0 ? await this.deviceOverrides.resolve(effectiveDeviceId) : {};
|
|
7752
7754
|
const effectiveTree = Object.keys(deviceOverrides).length > 0 ? applyDeviceOverridesToTree(tree, "object-detection", deviceOverrides) : tree;
|
|
@@ -9374,18 +9374,61 @@ var RelocateFootageInputSchema = object({
|
|
|
9374
9374
|
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
9375
9375
|
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
9376
9376
|
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
9377
|
+
/**
|
|
9378
|
+
* What a `relocateMedia` pass DOES. One engine, three passes — never a second
|
|
9379
|
+
* mover (the engine already walks both collections with a timestamp cursor and
|
|
9380
|
+
* already has a stamp-without-copy path).
|
|
9381
|
+
*
|
|
9382
|
+
* - `move` — the default and the historical behaviour: event-media and
|
|
9383
|
+
* retrain blobs move to `toLocationId` and their rows are
|
|
9384
|
+
* stamped. The enrolled gallery is skipped (D197).
|
|
9385
|
+
* - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
|
|
9386
|
+
* stamped with `toLocationId`. `toLocationId` here is the id the
|
|
9387
|
+
* bytes ALREADY sit on — today's `eventMedia` default — because
|
|
9388
|
+
* a NULL row means "wherever `eventMedia` points *now*", and the
|
|
9389
|
+
* instant a repoint moves that pointer the row reads from the
|
|
9390
|
+
* new disk while its bytes are on the old one.
|
|
9391
|
+
* - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
|
|
9392
|
+
* (enrolled-gallery) rows, which `move` deliberately skips.
|
|
9393
|
+
* `galleryMedia` is `cardinality: 'single'`, so this pass can
|
|
9394
|
+
* never run beside a live second location: it is stop-the-world
|
|
9395
|
+
* by construction, which is acceptable only because the gallery
|
|
9396
|
+
* is a few KB per enrolled sample.
|
|
9397
|
+
*/
|
|
9398
|
+
var MediaRelocateModeSchema = _enum([
|
|
9399
|
+
"move",
|
|
9400
|
+
"seal",
|
|
9401
|
+
"gallery"
|
|
9402
|
+
]);
|
|
9377
9403
|
var RelocateMediaInputSchema = object({
|
|
9378
9404
|
toLocationId: string(),
|
|
9379
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
9405
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
9406
|
+
/** Omitted = `move`, the pre-existing behaviour. */
|
|
9407
|
+
mode: MediaRelocateModeSchema.optional()
|
|
9408
|
+
});
|
|
9409
|
+
/** How many rows still carry NO `locationId` — the population a repoint would
|
|
9410
|
+
* silently re-aim at a disk that does not hold their bytes. Zero is the only
|
|
9411
|
+
* value that permits a non-blocking `eventMedia` cutover. */
|
|
9412
|
+
var UnstampedEventMediaCountSchema = object({
|
|
9413
|
+
media: number().int().nonnegative(),
|
|
9414
|
+
retrainFrames: number().int().nonnegative(),
|
|
9415
|
+
total: number().int().nonnegative()
|
|
9380
9416
|
});
|
|
9381
9417
|
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
9382
|
-
/** The independently selectable logical storage classes
|
|
9383
|
-
*
|
|
9384
|
-
*
|
|
9418
|
+
/** The independently selectable logical storage classes — every class
|
|
9419
|
+
* `storage.listLocationDeclarations` reports, so an operator never meets a
|
|
9420
|
+
* Zod enum error where they should meet an explanation.
|
|
9421
|
+
*
|
|
9422
|
+
* `recordings` encompasses the high and mid segment profiles; `recordingsLow`
|
|
9423
|
+
* is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
|
|
9424
|
+
* enrolled gallery; `backups` is the system backup archive. The last two have
|
|
9425
|
+
* their own rules — see {@link StorageMigrationFindingCodeSchema}. */
|
|
9385
9426
|
var StorageMigrationClassSchema = _enum([
|
|
9386
9427
|
"recordings",
|
|
9387
9428
|
"recordingsLow",
|
|
9388
|
-
"eventMedia"
|
|
9429
|
+
"eventMedia",
|
|
9430
|
+
"backups",
|
|
9431
|
+
"galleryMedia"
|
|
9389
9432
|
]);
|
|
9390
9433
|
/** A destination is always an existing, fully-qualified location id. The
|
|
9391
9434
|
* migration API intentionally never changes a source location's `basePath`:
|
|
@@ -9393,20 +9436,56 @@ var StorageMigrationClassSchema = _enum([
|
|
|
9393
9436
|
var StorageMigrationDestinationsSchema = object({
|
|
9394
9437
|
recordings: string().min(1).optional(),
|
|
9395
9438
|
recordingsLow: string().min(1).optional(),
|
|
9396
|
-
eventMedia: string().min(1).optional()
|
|
9439
|
+
eventMedia: string().min(1).optional(),
|
|
9440
|
+
backups: string().min(1).optional(),
|
|
9441
|
+
galleryMedia: string().min(1).optional()
|
|
9397
9442
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
9443
|
+
/**
|
|
9444
|
+
* How a migration sequences the cutover against the byte move.
|
|
9445
|
+
*
|
|
9446
|
+
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
9447
|
+
* resume. Recording is stopped for the whole move. Right
|
|
9448
|
+
* for a small or a cold class, and the only legal mode for
|
|
9449
|
+
* a `cardinality: 'single'` class.
|
|
9450
|
+
* - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
|
|
9451
|
+
* refresh, resume, then move the past with everything
|
|
9452
|
+
* running. The pause is three bounded instants (a detach +
|
|
9453
|
+
* attach round, a write-gate drain, a lease) instead of one
|
|
9454
|
+
* bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
|
|
9455
|
+
* stopped recording under `blocking`; the same move is
|
|
9456
|
+
* seconds of stopped recording under `nonBlocking`.
|
|
9457
|
+
*
|
|
9458
|
+
* The mode is on the JOB, not only on the input, because `status` is where an
|
|
9459
|
+
* operator finds out which one is running.
|
|
9460
|
+
*/
|
|
9461
|
+
var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
9398
9462
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
9399
9463
|
var StorageMigrationInputSchema = object({
|
|
9400
9464
|
destinations: StorageMigrationDestinationsSchema,
|
|
9401
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
9465
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
9466
|
+
/** Omitted = `blocking`, which stays the default. */
|
|
9467
|
+
mode: StorageMigrationModeSchema.optional()
|
|
9402
9468
|
});
|
|
9403
|
-
/**
|
|
9404
|
-
*
|
|
9405
|
-
*
|
|
9469
|
+
/**
|
|
9470
|
+
* The durable coordinator state machine.
|
|
9471
|
+
*
|
|
9472
|
+
* `blocking`:
|
|
9473
|
+
* planning → pausing → moving → verifying → repointing → refreshing → resuming → done
|
|
9474
|
+
*
|
|
9475
|
+
* `nonBlocking`:
|
|
9476
|
+
* planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
|
|
9477
|
+
*
|
|
9478
|
+
* Same phases, different order plus two new ones — not a second mover.
|
|
9479
|
+
* `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
|
|
9480
|
+
* `draining` runs the same movers UNLEASED, after every writer is back up.
|
|
9481
|
+
* `repointing` is still the only phase that changes a default location.
|
|
9482
|
+
*/
|
|
9406
9483
|
var StorageMigrationPhaseSchema = _enum([
|
|
9407
9484
|
"planning",
|
|
9485
|
+
"sealing",
|
|
9408
9486
|
"pausing",
|
|
9409
9487
|
"moving",
|
|
9488
|
+
"draining",
|
|
9410
9489
|
"verifying",
|
|
9411
9490
|
"repointing",
|
|
9412
9491
|
"refreshing",
|
|
@@ -9431,6 +9510,9 @@ var StorageMigrationMoveSchema = object({
|
|
|
9431
9510
|
var StorageMigrationJobSchema = object({
|
|
9432
9511
|
jobId: string(),
|
|
9433
9512
|
phase: StorageMigrationPhaseSchema,
|
|
9513
|
+
/** Which order this job is running. `status` is the only place an operator
|
|
9514
|
+
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
9515
|
+
mode: StorageMigrationModeSchema,
|
|
9434
9516
|
destinations: StorageMigrationDestinationsSchema,
|
|
9435
9517
|
throttleMbps: number(),
|
|
9436
9518
|
moves: array(StorageMigrationMoveSchema),
|
|
@@ -9443,13 +9525,30 @@ var StorageMigrationJobSchema = object({
|
|
|
9443
9525
|
finishedAt: number().nullable(),
|
|
9444
9526
|
error: string().nullable()
|
|
9445
9527
|
});
|
|
9528
|
+
var StorageMigrationFindingSchema = object({
|
|
9529
|
+
code: _enum([
|
|
9530
|
+
"sharesDeviceWithSource",
|
|
9531
|
+
"deviceIdentityUnknown",
|
|
9532
|
+
"unstampedEventMediaRows",
|
|
9533
|
+
"blockingOnly",
|
|
9534
|
+
"noMover"
|
|
9535
|
+
]),
|
|
9536
|
+
storageClass: StorageMigrationClassSchema,
|
|
9537
|
+
/** Human-readable, already carrying the ids and counts. */
|
|
9538
|
+
message: string()
|
|
9539
|
+
});
|
|
9446
9540
|
var StorageMigrationPlanSchema = object({
|
|
9447
9541
|
destinations: StorageMigrationDestinationsSchema,
|
|
9542
|
+
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
9543
|
+
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
9544
|
+
* it. */
|
|
9545
|
+
mode: StorageMigrationModeSchema,
|
|
9448
9546
|
moves: array(object({
|
|
9449
9547
|
storageClass: StorageMigrationClassSchema,
|
|
9450
9548
|
fromLocationId: string(),
|
|
9451
9549
|
toLocationId: string()
|
|
9452
|
-
}))
|
|
9550
|
+
})),
|
|
9551
|
+
findings: array(StorageMigrationFindingSchema)
|
|
9453
9552
|
});
|
|
9454
9553
|
/**
|
|
9455
9554
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -21122,7 +21221,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21122
21221
|
}), method(RelocateMediaInputSchema, object({ jobId: string() }), {
|
|
21123
21222
|
kind: "mutation",
|
|
21124
21223
|
auth: "admin"
|
|
21125
|
-
}), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
21224
|
+
}), method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
21126
21225
|
kind: "query",
|
|
21127
21226
|
auth: "admin"
|
|
21128
21227
|
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
@@ -23171,7 +23270,10 @@ method(object({
|
|
|
23171
23270
|
}), StorageLocationSchema, {
|
|
23172
23271
|
kind: "mutation",
|
|
23173
23272
|
auth: "admin"
|
|
23174
|
-
}), method(object({
|
|
23273
|
+
}), method(object({
|
|
23274
|
+
id: string(),
|
|
23275
|
+
force: boolean().optional()
|
|
23276
|
+
}), _void(), {
|
|
23175
23277
|
kind: "mutation",
|
|
23176
23278
|
auth: "admin"
|
|
23177
23279
|
}), method(object({ id: string() }), object({
|
|
@@ -34131,6 +34233,12 @@ Object.freeze({
|
|
|
34131
34233
|
addonId: null,
|
|
34132
34234
|
access: "create"
|
|
34133
34235
|
},
|
|
34236
|
+
"pipelineAnalytics.countUnstampedEventMedia": {
|
|
34237
|
+
capName: "pipeline-analytics",
|
|
34238
|
+
capScope: "device",
|
|
34239
|
+
addonId: null,
|
|
34240
|
+
access: "view"
|
|
34241
|
+
},
|
|
34134
34242
|
"pipelineAnalytics.deleteDeviceEvents": {
|
|
34135
34243
|
capName: "pipeline-analytics",
|
|
34136
34244
|
capScope: "device",
|
|
@@ -9351,18 +9351,61 @@ var RelocateFootageInputSchema = object({
|
|
|
9351
9351
|
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
9352
9352
|
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
9353
9353
|
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
9354
|
+
/**
|
|
9355
|
+
* What a `relocateMedia` pass DOES. One engine, three passes — never a second
|
|
9356
|
+
* mover (the engine already walks both collections with a timestamp cursor and
|
|
9357
|
+
* already has a stamp-without-copy path).
|
|
9358
|
+
*
|
|
9359
|
+
* - `move` — the default and the historical behaviour: event-media and
|
|
9360
|
+
* retrain blobs move to `toLocationId` and their rows are
|
|
9361
|
+
* stamped. The enrolled gallery is skipped (D197).
|
|
9362
|
+
* - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
|
|
9363
|
+
* stamped with `toLocationId`. `toLocationId` here is the id the
|
|
9364
|
+
* bytes ALREADY sit on — today's `eventMedia` default — because
|
|
9365
|
+
* a NULL row means "wherever `eventMedia` points *now*", and the
|
|
9366
|
+
* instant a repoint moves that pointer the row reads from the
|
|
9367
|
+
* new disk while its bytes are on the old one.
|
|
9368
|
+
* - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
|
|
9369
|
+
* (enrolled-gallery) rows, which `move` deliberately skips.
|
|
9370
|
+
* `galleryMedia` is `cardinality: 'single'`, so this pass can
|
|
9371
|
+
* never run beside a live second location: it is stop-the-world
|
|
9372
|
+
* by construction, which is acceptable only because the gallery
|
|
9373
|
+
* is a few KB per enrolled sample.
|
|
9374
|
+
*/
|
|
9375
|
+
var MediaRelocateModeSchema = _enum([
|
|
9376
|
+
"move",
|
|
9377
|
+
"seal",
|
|
9378
|
+
"gallery"
|
|
9379
|
+
]);
|
|
9354
9380
|
var RelocateMediaInputSchema = object({
|
|
9355
9381
|
toLocationId: string(),
|
|
9356
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
9382
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
9383
|
+
/** Omitted = `move`, the pre-existing behaviour. */
|
|
9384
|
+
mode: MediaRelocateModeSchema.optional()
|
|
9385
|
+
});
|
|
9386
|
+
/** How many rows still carry NO `locationId` — the population a repoint would
|
|
9387
|
+
* silently re-aim at a disk that does not hold their bytes. Zero is the only
|
|
9388
|
+
* value that permits a non-blocking `eventMedia` cutover. */
|
|
9389
|
+
var UnstampedEventMediaCountSchema = object({
|
|
9390
|
+
media: number().int().nonnegative(),
|
|
9391
|
+
retrainFrames: number().int().nonnegative(),
|
|
9392
|
+
total: number().int().nonnegative()
|
|
9357
9393
|
});
|
|
9358
9394
|
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
9359
|
-
/** The independently selectable logical storage classes
|
|
9360
|
-
*
|
|
9361
|
-
*
|
|
9395
|
+
/** The independently selectable logical storage classes — every class
|
|
9396
|
+
* `storage.listLocationDeclarations` reports, so an operator never meets a
|
|
9397
|
+
* Zod enum error where they should meet an explanation.
|
|
9398
|
+
*
|
|
9399
|
+
* `recordings` encompasses the high and mid segment profiles; `recordingsLow`
|
|
9400
|
+
* is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
|
|
9401
|
+
* enrolled gallery; `backups` is the system backup archive. The last two have
|
|
9402
|
+
* their own rules — see {@link StorageMigrationFindingCodeSchema}. */
|
|
9362
9403
|
var StorageMigrationClassSchema = _enum([
|
|
9363
9404
|
"recordings",
|
|
9364
9405
|
"recordingsLow",
|
|
9365
|
-
"eventMedia"
|
|
9406
|
+
"eventMedia",
|
|
9407
|
+
"backups",
|
|
9408
|
+
"galleryMedia"
|
|
9366
9409
|
]);
|
|
9367
9410
|
/** A destination is always an existing, fully-qualified location id. The
|
|
9368
9411
|
* migration API intentionally never changes a source location's `basePath`:
|
|
@@ -9370,20 +9413,56 @@ var StorageMigrationClassSchema = _enum([
|
|
|
9370
9413
|
var StorageMigrationDestinationsSchema = object({
|
|
9371
9414
|
recordings: string().min(1).optional(),
|
|
9372
9415
|
recordingsLow: string().min(1).optional(),
|
|
9373
|
-
eventMedia: string().min(1).optional()
|
|
9416
|
+
eventMedia: string().min(1).optional(),
|
|
9417
|
+
backups: string().min(1).optional(),
|
|
9418
|
+
galleryMedia: string().min(1).optional()
|
|
9374
9419
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
9420
|
+
/**
|
|
9421
|
+
* How a migration sequences the cutover against the byte move.
|
|
9422
|
+
*
|
|
9423
|
+
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
9424
|
+
* resume. Recording is stopped for the whole move. Right
|
|
9425
|
+
* for a small or a cold class, and the only legal mode for
|
|
9426
|
+
* a `cardinality: 'single'` class.
|
|
9427
|
+
* - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
|
|
9428
|
+
* refresh, resume, then move the past with everything
|
|
9429
|
+
* running. The pause is three bounded instants (a detach +
|
|
9430
|
+
* attach round, a write-gate drain, a lease) instead of one
|
|
9431
|
+
* bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
|
|
9432
|
+
* stopped recording under `blocking`; the same move is
|
|
9433
|
+
* seconds of stopped recording under `nonBlocking`.
|
|
9434
|
+
*
|
|
9435
|
+
* The mode is on the JOB, not only on the input, because `status` is where an
|
|
9436
|
+
* operator finds out which one is running.
|
|
9437
|
+
*/
|
|
9438
|
+
var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
9375
9439
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
9376
9440
|
var StorageMigrationInputSchema = object({
|
|
9377
9441
|
destinations: StorageMigrationDestinationsSchema,
|
|
9378
|
-
throttleMbps: number().min(1).max(1e3).optional()
|
|
9442
|
+
throttleMbps: number().min(1).max(1e3).optional(),
|
|
9443
|
+
/** Omitted = `blocking`, which stays the default. */
|
|
9444
|
+
mode: StorageMigrationModeSchema.optional()
|
|
9379
9445
|
});
|
|
9380
|
-
/**
|
|
9381
|
-
*
|
|
9382
|
-
*
|
|
9446
|
+
/**
|
|
9447
|
+
* The durable coordinator state machine.
|
|
9448
|
+
*
|
|
9449
|
+
* `blocking`:
|
|
9450
|
+
* planning → pausing → moving → verifying → repointing → refreshing → resuming → done
|
|
9451
|
+
*
|
|
9452
|
+
* `nonBlocking`:
|
|
9453
|
+
* planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
|
|
9454
|
+
*
|
|
9455
|
+
* Same phases, different order plus two new ones — not a second mover.
|
|
9456
|
+
* `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
|
|
9457
|
+
* `draining` runs the same movers UNLEASED, after every writer is back up.
|
|
9458
|
+
* `repointing` is still the only phase that changes a default location.
|
|
9459
|
+
*/
|
|
9383
9460
|
var StorageMigrationPhaseSchema = _enum([
|
|
9384
9461
|
"planning",
|
|
9462
|
+
"sealing",
|
|
9385
9463
|
"pausing",
|
|
9386
9464
|
"moving",
|
|
9465
|
+
"draining",
|
|
9387
9466
|
"verifying",
|
|
9388
9467
|
"repointing",
|
|
9389
9468
|
"refreshing",
|
|
@@ -9408,6 +9487,9 @@ var StorageMigrationMoveSchema = object({
|
|
|
9408
9487
|
var StorageMigrationJobSchema = object({
|
|
9409
9488
|
jobId: string(),
|
|
9410
9489
|
phase: StorageMigrationPhaseSchema,
|
|
9490
|
+
/** Which order this job is running. `status` is the only place an operator
|
|
9491
|
+
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
9492
|
+
mode: StorageMigrationModeSchema,
|
|
9411
9493
|
destinations: StorageMigrationDestinationsSchema,
|
|
9412
9494
|
throttleMbps: number(),
|
|
9413
9495
|
moves: array(StorageMigrationMoveSchema),
|
|
@@ -9420,13 +9502,30 @@ var StorageMigrationJobSchema = object({
|
|
|
9420
9502
|
finishedAt: number().nullable(),
|
|
9421
9503
|
error: string().nullable()
|
|
9422
9504
|
});
|
|
9505
|
+
var StorageMigrationFindingSchema = object({
|
|
9506
|
+
code: _enum([
|
|
9507
|
+
"sharesDeviceWithSource",
|
|
9508
|
+
"deviceIdentityUnknown",
|
|
9509
|
+
"unstampedEventMediaRows",
|
|
9510
|
+
"blockingOnly",
|
|
9511
|
+
"noMover"
|
|
9512
|
+
]),
|
|
9513
|
+
storageClass: StorageMigrationClassSchema,
|
|
9514
|
+
/** Human-readable, already carrying the ids and counts. */
|
|
9515
|
+
message: string()
|
|
9516
|
+
});
|
|
9423
9517
|
var StorageMigrationPlanSchema = object({
|
|
9424
9518
|
destinations: StorageMigrationDestinationsSchema,
|
|
9519
|
+
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
9520
|
+
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
9521
|
+
* it. */
|
|
9522
|
+
mode: StorageMigrationModeSchema,
|
|
9425
9523
|
moves: array(object({
|
|
9426
9524
|
storageClass: StorageMigrationClassSchema,
|
|
9427
9525
|
fromLocationId: string(),
|
|
9428
9526
|
toLocationId: string()
|
|
9429
|
-
}))
|
|
9527
|
+
})),
|
|
9528
|
+
findings: array(StorageMigrationFindingSchema)
|
|
9430
9529
|
});
|
|
9431
9530
|
/**
|
|
9432
9531
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -21099,7 +21198,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21099
21198
|
}), method(RelocateMediaInputSchema, object({ jobId: string() }), {
|
|
21100
21199
|
kind: "mutation",
|
|
21101
21200
|
auth: "admin"
|
|
21102
|
-
}), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
21201
|
+
}), method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
21103
21202
|
kind: "query",
|
|
21104
21203
|
auth: "admin"
|
|
21105
21204
|
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
@@ -23148,7 +23247,10 @@ method(object({
|
|
|
23148
23247
|
}), StorageLocationSchema, {
|
|
23149
23248
|
kind: "mutation",
|
|
23150
23249
|
auth: "admin"
|
|
23151
|
-
}), method(object({
|
|
23250
|
+
}), method(object({
|
|
23251
|
+
id: string(),
|
|
23252
|
+
force: boolean().optional()
|
|
23253
|
+
}), _void(), {
|
|
23152
23254
|
kind: "mutation",
|
|
23153
23255
|
auth: "admin"
|
|
23154
23256
|
}), method(object({ id: string() }), object({
|
|
@@ -34108,6 +34210,12 @@ Object.freeze({
|
|
|
34108
34210
|
addonId: null,
|
|
34109
34211
|
access: "create"
|
|
34110
34212
|
},
|
|
34213
|
+
"pipelineAnalytics.countUnstampedEventMedia": {
|
|
34214
|
+
capName: "pipeline-analytics",
|
|
34215
|
+
capScope: "device",
|
|
34216
|
+
addonId: null,
|
|
34217
|
+
access: "view"
|
|
34218
|
+
},
|
|
34111
34219
|
"pipelineAnalytics.deleteDeviceEvents": {
|
|
34112
34220
|
capName: "pipeline-analytics",
|
|
34113
34221
|
capScope: "device",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as audioKindId, Z as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-
|
|
1
|
+
import { M as audioKindId, Z as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-DjplinYP.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region src/detection-pipeline/registry/model-catalogs.ts
|
|
4
4
|
var HF_REPO = "camstack/camstack-models";
|
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-DLy_uz82.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-BI4LsfMM.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as hydrateSchema, Pt as DeviceType, Y as evaluateZoneRules, it as motionDetectionCapability, jt as BaseAddon } from "../dist-
|
|
1
|
+
import { It as hydrateSchema, Pt as DeviceType, Y as evaluateZoneRules, it as motionDetectionCapability, jt as BaseAddon } from "../dist-DjplinYP.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dt as buildFfmpegArgs, Et as Fmp4BoxSplitter, kt as isSoftwareDecode, wt as errMsg } from "./dist-
|
|
1
|
+
import { Dt as buildFfmpegArgs, Et as Fmp4BoxSplitter, kt as isSoftwareDecode, wt as errMsg } from "./dist-DjplinYP.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import "node:fs";
|
|
4
4
|
import "node:path";
|
|
@@ -2,12 +2,12 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_node = require("../node-
|
|
7
|
-
const require_local_frame_registry = require("../local-frame-registry-
|
|
8
|
-
const require_worker_protocol = require("../worker-protocol-
|
|
5
|
+
const require_dist = require("../dist-DLy_uz82.js");
|
|
6
|
+
const require_node = require("../node-BHFLhfkh.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-Dr_U_xCG.js");
|
|
8
|
+
const require_worker_protocol = require("../worker-protocol-basMNc_q.js");
|
|
9
9
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
10
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
10
|
+
const require_lazy_sharp = require("../lazy-sharp-BI4LsfMM.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-Cv9x3jmu.js");
|
|
12
12
|
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DaUBcb13.js");
|
|
13
13
|
const require_remote_restream = require("../remote-restream-CO36Sr30.js");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { B as defineCustomActions, Bt as nodePin, Ft as createEvent, Gt as _enum, H as deriveDetailCropRect, Kt as array, L as customAction, Qt as object, X as failureContributionCapability, Xt as literal, Yt as lazy, Zt as number, _ as FailureCounters, en as string, et as loadContributionCapability, ft as pipelineRunnerCapability, jt as BaseAddon, lt as pickDetailCropConvention, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, p as DEFAULT_NATIVE_LEASE_SETTINGS, qt as boolean, u as DEFAULT_DETAIL_CROP_CONVENTION, ut as pickNativeLeaseOverride, wt as errMsg } from "../dist-
|
|
2
|
-
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
3
|
-
import { c as getStepDefinition, n as resolveFrameViewGeometry, t as localFrameRegistry } from "../local-frame-registry-
|
|
4
|
-
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-
|
|
1
|
+
import { B as defineCustomActions, Bt as nodePin, Ft as createEvent, Gt as _enum, H as deriveDetailCropRect, Kt as array, L as customAction, Qt as object, X as failureContributionCapability, Xt as literal, Yt as lazy, Zt as number, _ as FailureCounters, en as string, et as loadContributionCapability, ft as pipelineRunnerCapability, jt as BaseAddon, lt as pickDetailCropConvention, m as DEVICE_BACKEND_TO_FORMAT, nn as EventCategory, p as DEFAULT_NATIVE_LEASE_SETTINGS, qt as boolean, u as DEFAULT_DETAIL_CROP_CONVENTION, ut as pickNativeLeaseOverride, wt as errMsg } from "../dist-DjplinYP.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-D7uxWSXD.mjs";
|
|
3
|
+
import { c as getStepDefinition, n as resolveFrameViewGeometry, t as localFrameRegistry } from "../local-frame-registry-77FL9ua_.mjs";
|
|
4
|
+
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-Cvln9GmS.mjs";
|
|
5
5
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
6
6
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
7
7
|
import { n as withDetectionIntent } from "../restream-intent-B4BXZra7.mjs";
|