@camstack/system 1.2.77 → 1.2.78

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.
Files changed (55) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  8. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  9. package/dist/builtins/console-logging/index.js +1 -1
  10. package/dist/builtins/console-logging/index.mjs +1 -1
  11. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  12. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  13. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  14. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  15. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  16. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  17. package/dist/builtins/hub-forwarder/index.js +1 -1
  18. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  19. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  20. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  21. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  22. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  23. package/dist/builtins/local-network/local-network.addon.js +1 -1
  24. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  25. package/dist/builtins/loki-logging/index.js +1 -1
  26. package/dist/builtins/loki-logging/index.mjs +1 -1
  27. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  28. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  29. package/dist/builtins/platform-probe/index.js +1 -1
  30. package/dist/builtins/platform-probe/index.mjs +1 -1
  31. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  32. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  33. package/dist/builtins/snapshot/index.js +1 -1
  34. package/dist/builtins/snapshot/index.mjs +1 -1
  35. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  36. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  37. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  38. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  39. package/dist/builtins/storage-orchestrator/index.d.ts +2 -0
  40. package/dist/builtins/storage-orchestrator/index.js +1 -0
  41. package/dist/builtins/storage-orchestrator/index.mjs +2 -2
  42. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +73 -0
  43. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +2 -0
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +468 -8
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +468 -9
  46. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +7 -0
  47. package/dist/builtins/system-config/system-config.addon.js +1 -1
  48. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  49. package/dist/builtins/winston-logging/index.js +1 -1
  50. package/dist/builtins/winston-logging/index.mjs +1 -1
  51. package/dist/{dist-eBPa-ZBZ.mjs → dist-CIIFhXqm.mjs} +367 -46
  52. package/dist/{dist-DWZce90k.js → dist-cINpngi1.js} +378 -45
  53. package/dist/index.js +1 -1
  54. package/dist/index.mjs +2 -2
  55. package/package.json +4 -1
