camstack 1.2.61 → 1.2.62

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.
@@ -14522,7 +14522,7 @@ function date4(params) {
14522
14522
  // ../../node_modules/zod/v4/classic/external.js
14523
14523
  config(en_default());
14524
14524
 
14525
- // ../types/dist/sleep-C9C8EoK8.mjs
14525
+ // ../types/dist/sleep-L5-bG_a_.mjs
14526
14526
  var WELL_KNOWN_TABS = [
14527
14527
  {
14528
14528
  id: "overview",
@@ -15803,29 +15803,50 @@ var RelocateFootageInputSchema = external_exports.object({
15803
15803
  });
15804
15804
  var StorageMigrationLeaseInputSchema = external_exports.object({ leaseId: external_exports.string().min(1) });
15805
15805
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: external_exports.string().min(1) });
15806
+ var MediaRelocateModeSchema = external_exports.enum([
15807
+ "move",
15808
+ "seal",
15809
+ "gallery"
15810
+ ]);
15806
15811
  var RelocateMediaInputSchema = external_exports.object({
15807
15812
  toLocationId: external_exports.string(),
15808
- throttleMbps: external_exports.number().min(1).max(1e3).optional()
15813
+ throttleMbps: external_exports.number().min(1).max(1e3).optional(),
15814
+ /** Omitted = `move`, the pre-existing behaviour. */
15815
+ mode: MediaRelocateModeSchema.optional()
15816
+ });
15817
+ var UnstampedEventMediaCountSchema = external_exports.object({
15818
+ media: external_exports.number().int().nonnegative(),
15819
+ retrainFrames: external_exports.number().int().nonnegative(),
15820
+ total: external_exports.number().int().nonnegative()
15809
15821
  });
15810
15822
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: external_exports.string().min(1) });
15811
15823
  var StorageMigrationClassSchema = external_exports.enum([
15812
15824
  "recordings",
15813
15825
  "recordingsLow",
15814
- "eventMedia"
15826
+ "eventMedia",
15827
+ "backups",
15828
+ "galleryMedia"
15815
15829
  ]);
