@camstack/addon-provider-homeassistant 1.2.22 → 1.2.24

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/addon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("./dist-B_S4jFT4.js");
2
+ const require_dist = require("./dist-DdViPfpr.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_zlib = require("node:zlib");
5
5
  //#region src/ha-device-source.ts
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as tamperCapability, A as eventEmitterCapability, B as motionCapability, C as connectivityCapability, Ct as url, D as deviceAdoptionCapability, E as coverCapability, F as humiditySensorCapability, H as notificationOutputCapability, I as imageCapability, J as presenceCapability, K as powerMeterCapability, L as lawnMowerControlCapability, M as floodCapability, N as gasCapability, P as humidifierCapability, Q as switchCapability, R as lockControlCapability, S as colorCapability, St as unknown, T as controlCapability, U as notifierCapability, V as normalizeUnit, W as numericSensorCapability, X as scriptRunnerCapability, Y as pressureSensorCapability, Z as smokeCapability, _ as brokerCapability, _t as number, a as EnumSensorDateTimeFormatSchema, at as waterHeaterCapability, b as carbonMonoxideCapability, bt as string, c as addonRoutesCapability, d as ambientLightSensorCapability, dt as DeviceType, et as temperatureSensorCapability, f as automationControlCapability, ft as createEvent, g as brightnessCapability, gt as literal, h as binaryCapability, ht as discriminatedUnion, it as vibrationCapability, j as fanControlCapability, k as enumSensorCapability, l as airQualitySensorCapability, lt as DeviceFeature, m as bestLocationMatch, mt as array, n as BaseDeviceProvider, nt as vacuumControlCapability, o as TargetSchema, ot as weatherCapability, p as batteryCapability, pt as _enum, q as prepareNotification, rt as valveCapability, s as accessoriesCapability, st as errMsg, t as BaseDevice, tt as updateCapability, u as alarmPanelCapability, ut as DeviceRole, v as buildAddonRouteProvider, vt as object, w as contactCapability, wt as EventCategory, x as climateControlCapability, xt as union, y as buttonCapability, yt as record, z as mediaPlayerCapability } from "./dist-CfOPccIv.mjs";
1
+ import { $ as tamperCapability, A as eventEmitterCapability, B as motionCapability, C as connectivityCapability, Ct as url, D as deviceAdoptionCapability, E as coverCapability, F as humiditySensorCapability, H as notificationOutputCapability, I as imageCapability, J as presenceCapability, K as powerMeterCapability, L as lawnMowerControlCapability, M as floodCapability, N as gasCapability, P as humidifierCapability, Q as switchCapability, R as lockControlCapability, S as colorCapability, St as unknown, T as controlCapability, U as notifierCapability, V as normalizeUnit, W as numericSensorCapability, X as scriptRunnerCapability, Y as pressureSensorCapability, Z as smokeCapability, _ as brokerCapability, _t as number, a as EnumSensorDateTimeFormatSchema, at as waterHeaterCapability, b as carbonMonoxideCapability, bt as string, c as addonRoutesCapability, d as ambientLightSensorCapability, dt as DeviceType, et as temperatureSensorCapability, f as automationControlCapability, ft as createEvent, g as brightnessCapability, gt as literal, h as binaryCapability, ht as discriminatedUnion, it as vibrationCapability, j as fanControlCapability, k as enumSensorCapability, l as airQualitySensorCapability, lt as DeviceFeature, m as bestLocationMatch, mt as array, n as BaseDeviceProvider, nt as vacuumControlCapability, o as TargetSchema, ot as weatherCapability, p as batteryCapability, pt as _enum, q as prepareNotification, rt as valveCapability, s as accessoriesCapability, st as errMsg, t as BaseDevice, tt as updateCapability, u as alarmPanelCapability, ut as DeviceRole, v as buildAddonRouteProvider, vt as object, w as contactCapability, wt as EventCategory, x as climateControlCapability, xt as union, y as buttonCapability, yt as record, z as mediaPlayerCapability } from "./dist-BrXyPaCe.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
4
4
  //#region src/ha-device-source.ts
