@camstack/types 1.2.57 → 1.2.59

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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_event_category = require("./event-category-DxZbWydC.js");
3
- const require_sleep = require("./sleep-EX1-qUVR.js");
3
+ const require_sleep = require("./sleep-BszXLEvP.js");
4
4
  const require_canonical_hash = require("./canonical-hash-DNV8S5ET.js");
5
5
  const require_enums = require("./enums.js");
6
6
  const require_err_msg = require("./err-msg-COpsHMw2.js");
@@ -1610,12 +1610,11 @@ function deriveRecordingMode(config) {
1610
1610
  /**
1611
1611
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
1612
1612
  *
1613
- * One shape shared by the recorder's `relocateFootage` (segments) and
1614
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
1615
- * page renders both movers with one component. Jobs are in-RAM (a restart
1616
- * forgets them re-running is safe by construction: copy-if-absent, delete
1617
- * after verify) and each completed/failed run also lands one durable ops-log
1618
- * row on the owning addon's surface.
1613
+ * One shape shared by the recorder and pipeline-analytics internal movers.
1614
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
1615
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
1616
+ * Each completed/failed run also lands one durable ops-log row on its owning
1617
+ * addon surface.
1619
1618
  */
1620
1619
  var RelocateJobStateSchema = zod.z.enum([
1621
1620
  "running",
@@ -1642,20 +1641,102 @@ var RelocateJobSchema = zod.z.object({
1642
1641
  finishedAt: zod.z.number().nullable(),
1643
1642
  error: zod.z.string().nullable()
1644
1643
  });
1644
+ /** Profile-derived footage selection used only by the migration coordinator:
1645
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
1646
+ var RelocateFootageClassSchema = zod.z.enum(["recordings", "recordingsLow"]);
1645
1647
  var RelocateFootageInputSchema = zod.z.object({
1646
- deviceId: zod.z.number().optional(),
1647
1648
  fromLocationId: zod.z.string(),
1648
1649
  toLocationId: zod.z.string(),
1649
1650
  entities: zod.z.array(zod.z.enum(["segments"])).optional(),
1651
+ /** Limits relocation to the logical profile class. Omit only for the
1652
+ * pre-orchestration compatibility path. */
1653
+ footageClass: RelocateFootageClassSchema.optional(),
1650
1654
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
1651
1655
  * never allowed to starve live writers. */
1652
1656
  throttleMbps: zod.z.number().min(1).max(1e3).optional()
1653
1657
  });
1658
+ /** Internal, lease-scoped participant operation. It is intentionally separate
1659
+ * from persistent recording settings: a migration never changes
1660
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
1661
+ var StorageMigrationLeaseInputSchema = zod.z.object({ leaseId: zod.z.string().min(1) });
1662
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: zod.z.string().min(1) });
1654
1663
  var RelocateMediaInputSchema = zod.z.object({
1655
- deviceId: zod.z.number().optional(),
1656
1664
  toLocationId: zod.z.string(),
1657
1665
  throttleMbps: zod.z.number().min(1).max(1e3).optional()
1658
1666
  });
1667
+ var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: zod.z.string().min(1) });
1668
+ /** The independently selectable logical storage classes. `recordings`
1669
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
1670
+ * segments; `eventMedia` is post-analysis blobs. */
1671
+ var StorageMigrationClassSchema = zod.z.enum([
1672
+ "recordings",
1673
+ "recordingsLow",
1674
+ "eventMedia"
1675
+ ]);
1676
+ /** A destination is always an existing, fully-qualified location id. The
1677
+ * migration API intentionally never changes a source location's `basePath`:
1678
+ * callers create a new `<type>:<slug>` location, then select it here. */
1679
+ var StorageMigrationDestinationsSchema = zod.z.object({
1680
+ recordings: zod.z.string().min(1).optional(),
1681
+ recordingsLow: zod.z.string().min(1).optional(),
1682
+ eventMedia: zod.z.string().min(1).optional()
1683
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
1684
+ /** Shared input for planning and starting an orchestrated storage migration. */
1685
+ var StorageMigrationInputSchema = zod.z.object({
1686
+ destinations: StorageMigrationDestinationsSchema,
1687
+ throttleMbps: zod.z.number().min(1).max(1e3).optional()
1688
+ });
1689
+ /** The durable coordinator state machine. The only phase that changes default
1690
+ * locations is `repointing`, after every selected mover has completed and been
1691
+ * verified. */
1692
+ var StorageMigrationPhaseSchema = zod.z.enum([
1693
+ "planning",
1694
+ "pausing",
1695
+ "moving",
1696
+ "verifying",
1697
+ "repointing",
1698
+ "refreshing",
1699
+ "resuming",
1700
+ "done",
1701
+ "failed",
1702
+ "cancelled"
1703
+ ]);
1704
+ var StorageMigrationParticipantSchema = zod.z.enum([
1705
+ "pipeline",
1706
+ "recorder",
1707
+ "analytics"
1708
+ ]);
1709
+ var StorageMigrationMoveSchema = zod.z.object({
1710
+ storageClass: StorageMigrationClassSchema,
1711
+ fromLocationId: zod.z.string(),
1712
+ toLocationId: zod.z.string(),
1713
+ moverJobId: zod.z.string().nullable(),
1714
+ state: RelocateJobStateSchema.nullable(),
1715
+ error: zod.z.string().nullable()
1716
+ });
1717
+ var StorageMigrationJobSchema = zod.z.object({
1718
+ jobId: zod.z.string(),
1719
+ phase: StorageMigrationPhaseSchema,
1720
+ destinations: StorageMigrationDestinationsSchema,
1721
+ throttleMbps: zod.z.number(),
1722
+ moves: zod.z.array(StorageMigrationMoveSchema),
1723
+ pauseLeaseId: zod.z.string().nullable(),
1724
+ pausedParticipants: zod.z.array(StorageMigrationParticipantSchema),
1725
+ repointed: zod.z.boolean(),
1726
+ cancelRequested: zod.z.boolean(),
1727
+ startedAt: zod.z.number(),
1728
+ updatedAt: zod.z.number(),
1729
+ finishedAt: zod.z.number().nullable(),
1730
+ error: zod.z.string().nullable()
1731
+ });
1732
+ var StorageMigrationPlanSchema = zod.z.object({
1733
+ destinations: StorageMigrationDestinationsSchema,
1734
+ moves: zod.z.array(zod.z.object({
1735
+ storageClass: StorageMigrationClassSchema,
1736
+ fromLocationId: zod.z.string(),
1737
+ toLocationId: zod.z.string()
1738
+ }))
1739
+ });
1659
1740
  //#endregion
1660
1741
  //#region src/interfaces/server-analysis.ts
1661
1742
  var SUB_DETECTION_TYPES = ["face", "plate"];
@@ -14575,20 +14656,28 @@ var pipelineAnalyticsCapability = {
14575
14656
  }),
14576
14657
  /** The events ops-log rows (newest-first), optionally scoped to one camera.
14577
14658
  * Backed by a declared pipeline-analytics SQLite collection. */
14578
- /**
14579
- * Move event-media blobs onto `toLocationId` (entity-routing spec Phase
14580
- * 4): per-row copy → stamp row.locationId delete old blob. Rows already
14581
- * at the target are skipped, so a re-run resumes. Single-flight.
14582
- */
14583
- relocateMedia: require_sleep.method(RelocateMediaInputSchema, zod.z.object({ jobId: zod.z.string() }), {
14659
+ /** Internal migration-participant lease. It drains active MediaStore
14660
+ * writes and refuses new ones without changing analytics bindings. */
14661
+ pauseForStorageMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
14584
14662
  kind: "mutation",
14585
14663
  auth: "admin"
14586
14664
  }),
14587
- getMediaRelocateStatus: require_sleep.method(zod.z.object({}), zod.z.array(RelocateJobSchema).readonly(), {
14588
- kind: "query",
14665
+ resumeForStorageMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ resumed: zod.z.literal(true) }), {
14666
+ kind: "mutation",
14589
14667
  auth: "admin"
14590
14668
  }),
14591
- cancelMediaRelocate: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
14669
+ /** Drops cached location roots after the storage coordinator repoints a
14670
+ * default so future event-media writes use the new root. */
14671
+ refreshStorageLocationsForMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ refreshed: zod.z.literal(true) }), {
14672
+ kind: "mutation",
14673
+ auth: "admin"
14674
+ }),
14675
+ startStorageMigrationMove: require_sleep.method(StorageMigrationMediaMoveInputSchema, zod.z.object({ jobId: zod.z.string() }), {
14676
+ kind: "mutation",
14677
+ auth: "admin"
14678
+ }),
14679
+ getStorageMigrationMoveStatus: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
14680
+ cancelStorageMigrationMove: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
14592
14681
  kind: "mutation",