15816
15830
  var StorageMigrationDestinationsSchema = external_exports.object({
15817
15831
  recordings: external_exports.string().min(1).optional(),
15818
15832
  recordingsLow: external_exports.string().min(1).optional(),
15819
- eventMedia: external_exports.string().min(1).optional()
15833
+ eventMedia: external_exports.string().min(1).optional(),
15834
+ backups: external_exports.string().min(1).optional(),
15835
+ galleryMedia: external_exports.string().min(1).optional()
15820
15836
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
15837
+ var StorageMigrationModeSchema = external_exports.enum(["blocking", "nonBlocking"]);
15821
15838
  var StorageMigrationInputSchema = external_exports.object({
15822
15839
  destinations: StorageMigrationDestinationsSchema,
15823
- throttleMbps: external_exports.number().min(1).max(1e3).optional()
15840
+ throttleMbps: external_exports.number().min(1).max(1e3).optional(),
15841
+ /** Omitted = `blocking`, which stays the default. */
15842
+ mode: StorageMigrationModeSchema.optional()
15824
15843
  });
15825
15844
  var StorageMigrationPhaseSchema = external_exports.enum([
15826
15845
  "planning",
15846
+ "sealing",
15827
15847
  "pausing",
15828
15848
  "moving",
15849
+ "draining",
15829
15850
  "verifying",
15830
15851
  "repointing",
15831
15852
  "refreshing",
@@ -15850,6 +15871,9 @@ var StorageMigrationMoveSchema = external_exports.object({
15850
15871
  var StorageMigrationJobSchema = external_exports.object({
15851
15872
  jobId: external_exports.string(),
15852
15873
  phase: StorageMigrationPhaseSchema,
15874
+ /** Which order this job is running. `status` is the only place an operator
15875
+ * can tell a seconds-long cutover from a thirty-hour one. */
15876
+ mode: StorageMigrationModeSchema,
15853
15877
  destinations: StorageMigrationDestinationsSchema,
15854
15878
  throttleMbps: external_exports.number(),
15855
15879
  moves: external_exports.array(StorageMigrationMoveSchema),
@@ -15862,13 +15886,31 @@ var StorageMigrationJobSchema = external_exports.object({
15862
15886
  finishedAt: external_exports.number().nullable(),
15863
15887
  error: external_exports.string().nullable()
15864
15888
  });
15889
+ var StorageMigrationFindingCodeSchema = external_exports.enum([
15890
+ "sharesDeviceWithSource",
15891
+ "deviceIdentityUnknown",
15892
+ "unstampedEventMediaRows",
15893
+ "blockingOnly",
15894
+ "noMover"
15895
+ ]);
15896
+ var StorageMigrationFindingSchema = external_exports.object({
15897
+ code: StorageMigrationFindingCodeSchema,
15898
+ storageClass: StorageMigrationClassSchema,
15899
+ /** Human-readable, already carrying the ids and counts. */
15900
+ message: external_exports.string()
15901
+ });
15865
15902
  var StorageMigrationPlanSchema = external_exports.object({
15866
15903
  destinations: StorageMigrationDestinationsSchema,
15904
+ /** The mode this plan was built for. A plan is only valid for its mode: the
15905
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
15906
+ * it. */
15907
+ mode: StorageMigrationModeSchema,
15867
15908
  moves: external_exports.array(external_exports.object({
15868
15909
  storageClass: StorageMigrationClassSchema,
15869
15910
  fromLocationId: external_exports.string(),
15870
15911
  toLocationId: external_exports.string()
15871
- }))
15912
+ })),
15913
+ findings: external_exports.array(StorageMigrationFindingSchema)
15872
15914
  });
15873
15915
  var StorageLocationTypeSchema = external_exports.string().regex(/^[a-z][a-zA-Z0-9-]*$/);
15874
15916
  var StorageLocationSchema = external_exports.object({
@@ -26655,6 +26697,17 @@ var pipelineAnalyticsCapability = {
26655
26697
  kind: "mutation",
26656
26698
  auth: "admin"
26657
26699
  }),
26700
+ /**
26701
+ * How many media / retrain rows still carry NO `locationId`.
26702
+ *
26703
+ * A NULL row means "wherever `eventMedia` points NOW", so the instant a
26704
+ * repoint moves that pointer every such row reads from the new disk while
26705
+ * its bytes are on the old one — the archive goes dark until a drain
26706
+ * happens to stamp it. This count is what the migration planner's
26707
+ * non-blocking gate reads; `relocateMedia({ mode: 'seal' })` is what drives
26708
+ * it to zero.
26709
+ */
26710
+ countUnstampedEventMedia: method(external_exports.object({}), UnstampedEventMediaCountSchema, { auth: "admin" }),
26658
26711
  /** Every relocate job this addon knows about, newest first (in RAM: the
26659
26712
  * move is resumable, so a lost list costs nothing but the display). */
26660
26713
  listRelocateMediaJobs: method(external_exports.object({}), external_exports.array(RelocateJobSchema).readonly(), {
@@ -29252,7 +29305,24 @@ var storageCapability = {
29252
29305
  kind: "mutation",
29253
29306
  auth: "admin"
29254
29307
  }),
29255
- deleteLocation: method(external_exports.object({ id: external_exports.string() }), external_exports.void(), {
29308
+ /**
29309
+ * Remove a location record. REFUSES a location that still holds data —
29310
+ * deleting a drained location whose durable rows still name it is how this
29311
+ * hub acquired 2 131 ghost `recordings:high` segments, and playback does
29312
+ * not stat, so the operator sees a silent black window rather than an
29313
+ * error.
29314
+ *
29315
+ * `force` exists because the occupancy check is BEST-EFFORT and refuses on
29316
+ * "unknown" as well as on "occupied" (a read that fails must not authorise
29317
+ * a destruction — D49). A location on a removed disk, on another node, or
29318
+ * behind a remote provider answers "unknown" forever, and a refusal an
29319
+ * operator cannot override is its own failure mode. `force: true` is
29320
+ * logged, loudly, with what the check saw.
29321
+ */
29322
+ deleteLocation: method(external_exports.object({
29323
+ id: external_exports.string(),
29324
+ force: external_exports.boolean().optional()
29325
+ }), external_exports.void(), {
29256
29326
  kind: "mutation",
29257
29327
  auth: "admin"
29258
29328
  }),
@@ -41580,6 +41650,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
41580
41650
  addonId: null,
41581
41651
  access: "create"
41582
41652
  },
41653
+ "pipelineAnalytics.countUnstampedEventMedia": {
41654
+ capName: "pipeline-analytics",
41655
+ capScope: "device",
41656
+ addonId: null,
41657
+ access: "view"
41658
+ },
41583
41659
  "pipelineAnalytics.deleteDeviceEvents": {
41584
41660
  capName: "pipeline-analytics",
41585
41661
  capScope: "device",
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-ARTM5NDU.js";
4
+ } from "./chunk-SEHB4NXH.js";
5
5
  import "./chunk-LMMQX4CK.js";
6
6
 
7
7
  // src/cli.ts
@@ -38,7 +38,7 @@ async function runServe(args) {
38
38
  ...typeof values.data === "string" ? { data: values.data } : {}
39
39
  };
40
40
  Object.assign(process.env, buildServeEnv(opts));
41
- await import("./launcher-AZ7QXACO.js");
41
+ await import("./launcher-GM4YFS5M.js");
42
42
  }
43
43
 
44
44
  // src/commands/agent.ts
@@ -83,7 +83,7 @@ async function runAgent(args) {
83
83
  ...typeof values.port === "string" ? { port: values.port } : {}
84
84
  };
85
85
  Object.assign(process.env, buildAgentEnv(opts));
86
- await import("./launcher-AZ7QXACO.js");
86
+ await import("./launcher-GM4YFS5M.js");
87
87
  }
88
88
 
89
89
  // src/commands/setup.ts
@@ -1130,7 +1130,7 @@ function isUnknown(_value) {
1130
1130
  return true;
1131
1131
  }
1132
1132
  async function resolveServerInteractive(presetNamespace) {
1133
- const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-UFN2BYNO.js");
1133
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-LCFHENJ3.js");
1134
1134
  if (presetNamespace) {
1135
1135
  const spinner4 = clack.spinner();
1136
1136
  spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
@@ -5,7 +5,7 @@ import {
5
5
  filterHubNodes,
6
6
  resolveHubFromDiscovered,
7
7
  runDiscover
8
- } from "./chunk-ARTM5NDU.js";
8
+ } from "./chunk-SEHB4NXH.js";
9
9
  import "./chunk-LMMQX4CK.js";
10
10
  export {
11
11
  DEFAULT_HUB_HTTPS_PORT,