@@ -7669,12 +7669,11 @@ var RecordingConfigSchema = object({
7669
7669
  /**
7670
7670
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7671
7671
  *
7672
- * One shape shared by the recorder's `relocateFootage` (segments) and
7673
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7674
- * page renders both movers with one component. Jobs are in-RAM (a restart
7675
- * forgets them re-running is safe by construction: copy-if-absent, delete
7676
- * after verify) and each completed/failed run also lands one durable ops-log
7677
- * row on the owning addon's surface.
7672
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7673
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7674
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7675
+ * Each completed/failed run also lands one durable ops-log row on its owning
7676
+ * addon surface.
7678
7677
  */
7679
7678
  var RelocateJobStateSchema = _enum([
7680
7679
  "running",
@@ -7701,19 +7700,100 @@ var RelocateJobSchema = object({
7701
7700
  finishedAt: number().nullable(),
7702
7701
  error: string().nullable()
7703
7702
  });
7703
+ /** Profile-derived footage selection used only by the migration coordinator:
7704
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7705
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7704
7706
  var RelocateFootageInputSchema = object({
7705
- deviceId: number().optional(),
7706
7707
  fromLocationId: string(),
7707
7708
  toLocationId: string(),
7708
7709
  entities: array(_enum(["segments"])).optional(),
7710
+ /** Limits relocation to the logical profile class. Omit only for the
7711
+ * pre-orchestration compatibility path. */
7712
+ footageClass: RelocateFootageClassSchema.optional(),
7709
7713
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7710
7714
  * never allowed to starve live writers. */
7711
7715
  throttleMbps: number().min(1).max(1e3).optional()
7712
7716
  });
7713
- var RelocateMediaInputSchema = object({
7714
- deviceId: number().optional(),
7717
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7718
+ * from persistent recording settings: a migration never changes
7719
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7720
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7721
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7722
+ var StorageMigrationMediaMoveInputSchema = object({
7715
7723
  toLocationId: string(),
7716
7724
  throttleMbps: number().min(1).max(1e3).optional()
7725
+ }).extend({ leaseId: string().min(1) });
7726
+ /** The independently selectable logical storage classes. `recordings`
7727
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7728
+ * segments; `eventMedia` is post-analysis blobs. */
7729
+ var StorageMigrationClassSchema = _enum([
7730
+ "recordings",
7731
+ "recordingsLow",
7732
+ "eventMedia"
7733
+ ]);
7734
+ /** A destination is always an existing, fully-qualified location id. The
7735
+ * migration API intentionally never changes a source location's `basePath`:
7736
+ * callers create a new `<type>:<slug>` location, then select it here. */
7737
+ var StorageMigrationDestinationsSchema = object({
7738
+ recordings: string().min(1).optional(),
7739
+ recordingsLow: string().min(1).optional(),
7740
+ eventMedia: string().min(1).optional()
7741
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7742
+ /** Shared input for planning and starting an orchestrated storage migration. */
7743
+ var StorageMigrationInputSchema = object({
7744
+ destinations: StorageMigrationDestinationsSchema,
7745
+ throttleMbps: number().min(1).max(1e3).optional()
7746
+ });
7747
+ /** The durable coordinator state machine. The only phase that changes default
7748
+ * locations is `repointing`, after every selected mover has completed and been
7749
+ * verified. */
7750
+ var StorageMigrationPhaseSchema = _enum([
7751
+ "planning",
7752
+ "pausing",
7753
+ "moving",
7754
+ "verifying",
7755
+ "repointing",
7756
+ "refreshing",
7757
+ "resuming",
7758
+ "done",
7759
+ "failed",
7760
+ "cancelled"
7761
+ ]);
7762
+ var StorageMigrationParticipantSchema = _enum([
7763
+ "pipeline",
7764
+ "recorder",
7765
+ "analytics"
7766
+ ]);
7767
+ var StorageMigrationMoveSchema = object({
7768
+ storageClass: StorageMigrationClassSchema,
7769
+ fromLocationId: string(),
7770
+ toLocationId: string(),
7771
+ moverJobId: string().nullable(),
7772
+ state: RelocateJobStateSchema.nullable(),
7773
+ error: string().nullable()
7774
+ });
7775
+ var StorageMigrationJobSchema = object({
7776
+ jobId: string(),
7777
+ phase: StorageMigrationPhaseSchema,
7778
+ destinations: StorageMigrationDestinationsSchema,
7779
+ throttleMbps: number(),
7780
+ moves: array(StorageMigrationMoveSchema),
7781
+ pauseLeaseId: string().nullable(),
7782
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7783
+ repointed: boolean(),
7784
+ cancelRequested: boolean(),
7785
+ startedAt: number(),
7786
+ updatedAt: number(),
7787
+ finishedAt: number().nullable(),
7788
+ error: string().nullable()
7789
+ });
7790
+ var StorageMigrationPlanSchema = object({
7791
+ destinations: StorageMigrationDestinationsSchema,
7792
+ moves: array(object({
7793
+ storageClass: StorageMigrationClassSchema,
7794
+ fromLocationId: string(),
7795
+ toLocationId: string()
7796
+ }))
7717
7797
  });
7718
7798
  /**
7719
7799
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16542,13 +16622,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16542
16622
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16543
16623
  kind: "mutation",
16544
16624
  auth: "admin"
16545
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16625
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16546
16626
  kind: "mutation",
16547
16627
  auth: "admin"
16548
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16549
- kind: "query",
16628
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16629
+ kind: "mutation",
16550
16630
  auth: "admin"
16551
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16631
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16632
+ kind: "mutation",
16633
+ auth: "admin"
16634
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16635
+ kind: "mutation",
16636
+ auth: "admin"
16637
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16552
16638
  kind: "mutation",
16553
16639
  auth: "admin"
16554
16640
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -18078,7 +18164,13 @@ var NodeInferenceDevicesSchema = object({
18078
18164
  reachable: boolean(),
18079
18165
  devices: array(NodeInferenceDeviceSchema).readonly()
18080
18166
  });
18081
- method(object({
18167
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
18168
+ kind: "mutation",
18169
+ auth: "admin"
18170
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
18171
+ kind: "mutation",
18172
+ auth: "admin"
18173
+ }), method(object({
18082
18174
  deviceId: number(),
18083
18175
  agentNodeId: string()
18084
18176
  }), object({ success: literal(true) }), {
@@ -18752,6 +18844,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18752
18844
  locationId: string(),
18753
18845
  targetBytes: number().int().positive()
18754
18846
  }), EvictResultSchema, { kind: "mutation" });
18847
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18848
+ kind: "mutation",
18849
+ auth: "admin"
18850
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18851
+ kind: "mutation",
18852
+ auth: "admin"
18853
+ });
18755
18854
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18756
18855
  providerId: string().min(1),
18757
18856
  displayName: string().min(1),
@@ -18855,7 +18954,67 @@ var TerminalProfileInfoSchema = object({
18855
18954
  label: string(),
18856
18955
  description: string().optional()
18857
18956
  });
18858
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18957
+ /**
18958
+ * A durable operator-created Terminal instance. Profiles are templates; only
18959
+ * an instance declares a camera.
18960
+ */
18961
+ var TerminalInstanceInfoSchema = object({
18962
+ instanceId: string(),
18963
+ cameraStableId: string(),
18964
+ nodeId: string(),
18965
+ profileId: string(),
18966
+ profileLabel: string(),
18967
+ name: string(),
18968
+ enabled: boolean()
18969
+ });
18970
+ var TerminalLegacyCameraSchema = object({
18971
+ stableId: string(),
18972
+ nodeId: string(),
18973
+ profileId: string(),
18974
+ profileLabel: string(),
18975
+ name: string(),
18976
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18977
+ adoptable: boolean()
18978
+ });
18979
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18980
+ seq: number().int().positive(),
18981
+ kind: literal("data"),
18982
+ data: string()
18983
+ }), object({
18984
+ seq: number().int().positive(),
18985
+ kind: literal("exit"),
18986
+ exitCode: number().int(),
18987
+ signal: number().int().optional()
18988
+ })]);
18989
+ var TerminalOutputBatchSchema = object({
18990
+ cursor: number().int().nonnegative(),
18991
+ reset: boolean(),
18992
+ snapshot: string().optional(),
18993
+ events: array(TerminalOutputEventSchema).readonly()
18994
+ });
18995
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18996
+ targetNodeId: string().min(1),
18997
+ profileId: string().min(1),
18998
+ name: string().trim().min(1).max(160).optional()
18999
+ }), TerminalInstanceInfoSchema, {
19000
+ kind: "mutation",
19001
+ auth: "admin"
19002
+ }), method(object({ instanceId: string().min(1) }), _void(), {
19003
+ kind: "mutation",
19004
+ auth: "admin"
19005
+ }), method(object({
19006
+ instanceId: string().min(1),
19007
+ enabled: boolean()
19008
+ }), TerminalInstanceInfoSchema, {
19009
+ kind: "mutation",
19010
+ auth: "admin"
19011
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
19012
+ stableId: string().min(1),
19013
+ name: string().trim().min(1).max(160).optional()
19014
+ }), TerminalInstanceInfoSchema, {
19015
+ kind: "mutation",
19016
+ auth: "admin"
19017
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18859
19018
  profileId: string(),
18860
19019
  cols: number().int().positive(),
18861
19020
  rows: number().int().positive()
@@ -18869,6 +19028,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18869
19028
  }), _void(), {
18870
19029
  kind: "mutation",
18871
19030
  auth: "admin"
19031
+ }), method(object({
19032
+ sessionId: string(),
19033
+ afterSeq: number().int().nonnegative(),
19034
+ waitMs: number().int().min(0).max(2e3).default(0),
19035
+ /**
19036
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
19037
+ * browser's initial repaint remains immediate; the camera snapshot
19038
+ * relay uses it to avoid encoding a blank startup frame.
19039
+ */
19040
+ waitForOutput: boolean().optional()
19041
+ }), TerminalOutputBatchSchema, {
19042
+ kind: "mutation",
19043
+ auth: "admin",
19044
+ timeoutMs: 15e3
19045
+ }), method(object({
19046
+ sessionId: string(),
19047
+ data: string().max(64 * 1024)
19048
+ }), _void(), {
19049
+ kind: "mutation",
19050
+ auth: "admin"
18872
19051
  }), method(object({ sessionId: string() }), _void(), {
18873
19052
  kind: "mutation",
18874
19053
  auth: "admin"
@@ -21445,6 +21624,7 @@ var FaceInfoSchema = object({
21445
21624
  var FaceFilterEnum = _enum([
21446
21625
  "unassigned",
21447
21626
  "recognized",
21627
+ "identified",
21448
21628
  "all"
21449
21629
  ]);
21450
21630
  var MediaFileLiteSchema$1 = object({
@@ -21473,6 +21653,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21473
21653
  kind: "mutation",
21474
21654
  auth: "admin"
21475
21655
  }), method(object({
21656
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21657
+ deviceId: number().int().optional(),
21476
21658
  limit: number().int().positive().optional(),
21477
21659
  filter: FaceFilterEnum.optional(),
21478
21660
  /**
@@ -23702,6 +23884,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23702
23884
  capName: string().min(1).max(64),
23703
23885
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23704
23886
  valuePath: string().min(1).max(64)
23887
+ }),
23888
+ object({
23889
+ kind: literal("latest-recognition"),
23890
+ recognition: _enum(["person", "plate"])
23705
23891
  })
23706
23892
  ]);
23707
23893
  var OsdSlotBindingSchema = object({
@@ -23807,6 +23993,15 @@ method(object({ deviceId: number().int() }), object({
23807
23993
  }), object({ success: literal(true) }), {
23808
23994
  kind: "mutation",
23809
23995
  auth: "admin"
23996
+ }), method(object({
23997
+ sourceDeviceId: number().int(),
23998
+ targetDeviceId: number().int()
23999
+ }), object({
24000
+ copied: number().int().nonnegative(),
24001
+ skipped: number().int().nonnegative()
24002
+ }), {
24003
+ kind: "mutation",
24004
+ auth: "admin"
23810
24005
  }), method(object({
23811
24006
  deviceId: number().int(),
23812
24007
  slotId: string().min(1),
@@ -24904,13 +25099,19 @@ method(object({
24904
25099
  }), {
24905
25100
  kind: "mutation",
24906
25101
  auth: "admin"
24907
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
25102
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24908
25103
  kind: "mutation",
24909
25104
  auth: "admin"
24910
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24911
- kind: "query",
25105
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
25106
+ kind: "mutation",
24912
25107
  auth: "admin"
24913
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
25108
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
25109
+ kind: "mutation",
25110
+ auth: "admin"
25111
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
25112
+ kind: "mutation",
25113
+ auth: "admin"
25114
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24914
25115
  kind: "mutation",
24915
25116
  auth: "admin"
24916
25117
  });
@@ -30516,6 +30717,12 @@ Object.freeze({
30516
30717
  addonId: null,
30517
30718
  access: "delete"
30518
30719
  },
30720
+ "osdManager.copyDeviceConfiguration": {
30721
+ capName: "osd-manager",
30722
+ capScope: "system",
30723
+ addonId: null,
30724
+ access: "create"
30725
+ },
30519
30726
  "osdManager.getConditionSupport": {
30520
30727
  capName: "osd-manager",
30521
30728
  capScope: "system",
@@ -30612,7 +30819,7 @@ Object.freeze({
30612
30819
  addonId: null,
30613
30820
  access: "create"
30614
30821
  },
30615
- "pipelineAnalytics.cancelMediaRelocate": {
30822
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30616
30823
  capName: "pipeline-analytics",
30617
30824
  capScope: "device",
30618
30825
  addonId: null,
@@ -30684,12 +30891,6 @@ Object.freeze({
30684
30891
  addonId: null,
30685
30892
  access: "view"
30686
30893
  },
30687
- "pipelineAnalytics.getMediaRelocateStatus": {
30688
- capName: "pipeline-analytics",
30689
- capScope: "device",
30690
- addonId: null,
30691
- access: "view"
30692
- },
30693
30894
  "pipelineAnalytics.getMotionEvents": {
30694
30895
  capName: "pipeline-analytics",
30695
30896
  capScope: "device",
@@ -30726,6 +30927,12 @@ Object.freeze({
30726
30927
  addonId: null,
30727
30928
  access: "view"
30728
30929
  },
30930
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30931
+ capName: "pipeline-analytics",
30932
+ capScope: "device",
30933
+ addonId: null,
30934
+ access: "view"
30935
+ },
30729
30936
  "pipelineAnalytics.getTrack": {
30730
30937
  capName: "pipeline-analytics",
30731
30938
  capScope: "device",
@@ -30804,6 +31011,12 @@ Object.freeze({
30804
31011
  addonId: null,
30805
31012
  access: "view"
30806
31013
  },
31014
+ "pipelineAnalytics.pauseForStorageMigration": {
31015
+ capName: "pipeline-analytics",
31016
+ capScope: "device",
31017
+ addonId: null,
31018
+ access: "create"
31019
+ },
30807
31020
  "pipelineAnalytics.proposeRetrainAnnotations": {
30808
31021
  capName: "pipeline-analytics",
30809
31022
  capScope: "device",
@@ -30834,7 +31047,7 @@ Object.freeze({
30834
31047
  addonId: null,
30835
31048
  access: "create"
30836
31049
  },
30837
- "pipelineAnalytics.relocateMedia": {
31050
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30838
31051
  capName: "pipeline-analytics",
30839
31052
  capScope: "device",
30840
31053
  addonId: null,
@@ -30846,6 +31059,12 @@ Object.freeze({
30846
31059
  addonId: null,
30847
31060
  access: "create"
30848
31061
  },
31062
+ "pipelineAnalytics.resumeForStorageMigration": {
31063
+ capName: "pipeline-analytics",
31064
+ capScope: "device",
31065
+ addonId: null,
31066
+ access: "create"
31067
+ },
30849
31068
  "pipelineAnalytics.saveRetrainAnnotations": {
30850
31069
  capName: "pipeline-analytics",
30851
31070
  capScope: "device",
@@ -30870,6 +31089,12 @@ Object.freeze({
30870
31089
  addonId: null,
30871
31090
  access: "create"
30872
31091
  },
31092
+ "pipelineAnalytics.startStorageMigrationMove": {
31093
+ capName: "pipeline-analytics",
31094
+ capScope: "device",
31095
+ addonId: null,
31096
+ access: "create"
31097
+ },
30873
31098
  "pipelineAnalytics.wipeAllAnalytics": {
30874
31099
  capName: "pipeline-analytics",
30875
31100
  capScope: "device",
@@ -31236,6 +31461,12 @@ Object.freeze({
31236
31461
  addonId: null,
31237
31462
  access: "view"
31238
31463
  },
31464
+ "pipelineOrchestrator.pauseForStorageMigration": {
31465
+ capName: "pipeline-orchestrator",
31466
+ capScope: "system",
31467
+ addonId: null,
31468
+ access: "create"
31469
+ },
31239
31470
  "pipelineOrchestrator.rebalance": {
31240
31471
  capName: "pipeline-orchestrator",
31241
31472
  capScope: "system",
@@ -31260,6 +31491,12 @@ Object.freeze({
31260
31491
  addonId: null,
31261
31492
  access: "view"
31262
31493
  },
31494
+ "pipelineOrchestrator.resumeForStorageMigration": {
31495
+ capName: "pipeline-orchestrator",
31496
+ capScope: "system",
31497
+ addonId: null,
31498
+ access: "create"
31499
+ },
31263
31500
  "pipelineOrchestrator.saveTemplate": {
31264
31501
  capName: "pipeline-orchestrator",
31265
31502
  capScope: "system",
@@ -31656,7 +31893,7 @@ Object.freeze({
31656
31893
  addonId: null,
31657
31894
  access: "create"
31658
31895
  },
31659
- "recording.cancelRelocate": {
31896
+ "recording.cancelStorageMigrationMove": {
31660
31897
  capName: "recording",
31661
31898
  capScope: "system",
31662
31899
  addonId: null,
@@ -31692,7 +31929,7 @@ Object.freeze({
31692
31929
  addonId: null,
31693
31930
  access: "view"
31694
31931
  },
31695
- "recording.getRelocateStatus": {
31932
+ "recording.getStorageMigrationMoveStatus": {
31696
31933
  capName: "recording",
31697
31934
  capScope: "system",
31698
31935
  addonId: null,
@@ -31716,6 +31953,12 @@ Object.freeze({
31716
31953
  addonId: null,
31717
31954
  access: "view"
31718
31955
  },
31956
+ "recording.pauseForStorageMigration": {
31957
+ capName: "recording",
31958
+ capScope: "system",
31959
+ addonId: null,
31960
+ access: "create"
31961
+ },
31719
31962
  "recording.pruneFootage": {
31720
31963
  capName: "recording",
31721
31964
  capScope: "system",
@@ -31734,7 +31977,7 @@ Object.freeze({
31734
31977
  addonId: null,
31735
31978
  access: "view"
31736
31979
  },
31737
- "recording.relocateFootage": {
31980
+ "recording.refreshStorageLocationsForMigration": {
31738
31981
  capName: "recording",
31739
31982
  capScope: "system",
31740
31983
  addonId: null,
@@ -31758,12 +32001,24 @@ Object.freeze({
31758
32001
  addonId: null,
31759
32002
  access: "create"
31760
32003
  },
32004
+ "recording.resumeForStorageMigration": {
32005
+ capName: "recording",
32006
+ capScope: "system",
32007
+ addonId: null,
32008
+ access: "create"
32009
+ },
31761
32010
  "recording.setDeviceConfig": {
31762
32011
  capName: "recording",
31763
32012
  capScope: "system",
31764
32013
  addonId: null,
31765
32014
  access: "create"
31766
32015
  },
32016
+ "recording.startStorageMigrationMove": {
32017
+ capName: "recording",
32018
+ capScope: "system",
32019
+ addonId: null,
32020
+ access: "create"
32021
+ },
31767
32022
  "recordingExport.cancelExport": {
31768
32023
  capName: "recordingExport",
31769
32024
  capScope: "system",
@@ -32154,6 +32409,30 @@ Object.freeze({
32154
32409
  addonId: null,
32155
32410
  access: "view"
32156
32411
  },
32412
+ "storageMigration.cancel": {
32413
+ capName: "storage-migration",
32414
+ capScope: "system",
32415
+ addonId: null,
32416
+ access: "create"
32417
+ },
32418
+ "storageMigration.plan": {
32419
+ capName: "storage-migration",
32420
+ capScope: "system",
32421
+ addonId: null,
32422
+ access: "view"
32423
+ },
32424
+ "storageMigration.start": {
32425
+ capName: "storage-migration",
32426
+ capScope: "system",
32427
+ addonId: null,
32428
+ access: "create"
32429
+ },
32430
+ "storageMigration.status": {
32431
+ capName: "storage-migration",
32432
+ capScope: "system",
32433
+ addonId: null,
32434
+ access: "view"
32435
+ },
32157
32436
  "storageProvider.abortUpload": {
32158
32437
  capName: "storage-provider",
32159
32438
  capScope: "system",
@@ -32532,12 +32811,42 @@ Object.freeze({
32532
32811
  addonId: null,
32533
32812
  access: "create"
32534
32813
  },
32814
+ "terminalSession.adoptLegacyMonitor": {
32815
+ capName: "terminal-session",
32816
+ capScope: "system",
32817
+ addonId: null,
32818
+ access: "create"
32819
+ },
32535
32820
  "terminalSession.close": {
32536
32821
  capName: "terminal-session",
32537
32822
  capScope: "system",
32538
32823
  addonId: null,
32539
32824
  access: "create"
32540
32825
  },
32826
+ "terminalSession.createInstance": {
32827
+ capName: "terminal-session",
32828
+ capScope: "system",
32829
+ addonId: null,
32830
+ access: "create"
32831
+ },
32832
+ "terminalSession.deleteInstance": {
32833
+ capName: "terminal-session",
32834
+ capScope: "system",
32835
+ addonId: null,
32836
+ access: "delete"
32837
+ },
32838
+ "terminalSession.listInstances": {
32839
+ capName: "terminal-session",
32840
+ capScope: "system",
32841
+ addonId: null,
32842
+ access: "view"
32843
+ },
32844
+ "terminalSession.listLegacyCameras": {
32845
+ capName: "terminal-session",
32846
+ capScope: "system",
32847
+ addonId: null,
32848
+ access: "view"
32849
+ },
32541
32850
  "terminalSession.listProfiles": {
32542
32851
  capName: "terminal-session",
32543
32852
  capScope: "system",
@@ -32556,12 +32865,30 @@ Object.freeze({
32556
32865
  addonId: null,
32557
32866
  access: "create"
32558
32867
  },
32868
+ "terminalSession.pullOutput": {
32869
+ capName: "terminal-session",
32870
+ capScope: "system",
32871
+ addonId: null,
32872
+ access: "create"
32873
+ },
32559
32874
  "terminalSession.resize": {
32560
32875
  capName: "terminal-session",
32561
32876
  capScope: "system",
32562
32877
  addonId: null,
32563
32878
  access: "create"
32564
32879
  },
32880
+ "terminalSession.setInstanceEnabled": {
32881
+ capName: "terminal-session",
32882
+ capScope: "system",
32883
+ addonId: null,
32884
+ access: "create"
32885
+ },
32886
+ "terminalSession.writeInput": {
32887
+ capName: "terminal-session",
32888
+ capScope: "system",
32889
+ addonId: null,
32890
+ access: "create"
32891
+ },
32565
32892
  "toast.onToast": {
32566
32893
  capName: "toast",
32567
32894
  capScope: "system",
@@ -7669,12 +7669,11 @@ var RecordingConfigSchema = object({
7669
7669
  /**
7670
7670
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7671
7671
  *
7672
- * One shape shared by the recorder's `relocateFootage` (segments) and
7673
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7674
- * page renders both movers with one component. Jobs are in-RAM (a restart
7675
- * forgets them re-running is safe by construction: copy-if-absent, delete
7676
- * after verify) and each completed/failed run also lands one durable ops-log
7677
- * row on the owning addon's surface.
7672
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7673
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7674
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7675
+ * Each completed/failed run also lands one durable ops-log row on its owning
7676
+ * addon surface.
7678
7677
  */
7679
7678
  var RelocateJobStateSchema = _enum([
7680
7679
  "running",
@@ -7701,19 +7700,100 @@ var RelocateJobSchema = object({
7701
7700
  finishedAt: number().nullable(),
7702
7701
  error: string().nullable()
7703
7702
  });
7703
+ /** Profile-derived footage selection used only by the migration coordinator:
7704
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7705
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7704
7706
  var RelocateFootageInputSchema = object({
7705
- deviceId: number().optional(),
7706
7707
  fromLocationId: string(),
7707
7708
  toLocationId: string(),
7708
7709
  entities: array(_enum(["segments"])).optional(),
7710
+ /** Limits relocation to the logical profile class. Omit only for the
7711
+ * pre-orchestration compatibility path. */
7712
+ footageClass: RelocateFootageClassSchema.optional(),
7709
7713
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7710
7714
  * never allowed to starve live writers. */
7711
7715
  throttleMbps: number().min(1).max(1e3).optional()
7712
7716
  });
7713
- var RelocateMediaInputSchema = object({
7714
- deviceId: number().optional(),
7717
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7718
+ * from persistent recording settings: a migration never changes
7719
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7720
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7721
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7722
+ var StorageMigrationMediaMoveInputSchema = object({
7715
7723
  toLocationId: string(),
7716
7724
  throttleMbps: number().min(1).max(1e3).optional()
7725
+ }).extend({ leaseId: string().min(1) });
7726
+ /** The independently selectable logical storage classes. `recordings`
7727
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7728
+ * segments; `eventMedia` is post-analysis blobs. */
7729
+ var StorageMigrationClassSchema = _enum([
7730
+ "recordings",
7731
+ "recordingsLow",
7732
+ "eventMedia"
7733
+ ]);
7734
+ /** A destination is always an existing, fully-qualified location id. The
7735
+ * migration API intentionally never changes a source location's `basePath`:
7736
+ * callers create a new `<type>:<slug>` location, then select it here. */
7737
+ var StorageMigrationDestinationsSchema = object({
7738
+ recordings: string().min(1).optional(),
7739
+ recordingsLow: string().min(1).optional(),
7740
+ eventMedia: string().min(1).optional()
7741
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7742
+ /** Shared input for planning and starting an orchestrated storage migration. */
7743
+ var StorageMigrationInputSchema = object({
7744
+ destinations: StorageMigrationDestinationsSchema,
7745
+ throttleMbps: number().min(1).max(1e3).optional()
7746
+ });
7747
+ /** The durable coordinator state machine. The only phase that changes default
7748
+ * locations is `repointing`, after every selected mover has completed and been
7749
+ * verified. */
7750
+ var StorageMigrationPhaseSchema = _enum([
7751
+ "planning",
7752
+ "pausing",
7753
+ "moving",
7754
+ "verifying",
7755
+ "repointing",
7756
+ "refreshing",
7757
+ "resuming",
7758
+ "done",
7759
+ "failed",
7760
+ "cancelled"
7761
+ ]);
7762
+ var StorageMigrationParticipantSchema = _enum([
7763
+ "pipeline",
7764
+ "recorder",
7765
+ "analytics"
7766
+ ]);
7767
+ var StorageMigrationMoveSchema = object({
7768
+ storageClass: StorageMigrationClassSchema,
7769
+ fromLocationId: string(),
7770
+ toLocationId: string(),
7771
+ moverJobId: string().nullable(),
7772
+ state: RelocateJobStateSchema.nullable(),
7773
+ error: string().nullable()
7774
+ });
7775
+ var StorageMigrationJobSchema = object({
7776
+ jobId: string(),
7777
+ phase: StorageMigrationPhaseSchema,
7778
+ destinations: StorageMigrationDestinationsSchema,
7779
+ throttleMbps: number(),
7780
+ moves: array(StorageMigrationMoveSchema),
7781
+ pauseLeaseId: string().nullable(),
7782
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7783
+ repointed: boolean(),
7784
+ cancelRequested: boolean(),
7785
+ startedAt: number(),
7786
+ updatedAt: number(),
7787
+ finishedAt: number().nullable(),
7788
+ error: string().nullable()
7789
+ });
7790
+ var StorageMigrationPlanSchema = object({
7791
+ destinations: StorageMigrationDestinationsSchema,
7792
+ moves: array(object({
7793
+ storageClass: StorageMigrationClassSchema,
7794
+ fromLocationId: string(),
7795
+ toLocationId: string()
7796
+ }))
7717
7797
  });
7718
7798
  /**
7719
7799
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16542,13 +16622,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16542
16622
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16543
16623
  kind: "mutation",
16544
16624
  auth: "admin"
16545
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16625
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16546
16626
  kind: "mutation",
16547
16627
  auth: "admin"
16548
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16549
- kind: "query",
16628
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16629
+ kind: "mutation",
16550
16630
  auth: "admin"
16551
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16631
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16632
+ kind: "mutation",
16633
+ auth: "admin"
16634
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16635
+ kind: "mutation",
16636
+ auth: "admin"
16637
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16552
16638
  kind: "mutation",
16553
16639
  auth: "admin"
16554
16640
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -18078,7 +18164,13 @@ var NodeInferenceDevicesSchema = object({
18078
18164
  reachable: boolean(),
18079
18165
  devices: array(NodeInferenceDeviceSchema).readonly()
18080
18166
  });
18081
- method(object({
18167
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
18168
+ kind: "mutation",
18169
+ auth: "admin"
18170
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
18171
+ kind: "mutation",
18172
+ auth: "admin"
18173
+ }), method(object({
18082
18174
  deviceId: number(),
18083
18175
  agentNodeId: string()
18084
18176
  }), object({ success: literal(true) }), {
@@ -18752,6 +18844,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18752
18844
  locationId: string(),
18753
18845
  targetBytes: number().int().positive()
18754
18846
  }), EvictResultSchema, { kind: "mutation" });
18847
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18848
+ kind: "mutation",
18849
+ auth: "admin"
18850
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18851
+ kind: "mutation",
18852
+ auth: "admin"
18853
+ });
18755
18854
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18756
18855
  providerId: string().min(1),
18757
18856
  displayName: string().min(1),
@@ -18855,7 +18954,67 @@ var TerminalProfileInfoSchema = object({
18855
18954
  label: string(),
18856
18955
  description: string().optional()
18857
18956
  });
18858
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18957
+ /**
18958
+ * A durable operator-created Terminal instance. Profiles are templates; only
18959
+ * an instance declares a camera.
18960
+ */
18961
+ var TerminalInstanceInfoSchema = object({
18962
+ instanceId: string(),
18963
+ cameraStableId: string(),
18964
+ nodeId: string(),
18965
+ profileId: string(),
18966
+ profileLabel: string(),
18967
+ name: string(),
18968
+ enabled: boolean()
18969
+ });
18970
+ var TerminalLegacyCameraSchema = object({
18971
+ stableId: string(),
18972
+ nodeId: string(),
18973
+ profileId: string(),
18974
+ profileLabel: string(),
18975
+ name: string(),
18976
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18977
+ adoptable: boolean()
18978
+ });
18979
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18980
+ seq: number().int().positive(),
18981
+ kind: literal("data"),
18982
+ data: string()
18983
+ }), object({
18984
+ seq: number().int().positive(),
18985
+ kind: literal("exit"),
18986
+ exitCode: number().int(),
18987
+ signal: number().int().optional()
18988
+ })]);
18989
+ var TerminalOutputBatchSchema = object({
18990
+ cursor: number().int().nonnegative(),
18991
+ reset: boolean(),
18992
+ snapshot: string().optional(),
18993
+ events: array(TerminalOutputEventSchema).readonly()
18994
+ });
18995
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18996
+ targetNodeId: string().min(1),
18997
+ profileId: string().min(1),
18998
+ name: string().trim().min(1).max(160).optional()
18999
+ }), TerminalInstanceInfoSchema, {
19000
+ kind: "mutation",
19001
+ auth: "admin"
19002
+ }), method(object({ instanceId: string().min(1) }), _void(), {
19003
+ kind: "mutation",
19004
+ auth: "admin"
19005
+ }), method(object({
19006
+ instanceId: string().min(1),
19007
+ enabled: boolean()
19008
+ }), TerminalInstanceInfoSchema, {
19009
+ kind: "mutation",
19010
+ auth: "admin"
19011
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
19012
+ stableId: string().min(1),
19013
+ name: string().trim().min(1).max(160).optional()
19014
+ }), TerminalInstanceInfoSchema, {
19015
+ kind: "mutation",
19016
+ auth: "admin"
19017
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18859
19018
  profileId: string(),
18860
19019
  cols: number().int().positive(),
18861
19020
  rows: number().int().positive()
@@ -18869,6 +19028,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18869
19028
  }), _void(), {
18870
19029
  kind: "mutation",
18871
19030
  auth: "admin"
19031
+ }), method(object({
19032
+ sessionId: string(),
19033
+ afterSeq: number().int().nonnegative(),
19034
+ waitMs: number().int().min(0).max(2e3).default(0),
19035
+ /**
19036
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
19037
+ * browser's initial repaint remains immediate; the camera snapshot
19038
+ * relay uses it to avoid encoding a blank startup frame.
19039
+ */
19040
+ waitForOutput: boolean().optional()
19041
+ }), TerminalOutputBatchSchema, {
19042
+ kind: "mutation",
19043
+ auth: "admin",
19044
+ timeoutMs: 15e3
19045
+ }), method(object({
19046
+ sessionId: string(),
19047
+ data: string().max(64 * 1024)
19048
+ }), _void(), {
19049
+ kind: "mutation",
19050
+ auth: "admin"
18872
19051
  }), method(object({ sessionId: string() }), _void(), {
18873
19052
  kind: "mutation",
18874
19053
  auth: "admin"
@@ -21445,6 +21624,7 @@ var FaceInfoSchema = object({
21445
21624
  var FaceFilterEnum = _enum([
21446
21625
  "unassigned",
21447
21626
  "recognized",
21627
+ "identified",
21448
21628
  "all"
21449
21629
  ]);
21450
21630
  var MediaFileLiteSchema$1 = object({
@@ -21473,6 +21653,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21473
21653
  kind: "mutation",
21474
21654
  auth: "admin"
21475
21655
  }), method(object({
21656
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21657
+ deviceId: number().int().optional(),
21476
21658
  limit: number().int().positive().optional(),
21477
21659
  filter: FaceFilterEnum.optional(),
21478
21660
  /**
@@ -23702,6 +23884,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23702
23884
  capName: string().min(1).max(64),
23703
23885
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23704
23886
  valuePath: string().min(1).max(64)
23887
+ }),
23888
+ object({
23889
+ kind: literal("latest-recognition"),
23890
+ recognition: _enum(["person", "plate"])
23705
23891
  })
23706
23892
  ]);
23707
23893
  var OsdSlotBindingSchema = object({
@@ -23807,6 +23993,15 @@ method(object({ deviceId: number().int() }), object({
23807
23993
  }), object({ success: literal(true) }), {
23808
23994
  kind: "mutation",
23809
23995
  auth: "admin"
23996
+ }), method(object({
23997
+ sourceDeviceId: number().int(),
23998
+ targetDeviceId: number().int()
23999
+ }), object({
24000
+ copied: number().int().nonnegative(),
24001
+ skipped: number().int().nonnegative()
24002
+ }), {
24003
+ kind: "mutation",
24004
+ auth: "admin"
23810
24005
  }), method(object({
23811
24006
  deviceId: number().int(),
23812
24007
  slotId: string().min(1),
@@ -24904,13 +25099,19 @@ method(object({
24904
25099
  }), {
24905
25100
  kind: "mutation",
24906
25101
  auth: "admin"
24907
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
25102
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24908
25103
  kind: "mutation",
24909
25104
  auth: "admin"
24910
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24911
- kind: "query",
25105
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
25106
+ kind: "mutation",
24912
25107
  auth: "admin"
24913
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
25108
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
25109
+ kind: "mutation",
25110
+ auth: "admin"
25111
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
25112
+ kind: "mutation",
25113
+ auth: "admin"
25114
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24914
25115
  kind: "mutation",
24915
25116
  auth: "admin"
24916
25117
  });
@@ -30516,6 +30717,12 @@ Object.freeze({
30516
30717
  addonId: null,
30517
30718
  access: "delete"
30518
30719
  },
30720
+ "osdManager.copyDeviceConfiguration": {
30721
+ capName: "osd-manager",
30722
+ capScope: "system",
30723
+ addonId: null,
30724
+ access: "create"
30725
+ },
30519
30726
  "osdManager.getConditionSupport": {
30520
30727
  capName: "osd-manager",
30521
30728
  capScope: "system",
@@ -30612,7 +30819,7 @@ Object.freeze({
30612
30819
  addonId: null,
30613
30820
  access: "create"
30614
30821
  },
30615
- "pipelineAnalytics.cancelMediaRelocate": {
30822
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30616
30823
  capName: "pipeline-analytics",
30617
30824
  capScope: "device",
30618
30825
  addonId: null,
@@ -30684,12 +30891,6 @@ Object.freeze({
30684
30891
  addonId: null,
30685
30892
  access: "view"
30686
30893
  },
30687
- "pipelineAnalytics.getMediaRelocateStatus": {
30688
- capName: "pipeline-analytics",
30689
- capScope: "device",
30690
- addonId: null,
30691
- access: "view"
30692
- },
30693
30894
  "pipelineAnalytics.getMotionEvents": {
30694
30895
  capName: "pipeline-analytics",
30695
30896
  capScope: "device",
@@ -30726,6 +30927,12 @@ Object.freeze({
30726
30927
  addonId: null,
30727
30928
  access: "view"
30728
30929
  },
30930
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30931
+ capName: "pipeline-analytics",
30932
+ capScope: "device",
30933
+ addonId: null,
30934
+ access: "view"
30935
+ },
30729
30936
  "pipelineAnalytics.getTrack": {
30730
30937
  capName: "pipeline-analytics",
30731
30938
  capScope: "device",
@@ -30804,6 +31011,12 @@ Object.freeze({
30804
31011
  addonId: null,
30805
31012
  access: "view"
30806
31013
  },
31014
+ "pipelineAnalytics.pauseForStorageMigration": {
31015
+ capName: "pipeline-analytics",
31016
+ capScope: "device",
31017
+ addonId: null,
31018
+ access: "create"
31019
+ },
30807
31020
  "pipelineAnalytics.proposeRetrainAnnotations": {
30808
31021
  capName: "pipeline-analytics",
30809
31022
  capScope: "device",
@@ -30834,7 +31047,7 @@ Object.freeze({
30834
31047
  addonId: null,
30835
31048
  access: "create"
30836
31049
  },
30837
- "pipelineAnalytics.relocateMedia": {
31050
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30838
31051
  capName: "pipeline-analytics",
30839
31052
  capScope: "device",
30840
31053
  addonId: null,
@@ -30846,6 +31059,12 @@ Object.freeze({
30846
31059
  addonId: null,
30847
31060
  access: "create"
30848
31061
  },
31062
+ "pipelineAnalytics.resumeForStorageMigration": {
31063
+ capName: "pipeline-analytics",
31064
+ capScope: "device",
31065
+ addonId: null,
31066
+ access: "create"
31067
+ },
30849
31068
  "pipelineAnalytics.saveRetrainAnnotations": {
30850
31069
  capName: "pipeline-analytics",
30851
31070
  capScope: "device",
@@ -30870,6 +31089,12 @@ Object.freeze({
30870
31089
  addonId: null,
30871
31090
  access: "create"
30872
31091
  },
31092
+ "pipelineAnalytics.startStorageMigrationMove": {
31093
+ capName: "pipeline-analytics",
31094
+ capScope: "device",
31095
+ addonId: null,
31096
+ access: "create"
31097
+ },
30873
31098
  "pipelineAnalytics.wipeAllAnalytics": {
30874
31099
  capName: "pipeline-analytics",
30875
31100
  capScope: "device",
@@ -31236,6 +31461,12 @@ Object.freeze({
31236
31461
  addonId: null,
31237
31462
  access: "view"
31238
31463
  },
31464
+ "pipelineOrchestrator.pauseForStorageMigration": {
31465
+ capName: "pipeline-orchestrator",
31466
+ capScope: "system",
31467
+ addonId: null,
31468
+ access: "create"
31469
+ },
31239
31470
  "pipelineOrchestrator.rebalance": {
31240
31471
  capName: "pipeline-orchestrator",
31241
31472
  capScope: "system",
@@ -31260,6 +31491,12 @@ Object.freeze({
31260
31491
  addonId: null,
31261
31492
  access: "view"
31262
31493
  },
31494
+ "pipelineOrchestrator.resumeForStorageMigration": {
31495
+ capName: "pipeline-orchestrator",
31496
+ capScope: "system",
31497
+ addonId: null,
31498
+ access: "create"
31499
+ },
31263
31500
  "pipelineOrchestrator.saveTemplate": {
31264
31501
  capName: "pipeline-orchestrator",
31265
31502
  capScope: "system",
@@ -31656,7 +31893,7 @@ Object.freeze({
31656
31893
  addonId: null,
31657
31894
  access: "create"
31658
31895
  },
31659
- "recording.cancelRelocate": {
31896
+ "recording.cancelStorageMigrationMove": {
31660
31897
  capName: "recording",
31661
31898
  capScope: "system",
31662
31899
  addonId: null,
@@ -31692,7 +31929,7 @@ Object.freeze({
31692
31929
  addonId: null,
31693
31930
  access: "view"
31694
31931
  },
31695
- "recording.getRelocateStatus": {
31932
+ "recording.getStorageMigrationMoveStatus": {
31696
31933
  capName: "recording",
31697
31934
  capScope: "system",
31698
31935
  addonId: null,
@@ -31716,6 +31953,12 @@ Object.freeze({
31716
31953
  addonId: null,
31717
31954
  access: "view"
31718
31955
  },
31956
+ "recording.pauseForStorageMigration": {
31957
+ capName: "recording",
31958
+ capScope: "system",
31959
+ addonId: null,
31960
+ access: "create"
31961
+ },
31719
31962
  "recording.pruneFootage": {
31720
31963
  capName: "recording",
31721
31964
  capScope: "system",
@@ -31734,7 +31977,7 @@ Object.freeze({
31734
31977
  addonId: null,
31735
31978
  access: "view"
31736
31979
  },
31737
- "recording.relocateFootage": {
31980
+ "recording.refreshStorageLocationsForMigration": {
31738
31981
  capName: "recording",
31739
31982
  capScope: "system",
31740
31983
  addonId: null,
@@ -31758,12 +32001,24 @@ Object.freeze({
31758
32001
  addonId: null,
31759
32002
  access: "create"
31760
32003
  },
32004
+ "recording.resumeForStorageMigration": {
32005
+ capName: "recording",
32006
+ capScope: "system",
32007
+ addonId: null,
32008
+ access: "create"
32009
+ },
31761
32010
  "recording.setDeviceConfig": {
31762
32011
  capName: "recording",
31763
32012
  capScope: "system",
31764
32013
  addonId: null,
31765
32014
  access: "create"
31766
32015
  },
32016
+ "recording.startStorageMigrationMove": {
32017
+ capName: "recording",
32018
+ capScope: "system",
32019
+ addonId: null,
32020
+ access: "create"
32021
+ },
31767
32022
  "recordingExport.cancelExport": {
31768
32023
  capName: "recordingExport",
31769
32024
  capScope: "system",
@@ -32154,6 +32409,30 @@ Object.freeze({
32154
32409
  addonId: null,
32155
32410
  access: "view"
32156
32411
  },
32412
+ "storageMigration.cancel": {
32413
+ capName: "storage-migration",
32414
+ capScope: "system",
32415
+ addonId: null,
32416
+ access: "create"
32417
+ },
32418
+ "storageMigration.plan": {
32419
+ capName: "storage-migration",
32420
+ capScope: "system",
32421
+ addonId: null,
32422
+ access: "view"
32423
+ },
32424
+ "storageMigration.start": {
32425
+ capName: "storage-migration",
32426
+ capScope: "system",
32427
+ addonId: null,
32428
+ access: "create"
32429
+ },
32430
+ "storageMigration.status": {
32431
+ capName: "storage-migration",
32432
+ capScope: "system",
32433
+ addonId: null,
32434
+ access: "view"
32435
+ },
32157
32436
  "storageProvider.abortUpload": {
32158
32437
  capName: "storage-provider",
32159
32438
  capScope: "system",
@@ -32532,12 +32811,42 @@ Object.freeze({
32532
32811
  addonId: null,
32533
32812
  access: "create"
32534
32813
  },
32814
+ "terminalSession.adoptLegacyMonitor": {
32815
+ capName: "terminal-session",
32816
+ capScope: "system",
32817
+ addonId: null,
32818
+ access: "create"
32819
+ },
32535
32820
  "terminalSession.close": {
32536
32821
  capName: "terminal-session",
32537
32822
  capScope: "system",
32538
32823
  addonId: null,
32539
32824
  access: "create"
32540
32825
  },
32826
+ "terminalSession.createInstance": {
32827
+ capName: "terminal-session",
32828
+ capScope: "system",
32829
+ addonId: null,
32830
+ access: "create"
32831
+ },
32832
+ "terminalSession.deleteInstance": {
32833
+ capName: "terminal-session",
32834
+ capScope: "system",
32835
+ addonId: null,
32836
+ access: "delete"
32837
+ },
32838
+ "terminalSession.listInstances": {
32839
+ capName: "terminal-session",
32840
+ capScope: "system",
32841
+ addonId: null,
32842
+ access: "view"
32843
+ },
32844
+ "terminalSession.listLegacyCameras": {
32845
+ capName: "terminal-session",
32846
+ capScope: "system",
32847
+ addonId: null,
32848
+ access: "view"
32849
+ },
32541
32850
  "terminalSession.listProfiles": {
32542
32851
  capName: "terminal-session",
32543
32852
  capScope: "system",
@@ -32556,12 +32865,30 @@ Object.freeze({
32556
32865
  addonId: null,
32557
32866
  access: "create"
32558
32867
  },
32868
+ "terminalSession.pullOutput": {
32869
+ capName: "terminal-session",
32870
+ capScope: "system",
32871
+ addonId: null,
32872
+ access: "create"
32873
+ },
32559
32874
  "terminalSession.resize": {
32560
32875
  capName: "terminal-session",
32561
32876
  capScope: "system",
32562
32877
  addonId: null,
32563
32878
  access: "create"
32564
32879
  },
32880
+ "terminalSession.setInstanceEnabled": {
32881
+ capName: "terminal-session",
32882
+ capScope: "system",
32883
+ addonId: null,
32884
+ access: "create"
32885
+ },
32886
+ "terminalSession.writeInput": {
32887
+ capName: "terminal-session",
32888
+ capScope: "system",
32889
+ addonId: null,
32890
+ access: "create"
32891
+ },
32565
32892
  "toast.onToast": {
32566
32893
  capName: "toast",
32567
32894
  capScope: "system",
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  //#endregion
6
- const require_dist = require("../dist-B_S4jFT4.js");
6
+ const require_dist = require("../dist-DdViPfpr.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  //#region src/ha-export/topics.ts
9
9
  /**
@@ -1,4 +1,4 @@
1
- import { G as oauthIntegrationCapability, O as deviceExportCapability, bt as string, c as addonRoutesCapability, ct as BaseAddon, i as CameraSwitchIdSchema, r as COCO_TO_MACRO, v as buildAddonRouteProvider, wt as EventCategory } from "../dist-CfOPccIv.mjs";
1
+ import { G as oauthIntegrationCapability, O as deviceExportCapability, bt as string, c as addonRoutesCapability, ct as BaseAddon, i as CameraSwitchIdSchema, r as COCO_TO_MACRO, v as buildAddonRouteProvider, wt as EventCategory } from "../dist-BrXyPaCe.mjs";
2
2
  import { createHmac, timingSafeEqual } from "node:crypto";
3
3
  //#region src/ha-export/topics.ts
4
4
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homeassistant",
3
- "version": "1.2.22",
3
+ "version": "1.2.24",
4
4
  "description": "Home Assistant device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",