14593
14682
  auth: "admin"
14594
14683
  }),
@@ -16816,6 +16905,16 @@ var pipelineOrchestratorCapability = {
16816
16905
  nodeIdMode: "data",
16817
16906
  exposesDeviceSettings: true,
16818
16907
  methods: {
16908
+ /** Internal storage-migration participant lease. While held, dispatch
16909
+ * requests are accepted as pending but no new runner attachment starts. */
16910
+ pauseForStorageMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
16911
+ kind: "mutation",
16912
+ auth: "admin"
16913
+ }),
16914
+ resumeForStorageMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ resumed: zod.z.literal(true) }), {
16915
+ kind: "mutation",
16916
+ auth: "admin"
16917
+ }),
16819
16918
  /**
16820
16919
  * Pin a camera's pipeline to a specific agent (L1 affinity).
16821
16920
  * The orchestrator re-evaluates the assignment immediately and persists
@@ -18028,6 +18127,30 @@ var storageEvictableCapability = {
18028
18127
  }
18029
18128
  };
18030
18129
  //#endregion
18130
+ //#region src/capabilities/storage-migration.cap.ts
18131
+ /**
18132
+ * The single operator-facing storage migration surface. It coordinates the
18133
+ * pipeline, recorder and post-analysis participants; callers never mutate a
18134
+ * camera recording config or invoke an individual mover directly.
18135
+ */
18136
+ var storageMigrationCapability = {
18137
+ name: "storage-migration",
18138
+ scope: "system",
18139
+ mode: "singleton",
18140
+ methods: {
18141
+ plan: require_sleep.method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }),
18142
+ start: require_sleep.method(StorageMigrationInputSchema, zod.z.object({ jobId: zod.z.string() }), {
18143
+ kind: "mutation",
18144
+ auth: "admin"
18145
+ }),
18146
+ status: require_sleep.method(zod.z.object({ jobId: zod.z.string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }),
18147
+ cancel: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
18148
+ kind: "mutation",
18149
+ auth: "admin"
18150
+ })
18151
+ }
18152
+ };
18153
+ //#endregion
18031
18154
  //#region src/capabilities/storage-provider.cap.ts