@@ -3681,12 +3681,11 @@ var RecordingConfigSchema = z.object({
3681
3681
  /**
3682
3682
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
3683
3683
  *
3684
- * One shape shared by the recorder's `relocateFootage` (segments) and
3685
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
3686
- * page renders both movers with one component. Jobs are in-RAM (a restart
3687
- * forgets them re-running is safe by construction: copy-if-absent, delete
3688
- * after verify) and each completed/failed run also lands one durable ops-log
3689
- * row on the owning addon's surface.
3684
+ * One shape shared by the recorder and pipeline-analytics internal movers.
3685
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
3686
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
3687
+ * Each completed/failed run also lands one durable ops-log row on its owning
3688
+ * addon surface.
3690
3689
  */
3691
3690
  var RelocateJobStateSchema = z.enum([
3692
3691
  "running",
@@ -3713,19 +3712,100 @@ var RelocateJobSchema = z.object({
3713
3712
  finishedAt: z.number().nullable(),
3714
3713
  error: z.string().nullable()
3715
3714
  });
3715
+ /** Profile-derived footage selection used only by the migration coordinator:
3716
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
3717
+ var RelocateFootageClassSchema = z.enum(["recordings", "recordingsLow"]);
3716
3718
  var RelocateFootageInputSchema = z.object({
3717
- deviceId: z.number().optional(),
3718
3719
  fromLocationId: z.string(),
3719
3720
  toLocationId: z.string(),
3720
3721
  entities: z.array(z.enum(["segments"])).optional(),
3722
+ /** Limits relocation to the logical profile class. Omit only for the
3723
+ * pre-orchestration compatibility path. */
3724
+ footageClass: RelocateFootageClassSchema.optional(),
3721
3725
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
3722
3726
  * never allowed to starve live writers. */
3723
3727
  throttleMbps: z.number().min(1).max(1e3).optional()
3724
3728
  });
3725
- var RelocateMediaInputSchema = z.object({
3726
- deviceId: z.number().optional(),
3729
+ /** Internal, lease-scoped participant operation. It is intentionally separate
3730
+ * from persistent recording settings: a migration never changes
3731
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
3732
+ var StorageMigrationLeaseInputSchema = z.object({ leaseId: z.string().min(1) });
3733
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: z.string().min(1) });
3734
+ var StorageMigrationMediaMoveInputSchema = z.object({
3727
3735
  toLocationId: z.string(),
3728
3736
  throttleMbps: z.number().min(1).max(1e3).optional()
3737
+ }).extend({ leaseId: z.string().min(1) });
3738
+ /** The independently selectable logical storage classes. `recordings`
3739
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
3740
+ * segments; `eventMedia` is post-analysis blobs. */
3741
+ var StorageMigrationClassSchema = z.enum([
3742
+ "recordings",
3743
+ "recordingsLow",
3744
+ "eventMedia"
3745
+ ]);
3746
+ /** A destination is always an existing, fully-qualified location id. The
3747
+ * migration API intentionally never changes a source location's `basePath`:
3748
+ * callers create a new `<type>:<slug>` location, then select it here. */
3749
+ var StorageMigrationDestinationsSchema = z.object({
3750
+ recordings: z.string().min(1).optional(),
3751
+ recordingsLow: z.string().min(1).optional(),
3752
+ eventMedia: z.string().min(1).optional()
3753
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
3754
+ /** Shared input for planning and starting an orchestrated storage migration. */
3755
+ var StorageMigrationInputSchema = z.object({
3756
+ destinations: StorageMigrationDestinationsSchema,
3757
+ throttleMbps: z.number().min(1).max(1e3).optional()
3758
+ });
3759
+ /** The durable coordinator state machine. The only phase that changes default
3760
+ * locations is `repointing`, after every selected mover has completed and been
3761
+ * verified. */
3762
+ var StorageMigrationPhaseSchema = z.enum([
3763
+ "planning",
3764
+ "pausing",
3765
+ "moving",
3766
+ "verifying",
3767
+ "repointing",
3768
+ "refreshing",
3769
+ "resuming",
3770
+ "done",
3771
+ "failed",
3772
+ "cancelled"
3773
+ ]);
3774
+ var StorageMigrationParticipantSchema = z.enum([
3775
+ "pipeline",
3776
+ "recorder",
3777
+ "analytics"
3778
+ ]);
3779
+ var StorageMigrationMoveSchema = z.object({
3780
+ storageClass: StorageMigrationClassSchema,
3781
+ fromLocationId: z.string(),
3782
+ toLocationId: z.string(),
3783
+ moverJobId: z.string().nullable(),
3784
+ state: RelocateJobStateSchema.nullable(),
3785
+ error: z.string().nullable()
3786
+ });
3787
+ var StorageMigrationJobSchema = z.object({
3788
+ jobId: z.string(),
3789
+ phase: StorageMigrationPhaseSchema,
3790
+ destinations: StorageMigrationDestinationsSchema,
3791
+ throttleMbps: z.number(),
3792
+ moves: z.array(StorageMigrationMoveSchema),
3793
+ pauseLeaseId: z.string().nullable(),
3794
+ pausedParticipants: z.array(StorageMigrationParticipantSchema),
3795
+ repointed: z.boolean(),
3796
+ cancelRequested: z.boolean(),
3797
+ startedAt: z.number(),
3798
+ updatedAt: z.number(),
3799
+ finishedAt: z.number().nullable(),
3800
+ error: z.string().nullable()
3801
+ });
3802
+ var StorageMigrationPlanSchema = z.object({
3803
+ destinations: StorageMigrationDestinationsSchema,
3804
+ moves: z.array(z.object({
3805
+ storageClass: StorageMigrationClassSchema,
3806
+ fromLocationId: z.string(),
3807
+ toLocationId: z.string()
3808
+ }))
3729
3809
  });
3730
3810
  /**
3731
3811
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -14451,20 +14531,28 @@ var pipelineAnalyticsCapability = {
14451
14531
  }),
14452
14532
  /** The events ops-log rows (newest-first), optionally scoped to one camera.
14453
14533
  * Backed by a declared pipeline-analytics SQLite collection. */
14454
- /**
14455
- * Move event-media blobs onto `toLocationId` (entity-routing spec Phase
14456
- * 4): per-row copy → stamp row.locationId delete old blob. Rows already
14457
- * at the target are skipped, so a re-run resumes. Single-flight.
14458
- */
14459
- relocateMedia: method(RelocateMediaInputSchema, z.object({ jobId: z.string() }), {
14534
+ /** Internal migration-participant lease. It drains active MediaStore
14535
+ * writes and refuses new ones without changing analytics bindings. */
14536
+ pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ paused: z.literal(true) }), {
14460
14537
  kind: "mutation",
14461
14538
  auth: "admin"
14462
14539
  }),
14463
- getMediaRelocateStatus: method(z.object({}), z.array(RelocateJobSchema).readonly(), {
14464
- kind: "query",
14540
+ resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ resumed: z.literal(true) }), {
14541
+ kind: "mutation",
14465
14542
  auth: "admin"
14466
14543
  }),
14467
- cancelMediaRelocate: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
14544
+ /** Drops cached location roots after the storage coordinator repoints a
14545
+ * default so future event-media writes use the new root. */
14546
+ refreshStorageLocationsForMigration: method(StorageMigrationLeaseInputSchema, z.object({ refreshed: z.literal(true) }), {
14547
+ kind: "mutation",
14548
+ auth: "admin"
14549
+ }),
14550
+ startStorageMigrationMove: method(StorageMigrationMediaMoveInputSchema, z.object({ jobId: z.string() }), {
14551
+ kind: "mutation",
14552
+ auth: "admin"
14553
+ }),
14554
+ getStorageMigrationMoveStatus: method(z.object({ jobId: z.string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
14555
+ cancelStorageMigrationMove: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
14468
14556
  kind: "mutation",
14469
14557
  auth: "admin"
14470
14558
  }),
@@ -16542,6 +16630,16 @@ var pipelineOrchestratorCapability = {
16542
16630
  nodeIdMode: "data",
16543
16631
  exposesDeviceSettings: true,
16544
16632
  methods: {
16633
+ /** Internal storage-migration participant lease. While held, dispatch
16634
+ * requests are accepted as pending but no new runner attachment starts. */
16635
+ pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ paused: z.literal(true) }), {
16636
+ kind: "mutation",
16637
+ auth: "admin"
16638
+ }),
16639
+ resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ resumed: z.literal(true) }), {
16640
+ kind: "mutation",
16641
+ auth: "admin"
16642
+ }),
16545
16643
  /**
16546
16644
  * Pin a camera's pipeline to a specific agent (L1 affinity).
16547
16645
  * The orchestrator re-evaluates the assignment immediately and persists
@@ -17707,6 +17805,28 @@ var storageEvictableCapability = {
17707
17805
  }), EvictResultSchema, { kind: "mutation" })
17708
17806
  }
17709
17807
  };
17808
+ /**
17809
+ * The single operator-facing storage migration surface. It coordinates the
17810
+ * pipeline, recorder and post-analysis participants; callers never mutate a
17811
+ * camera recording config or invoke an individual mover directly.
17812
+ */
17813
+ var storageMigrationCapability = {
17814
+ name: "storage-migration",
17815
+ scope: "system",
17816
+ mode: "singleton",
17817
+ methods: {
17818
+ plan: method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }),
17819
+ start: method(StorageMigrationInputSchema, z.object({ jobId: z.string() }), {
17820
+ kind: "mutation",
17821
+ auth: "admin"
17822
+ }),
17823
+ status: method(z.object({ jobId: z.string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }),
17824
+ cancel: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
17825
+ kind: "mutation",
17826
+ auth: "admin"
17827
+ })
17828
+ }
17829
+ };
17710
17830
  var ProviderInfoSchema = z.discriminatedUnion("shouldSaveDiskSpace", [z.object({
17711
17831
  providerId: z.string().min(1),
17712
17832
  displayName: z.string().min(1),
@@ -17855,6 +17975,28 @@ var TerminalProfileInfoSchema = z.object({
17855
17975
  label: z.string(),
17856
17976
  description: z.string().optional()
17857
17977
  });
17978
+ /**
17979
+ * A durable operator-created Terminal instance. Profiles are templates; only
17980
+ * an instance declares a camera.
17981
+ */
17982
+ var TerminalInstanceInfoSchema = z.object({
17983
+ instanceId: z.string(),
17984
+ cameraStableId: z.string(),
17985
+ nodeId: z.string(),
17986
+ profileId: z.string(),
17987
+ profileLabel: z.string(),
17988
+ name: z.string(),
17989
+ enabled: z.boolean()
17990
+ });
17991
+ var TerminalLegacyCameraSchema = z.object({
17992
+ stableId: z.string(),
17993
+ nodeId: z.string(),
17994
+ profileId: z.string(),
17995
+ profileLabel: z.string(),
17996
+ name: z.string(),
17997
+ /** Only legacy monitor cameras can retain their historic stable identity. */
17998
+ adoptable: z.boolean()
17999
+ });
17858
18000
  var TerminalOutputEventSchema = z.discriminatedUnion("kind", [z.object({
17859
18001
  seq: z.number().int().positive(),
17860
18002
  kind: z.literal("data"),
@@ -17874,10 +18016,9 @@ var TerminalOutputBatchSchema = z.object({
17874
18016
  /**
17875
18017
  * terminal-session — singleton system capability for interactive TTY sessions.
17876
18018
  *
17877
- * Phase 1 (this cap): open/resize/close/list a pty running an allowlisted
17878
- * profile, streamed to xterm.js over the data plane. Phase 2 (streaming a
17879
- * session as a camera) is a separate device-provider concern and does not
17880
- * change this contract.
18019
+ * Owns both live PTY lifecycle and durable Terminal instance management.
18020
+ * Profiles are allowlisted templates; an explicit instance is the only path
18021
+ * that declares a camera.
17881
18022
  */
17882
18023
  var terminalSessionCapability = {
17883
18024
  name: "terminal-session",
@@ -17886,6 +18027,37 @@ var terminalSessionCapability = {
17886
18027
  methods: {
17887
18028
  /** Pre-declared profiles the operator may open. */
17888
18029
  listProfiles: method(z.void(), z.array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18030
+ /** Explicit durable Terminal instances, managed centrally on the hub. */
18031
+ listInstances: method(z.void(), z.array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }),
18032
+ createInstance: method(z.object({
18033
+ targetNodeId: z.string().min(1),
18034
+ profileId: z.string().min(1),
18035
+ name: z.string().trim().min(1).max(160).optional()
18036
+ }), TerminalInstanceInfoSchema, {
18037
+ kind: "mutation",
18038
+ auth: "admin"
18039
+ }),
18040
+ deleteInstance: method(z.object({ instanceId: z.string().min(1) }), z.void(), {
18041
+ kind: "mutation",
18042
+ auth: "admin"
18043
+ }),
18044
+ setInstanceEnabled: method(z.object({
18045
+ instanceId: z.string().min(1),
18046
+ enabled: z.boolean()
18047
+ }), TerminalInstanceInfoSchema, {
18048
+ kind: "mutation",
18049
+ auth: "admin"
18050
+ }),
18051
+ /** Existing automatic cameras are shown for explicit migration only. */
18052
+ listLegacyCameras: method(z.void(), z.array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }),
18053
+ /** Explicitly adopt one legacy monitor camera, retaining its stable id. */
18054
+ adoptLegacyMonitor: method(z.object({
18055
+ stableId: z.string().min(1),
18056
+ name: z.string().trim().min(1).max(160).optional()
18057
+ }), TerminalInstanceInfoSchema, {
18058
+ kind: "mutation",
18059
+ auth: "admin"
18060
+ }),
17889
18061
  /** Live sessions currently hosted by the provider. */
17890
18062
  listSessions: method(z.void(), z.array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }),
17891
18063
  /**
@@ -17917,7 +18089,13 @@ var terminalSessionCapability = {
17917
18089
  pullOutput: method(z.object({
17918
18090
  sessionId: z.string(),
17919
18091
  afterSeq: z.number().int().nonnegative(),
17920
- waitMs: z.number().int().min(0).max(2e3).default(0)
18092
+ waitMs: z.number().int().min(0).max(2e3).default(0),
18093
+ /**
18094
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18095
+ * browser's initial repaint remains immediate; the camera snapshot
18096
+ * relay uses it to avoid encoding a blank startup frame.
18097
+ */
18098
+ waitForOutput: z.boolean().optional()
17921
18099
  }), TerminalOutputBatchSchema, {
17922
18100
  kind: "mutation",
17923
18101
  auth: "admin",
@@ -20921,6 +21099,7 @@ var FaceInfoSchema = z.object({
20921
21099
  var FaceFilterEnum = z.enum([
20922
21100
  "unassigned",
20923
21101
  "recognized",
21102
+ "identified",
20924
21103
  "all"
20925
21104
  ]);
20926
21105
  var MediaFileLiteSchema$1 = z.object({
@@ -20960,6 +21139,8 @@ var faceGalleryCapability = {
20960
21139
  auth: "admin"
20961
21140
  }),
20962
21141
  listRecentFaces: method(z.object({
21142
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21143
+ deviceId: z.number().int().optional(),
20963
21144
  limit: z.number().int().positive().optional(),
20964
21145
  filter: FaceFilterEnum.optional(),
20965
21146
  /**
@@ -23531,6 +23712,10 @@ var OsdSourceSchema = z.discriminatedUnion("kind", [
23531
23712
  capName: z.string().min(1).max(64),
23532
23713
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23533
23714
  valuePath: z.string().min(1).max(64)
23715
+ }),
23716
+ z.object({
23717
+ kind: z.literal("latest-recognition"),
23718
+ recognition: z.enum(["person", "plate"])
23534
23719
  })
23535
23720
  ]);
23536
23721
  var OsdSlotBindingSchema = z.object({
@@ -23669,6 +23854,21 @@ var osdManagerCapability = {
23669
23854
  auth: "admin"
23670
23855
  }),
23671
23856
  /**
23857
+ * Replace one camera's binding configuration from another. Writable source
23858
+ * slots are mapped by ordinal onto writable target slots so different
23859
+ * provider slot ids do not make the copied configuration disappear.
23860
+ */
23861
+ copyDeviceConfiguration: method(z.object({
23862
+ sourceDeviceId: z.number().int(),
23863
+ targetDeviceId: z.number().int()
23864
+ }), z.object({
23865
+ copied: z.number().int().nonnegative(),
23866
+ skipped: z.number().int().nonnegative()
23867
+ }), {
23868
+ kind: "mutation",
23869
+ auth: "admin"
23870
+ }),
23871
+ /**
23672
23872
  * Render without writing. `binding` overrides the stored one so an
23673
23873
  * editor can preview an unsaved change. Mutation kind only to carry
23674
23874
  * the binding object safely; no side effects.
@@ -24942,12 +25142,6 @@ var recordingCapability = {
24942
25142
  auth: "admin"
24943
25143
  }),
24944
25144
  /**
24945
- * Move footage (recorded segments) from one recordings location to
24946
- * another — the drain workflow's mover (entity-routing spec Phase 4).
24947
- * Throttled copy → size-verify → delete source → index refresh; resumable
24948
- * by construction (copy-if-absent). Single-flight: one job at a time.
24949
- */
24950
- /**
24951
25145
  * Render a short GIF from recorded footage around `aroundMs` (low profile,
24952
25146
  * palette-free ffmpeg gif). Synchronous — the window is a few seconds of
24953
25147
  * `low`, rendering in ~1-2s. Built for notification attachments: the
@@ -24999,16 +25193,28 @@ var recordingCapability = {
24999
25193
  kind: "mutation",
25000
25194
  auth: "admin"
25001
25195
  }),
25002
- relocateFootage: method(RelocateFootageInputSchema, z.object({ jobId: z.string() }), {
25196
+ /** Internal migration-participant lease. Blocks new recorder attaches and
25197
+ * waits for writers to exit while their watchers index final segments. */
25198
+ pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ paused: z.literal(true) }), {
25003
25199
  kind: "mutation",
25004
25200
  auth: "admin"
25005
25201
  }),
25006
- /** Every known relocate job (in-RAM, newest-first). */
25007
- getRelocateStatus: method(z.object({}), z.array(RelocateJobSchema).readonly(), {
25008
- kind: "query",
25202
+ resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ resumed: z.literal(true) }), {
25203
+ kind: "mutation",
25204
+ auth: "admin"
25205
+ }),
25206
+ /** Re-resolve location roots after the coordinator changes defaults. */
25207
+ refreshStorageLocationsForMigration: method(StorageMigrationLeaseInputSchema, z.object({ refreshed: z.literal(true) }), {
25208
+ kind: "mutation",
25209
+ auth: "admin"
25210
+ }),
25211
+ /** Internal mover, callable only by the storage-migration coordinator. */
25212
+ startStorageMigrationMove: method(StorageMigrationFootageMoveInputSchema, z.object({ jobId: z.string() }), {
25213
+ kind: "mutation",
25009
25214
  auth: "admin"
25010
25215
  }),
25011
- cancelRelocate: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
25216
+ getStorageMigrationMoveStatus: method(z.object({ jobId: z.string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
25217
+ cancelStorageMigrationMove: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
25012
25218
  kind: "mutation",
25013
25219
  auth: "admin"
25014
25220
  })
@@ -27560,6 +27766,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
27560
27766
  ssoBridgeCapability,
27561
27767
  storageCapability,
27562
27768
  storageEvictableCapability,
27769
+ storageMigrationCapability,
27563
27770
  storageProviderCapability,
27564
27771
  streamBrokerCapability,
27565
27772
  streamCatalogCapability,
@@ -30486,6 +30693,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30486
30693
  addonId: null,
30487
30694
  access: "delete"
30488
30695
  },
30696
+ "osdManager.copyDeviceConfiguration": {
30697
+ capName: "osd-manager",
30698
+ capScope: "system",
30699
+ addonId: null,
30700
+ access: "create"
30701
+ },
30489
30702
  "osdManager.getConditionSupport": {
30490
30703
  capName: "osd-manager",
30491
30704
  capScope: "system",
@@ -30582,7 +30795,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
30582
30795
  addonId: null,
30583
30796
  access: "create"
30584
30797
  },
30585
- "pipelineAnalytics.cancelMediaRelocate": {
30798
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30586
30799
  capName: "pipeline-analytics",
30587
30800
  capScope: "device",
30588
30801
  addonId: null,
@@ -30654,12 +30867,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
30654
30867
  addonId: null,
30655
30868
  access: "view"
30656
30869
  },
30657
- "pipelineAnalytics.getMediaRelocateStatus": {
30658
- capName: "pipeline-analytics",
30659
- capScope: "device",
30660
- addonId: null,
30661
- access: "view"
30662
- },
30663
30870
  "pipelineAnalytics.getMotionEvents": {
30664
30871
  capName: "pipeline-analytics",
30665
30872
  capScope: "device",
@@ -30696,6 +30903,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30696
30903
  addonId: null,
30697
30904
  access: "view"
30698
30905
  },
30906
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30907
+ capName: "pipeline-analytics",
30908
+ capScope: "device",
30909
+ addonId: null,
30910
+ access: "view"
30911
+ },
30699
30912
  "pipelineAnalytics.getTrack": {
30700
30913
  capName: "pipeline-analytics",
30701
30914
  capScope: "device",
@@ -30774,6 +30987,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30774
30987
  addonId: null,
30775
30988
  access: "view"
30776
30989
  },
30990
+ "pipelineAnalytics.pauseForStorageMigration": {
30991
+ capName: "pipeline-analytics",
30992
+ capScope: "device",
30993
+ addonId: null,
30994
+ access: "create"
30995
+ },
30777
30996
  "pipelineAnalytics.proposeRetrainAnnotations": {
30778
30997
  capName: "pipeline-analytics",
30779
30998
  capScope: "device",
@@ -30804,7 +31023,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
30804
31023
  addonId: null,
30805
31024
  access: "create"
30806
31025
  },
30807
- "pipelineAnalytics.relocateMedia": {
31026
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30808
31027
  capName: "pipeline-analytics",
30809
31028
  capScope: "device",
30810
31029
  addonId: null,
@@ -30816,6 +31035,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30816
31035
  addonId: null,
30817
31036
  access: "create"
30818
31037
  },
31038
+ "pipelineAnalytics.resumeForStorageMigration": {
31039
+ capName: "pipeline-analytics",
31040
+ capScope: "device",
31041
+ addonId: null,
31042
+ access: "create"
31043
+ },
30819
31044
  "pipelineAnalytics.saveRetrainAnnotations": {
30820
31045
  capName: "pipeline-analytics",
30821
31046
  capScope: "device",
@@ -30840,6 +31065,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30840
31065
  addonId: null,
30841
31066
  access: "create"
30842
31067
  },
31068
+ "pipelineAnalytics.startStorageMigrationMove": {
31069
+ capName: "pipeline-analytics",
31070
+ capScope: "device",
31071
+ addonId: null,
31072
+ access: "create"
31073
+ },
30843
31074
  "pipelineAnalytics.wipeAllAnalytics": {
30844
31075
  capName: "pipeline-analytics",
30845
31076
  capScope: "device",
@@ -31206,6 +31437,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
31206
31437
  addonId: null,
31207
31438
  access: "view"
31208
31439
  },
31440
+ "pipelineOrchestrator.pauseForStorageMigration": {
31441
+ capName: "pipeline-orchestrator",
31442
+ capScope: "system",
31443
+ addonId: null,
31444
+ access: "create"
31445
+ },
31209
31446
  "pipelineOrchestrator.rebalance": {
31210
31447
  capName: "pipeline-orchestrator",
31211
31448
  capScope: "system",
@@ -31230,6 +31467,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
31230
31467
  addonId: null,
31231
31468
  access: "view"
31232
31469
  },
31470
+ "pipelineOrchestrator.resumeForStorageMigration": {
31471
+ capName: "pipeline-orchestrator",
31472
+ capScope: "system",
31473
+ addonId: null,
31474
+ access: "create"
31475
+ },
31233
31476
  "pipelineOrchestrator.saveTemplate": {
31234
31477
  capName: "pipeline-orchestrator",
31235
31478
  capScope: "system",
@@ -31626,7 +31869,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
31626
31869
  addonId: null,
31627
31870
  access: "create"
31628
31871
  },
31629
- "recording.cancelRelocate": {
31872
+ "recording.cancelStorageMigrationMove": {
31630
31873
  capName: "recording",
31631
31874
  capScope: "system",
31632
31875
  addonId: null,
@@ -31662,7 +31905,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
31662
31905
  addonId: null,
31663
31906
  access: "view"
31664
31907
  },
31665
- "recording.getRelocateStatus": {
31908
+ "recording.getStorageMigrationMoveStatus": {
31666
31909
  capName: "recording",
31667
31910
  capScope: "system",
31668
31911
  addonId: null,
@@ -31686,6 +31929,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
31686
31929
  addonId: null,
31687
31930
  access: "view"
31688
31931
  },
31932
+ "recording.pauseForStorageMigration": {
31933
+ capName: "recording",
31934
+ capScope: "system",
31935
+ addonId: null,
31936
+ access: "create"
31937
+ },
31689
31938
  "recording.pruneFootage": {
31690
31939
  capName: "recording",
31691
31940
  capScope: "system",
@@ -31704,7 +31953,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
31704
31953
  addonId: null,
31705
31954
  access: "view"
31706
31955
  },
31707
- "recording.relocateFootage": {
31956
+ "recording.refreshStorageLocationsForMigration": {
31708
31957
  capName: "recording",
31709
31958
  capScope: "system",
31710
31959
  addonId: null,
@@ -31728,12 +31977,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
31728
31977
  addonId: null,
31729
31978
  access: "create"
31730
31979
  },
31980
+ "recording.resumeForStorageMigration": {
31981
+ capName: "recording",
31982
+ capScope: "system",
31983
+ addonId: null,
31984
+ access: "create"
31985
+ },
31731
31986
  "recording.setDeviceConfig": {
31732
31987
  capName: "recording",
31733
31988
  capScope: "system",
31734
31989
  addonId: null,
31735
31990
  access: "create"
31736
31991
  },
31992
+ "recording.startStorageMigrationMove": {
31993
+ capName: "recording",
31994
+ capScope: "system",
31995
+ addonId: null,
31996
+ access: "create"
31997
+ },
31737
31998
  "recordingExport.cancelExport": {
31738
31999
  capName: "recordingExport",
31739
32000
  capScope: "system",
@@ -32124,6 +32385,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
32124
32385
  addonId: null,
32125
32386
  access: "view"
32126
32387
  },
32388
+ "storageMigration.cancel": {
32389
+ capName: "storage-migration",
32390
+ capScope: "system",
32391
+ addonId: null,
32392
+ access: "create"
32393
+ },
32394
+ "storageMigration.plan": {
32395
+ capName: "storage-migration",
32396
+ capScope: "system",
32397
+ addonId: null,
32398
+ access: "view"
32399
+ },
32400
+ "storageMigration.start": {
32401
+ capName: "storage-migration",
32402
+ capScope: "system",
32403
+ addonId: null,
32404
+ access: "create"
32405
+ },
32406
+ "storageMigration.status": {
32407
+ capName: "storage-migration",
32408
+ capScope: "system",
32409
+ addonId: null,
32410
+ access: "view"
32411
+ },
32127
32412
  "storageProvider.abortUpload": {
32128
32413
  capName: "storage-provider",
32129
32414
  capScope: "system",
@@ -32502,12 +32787,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
32502
32787
  addonId: null,
32503
32788
  access: "create"
32504
32789
  },
32790
+ "terminalSession.adoptLegacyMonitor": {
32791
+ capName: "terminal-session",
32792
+ capScope: "system",
32793
+ addonId: null,
32794
+ access: "create"
32795
+ },
32505
32796
  "terminalSession.close": {
32506
32797
  capName: "terminal-session",
32507
32798
  capScope: "system",
32508
32799
  addonId: null,
32509
32800
  access: "create"
32510
32801
  },
32802
+ "terminalSession.createInstance": {
32803
+ capName: "terminal-session",
32804
+ capScope: "system",
32805
+ addonId: null,
32806
+ access: "create"
32807
+ },
32808
+ "terminalSession.deleteInstance": {
32809
+ capName: "terminal-session",
32810
+ capScope: "system",
32811
+ addonId: null,
32812
+ access: "delete"
32813
+ },
32814
+ "terminalSession.listInstances": {
32815
+ capName: "terminal-session",
32816
+ capScope: "system",
32817
+ addonId: null,
32818
+ access: "view"
32819
+ },
32820
+ "terminalSession.listLegacyCameras": {
32821
+ capName: "terminal-session",
32822
+ capScope: "system",
32823
+ addonId: null,
32824
+ access: "view"
32825
+ },
32511
32826
  "terminalSession.listProfiles": {
32512
32827
  capName: "terminal-session",
32513
32828
  capScope: "system",
@@ -32538,6 +32853,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
32538
32853
  addonId: null,
32539
32854
  access: "create"
32540
32855
  },
32856
+ "terminalSession.setInstanceEnabled": {
32857
+ capName: "terminal-session",
32858
+ capScope: "system",
32859
+ addonId: null,
32860
+ access: "create"
32861
+ },
32541
32862
  "terminalSession.writeInput": {
32542
32863
  capName: "terminal-session",
32543
32864
  capScope: "system",
@@ -33410,4 +33731,4 @@ function enumerateInferenceDevices(hw) {
33410
33731
  return out;
33411
33732
  }
33412
33733
  //#endregion
33413
- export { parseStreamParamsFormPatch as $, deviceManagerCapability as A, expandCapMethods as At, isCollectionArrayMethod as B, EventCategory as Bt, bareAddonId as C, WELL_KNOWN_TAB_MAP as Ct, coreBlocksCapability as D, createEvent as Dt, coreBlockIdFromAddonId as E, asString as Et, enumerateItemArrayFields as F, parseJsonUnknown as Ft, lifecycleJobSchema as G, isSameAddonId as H, enumerateSchemaFields as I, readinessKey as It, logLevelAtMost as J, localNetworkCapability as K, extractNestedAddonId as L, resolveCapMount as Lt, deviceStatusCapability as M, isDeviceConfigCap as Mt, doorbellCapability as N, nodePin as Nt, dataStoreProviderCapability as O, emitDownForOwnedCaps as Ot, enumerateInferenceDevices as P, parseJsonObject as Pt, objectInputDeclaresAddonId as Q, filesystemBrowseCapability as R, scopeKey as Rt, backupCapability as S, ReadinessTimeoutError as St, coreBlockAddonId as T, asNumber as Tt, isVoidInput as U, isObjectInput as V, kebabToCamel as W, metricsProviderCapability as X, looseSchema as Y, normalizeUnit as Z, addonPagesCapability as _, DEVICE_STATUS_METHOD as _t, CAP_NAMES_WITH_STATUS as a, settingsStoreCapability as at, alertsCapability as b, DeviceType as bt, CoreBlockSchema as c, storageProviderCapability as ct, METHOD_ACCESS_MAP as d, vectorDimFromBase64 as dt, platformProbeCapability as et, RUNTIME_DEFAULTS as f, vectorStoreCapability as ft, UserRecordSchema as g, DEVICE_SETTINGS_CONTRIBUTION_METHODS as gt, StorageLocationTypeSchema as h, DATAPLANE_SECRET_HEADER as ht, BatteryStatusSchema as i, scoreRuntimes as it, deviceStateCapability as j, hydrateSchema as jt, decodeVectorBase64 as k, emitReadiness as kt, DeclaredDevices as l, streamQualityLabel as lt, ScopedTokenSchema as m, BaseAddon as mt, AlertSchema as n, scopesAllowAddon as nt, CORE_BLOCKS_ADDON_ID as o, snapshotCapability as ot, STREAM_PROFILE_META as p, errMsg as pt, logDestinationCapability as q, ApiKeyRecordSchema as r, scopesAllowDeviceCap as rt, CORE_BLOCK_ADDON_PREFIX as s, storageCapability as st, ALL_CAPABILITY_DEFINITIONS as t, procedureAuthKey as tt, DeviceStatusSchema as u, userManagementCapability as ut, addonSettingsCapability as v, DeviceFeature as vt, buildStreamParamsConfigSchema as w, asJsonObject as wt, authProviderCapability as x, ReadinessRegistry as xt, addonWidgetsCapability as y, DeviceRole as yt, isArrayOutputSchema as z, sleep as zt };
33734
+ export { objectInputDeclaresAddonId as $, decodeVectorBase64 as A, emitDownForOwnedCaps as At, isArrayOutputSchema as B, scopeKey as Bt, backupCapability as C, ReadinessRegistry as Ct, coreBlockIdFromAddonId as D, asNumber as Dt, coreBlockAddonId as E, asJsonObject as Et, enumerateInferenceDevices as F, nodePin as Ft, kebabToCamel as G, isObjectInput as H, EventCategory as Ht, enumerateItemArrayFields as I, parseJsonObject as It, logDestinationCapability as J, lifecycleJobSchema as K, enumerateSchemaFields as L, parseJsonUnknown as Lt, deviceStateCapability as M, expandCapMethods as Mt, deviceStatusCapability as N, hydrateSchema as Nt, coreBlocksCapability as O, asString as Ot, doorbellCapability as P, isDeviceConfigCap as Pt, normalizeUnit as Q, extractNestedAddonId as R, readinessKey as Rt, authProviderCapability as S, DeviceType as St, buildStreamParamsConfigSchema as T, WELL_KNOWN_TAB_MAP as Tt, isSameAddonId as U, isCollectionArrayMethod as V, sleep as Vt, isVoidInput as W, looseSchema as X, logLevelAtMost as Y, metricsProviderCapability as Z, UserRecordSchema as _, DATAPLANE_SECRET_HEADER as _t, CAP_NAMES_WITH_STATUS as a, scoreRuntimes as at, addonWidgetsCapability as b, DeviceFeature as bt, CoreBlockSchema as c, storageCapability as ct, METHOD_ACCESS_MAP as d, streamQualityLabel as dt, parseStreamParamsFormPatch as et, RUNTIME_DEFAULTS as f, userManagementCapability as ft, StorageMigrationJobSchema as g, BaseAddon as gt, StorageLocationTypeSchema as h, errMsg as ht, BatteryStatusSchema as i, scopesAllowDeviceCap as it, deviceManagerCapability as j, emitReadiness as jt, dataStoreProviderCapability as k, createEvent as kt, DeclaredDevices as l, storageMigrationCapability as lt, ScopedTokenSchema as m, vectorStoreCapability as mt, AlertSchema as n, procedureAuthKey as nt, CORE_BLOCKS_ADDON_ID as o, settingsStoreCapability as ot, STREAM_PROFILE_META as p, vectorDimFromBase64 as pt, localNetworkCapability as q, ApiKeyRecordSchema as r, scopesAllowAddon as rt, CORE_BLOCK_ADDON_PREFIX as s, snapshotCapability as st, ALL_CAPABILITY_DEFINITIONS as t, platformProbeCapability as tt, DeviceStatusSchema as u, storageProviderCapability as ut, addonPagesCapability as v, DEVICE_SETTINGS_CONTRIBUTION_METHODS as vt, bareAddonId as w, ReadinessTimeoutError as wt, alertsCapability as x, DeviceRole as xt, addonSettingsCapability as y, DEVICE_STATUS_METHOD as yt, filesystemBrowseCapability as z, resolveCapMount as zt };