@camstack/addon-provider-homeassistant 1.2.23 → 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-CM18Ztr0.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-D4ZQ698x.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",
16630
+ auth: "admin"
16631
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16632
+ kind: "mutation",
16633
+ auth: "admin"
16634
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16635
+ kind: "mutation",
16550
16636
  auth: "admin"
16551
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
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,6 +18954,28 @@ var TerminalProfileInfoSchema = object({
18855
18954
  label: string(),
18856
18955
  description: string().optional()
18857
18956
  });
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
+ });
18858
18979
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18859
18980
  seq: number().int().positive(),
18860
18981
  kind: literal("data"),
@@ -18871,7 +18992,29 @@ var TerminalOutputBatchSchema = object({
18871
18992
  snapshot: string().optional(),
18872
18993
  events: array(TerminalOutputEventSchema).readonly()
18873
18994
  });
18874
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
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({
18875
19018
  profileId: string(),
18876
19019
  cols: number().int().positive(),
18877
19020
  rows: number().int().positive()
@@ -18888,7 +19031,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18888
19031
  }), method(object({
18889
19032
  sessionId: string(),
18890
19033
  afterSeq: number().int().nonnegative(),
18891
- waitMs: number().int().min(0).max(2e3).default(0)
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()
18892
19041
  }), TerminalOutputBatchSchema, {
18893
19042
  kind: "mutation",
18894
19043
  auth: "admin",
@@ -21475,6 +21624,7 @@ var FaceInfoSchema = object({
21475
21624
  var FaceFilterEnum = _enum([
21476
21625
  "unassigned",
21477
21626
  "recognized",
21627
+ "identified",
21478
21628
  "all"
21479
21629
  ]);
21480
21630
  var MediaFileLiteSchema$1 = object({
@@ -21503,6 +21653,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21503
21653
  kind: "mutation",
21504
21654
  auth: "admin"
21505
21655
  }), method(object({
21656
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21657
+ deviceId: number().int().optional(),
21506
21658
  limit: number().int().positive().optional(),
21507
21659
  filter: FaceFilterEnum.optional(),
21508
21660
  /**
@@ -23732,6 +23884,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23732
23884
  capName: string().min(1).max(64),
23733
23885
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23734
23886
  valuePath: string().min(1).max(64)
23887
+ }),
23888
+ object({
23889
+ kind: literal("latest-recognition"),
23890
+ recognition: _enum(["person", "plate"])
23735
23891
  })
23736
23892
  ]);
23737
23893
  var OsdSlotBindingSchema = object({
@@ -23837,6 +23993,15 @@ method(object({ deviceId: number().int() }), object({
23837
23993
  }), object({ success: literal(true) }), {
23838
23994
  kind: "mutation",
23839
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"
23840
24005
  }), method(object({
23841
24006
  deviceId: number().int(),
23842
24007
  slotId: string().min(1),
@@ -24934,13 +25099,19 @@ method(object({
24934
25099
  }), {
24935
25100
  kind: "mutation",
24936
25101
  auth: "admin"
24937
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
25102
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24938
25103
  kind: "mutation",
24939
25104
  auth: "admin"
24940
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24941
- kind: "query",
25105
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
25106
+ kind: "mutation",
24942
25107
  auth: "admin"
24943
- }), 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() }), {
24944
25115
  kind: "mutation",
24945
25116
  auth: "admin"
24946
25117
  });
@@ -30546,6 +30717,12 @@ Object.freeze({
30546
30717
  addonId: null,
30547
30718
  access: "delete"
30548
30719
  },
30720
+ "osdManager.copyDeviceConfiguration": {
30721
+ capName: "osd-manager",
30722
+ capScope: "system",
30723
+ addonId: null,
30724
+ access: "create"
30725
+ },
30549
30726
  "osdManager.getConditionSupport": {
30550
30727
  capName: "osd-manager",
30551
30728
  capScope: "system",
@@ -30642,7 +30819,7 @@ Object.freeze({
30642
30819
  addonId: null,
30643
30820
  access: "create"
30644
30821
  },
30645
- "pipelineAnalytics.cancelMediaRelocate": {
30822
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30646
30823
  capName: "pipeline-analytics",
30647
30824
  capScope: "device",
30648
30825
  addonId: null,
@@ -30714,12 +30891,6 @@ Object.freeze({
30714
30891
  addonId: null,
30715
30892
  access: "view"
30716
30893
  },
30717
- "pipelineAnalytics.getMediaRelocateStatus": {
30718
- capName: "pipeline-analytics",
30719
- capScope: "device",
30720
- addonId: null,
30721
- access: "view"
30722
- },
30723
30894
  "pipelineAnalytics.getMotionEvents": {
30724
30895
  capName: "pipeline-analytics",
30725
30896
  capScope: "device",
@@ -30756,6 +30927,12 @@ Object.freeze({
30756
30927
  addonId: null,
30757
30928
  access: "view"
30758
30929
  },
30930
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30931
+ capName: "pipeline-analytics",
30932
+ capScope: "device",
30933
+ addonId: null,
30934
+ access: "view"
30935
+ },
30759
30936
  "pipelineAnalytics.getTrack": {
30760
30937
  capName: "pipeline-analytics",
30761
30938
  capScope: "device",
@@ -30834,6 +31011,12 @@ Object.freeze({
30834
31011
  addonId: null,
30835
31012
  access: "view"
30836
31013
  },
31014
+ "pipelineAnalytics.pauseForStorageMigration": {
31015
+ capName: "pipeline-analytics",
31016
+ capScope: "device",
31017
+ addonId: null,
31018
+ access: "create"
31019
+ },
30837
31020
  "pipelineAnalytics.proposeRetrainAnnotations": {
30838
31021
  capName: "pipeline-analytics",
30839
31022
  capScope: "device",
@@ -30864,7 +31047,7 @@ Object.freeze({
30864
31047
  addonId: null,
30865
31048
  access: "create"
30866
31049
  },
30867
- "pipelineAnalytics.relocateMedia": {
31050
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30868
31051
  capName: "pipeline-analytics",
30869
31052
  capScope: "device",
30870
31053
  addonId: null,
@@ -30876,6 +31059,12 @@ Object.freeze({
30876
31059
  addonId: null,
30877
31060
  access: "create"
30878
31061
  },
31062
+ "pipelineAnalytics.resumeForStorageMigration": {
31063
+ capName: "pipeline-analytics",
31064
+ capScope: "device",
31065
+ addonId: null,
31066
+ access: "create"
31067
+ },
30879
31068
  "pipelineAnalytics.saveRetrainAnnotations": {
30880
31069
  capName: "pipeline-analytics",
30881
31070
  capScope: "device",
@@ -30900,6 +31089,12 @@ Object.freeze({
30900
31089
  addonId: null,
30901
31090
  access: "create"
30902
31091
  },
31092
+ "pipelineAnalytics.startStorageMigrationMove": {
31093
+ capName: "pipeline-analytics",
31094
+ capScope: "device",
31095
+ addonId: null,
31096
+ access: "create"
31097
+ },
30903
31098
  "pipelineAnalytics.wipeAllAnalytics": {
30904
31099
  capName: "pipeline-analytics",
30905
31100
  capScope: "device",
@@ -31266,6 +31461,12 @@ Object.freeze({
31266
31461
  addonId: null,
31267
31462
  access: "view"
31268
31463
  },
31464
+ "pipelineOrchestrator.pauseForStorageMigration": {
31465
+ capName: "pipeline-orchestrator",
31466
+ capScope: "system",
31467
+ addonId: null,
31468
+ access: "create"
31469
+ },
31269
31470
  "pipelineOrchestrator.rebalance": {
31270
31471
  capName: "pipeline-orchestrator",
31271
31472
  capScope: "system",
@@ -31290,6 +31491,12 @@ Object.freeze({
31290
31491
  addonId: null,
31291
31492
  access: "view"
31292
31493
  },
31494
+ "pipelineOrchestrator.resumeForStorageMigration": {
31495
+ capName: "pipeline-orchestrator",
31496
+ capScope: "system",
31497
+ addonId: null,
31498
+ access: "create"
31499
+ },
31293
31500
  "pipelineOrchestrator.saveTemplate": {
31294
31501
  capName: "pipeline-orchestrator",
31295
31502
  capScope: "system",
@@ -31686,7 +31893,7 @@ Object.freeze({
31686
31893
  addonId: null,
31687
31894
  access: "create"
31688
31895
  },
31689
- "recording.cancelRelocate": {
31896
+ "recording.cancelStorageMigrationMove": {
31690
31897
  capName: "recording",
31691
31898
  capScope: "system",
31692
31899
  addonId: null,
@@ -31722,7 +31929,7 @@ Object.freeze({
31722
31929
  addonId: null,
31723
31930
  access: "view"
31724
31931
  },
31725
- "recording.getRelocateStatus": {
31932
+ "recording.getStorageMigrationMoveStatus": {
31726
31933
  capName: "recording",
31727
31934
  capScope: "system",
31728
31935
  addonId: null,
@@ -31746,6 +31953,12 @@ Object.freeze({
31746
31953
  addonId: null,
31747
31954
  access: "view"
31748
31955
  },
31956
+ "recording.pauseForStorageMigration": {
31957
+ capName: "recording",
31958
+ capScope: "system",
31959
+ addonId: null,
31960
+ access: "create"
31961
+ },
31749
31962
  "recording.pruneFootage": {
31750
31963
  capName: "recording",
31751
31964
  capScope: "system",
@@ -31764,7 +31977,7 @@ Object.freeze({
31764
31977
  addonId: null,
31765
31978
  access: "view"
31766
31979
  },
31767
- "recording.relocateFootage": {
31980
+ "recording.refreshStorageLocationsForMigration": {
31768
31981
  capName: "recording",
31769
31982
  capScope: "system",
31770
31983
  addonId: null,
@@ -31788,12 +32001,24 @@ Object.freeze({
31788
32001
  addonId: null,
31789
32002
  access: "create"
31790
32003
  },
32004
+ "recording.resumeForStorageMigration": {
32005
+ capName: "recording",
32006
+ capScope: "system",
32007
+ addonId: null,
32008
+ access: "create"
32009
+ },
31791
32010
  "recording.setDeviceConfig": {
31792
32011
  capName: "recording",
31793
32012
  capScope: "system",
31794
32013
  addonId: null,
31795
32014
  access: "create"
31796
32015
  },
32016
+ "recording.startStorageMigrationMove": {
32017
+ capName: "recording",
32018
+ capScope: "system",
32019
+ addonId: null,
32020
+ access: "create"
32021
+ },
31797
32022
  "recordingExport.cancelExport": {
31798
32023
  capName: "recordingExport",
31799
32024
  capScope: "system",
@@ -32184,6 +32409,30 @@ Object.freeze({
32184
32409
  addonId: null,
32185
32410
  access: "view"
32186
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
+ },
32187
32436
  "storageProvider.abortUpload": {
32188
32437
  capName: "storage-provider",
32189
32438
  capScope: "system",
@@ -32562,12 +32811,42 @@ Object.freeze({
32562
32811
  addonId: null,
32563
32812
  access: "create"
32564
32813
  },
32814
+ "terminalSession.adoptLegacyMonitor": {
32815
+ capName: "terminal-session",
32816
+ capScope: "system",
32817
+ addonId: null,
32818
+ access: "create"
32819
+ },
32565
32820
  "terminalSession.close": {
32566
32821
  capName: "terminal-session",
32567
32822
  capScope: "system",
32568
32823
  addonId: null,
32569
32824
  access: "create"
32570
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
+ },
32571
32850
  "terminalSession.listProfiles": {
32572
32851
  capName: "terminal-session",
32573
32852
  capScope: "system",
@@ -32598,6 +32877,12 @@ Object.freeze({
32598
32877
  addonId: null,
32599
32878
  access: "create"
32600
32879
  },
32880
+ "terminalSession.setInstanceEnabled": {
32881
+ capName: "terminal-session",
32882
+ capScope: "system",
32883
+ addonId: null,
32884
+ access: "create"
32885
+ },
32601
32886
  "terminalSession.writeInput": {
32602
32887
  capName: "terminal-session",
32603
32888
  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",
16630
+ auth: "admin"
16631
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16632
+ kind: "mutation",
16633
+ auth: "admin"
16634
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16635
+ kind: "mutation",
16550
16636
  auth: "admin"
16551
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
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,6 +18954,28 @@ var TerminalProfileInfoSchema = object({
18855
18954
  label: string(),
18856
18955
  description: string().optional()
18857
18956
  });
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
+ });
18858
18979
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18859
18980
  seq: number().int().positive(),
18860
18981
  kind: literal("data"),
@@ -18871,7 +18992,29 @@ var TerminalOutputBatchSchema = object({
18871
18992
  snapshot: string().optional(),
18872
18993
  events: array(TerminalOutputEventSchema).readonly()
18873
18994
  });
18874
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
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({
18875
19018
  profileId: string(),
18876
19019
  cols: number().int().positive(),
18877
19020
  rows: number().int().positive()
@@ -18888,7 +19031,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18888
19031
  }), method(object({
18889
19032
  sessionId: string(),
18890
19033
  afterSeq: number().int().nonnegative(),
18891
- waitMs: number().int().min(0).max(2e3).default(0)
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()
18892
19041
  }), TerminalOutputBatchSchema, {
18893
19042
  kind: "mutation",
18894
19043
  auth: "admin",
@@ -21475,6 +21624,7 @@ var FaceInfoSchema = object({
21475
21624
  var FaceFilterEnum = _enum([
21476
21625
  "unassigned",
21477
21626
  "recognized",
21627
+ "identified",
21478
21628
  "all"
21479
21629
  ]);
21480
21630
  var MediaFileLiteSchema$1 = object({
@@ -21503,6 +21653,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21503
21653
  kind: "mutation",
21504
21654
  auth: "admin"
21505
21655
  }), method(object({
21656
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21657
+ deviceId: number().int().optional(),
21506
21658
  limit: number().int().positive().optional(),
21507
21659
  filter: FaceFilterEnum.optional(),
21508
21660
  /**
@@ -23732,6 +23884,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23732
23884
  capName: string().min(1).max(64),
23733
23885
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23734
23886
  valuePath: string().min(1).max(64)
23887
+ }),
23888
+ object({
23889
+ kind: literal("latest-recognition"),
23890
+ recognition: _enum(["person", "plate"])
23735
23891
  })
23736
23892
  ]);
23737
23893
  var OsdSlotBindingSchema = object({
@@ -23837,6 +23993,15 @@ method(object({ deviceId: number().int() }), object({
23837
23993
  }), object({ success: literal(true) }), {
23838
23994
  kind: "mutation",
23839
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"
23840
24005
  }), method(object({
23841
24006
  deviceId: number().int(),
23842
24007
  slotId: string().min(1),
@@ -24934,13 +25099,19 @@ method(object({
24934
25099
  }), {
24935
25100
  kind: "mutation",
24936
25101
  auth: "admin"
24937
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
25102
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24938
25103
  kind: "mutation",
24939
25104
  auth: "admin"
24940
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24941
- kind: "query",
25105
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
25106
+ kind: "mutation",
24942
25107
  auth: "admin"
24943
- }), 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() }), {
24944
25115
  kind: "mutation",
24945
25116
  auth: "admin"
24946
25117
  });
@@ -30546,6 +30717,12 @@ Object.freeze({
30546
30717
  addonId: null,
30547
30718
  access: "delete"
30548
30719
  },
30720
+ "osdManager.copyDeviceConfiguration": {
30721
+ capName: "osd-manager",
30722
+ capScope: "system",
30723
+ addonId: null,
30724
+ access: "create"
30725
+ },
30549
30726
  "osdManager.getConditionSupport": {
30550
30727
  capName: "osd-manager",
30551
30728
  capScope: "system",
@@ -30642,7 +30819,7 @@ Object.freeze({
30642
30819
  addonId: null,
30643
30820
  access: "create"
30644
30821
  },
30645
- "pipelineAnalytics.cancelMediaRelocate": {
30822
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30646
30823
  capName: "pipeline-analytics",
30647
30824
  capScope: "device",
30648
30825
  addonId: null,
@@ -30714,12 +30891,6 @@ Object.freeze({
30714
30891
  addonId: null,
30715
30892
  access: "view"
30716
30893
  },
30717
- "pipelineAnalytics.getMediaRelocateStatus": {
30718
- capName: "pipeline-analytics",
30719
- capScope: "device",
30720
- addonId: null,
30721
- access: "view"
30722
- },
30723
30894
  "pipelineAnalytics.getMotionEvents": {
30724
30895
  capName: "pipeline-analytics",
30725
30896
  capScope: "device",
@@ -30756,6 +30927,12 @@ Object.freeze({
30756
30927
  addonId: null,
30757
30928
  access: "view"
30758
30929
  },
30930
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30931
+ capName: "pipeline-analytics",
30932
+ capScope: "device",
30933
+ addonId: null,
30934
+ access: "view"
30935
+ },
30759
30936
  "pipelineAnalytics.getTrack": {
30760
30937
  capName: "pipeline-analytics",
30761
30938
  capScope: "device",
@@ -30834,6 +31011,12 @@ Object.freeze({
30834
31011
  addonId: null,
30835
31012
  access: "view"
30836
31013
  },
31014
+ "pipelineAnalytics.pauseForStorageMigration": {
31015
+ capName: "pipeline-analytics",
31016
+ capScope: "device",
31017
+ addonId: null,
31018
+ access: "create"
31019
+ },
30837
31020
  "pipelineAnalytics.proposeRetrainAnnotations": {
30838
31021
  capName: "pipeline-analytics",
30839
31022
  capScope: "device",
@@ -30864,7 +31047,7 @@ Object.freeze({
30864
31047
  addonId: null,
30865
31048
  access: "create"
30866
31049
  },
30867
- "pipelineAnalytics.relocateMedia": {
31050
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30868
31051
  capName: "pipeline-analytics",
30869
31052
  capScope: "device",
30870
31053
  addonId: null,
@@ -30876,6 +31059,12 @@ Object.freeze({
30876
31059
  addonId: null,
30877
31060
  access: "create"
30878
31061
  },
31062
+ "pipelineAnalytics.resumeForStorageMigration": {
31063
+ capName: "pipeline-analytics",
31064
+ capScope: "device",
31065
+ addonId: null,
31066
+ access: "create"
31067
+ },
30879
31068
  "pipelineAnalytics.saveRetrainAnnotations": {
30880
31069
  capName: "pipeline-analytics",
30881
31070
  capScope: "device",
@@ -30900,6 +31089,12 @@ Object.freeze({
30900
31089
  addonId: null,
30901
31090
  access: "create"
30902
31091
  },
31092
+ "pipelineAnalytics.startStorageMigrationMove": {
31093
+ capName: "pipeline-analytics",
31094
+ capScope: "device",
31095
+ addonId: null,
31096
+ access: "create"
31097
+ },
30903
31098
  "pipelineAnalytics.wipeAllAnalytics": {
30904
31099
  capName: "pipeline-analytics",
30905
31100
  capScope: "device",
@@ -31266,6 +31461,12 @@ Object.freeze({
31266
31461
  addonId: null,
31267
31462
  access: "view"
31268
31463
  },
31464
+ "pipelineOrchestrator.pauseForStorageMigration": {
31465
+ capName: "pipeline-orchestrator",
31466
+ capScope: "system",
31467
+ addonId: null,
31468
+ access: "create"
31469
+ },
31269
31470
  "pipelineOrchestrator.rebalance": {
31270
31471
  capName: "pipeline-orchestrator",
31271
31472
  capScope: "system",
@@ -31290,6 +31491,12 @@ Object.freeze({
31290
31491
  addonId: null,
31291
31492
  access: "view"
31292
31493
  },
31494
+ "pipelineOrchestrator.resumeForStorageMigration": {
31495
+ capName: "pipeline-orchestrator",
31496
+ capScope: "system",
31497
+ addonId: null,
31498
+ access: "create"
31499
+ },
31293
31500
  "pipelineOrchestrator.saveTemplate": {
31294
31501
  capName: "pipeline-orchestrator",
31295
31502
  capScope: "system",
@@ -31686,7 +31893,7 @@ Object.freeze({
31686
31893
  addonId: null,
31687
31894
  access: "create"
31688
31895
  },
31689
- "recording.cancelRelocate": {
31896
+ "recording.cancelStorageMigrationMove": {
31690
31897
  capName: "recording",
31691
31898
  capScope: "system",
31692
31899
  addonId: null,
@@ -31722,7 +31929,7 @@ Object.freeze({
31722
31929
  addonId: null,
31723
31930
  access: "view"
31724
31931
  },
31725
- "recording.getRelocateStatus": {
31932
+ "recording.getStorageMigrationMoveStatus": {
31726
31933
  capName: "recording",
31727
31934
  capScope: "system",
31728
31935
  addonId: null,
@@ -31746,6 +31953,12 @@ Object.freeze({
31746
31953
  addonId: null,
31747
31954
  access: "view"
31748
31955
  },
31956
+ "recording.pauseForStorageMigration": {
31957
+ capName: "recording",
31958
+ capScope: "system",
31959
+ addonId: null,
31960
+ access: "create"
31961
+ },
31749
31962
  "recording.pruneFootage": {
31750
31963
  capName: "recording",
31751
31964
  capScope: "system",
@@ -31764,7 +31977,7 @@ Object.freeze({
31764
31977
  addonId: null,
31765
31978
  access: "view"
31766
31979
  },
31767
- "recording.relocateFootage": {
31980
+ "recording.refreshStorageLocationsForMigration": {
31768
31981
  capName: "recording",
31769
31982
  capScope: "system",
31770
31983
  addonId: null,
@@ -31788,12 +32001,24 @@ Object.freeze({
31788
32001
  addonId: null,
31789
32002
  access: "create"
31790
32003
  },
32004
+ "recording.resumeForStorageMigration": {
32005
+ capName: "recording",
32006
+ capScope: "system",
32007
+ addonId: null,
32008
+ access: "create"
32009
+ },
31791
32010
  "recording.setDeviceConfig": {
31792
32011
  capName: "recording",
31793
32012
  capScope: "system",
31794
32013
  addonId: null,
31795
32014
  access: "create"
31796
32015
  },
32016
+ "recording.startStorageMigrationMove": {
32017
+ capName: "recording",
32018
+ capScope: "system",
32019
+ addonId: null,
32020
+ access: "create"
32021
+ },
31797
32022
  "recordingExport.cancelExport": {
31798
32023
  capName: "recordingExport",
31799
32024
  capScope: "system",
@@ -32184,6 +32409,30 @@ Object.freeze({
32184
32409
  addonId: null,
32185
32410
  access: "view"
32186
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
+ },
32187
32436
  "storageProvider.abortUpload": {
32188
32437
  capName: "storage-provider",
32189
32438
  capScope: "system",
@@ -32562,12 +32811,42 @@ Object.freeze({
32562
32811
  addonId: null,
32563
32812
  access: "create"
32564
32813
  },
32814
+ "terminalSession.adoptLegacyMonitor": {
32815
+ capName: "terminal-session",
32816
+ capScope: "system",
32817
+ addonId: null,
32818
+ access: "create"
32819
+ },
32565
32820
  "terminalSession.close": {
32566
32821
  capName: "terminal-session",
32567
32822
  capScope: "system",
32568
32823
  addonId: null,
32569
32824
  access: "create"
32570
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
+ },
32571
32850
  "terminalSession.listProfiles": {
32572
32851
  capName: "terminal-session",
32573
32852
  capScope: "system",
@@ -32598,6 +32877,12 @@ Object.freeze({
32598
32877
  addonId: null,
32599
32878
  access: "create"
32600
32879
  },
32880
+ "terminalSession.setInstanceEnabled": {
32881
+ capName: "terminal-session",
32882
+ capScope: "system",
32883
+ addonId: null,
32884
+ access: "create"
32885
+ },
32601
32886
  "terminalSession.writeInput": {
32602
32887
  capName: "terminal-session",
32603
32888
  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-CM18Ztr0.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-D4ZQ698x.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.23",
3
+ "version": "1.2.24",
4
4
  "description": "Home Assistant device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",