18032
18155
  var ProviderInfoSchema = zod.z.discriminatedUnion("shouldSaveDiskSpace", [zod.z.object({
18033
18156
  providerId: zod.z.string().min(1),
@@ -18179,6 +18302,28 @@ var TerminalProfileInfoSchema = zod.z.object({
18179
18302
  label: zod.z.string(),
18180
18303
  description: zod.z.string().optional()
18181
18304
  });
18305
+ /**
18306
+ * A durable operator-created Terminal instance. Profiles are templates; only
18307
+ * an instance declares a camera.
18308
+ */
18309
+ var TerminalInstanceInfoSchema = zod.z.object({
18310
+ instanceId: zod.z.string(),
18311
+ cameraStableId: zod.z.string(),
18312
+ nodeId: zod.z.string(),
18313
+ profileId: zod.z.string(),
18314
+ profileLabel: zod.z.string(),
18315
+ name: zod.z.string(),
18316
+ enabled: zod.z.boolean()
18317
+ });
18318
+ var TerminalLegacyCameraSchema = zod.z.object({
18319
+ stableId: zod.z.string(),
18320
+ nodeId: zod.z.string(),
18321
+ profileId: zod.z.string(),
18322
+ profileLabel: zod.z.string(),
18323
+ name: zod.z.string(),
18324
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18325
+ adoptable: zod.z.boolean()
18326
+ });
18182
18327
  var TerminalOutputEventSchema = zod.z.discriminatedUnion("kind", [zod.z.object({
18183
18328
  seq: zod.z.number().int().positive(),
18184
18329
  kind: zod.z.literal("data"),
@@ -18198,10 +18343,9 @@ var TerminalOutputBatchSchema = zod.z.object({
18198
18343
  /**
18199
18344
  * terminal-session — singleton system capability for interactive TTY sessions.
18200
18345
  *
18201
- * Phase 1 (this cap): open/resize/close/list a pty running an allowlisted
18202
- * profile, streamed to xterm.js over the data plane. Phase 2 (streaming a
18203
- * session as a camera) is a separate device-provider concern and does not
18204
- * change this contract.
18346
+ * Owns both live PTY lifecycle and durable Terminal instance management.
18347
+ * Profiles are allowlisted templates; an explicit instance is the only path
18348
+ * that declares a camera.
18205
18349
  */
18206
18350
  var terminalSessionCapability = {
18207
18351
  name: "terminal-session",
@@ -18210,6 +18354,37 @@ var terminalSessionCapability = {
18210
18354
  methods: {
18211
18355
  /** Pre-declared profiles the operator may open. */
18212
18356
  listProfiles: require_sleep.method(zod.z.void(), zod.z.array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18357
+ /** Explicit durable Terminal instances, managed centrally on the hub. */
18358
+ listInstances: require_sleep.method(zod.z.void(), zod.z.array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }),
18359
+ createInstance: require_sleep.method(zod.z.object({
18360
+ targetNodeId: zod.z.string().min(1),
18361
+ profileId: zod.z.string().min(1),
18362
+ name: zod.z.string().trim().min(1).max(160).optional()
18363
+ }), TerminalInstanceInfoSchema, {
18364
+ kind: "mutation",
18365
+ auth: "admin"
18366
+ }),
18367
+ deleteInstance: require_sleep.method(zod.z.object({ instanceId: zod.z.string().min(1) }), zod.z.void(), {
18368
+ kind: "mutation",
18369
+ auth: "admin"
18370
+ }),
18371
+ setInstanceEnabled: require_sleep.method(zod.z.object({
18372
+ instanceId: zod.z.string().min(1),
18373
+ enabled: zod.z.boolean()
18374
+ }), TerminalInstanceInfoSchema, {
18375
+ kind: "mutation",
18376
+ auth: "admin"
18377
+ }),
18378
+ /** Existing automatic cameras are shown for explicit migration only. */
18379
+ listLegacyCameras: require_sleep.method(zod.z.void(), zod.z.array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }),
18380
+ /** Explicitly adopt one legacy monitor camera, retaining its stable id. */
18381
+ adoptLegacyMonitor: require_sleep.method(zod.z.object({
18382
+ stableId: zod.z.string().min(1),
18383
+ name: zod.z.string().trim().min(1).max(160).optional()
18384
+ }), TerminalInstanceInfoSchema, {
18385
+ kind: "mutation",
18386
+ auth: "admin"
18387
+ }),
18213
18388
  /** Live sessions currently hosted by the provider. */
18214
18389
  listSessions: require_sleep.method(zod.z.void(), zod.z.array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }),
18215
18390
  /**
@@ -18241,7 +18416,13 @@ var terminalSessionCapability = {
18241
18416
  pullOutput: require_sleep.method(zod.z.object({
18242
18417
  sessionId: zod.z.string(),
18243
18418
  afterSeq: zod.z.number().int().nonnegative(),
18244
- waitMs: zod.z.number().int().min(0).max(2e3).default(0)
18419
+ waitMs: zod.z.number().int().min(0).max(2e3).default(0),
18420
+ /**
18421
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18422
+ * browser's initial repaint remains immediate; the camera snapshot
18423
+ * relay uses it to avoid encoding a blank startup frame.
18424
+ */
18425
+ waitForOutput: zod.z.boolean().optional()
18245
18426
  }), TerminalOutputBatchSchema, {
18246
18427
  kind: "mutation",
18247
18428
  auth: "admin",
@@ -21365,6 +21546,7 @@ var FaceInfoSchema = zod.z.object({
21365
21546
  var FaceFilterEnum = zod.z.enum([
21366
21547
  "unassigned",
21367
21548
  "recognized",
21549
+ "identified",
21368
21550
  "all"
21369
21551
  ]);
21370
21552
  var MediaFileLiteSchema$1 = zod.z.object({
@@ -21404,6 +21586,8 @@ var faceGalleryCapability = {
21404
21586
  auth: "admin"
21405
21587
  }),
21406
21588
  listRecentFaces: require_sleep.method(zod.z.object({
21589
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21590
+ deviceId: zod.z.number().int().optional(),
21407
21591
  limit: zod.z.number().int().positive().optional(),
21408
21592
  filter: FaceFilterEnum.optional(),
21409
21593
  /**
@@ -24025,6 +24209,10 @@ var OsdSourceSchema = zod.z.discriminatedUnion("kind", [
24025
24209
  capName: zod.z.string().min(1).max(64),
24026
24210
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
24027
24211
  valuePath: zod.z.string().min(1).max(64)
24212
+ }),
24213
+ zod.z.object({
24214
+ kind: zod.z.literal("latest-recognition"),
24215
+ recognition: zod.z.enum(["person", "plate"])
24028
24216
  })
24029
24217
  ]);
24030
24218
  var OsdSlotBindingSchema = zod.z.object({
@@ -24163,6 +24351,21 @@ var osdManagerCapability = {
24163
24351
  auth: "admin"
24164
24352
  }),
24165
24353
  /**
24354
+ * Replace one camera's binding configuration from another. Writable source
24355
+ * slots are mapped by ordinal onto writable target slots so different
24356
+ * provider slot ids do not make the copied configuration disappear.
24357
+ */
24358
+ copyDeviceConfiguration: require_sleep.method(zod.z.object({
24359
+ sourceDeviceId: zod.z.number().int(),
24360
+ targetDeviceId: zod.z.number().int()
24361
+ }), zod.z.object({
24362
+ copied: zod.z.number().int().nonnegative(),
24363
+ skipped: zod.z.number().int().nonnegative()
24364
+ }), {
24365
+ kind: "mutation",
24366
+ auth: "admin"
24367
+ }),
24368
+ /**
24166
24369
  * Render without writing. `binding` overrides the stored one so an
24167
24370
  * editor can preview an unsaved change. Mutation kind only to carry
24168
24371
  * the binding object safely; no side effects.
@@ -25510,12 +25713,6 @@ var recordingCapability = {
25510
25713
  auth: "admin"
25511
25714
  }),
25512
25715
  /**
25513
- * Move footage (recorded segments) from one recordings location to
25514
- * another — the drain workflow's mover (entity-routing spec Phase 4).
25515
- * Throttled copy → size-verify → delete source → index refresh; resumable
25516
- * by construction (copy-if-absent). Single-flight: one job at a time.
25517
- */
25518
- /**
25519
25716
  * Render a short GIF from recorded footage around `aroundMs` (low profile,
25520
25717
  * palette-free ffmpeg gif). Synchronous — the window is a few seconds of
25521
25718
  * `low`, rendering in ~1-2s. Built for notification attachments: the
@@ -25567,16 +25764,28 @@ var recordingCapability = {
25567
25764
  kind: "mutation",
25568
25765
  auth: "admin"
25569
25766
  }),
25570
- relocateFootage: require_sleep.method(RelocateFootageInputSchema, zod.z.object({ jobId: zod.z.string() }), {
25767
+ /** Internal migration-participant lease. Blocks new recorder attaches and
25768
+ * waits for writers to exit while their watchers index final segments. */
25769
+ pauseForStorageMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
25571
25770
  kind: "mutation",
25572
25771
  auth: "admin"
25573
25772
  }),
25574
- /** Every known relocate job (in-RAM, newest-first). */
25575
- getRelocateStatus: require_sleep.method(zod.z.object({}), zod.z.array(RelocateJobSchema).readonly(), {
25576
- kind: "query",
25773
+ resumeForStorageMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ resumed: zod.z.literal(true) }), {
25774
+ kind: "mutation",
25577
25775
  auth: "admin"
25578
25776
  }),
25579
- cancelRelocate: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
25777
+ /** Re-resolve location roots after the coordinator changes defaults. */
25778
+ refreshStorageLocationsForMigration: require_sleep.method(StorageMigrationLeaseInputSchema, zod.z.object({ refreshed: zod.z.literal(true) }), {
25779
+ kind: "mutation",
25780
+ auth: "admin"
25781
+ }),
25782
+ /** Internal mover, callable only by the storage-migration coordinator. */
25783
+ startStorageMigrationMove: require_sleep.method(StorageMigrationFootageMoveInputSchema, zod.z.object({ jobId: zod.z.string() }), {
25784
+ kind: "mutation",
25785
+ auth: "admin"
25786
+ }),
25787
+ getStorageMigrationMoveStatus: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
25788
+ cancelStorageMigrationMove: require_sleep.method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
25580
25789
  kind: "mutation",
25581
25790
  auth: "admin"
25582
25791
  })
@@ -30539,6 +30748,7 @@ var CAPABILITY_NAMES = {
30539
30748
  ssoBridge: "sso-bridge",
30540
30749
  storage: "storage",
30541
30750
  storageEvictable: "storage-evictable",
30751
+ storageMigration: "storage-migration",
30542
30752
  storageProvider: "storage-provider",
30543
30753
  streamBroker: "stream-broker",
30544
30754
  streamCatalog: "stream-catalog",
@@ -31056,6 +31266,10 @@ var CAPABILITY_ROUTER_KEYS = [
31056
31266
  key: "storageEvictable",
31057
31267
  name: "storage-evictable"
31058
31268
  },
31269
+ {
31270
+ key: "storageMigration",
31271
+ name: "storage-migration"
31272
+ },
31059
31273
  {
31060
31274
  key: "storageProvider",
31061
31275
  name: "storage-provider"
@@ -31293,6 +31507,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
31293
31507
  ssoBridgeCapability,
31294
31508
  storageCapability,
31295
31509
  storageEvictableCapability,
31510
+ storageMigrationCapability,
31296
31511
  storageProviderCapability,
31297
31512
  streamBrokerCapability,
31298
31513
  streamCatalogCapability,
@@ -34221,6 +34436,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34221
34436
  addonId: null,
34222
34437
  access: "delete"
34223
34438
  },
34439
+ "osdManager.copyDeviceConfiguration": {
34440
+ capName: "osd-manager",
34441
+ capScope: "system",
34442
+ addonId: null,
34443
+ access: "create"
34444
+ },
34224
34445
  "osdManager.getConditionSupport": {
34225
34446
  capName: "osd-manager",
34226
34447
  capScope: "system",
@@ -34317,7 +34538,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
34317
34538
  addonId: null,
34318
34539
  access: "create"
34319
34540
  },
34320
- "pipelineAnalytics.cancelMediaRelocate": {
34541
+ "pipelineAnalytics.cancelStorageMigrationMove": {
34321
34542
  capName: "pipeline-analytics",
34322
34543
  capScope: "device",
34323
34544
  addonId: null,
@@ -34389,12 +34610,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
34389
34610
  addonId: null,
34390
34611
  access: "view"
34391
34612
  },
34392
- "pipelineAnalytics.getMediaRelocateStatus": {
34393
- capName: "pipeline-analytics",
34394
- capScope: "device",
34395
- addonId: null,
34396
- access: "view"
34397
- },
34398
34613
  "pipelineAnalytics.getMotionEvents": {
34399
34614
  capName: "pipeline-analytics",
34400
34615
  capScope: "device",
@@ -34431,6 +34646,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34431
34646
  addonId: null,
34432
34647
  access: "view"
34433
34648
  },
34649
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
34650
+ capName: "pipeline-analytics",
34651
+ capScope: "device",
34652
+ addonId: null,
34653
+ access: "view"
34654
+ },
34434
34655
  "pipelineAnalytics.getTrack": {
34435
34656
  capName: "pipeline-analytics",
34436
34657
  capScope: "device",
@@ -34509,6 +34730,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34509
34730
  addonId: null,
34510
34731
  access: "view"
34511
34732
  },
34733
+ "pipelineAnalytics.pauseForStorageMigration": {
34734
+ capName: "pipeline-analytics",
34735
+ capScope: "device",
34736
+ addonId: null,
34737
+ access: "create"
34738
+ },
34512
34739
  "pipelineAnalytics.proposeRetrainAnnotations": {
34513
34740
  capName: "pipeline-analytics",
34514
34741
  capScope: "device",
@@ -34539,7 +34766,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
34539
34766
  addonId: null,
34540
34767
  access: "create"
34541
34768
  },
34542
- "pipelineAnalytics.relocateMedia": {
34769
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
34543
34770
  capName: "pipeline-analytics",
34544
34771
  capScope: "device",
34545
34772
  addonId: null,
@@ -34551,6 +34778,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34551
34778
  addonId: null,
34552
34779
  access: "create"
34553
34780
  },
34781
+ "pipelineAnalytics.resumeForStorageMigration": {
34782
+ capName: "pipeline-analytics",
34783
+ capScope: "device",
34784
+ addonId: null,
34785
+ access: "create"
34786
+ },
34554
34787
  "pipelineAnalytics.saveRetrainAnnotations": {
34555
34788
  capName: "pipeline-analytics",
34556
34789
  capScope: "device",
@@ -34575,6 +34808,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34575
34808
  addonId: null,
34576
34809
  access: "create"
34577
34810
  },
34811
+ "pipelineAnalytics.startStorageMigrationMove": {
34812
+ capName: "pipeline-analytics",
34813
+ capScope: "device",
34814
+ addonId: null,
34815
+ access: "create"
34816
+ },
34578
34817
  "pipelineAnalytics.wipeAllAnalytics": {
34579
34818
  capName: "pipeline-analytics",
34580
34819
  capScope: "device",
@@ -34941,6 +35180,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34941
35180
  addonId: null,
34942
35181
  access: "view"
34943
35182
  },
35183
+ "pipelineOrchestrator.pauseForStorageMigration": {
35184
+ capName: "pipeline-orchestrator",
35185
+ capScope: "system",
35186
+ addonId: null,
35187
+ access: "create"
35188
+ },
34944
35189
  "pipelineOrchestrator.rebalance": {
34945
35190
  capName: "pipeline-orchestrator",
34946
35191
  capScope: "system",
@@ -34965,6 +35210,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
34965
35210
  addonId: null,
34966
35211
  access: "view"
34967
35212
  },
35213
+ "pipelineOrchestrator.resumeForStorageMigration": {
35214
+ capName: "pipeline-orchestrator",
35215
+ capScope: "system",
35216
+ addonId: null,
35217
+ access: "create"
35218
+ },
34968
35219
  "pipelineOrchestrator.saveTemplate": {
34969
35220
  capName: "pipeline-orchestrator",
34970
35221
  capScope: "system",
@@ -35361,7 +35612,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
35361
35612
  addonId: null,
35362
35613
  access: "create"
35363
35614
  },
35364
- "recording.cancelRelocate": {
35615
+ "recording.cancelStorageMigrationMove": {
35365
35616
  capName: "recording",
35366
35617
  capScope: "system",
35367
35618
  addonId: null,
@@ -35397,7 +35648,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
35397
35648
  addonId: null,
35398
35649
  access: "view"
35399
35650
  },
35400
- "recording.getRelocateStatus": {
35651
+ "recording.getStorageMigrationMoveStatus": {
35401
35652
  capName: "recording",
35402
35653
  capScope: "system",
35403
35654
  addonId: null,
@@ -35421,6 +35672,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
35421
35672
  addonId: null,
35422
35673
  access: "view"
35423
35674
  },
35675
+ "recording.pauseForStorageMigration": {
35676
+ capName: "recording",
35677
+ capScope: "system",
35678
+ addonId: null,
35679
+ access: "create"
35680
+ },
35424
35681
  "recording.pruneFootage": {
35425
35682
  capName: "recording",
35426
35683
  capScope: "system",
@@ -35439,7 +35696,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
35439
35696
  addonId: null,
35440
35697
  access: "view"
35441
35698
  },
35442
- "recording.relocateFootage": {
35699
+ "recording.refreshStorageLocationsForMigration": {
35443
35700
  capName: "recording",
35444
35701
  capScope: "system",
35445
35702
  addonId: null,
@@ -35463,12 +35720,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
35463
35720
  addonId: null,
35464
35721
  access: "create"
35465
35722
  },
35723
+ "recording.resumeForStorageMigration": {
35724
+ capName: "recording",
35725
+ capScope: "system",
35726
+ addonId: null,
35727
+ access: "create"
35728
+ },
35466
35729
  "recording.setDeviceConfig": {
35467
35730
  capName: "recording",
35468
35731
  capScope: "system",
35469
35732
  addonId: null,
35470
35733
  access: "create"
35471
35734
  },
35735
+ "recording.startStorageMigrationMove": {
35736
+ capName: "recording",
35737
+ capScope: "system",
35738
+ addonId: null,
35739
+ access: "create"
35740
+ },
35472
35741
  "recordingExport.cancelExport": {
35473
35742
  capName: "recordingExport",
35474
35743
  capScope: "system",
@@ -35859,6 +36128,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
35859
36128
  addonId: null,
35860
36129
  access: "view"
35861
36130
  },
36131
+ "storageMigration.cancel": {
36132
+ capName: "storage-migration",
36133
+ capScope: "system",
36134
+ addonId: null,
36135
+ access: "create"
36136
+ },
36137
+ "storageMigration.plan": {
36138
+ capName: "storage-migration",
36139
+ capScope: "system",
36140
+ addonId: null,
36141
+ access: "view"
36142
+ },
36143
+ "storageMigration.start": {
36144
+ capName: "storage-migration",
36145
+ capScope: "system",
36146
+ addonId: null,
36147
+ access: "create"
36148
+ },
36149
+ "storageMigration.status": {
36150
+ capName: "storage-migration",
36151
+ capScope: "system",
36152
+ addonId: null,
36153
+ access: "view"
36154
+ },
35862
36155
  "storageProvider.abortUpload": {
35863
36156
  capName: "storage-provider",
35864
36157
  capScope: "system",
@@ -36237,12 +36530,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
36237
36530
  addonId: null,
36238
36531
  access: "create"
36239
36532
  },
36533
+ "terminalSession.adoptLegacyMonitor": {
36534
+ capName: "terminal-session",
36535
+ capScope: "system",
36536
+ addonId: null,
36537
+ access: "create"
36538
+ },
36240
36539
  "terminalSession.close": {
36241
36540
  capName: "terminal-session",
36242
36541
  capScope: "system",
36243
36542
  addonId: null,
36244
36543
  access: "create"
36245
36544
  },
36545
+ "terminalSession.createInstance": {
36546
+ capName: "terminal-session",
36547
+ capScope: "system",
36548
+ addonId: null,
36549
+ access: "create"
36550
+ },
36551
+ "terminalSession.deleteInstance": {
36552
+ capName: "terminal-session",
36553
+ capScope: "system",
36554
+ addonId: null,
36555
+ access: "delete"
36556
+ },
36557
+ "terminalSession.listInstances": {
36558
+ capName: "terminal-session",
36559
+ capScope: "system",
36560
+ addonId: null,
36561
+ access: "view"
36562
+ },
36563
+ "terminalSession.listLegacyCameras": {
36564
+ capName: "terminal-session",
36565
+ capScope: "system",
36566
+ addonId: null,
36567
+ access: "view"
36568
+ },
36246
36569
  "terminalSession.listProfiles": {
36247
36570
  capName: "terminal-session",
36248
36571
  capScope: "system",
@@ -36273,6 +36596,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
36273
36596
  addonId: null,
36274
36597
  access: "create"
36275
36598
  },
36599
+ "terminalSession.setInstanceEnabled": {
36600
+ capName: "terminal-session",
36601
+ capScope: "system",
36602
+ addonId: null,
36603
+ access: "create"
36604
+ },
36276
36605
  "terminalSession.writeInput": {
36277
36606
  capName: "terminal-session",
36278
36607
  capScope: "system",
@@ -36874,6 +37203,7 @@ var KNOWN_CAP_NAMES = [
36874
37203
  "sso-bridge",
36875
37204
  "storage",
36876
37205
  "storage-evictable",
37206
+ "storage-migration",
36877
37207
  "storage-provider",
36878
37208
  "stream-broker",
36879
37209
  "stream-catalog",
@@ -37014,6 +37344,7 @@ var SYSTEM_CAP_NAMES = [
37014
37344
  "sso-bridge",
37015
37345
  "storage",
37016
37346
  "storage-evictable",
37347
+ "storage-migration",
37017
37348
  "storage-provider",
37018
37349
  "stream-broker",
37019
37350
  "system",
@@ -37349,7 +37680,6 @@ function createSystemProxy(api) {
37349
37680
  deleteIdentity: (input) => dispatch("faceGallery", "deleteIdentity", "mutation", input),
37350
37681
  listIdentitySamples: (input) => dispatch("faceGallery", "listIdentitySamples", "query", input),
37351
37682
  removeSample: (input) => dispatch("faceGallery", "removeSample", "mutation", input),
37352
- listRecentFaces: (input) => dispatch("faceGallery", "listRecentFaces", "query", input),
37353
37683
  getFaceMedia: (input) => dispatch("faceGallery", "getFaceMedia", "query", input),
37354
37684
  assignFace: (input) => dispatch("faceGallery", "assignFace", "mutation", input),
37355
37685
  unassignFace: (input) => dispatch("faceGallery", "unassignFace", "mutation", input),
@@ -37467,7 +37797,10 @@ function createSystemProxy(api) {
37467
37797
  deleteTarget: (input) => dispatch("notificationOutput", "deleteTarget", "mutation", input),
37468
37798
  setTargetEnabled: (input) => dispatch("notificationOutput", "setTargetEnabled", "mutation", input)
37469
37799
  },
37470
- osdManager: { getConditionSupport: (input) => dispatch("osdManager", "getConditionSupport", "query", input) },
37800
+ osdManager: {
37801
+ getConditionSupport: (input) => dispatch("osdManager", "getConditionSupport", "query", input),
37802
+ copyDeviceConfiguration: (input) => dispatch("osdManager", "copyDeviceConfiguration", "mutation", input)
37803
+ },
37471
37804
  pipelineExecutor: {
37472
37805
  getAvailableEngines: (input) => dispatch("pipelineExecutor", "getAvailableEngines", "query", input),
37473
37806
  getSelectedEngine: (input) => dispatch("pipelineExecutor", "getSelectedEngine", "query", input),
@@ -37505,6 +37838,8 @@ function createSystemProxy(api) {
37505
37838
  getDetectionConfigSchema: (input) => dispatch("pipelineExecutor", "getDetectionConfigSchema", "query", input)
37506
37839
  },
37507
37840
  pipelineOrchestrator: {
37841
+ pauseForStorageMigration: (input) => dispatch("pipelineOrchestrator", "pauseForStorageMigration", "mutation", input),
37842
+ resumeForStorageMigration: (input) => dispatch("pipelineOrchestrator", "resumeForStorageMigration", "mutation", input),
37508
37843
  rebalance: (input) => dispatch("pipelineOrchestrator", "rebalance", "mutation", input),
37509
37844
  getPipelineAssignments: (input) => dispatch("pipelineOrchestrator", "getPipelineAssignments", "query", input),
37510
37845
  getAgentLoad: (input) => dispatch("pipelineOrchestrator", "getAgentLoad", "query", input),
@@ -37559,9 +37894,12 @@ function createSystemProxy(api) {
37559
37894
  recording: {
37560
37895
  getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input),
37561
37896
  listOpsLog: (input) => dispatch("recording", "listOpsLog", "query", input),
37562
- relocateFootage: (input) => dispatch("recording", "relocateFootage", "mutation", input),
37563
- getRelocateStatus: (input) => dispatch("recording", "getRelocateStatus", "query", input),
37564
- cancelRelocate: (input) => dispatch("recording", "cancelRelocate", "mutation", input)
37897
+ pauseForStorageMigration: (input) => dispatch("recording", "pauseForStorageMigration", "mutation", input),
37898
+ resumeForStorageMigration: (input) => dispatch("recording", "resumeForStorageMigration", "mutation", input),
37899
+ refreshStorageLocationsForMigration: (input) => dispatch("recording", "refreshStorageLocationsForMigration", "mutation", input),
37900
+ startStorageMigrationMove: (input) => dispatch("recording", "startStorageMigrationMove", "mutation", input),
37901
+ getStorageMigrationMoveStatus: (input) => dispatch("recording", "getStorageMigrationMoveStatus", "query", input),
37902
+ cancelStorageMigrationMove: (input) => dispatch("recording", "cancelStorageMigrationMove", "mutation", input)
37565
37903
  },
37566
37904
  recordingExport: {
37567
37905
  getExport: (input) => dispatch("recordingExport", "getExport", "query", input),
@@ -37614,6 +37952,12 @@ function createSystemProxy(api) {
37614
37952
  listProviders: (input) => dispatch("storage", "listProviders", "query", input),
37615
37953
  testConfig: (input) => dispatch("storage", "testConfig", "query", input)
37616
37954
  },
37955
+ storageMigration: {
37956
+ plan: (input) => dispatch("storageMigration", "plan", "query", input),
37957
+ start: (input) => dispatch("storageMigration", "start", "mutation", input),
37958
+ status: (input) => dispatch("storageMigration", "status", "query", input),
37959
+ cancel: (input) => dispatch("storageMigration", "cancel", "mutation", input)
37960
+ },
37617
37961
  streamBroker: {
37618
37962
  fetchEventMedia: (input) => dispatch("streamBroker", "fetchEventMedia", "mutation", input),
37619
37963
  listAllCameraStreams: (input) => dispatch("streamBroker", "listAllCameraStreams", "query", input),
@@ -37653,6 +37997,12 @@ function createSystemProxy(api) {
37653
37997
  },
37654
37998
  terminalSession: {
37655
37999
  listProfiles: (input) => dispatch("terminalSession", "listProfiles", "query", input),
38000
+ listInstances: (input) => dispatch("terminalSession", "listInstances", "query", input),
38001
+ createInstance: (input) => dispatch("terminalSession", "createInstance", "mutation", input),
38002
+ deleteInstance: (input) => dispatch("terminalSession", "deleteInstance", "mutation", input),
38003
+ setInstanceEnabled: (input) => dispatch("terminalSession", "setInstanceEnabled", "mutation", input),
38004
+ listLegacyCameras: (input) => dispatch("terminalSession", "listLegacyCameras", "query", input),
38005
+ adoptLegacyMonitor: (input) => dispatch("terminalSession", "adoptLegacyMonitor", "mutation", input),
37656
38006
  listSessions: (input) => dispatch("terminalSession", "listSessions", "query", input),
37657
38007
  openSession: (input) => dispatch("terminalSession", "openSession", "mutation", input),
37658
38008
  resize: (input) => dispatch("terminalSession", "resize", "mutation", input),
@@ -40540,6 +40890,7 @@ exports.RecordingStorageUsageSchema = RecordingStorageUsageSchema;
40540
40890
  exports.RecordingTriggersSchema = RecordingTriggersSchema;
40541
40891
  exports.RecordingWeekdaySchema = RecordingWeekdaySchema;
40542
40892
  exports.RedirectLoginMethodSchema = RedirectLoginMethodSchema;
40893
+ exports.RelocateFootageClassSchema = RelocateFootageClassSchema;
40543
40894
  exports.RelocateFootageInputSchema = RelocateFootageInputSchema;
40544
40895
  exports.RelocateJobSchema = RelocateJobSchema;
40545
40896
  exports.RelocateJobStateSchema = RelocateJobStateSchema;
@@ -40627,6 +40978,17 @@ exports.StorageLocationDeclarationSchema = StorageLocationDeclarationSchema;
40627
40978
  exports.StorageLocationRefSchema = StorageLocationRefSchema;
40628
40979
  exports.StorageLocationSchema = StorageLocationSchema;
40629
40980
  exports.StorageLocationTypeSchema = StorageLocationTypeSchema;
40981
+ exports.StorageMigrationClassSchema = StorageMigrationClassSchema;
40982
+ exports.StorageMigrationDestinationsSchema = StorageMigrationDestinationsSchema;
40983
+ exports.StorageMigrationFootageMoveInputSchema = StorageMigrationFootageMoveInputSchema;
40984
+ exports.StorageMigrationInputSchema = StorageMigrationInputSchema;
40985
+ exports.StorageMigrationJobSchema = StorageMigrationJobSchema;
40986
+ exports.StorageMigrationLeaseInputSchema = StorageMigrationLeaseInputSchema;
40987
+ exports.StorageMigrationMediaMoveInputSchema = StorageMigrationMediaMoveInputSchema;
40988
+ exports.StorageMigrationMoveSchema = StorageMigrationMoveSchema;
40989
+ exports.StorageMigrationParticipantSchema = StorageMigrationParticipantSchema;
40990
+ exports.StorageMigrationPhaseSchema = StorageMigrationPhaseSchema;
40991
+ exports.StorageMigrationPlanSchema = StorageMigrationPlanSchema;
40630
40992
  exports.StorageProviderInfoSchema = ProviderInfoSchema;
40631
40993
  exports.StorageReadChunkInputSchema = ReadChunkInputSchema;
40632
40994
  exports.StorageTestLocationResultSchema = TestLocationResultSchema;
@@ -40660,6 +41022,8 @@ exports.TargetKindLevelSchema = TargetKindLevelSchema;
40660
41022
  exports.TargetKindSchema = TargetKindSchema;
40661
41023
  exports.TargetSchema = TargetSchema;
40662
41024
  exports.TemperatureSensorStatusSchema = TemperatureSensorStatusSchema;
41025
+ exports.TerminalInstanceInfoSchema = TerminalInstanceInfoSchema;
41026
+ exports.TerminalLegacyCameraSchema = TerminalLegacyCameraSchema;
40663
41027
  exports.TerminalOutputBatchSchema = TerminalOutputBatchSchema;
40664
41028
  exports.TerminalOutputEventSchema = TerminalOutputEventSchema;
40665
41029
  exports.TerminalProfileInfoSchema = TerminalProfileInfoSchema;
@@ -41045,6 +41409,7 @@ exports.startReachabilityPoll = startReachabilityPoll;
41045
41409
  exports.stateVocabularyFor = stateVocabularyFor;
41046
41410
  exports.storageCapability = storageCapability;
41047
41411
  exports.storageEvictableCapability = storageEvictableCapability;
41412
+ exports.storageMigrationCapability = storageMigrationCapability;
41048
41413
  exports.storageProviderCapability = storageProviderCapability;
41049
41414
  exports.streamBrokerCapability = streamBrokerCapability;
41050
41415
  exports.streamCatalogCapability = streamCatalogCapability;