@camstack/addon-pipeline 1.2.155 → 1.2.159
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 +5 -5
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-CmrtJ8RB.js → dist-bBqjZ7fo.js} +233 -7
- package/dist/{dist-CBRky_dz.mjs → dist-p8ruahJy.mjs} +233 -7
- package/dist/{lazy-sharp-BODx7w1t.js → lazy-sharp-Ct1Ow2zO.js} +1 -1
- package/dist/{local-frame-registry-BRG0GTmK.js → local-frame-registry-Bua7Qg7A.js} +1 -1
- package/dist/{local-frame-registry-ByKcWWPU.mjs → local-frame-registry-Ce3h-QcZ.mjs} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-BSeMUwxJ.js → node-DRc0Vqkz.js} +1 -1
- package/dist/{node-CQzPpwIR.mjs → node-kVYpLOax.mjs} +1 -1
- package/dist/pipeline-runner/index.js +5 -5
- package/dist/pipeline-runner/index.mjs +4 -4
- package/dist/{process-memory-DVmHBraW.js → process-memory-B4Id9YAE.js} +1 -1
- package/dist/{process-memory-DQX-DbHx.mjs → process-memory-D9s145SO.mjs} +1 -1
- package/dist/recorder/index.js +536 -27
- package/dist/recorder/index.mjs +533 -29
- package/dist/{segment-demux-js-DmqnujVx.js → segment-demux-js-DAgunuXf.js} +1 -1
- package/dist/{segment-demux-js-DGX1iGLL.mjs → segment-demux-js-VrM03R0O.mjs} +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-DvfM0ofY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-B-FG8Phz.mjs} +2 -2
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-lMPlG5w5.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-OnimCf2v.mjs} +1 -1
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CSNuIp4J.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-_e_Px_mR.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-DQGeMfoN.mjs → hostInit-DePWOWOH.mjs} +2 -2
- 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-C7jOjCsc.mjs → worker-protocol-BN0Q-eeu.mjs} +1 -1
- package/dist/{worker-protocol-S2nAdf6B.js → worker-protocol-CjWhvUMn.js} +1 -1
- package/package.json +1 -1
|
@@ -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-bBqjZ7fo.js");
|
|
6
|
+
const require_process_memory = require("../process-memory-B4Id9YAE.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-p8ruahJy.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-D9s145SO.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-bBqjZ7fo.js");
|
|
6
|
+
const require_node = require("../node-DRc0Vqkz.js");
|
|
7
|
+
const require_local_frame_registry = require("../local-frame-registry-Bua7Qg7A.js");
|
|
8
|
+
const require_lazy_sharp = require("../lazy-sharp-Ct1Ow2zO.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-B4Id9YAE.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");
|
|
@@ -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-p8ruahJy.mjs";
|
|
3
|
+
import { a as readProcessCost } from "../node-kVYpLOax.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-Ce3h-QcZ.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-D9s145SO.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";
|
|
@@ -9431,6 +9431,13 @@ var MediaRelocateModeSchema = _enum([
|
|
|
9431
9431
|
]);
|
|
9432
9432
|
var RelocateMediaInputSchema = object({
|
|
9433
9433
|
toLocationId: string(),
|
|
9434
|
+
/**
|
|
9435
|
+
* Restrict the pass to rows currently on this location. Omitted / `'*'` =
|
|
9436
|
+
* every row that is not already on `toLocationId` (the historical
|
|
9437
|
+
* behaviour). A named source is what a from→to migration needs: without it
|
|
9438
|
+
* "move events off disk 2" also emptied disk 1.
|
|
9439
|
+
*/
|
|
9440
|
+
fromLocationId: string().optional(),
|
|
9434
9441
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
9435
9442
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
9436
9443
|
mode: MediaRelocateModeSchema.optional()
|
|
@@ -9498,6 +9505,19 @@ var StorageMigrationDestinationsSchema = object({
|
|
|
9498
9505
|
galleryMedia: string().min(1).optional()
|
|
9499
9506
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
9500
9507
|
/**
|
|
9508
|
+
* Optional named source per class. Omitted = the class's current default
|
|
9509
|
+
* (the historical behaviour). A named source that is NOT the default is a
|
|
9510
|
+
* drain of that disk: bytes move, the default stays, and the source is
|
|
9511
|
+
* disabled when the move finishes.
|
|
9512
|
+
*/
|
|
9513
|
+
var StorageMigrationSourcesSchema = object({
|
|
9514
|
+
recordings: string().min(1).optional(),
|
|
9515
|
+
recordingsLow: string().min(1).optional(),
|
|
9516
|
+
eventMedia: string().min(1).optional(),
|
|
9517
|
+
backups: string().min(1).optional(),
|
|
9518
|
+
galleryMedia: string().min(1).optional()
|
|
9519
|
+
}).optional();
|
|
9520
|
+
/**
|
|
9501
9521
|
* How a migration sequences the cutover against the byte move.
|
|
9502
9522
|
*
|
|
9503
9523
|
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
@@ -9519,6 +9539,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
|
9519
9539
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
9520
9540
|
var StorageMigrationInputSchema = object({
|
|
9521
9541
|
destinations: StorageMigrationDestinationsSchema,
|
|
9542
|
+
/** Omitted = each class's current default. */
|
|
9543
|
+
sources: StorageMigrationSourcesSchema,
|
|
9522
9544
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
9523
9545
|
/** Omitted = `blocking`, which stays the default. */
|
|
9524
9546
|
mode: StorageMigrationModeSchema.optional()
|
|
@@ -9598,6 +9620,13 @@ var StorageMigrationMoveSchema = object({
|
|
|
9598
9620
|
storageClass: StorageMigrationClassSchema,
|
|
9599
9621
|
fromLocationId: string(),
|
|
9600
9622
|
toLocationId: string(),
|
|
9623
|
+
/**
|
|
9624
|
+
* True when `from` was NOT the class default at plan time. The move still
|
|
9625
|
+
* copies bytes, but the default is left alone and the source is disabled
|
|
9626
|
+
* once the copy verifies. Absent on jobs planned before this field existed
|
|
9627
|
+
* — those jobs always repointed, which is `false`.
|
|
9628
|
+
*/
|
|
9629
|
+
freezeSource: boolean().optional(),
|
|
9601
9630
|
moverJobId: string().nullable(),
|
|
9602
9631
|
state: RelocateJobStateSchema.nullable(),
|
|
9603
9632
|
error: string().nullable(),
|
|
@@ -9611,6 +9640,7 @@ var StorageMigrationJobSchema = object({
|
|
|
9611
9640
|
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
9612
9641
|
mode: StorageMigrationModeSchema,
|
|
9613
9642
|
destinations: StorageMigrationDestinationsSchema,
|
|
9643
|
+
sources: StorageMigrationSourcesSchema,
|
|
9614
9644
|
throttleMbps: number(),
|
|
9615
9645
|
moves: array(StorageMigrationMoveSchema),
|
|
9616
9646
|
pauseLeaseId: string().nullable(),
|
|
@@ -9636,6 +9666,7 @@ var StorageMigrationFindingSchema = object({
|
|
|
9636
9666
|
});
|
|
9637
9667
|
var StorageMigrationPlanSchema = object({
|
|
9638
9668
|
destinations: StorageMigrationDestinationsSchema,
|
|
9669
|
+
sources: StorageMigrationSourcesSchema,
|
|
9639
9670
|
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
9640
9671
|
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
9641
9672
|
* it. */
|
|
@@ -9643,7 +9674,8 @@ var StorageMigrationPlanSchema = object({
|
|
|
9643
9674
|
moves: array(object({
|
|
9644
9675
|
storageClass: StorageMigrationClassSchema,
|
|
9645
9676
|
fromLocationId: string(),
|
|
9646
|
-
toLocationId: string()
|
|
9677
|
+
toLocationId: string(),
|
|
9678
|
+
freezeSource: boolean().optional()
|
|
9647
9679
|
})),
|
|
9648
9680
|
findings: array(StorageMigrationFindingSchema)
|
|
9649
9681
|
});
|
|
@@ -9821,10 +9853,51 @@ var LedgerWalkReportSchema = object({
|
|
|
9821
9853
|
var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
|
|
9822
9854
|
var RelocatableMediaCountInputSchema = object({
|
|
9823
9855
|
toLocationId: string().min(1),
|
|
9856
|
+
/** Restrict the count to one source; omitted / `'*'` = every non-target row. */
|
|
9857
|
+
fromLocationId: string().optional(),
|
|
9824
9858
|
/** Omitted = `move`. */
|
|
9825
9859
|
mode: MediaRelocateModeSchema.optional()
|
|
9826
9860
|
});
|
|
9827
9861
|
/**
|
|
9862
|
+
* Operator cleanup of leftover analytics rows, optional debug media, and
|
|
9863
|
+
* ghost ledger entries on frozen footage locations.
|
|
9864
|
+
*
|
|
9865
|
+
* A pass is tens of minutes on a standing backlog. The hub method RETURNS
|
|
9866
|
+
* `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
|
|
9867
|
+
* is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
|
|
9868
|
+
* with no operator-visible status.
|
|
9869
|
+
*/
|
|
9870
|
+
var StorageCleanupPhaseSchema = _enum([
|
|
9871
|
+
"orphans",
|
|
9872
|
+
"debug-media",
|
|
9873
|
+
"ghost-ledger",
|
|
9874
|
+
"done",
|
|
9875
|
+
"failed",
|
|
9876
|
+
"cancelled"
|
|
9877
|
+
]);
|
|
9878
|
+
var StorageCleanupInputSchema = object({
|
|
9879
|
+
/** Also walk motion stills / track filmstrips. Off by default. */
|
|
9880
|
+
includeDebugMedia: boolean().optional() });
|
|
9881
|
+
var StorageCleanupJobSchema = object({
|
|
9882
|
+
jobId: string(),
|
|
9883
|
+
phase: StorageCleanupPhaseSchema,
|
|
9884
|
+
includeDebugMedia: boolean(),
|
|
9885
|
+
orphansReclaimed: number().int().nonnegative(),
|
|
9886
|
+
orphanBytesReclaimed: number().int().nonnegative(),
|
|
9887
|
+
debugMediaReclaimed: number().int().nonnegative(),
|
|
9888
|
+
debugMediaBytesReclaimed: number().int().nonnegative(),
|
|
9889
|
+
ghostsForgotten: number().int().nonnegative(),
|
|
9890
|
+
ghostBytesForgotten: number().int().nonnegative(),
|
|
9891
|
+
/** Short operator-facing line: current collection, pass, or location. */
|
|
9892
|
+
detail: string().nullable(),
|
|
9893
|
+
cancelRequested: boolean(),
|
|
9894
|
+
startedAt: number(),
|
|
9895
|
+
updatedAt: number(),
|
|
9896
|
+
finishedAt: number().nullable(),
|
|
9897
|
+
error: string().nullable()
|
|
9898
|
+
});
|
|
9899
|
+
var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
|
|
9900
|
+
/**
|
|
9828
9901
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
9829
9902
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
9830
9903
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -9852,11 +9925,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
|
|
|
9852
9925
|
* The default location for a type uses `id === <type>:default` by
|
|
9853
9926
|
* convention (the bare type ref like `'backups'` resolves to it).
|
|
9854
9927
|
*
|
|
9855
|
-
* `isSystem
|
|
9856
|
-
*
|
|
9857
|
-
*
|
|
9858
|
-
*
|
|
9859
|
-
* deleting it is rejected at the cap level.
|
|
9928
|
+
* `isSystem` is a legacy persisted flag. Seed still creates the initial
|
|
9929
|
+
* `<type>:default` locations; the flag is no longer a lock, a badge, or a
|
|
9930
|
+
* prune selector. New writes leave it false. Deletion is gated on uniqueness
|
|
9931
|
+
* / last-enabled, not on this bit.
|
|
9860
9932
|
*/
|
|
9861
9933
|
var StorageLocationSchema = object({
|
|
9862
9934
|
id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
|
|
@@ -21525,6 +21597,47 @@ var RebuildStatusSchema = object({
|
|
|
21525
21597
|
/** Present when the pass ended by throwing. */
|
|
21526
21598
|
error: string().nullable()
|
|
21527
21599
|
});
|
|
21600
|
+
/**
|
|
21601
|
+
* Acknowledgement that a debug-media reclaim STARTED.
|
|
21602
|
+
*
|
|
21603
|
+
* The pass is paced at ~2 MB/s over a standing 100 GB — tens of minutes — so
|
|
21604
|
+
* it runs detached and this returns immediately. Awaiting it is how the
|
|
21605
|
+
* `addons.custom` door hit the 60 s UDS deadline while the walk carried on
|
|
21606
|
+
* with no status. Poll {@link pipelineAnalyticsCapability.methods.getMediaReclaimStatus}.
|
|
21607
|
+
*/
|
|
21608
|
+
var MediaReclaimStartResultSchema = object({
|
|
21609
|
+
started: boolean(),
|
|
21610
|
+
/** True when a pass was already running; the new request is ignored. */
|
|
21611
|
+
alreadyRunning: boolean()
|
|
21612
|
+
});
|
|
21613
|
+
var MediaReclaimInputSchema = object({
|
|
21614
|
+
mode: _enum(["report", "reclaim"]).default("report"),
|
|
21615
|
+
scopes: array(_enum(["motion-still", "track-filmstrip"])).min(1).optional(),
|
|
21616
|
+
deviceIds: array(number().int()).min(1).optional(),
|
|
21617
|
+
restart: boolean().optional(),
|
|
21618
|
+
pageSize: number().int().min(50).max(5e3).optional(),
|
|
21619
|
+
maxRowsPerDevice: number().int().min(1).max(5e5).optional(),
|
|
21620
|
+
maxReclaimPerDevice: number().int().min(1).max(5e5).optional(),
|
|
21621
|
+
maxBytesPerRun: number().int().min(1).optional(),
|
|
21622
|
+
budgetMinutes: number().int().min(1).max(720).optional(),
|
|
21623
|
+
throttleBytesPerSec: number().int().min(64 * 1024).optional(),
|
|
21624
|
+
graceMinutes: number().int().min(1).max(10080).optional()
|
|
21625
|
+
});
|
|
21626
|
+
var MediaReclaimStatusSchema = object({
|
|
21627
|
+
running: boolean(),
|
|
21628
|
+
mode: _enum(["report", "reclaim"]).nullable(),
|
|
21629
|
+
totalExamined: number(),
|
|
21630
|
+
totalEligible: number(),
|
|
21631
|
+
totalReclaimed: number(),
|
|
21632
|
+
totalBytesReclaimed: number(),
|
|
21633
|
+
totalRefused: number(),
|
|
21634
|
+
/** Device+scope windows finished in this pass. */
|
|
21635
|
+
devicesDone: number(),
|
|
21636
|
+
complete: boolean().nullable(),
|
|
21637
|
+
startedAtMs: number().nullable(),
|
|
21638
|
+
finishedAtMs: number().nullable(),
|
|
21639
|
+
error: string().nullable()
|
|
21640
|
+
});
|
|
21528
21641
|
var ReplayFrameInputSchema = object({
|
|
21529
21642
|
timestamp: number(),
|
|
21530
21643
|
frame: PipelineRunResultBridge
|
|
@@ -21666,6 +21779,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
21666
21779
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
21667
21780
|
kind: "query",
|
|
21668
21781
|
auth: "admin"
|
|
21782
|
+
}), method(MediaReclaimInputSchema, MediaReclaimStartResultSchema, {
|
|
21783
|
+
kind: "mutation",
|
|
21784
|
+
auth: "admin"
|
|
21785
|
+
}), method(object({}), MediaReclaimStatusSchema, {
|
|
21786
|
+
kind: "query",
|
|
21787
|
+
auth: "admin"
|
|
21669
21788
|
}), method(object({ deviceIds: array(number()).optional() }), TrainingExportSummarySchema, {
|
|
21670
21789
|
kind: "query",
|
|
21671
21790
|
auth: "admin"
|
|
@@ -23800,7 +23919,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
23800
23919
|
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
23801
23920
|
kind: "mutation",
|
|
23802
23921
|
auth: "admin"
|
|
23803
|
-
})
|
|
23922
|
+
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
23923
|
+
kind: "mutation",
|
|
23924
|
+
auth: "admin"
|
|
23925
|
+
}), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23926
|
+
kind: "mutation",
|
|
23927
|
+
auth: "admin"
|
|
23928
|
+
}), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
|
|
23804
23929
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
23805
23930
|
providerId: string().min(1),
|
|
23806
23931
|
displayName: string().min(1),
|
|
@@ -29325,6 +29450,33 @@ var RecordingRebalanceInputSchema = object({
|
|
|
29325
29450
|
minMoveGb: number().min(0).optional()
|
|
29326
29451
|
});
|
|
29327
29452
|
/**
|
|
29453
|
+
* Operator-facing placement of one camera onto a recordings location.
|
|
29454
|
+
*
|
|
29455
|
+
* `pinLocationId` is the operator instruction: a location id, or `null` for
|
|
29456
|
+
* Auto (the planner may move this camera). `locationId` is where high/mid
|
|
29457
|
+
* currently write — the plan, which may disagree with the pin when Auto.
|
|
29458
|
+
*/
|
|
29459
|
+
var RecordingDevicePlacementSchema = object({
|
|
29460
|
+
deviceId: number().int(),
|
|
29461
|
+
profile: string(),
|
|
29462
|
+
locationId: string()
|
|
29463
|
+
});
|
|
29464
|
+
var RecordingDevicePinSchema = object({
|
|
29465
|
+
deviceId: number().int(),
|
|
29466
|
+
/** Recordings-class location this camera is pinned to. */
|
|
29467
|
+
locationId: string()
|
|
29468
|
+
});
|
|
29469
|
+
var RecordingPlacementViewSchema = object({
|
|
29470
|
+
assignments: array(RecordingDevicePlacementSchema),
|
|
29471
|
+
pins: array(RecordingDevicePinSchema),
|
|
29472
|
+
defaultLocations: record(string(), string())
|
|
29473
|
+
});
|
|
29474
|
+
var RecordingSetDevicePlacementInputSchema = object({
|
|
29475
|
+
deviceId: number().int(),
|
|
29476
|
+
/** `null` = Auto. Otherwise a `recordings:*` location id. */
|
|
29477
|
+
locationId: string().nullable()
|
|
29478
|
+
});
|
|
29479
|
+
/**
|
|
29328
29480
|
* Result of locating footage at a wall-clock instant for one device/profile.
|
|
29329
29481
|
* `segment` carries the covering segment's window; `gap` reports the forward
|
|
29330
29482
|
* nearest covered edge (`null` past the end of footage / when none exists)
|
|
@@ -29677,6 +29829,22 @@ var recordingCapability = {
|
|
|
29677
29829
|
startStorageRebalance: method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
|
|
29678
29830
|
kind: "mutation",
|
|
29679
29831
|
auth: "admin"
|
|
29832
|
+
}),
|
|
29833
|
+
/**
|
|
29834
|
+
* The placement plan in force plus operator pins. Drives the Locations
|
|
29835
|
+
* admin page: Auto vs a named recordings location, per camera.
|
|
29836
|
+
*/
|
|
29837
|
+
getPlacement: method(object({}), RecordingPlacementViewSchema, {
|
|
29838
|
+
kind: "query",
|
|
29839
|
+
auth: "admin"
|
|
29840
|
+
}),
|
|
29841
|
+
/**
|
|
29842
|
+
* Pin a camera to a recordings location, or clear the pin (Auto). High and
|
|
29843
|
+
* mid follow the pin; low stays with the recordingsLow planner.
|
|
29844
|
+
*/
|
|
29845
|
+
setDevicePlacement: method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
|
|
29846
|
+
kind: "mutation",
|
|
29847
|
+
auth: "admin"
|
|
29680
29848
|
})
|
|
29681
29849
|
}
|
|
29682
29850
|
};
|
|
@@ -34973,6 +35141,12 @@ Object.freeze({
|
|
|
34973
35141
|
addonId: null,
|
|
34974
35142
|
access: "view"
|
|
34975
35143
|
},
|
|
35144
|
+
"pipelineAnalytics.getMediaReclaimStatus": {
|
|
35145
|
+
capName: "pipeline-analytics",
|
|
35146
|
+
capScope: "device",
|
|
35147
|
+
addonId: null,
|
|
35148
|
+
access: "view"
|
|
35149
|
+
},
|
|
34976
35150
|
"pipelineAnalytics.getMotionEvents": {
|
|
34977
35151
|
capName: "pipeline-analytics",
|
|
34978
35152
|
capScope: "device",
|
|
@@ -35147,6 +35321,12 @@ Object.freeze({
|
|
|
35147
35321
|
addonId: null,
|
|
35148
35322
|
access: "create"
|
|
35149
35323
|
},
|
|
35324
|
+
"pipelineAnalytics.reclaimDebugMedia": {
|
|
35325
|
+
capName: "pipeline-analytics",
|
|
35326
|
+
capScope: "device",
|
|
35327
|
+
addonId: null,
|
|
35328
|
+
access: "create"
|
|
35329
|
+
},
|
|
35150
35330
|
"pipelineAnalytics.reconcileFromDisk": {
|
|
35151
35331
|
capName: "pipeline-analytics",
|
|
35152
35332
|
capScope: "device",
|
|
@@ -36071,6 +36251,12 @@ Object.freeze({
|
|
|
36071
36251
|
addonId: null,
|
|
36072
36252
|
access: "view"
|
|
36073
36253
|
},
|
|
36254
|
+
"recording.getPlacement": {
|
|
36255
|
+
capName: "recording",
|
|
36256
|
+
capScope: "system",
|
|
36257
|
+
addonId: null,
|
|
36258
|
+
access: "view"
|
|
36259
|
+
},
|
|
36074
36260
|
"recording.getPlaybackManifest": {
|
|
36075
36261
|
capName: "recording",
|
|
36076
36262
|
capScope: "system",
|
|
@@ -36197,6 +36383,12 @@ Object.freeze({
|
|
|
36197
36383
|
addonId: null,
|
|
36198
36384
|
access: "create"
|
|
36199
36385
|
},
|
|
36386
|
+
"recording.setDevicePlacement": {
|
|
36387
|
+
capName: "recording",
|
|
36388
|
+
capScope: "system",
|
|
36389
|
+
addonId: null,
|
|
36390
|
+
access: "create"
|
|
36391
|
+
},
|
|
36200
36392
|
"recording.startStorageMigrationMove": {
|
|
36201
36393
|
capName: "recording",
|
|
36202
36394
|
capScope: "system",
|
|
@@ -36641,12 +36833,36 @@ Object.freeze({
|
|
|
36641
36833
|
addonId: null,
|
|
36642
36834
|
access: "create"
|
|
36643
36835
|
},
|
|
36836
|
+
"storageMigration.cleanupCancel": {
|
|
36837
|
+
capName: "storage-migration",
|
|
36838
|
+
capScope: "system",
|
|
36839
|
+
addonId: null,
|
|
36840
|
+
access: "create"
|
|
36841
|
+
},
|
|
36842
|
+
"storageMigration.cleanupStart": {
|
|
36843
|
+
capName: "storage-migration",
|
|
36844
|
+
capScope: "system",
|
|
36845
|
+
addonId: null,
|
|
36846
|
+
access: "create"
|
|
36847
|
+
},
|
|
36848
|
+
"storageMigration.cleanupStatus": {
|
|
36849
|
+
capName: "storage-migration",
|
|
36850
|
+
capScope: "system",
|
|
36851
|
+
addonId: null,
|
|
36852
|
+
access: "view"
|
|
36853
|
+
},
|
|
36644
36854
|
"storageMigration.drain": {
|
|
36645
36855
|
capName: "storage-migration",
|
|
36646
36856
|
capScope: "system",
|
|
36647
36857
|
addonId: null,
|
|
36648
36858
|
access: "create"
|
|
36649
36859
|
},
|
|
36860
|
+
"storageMigration.history": {
|
|
36861
|
+
capName: "storage-migration",
|
|
36862
|
+
capScope: "system",
|
|
36863
|
+
addonId: null,
|
|
36864
|
+
access: "view"
|
|
36865
|
+
},
|
|
36650
36866
|
"storageMigration.movers": {
|
|
36651
36867
|
capName: "storage-migration",
|
|
36652
36868
|
capScope: "system",
|
|
@@ -38763,6 +38979,11 @@ Object.freeze({
|
|
|
38763
38979
|
form: "single",
|
|
38764
38980
|
optional: true
|
|
38765
38981
|
}],
|
|
38982
|
+
"pipelineAnalytics.reclaimDebugMedia": [{
|
|
38983
|
+
name: "deviceIds",
|
|
38984
|
+
form: "array",
|
|
38985
|
+
optional: true
|
|
38986
|
+
}],
|
|
38766
38987
|
"pipelineAnalytics.reconcileFromDisk": [{
|
|
38767
38988
|
name: "deviceId",
|
|
38768
38989
|
form: "single",
|
|
@@ -39128,6 +39349,11 @@ Object.freeze({
|
|
|
39128
39349
|
form: "single",
|
|
39129
39350
|
optional: false
|
|
39130
39351
|
}],
|
|
39352
|
+
"recording.setDevicePlacement": [{
|
|
39353
|
+
name: "deviceId",
|
|
39354
|
+
form: "single",
|
|
39355
|
+
optional: false
|
|
39356
|
+
}],
|
|
39131
39357
|
"recording.startStorageMigrationMove": [{
|
|
39132
39358
|
name: "deviceId",
|
|
39133
39359
|
form: "single",
|