camstack 1.2.110 → 1.2.111

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.
@@ -17884,12 +17884,30 @@ var BackupDestinationInfoSchema = external_exports.object({
17884
17884
  lastSuccessAt: external_exports.number().optional(),
17885
17885
  /** Newest-archive size from `manifests.json`, or undefined. */
17886
17886
  lastSuccessSizeBytes: external_exports.number().optional(),
17887
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
17887
+ /**
17888
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
17889
+ * destination, comma-joined. Absent when no enabled schedule targets it
17890
+ * — a destination nothing is scheduled to write to must not advertise a
17891
+ * cadence (D384). This is never the `backup_destination_policies.cron`
17892
+ * column: that per-location cron has scheduled nothing since 2026-07-28
17893
+ * and reading it made a destination with a DISABLED schedule claim a
17894
+ * nightly run.
17895
+ */
17888
17896
  cron: external_exports.string().optional(),
17889
- /** ms-epoch of next computed firing for this destination's cron, if any. */
17897
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
17890
17898
  nextRunAt: external_exports.number().optional(),
17891
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
17892
- lastRunAt: external_exports.number().optional()
17899
+ /**
17900
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
17901
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
17902
+ * newest archive that actually landed) and `lastError`.
17903
+ */
17904
+ lastAttemptAt: external_exports.number().optional(),
17905
+ /**
17906
+ * Why the last attempt failed, verbatim. Absent when the last attempt
17907
+ * landed the archive. A destination that has never been written to has
17908
+ * neither this nor `lastAttemptAt`.
17909
+ */
17910
+ lastError: external_exports.string().optional()
17893
17911
  });
17894
17912
  var BackupArchiveEntrySchema = external_exports.object({
17895
17913
  id: external_exports.string(),
@@ -18011,8 +18029,16 @@ var BackupScheduleSchema = external_exports.object({
18011
18029
  retentionCount: external_exports.number().int().min(1).max(1e3),
18012
18030
  /** Optional subset of source locations to include; omitted = all. */
18013
18031
  dataSources: external_exports.array(external_exports.string()).readonly().optional(),
18014
- /** ms-epoch of last successful run. */
18015
- lastRunAt: external_exports.number().optional(),
18032
+ /**
18033
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
18034
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
18035
+ * "succeeded" — a run refused by every destination stamps it too.
18036
+ */
18037
+ lastAttemptAt: external_exports.number().optional(),
18038
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
18039
+ lastSuccessAt: external_exports.number().optional(),
18040
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
18041
+ lastError: external_exports.string().optional(),
18016
18042
  /** ms-epoch of next computed firing (read-only, filled on list). */
18017
18043
  nextRunAt: external_exports.number().optional()
18018
18044
  });
@@ -18135,14 +18161,7 @@ var backupCapability = {
18135
18161
  locationId: external_exports.string(),
18136
18162
  enabled: external_exports.boolean(),
18137
18163
  retentionCount: external_exports.number().int().min(1).max(1e3),
18138
- label: external_exports.string().optional(),
18139
- /**
18140
- * Per-destination cron expression. Empty string clears the
18141
- * schedule (manual-only). Validated server-side via croner;
18142
- * malformed expressions reject the upsert with an actionable
18143
- * message.
18144
- */
18145
- cron: external_exports.string().optional()
18164
+ label: external_exports.string().optional()
18146
18165
  }), external_exports.void(), {
18147
18166
  kind: "mutation",
18148
18167
  auth: "admin"
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-YK6NE5VI.js";
4
+ } from "./chunk-A3Y6T7EJ.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-YBWRBM2B.js");
41
+ await import("./launcher-D6HMI7VW.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-YBWRBM2B.js");
86
+ await import("./launcher-D6HMI7VW.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-6YJTDHZO.js");
1133
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-ER4G5QZV.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-YK6NE5VI.js";
8
+ } from "./chunk-A3Y6T7EJ.js";
9
9
  import "./chunk-LMMQX4CK.js";
10
10
  export {
11
11
  DEFAULT_HUB_HTTPS_PORT,
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
23633
23633
  }
23634
23634
  });
23635
23635
 
23636
- // ../system/dist/dist-KQ5D2wqr.js
23637
- var require_dist_KQ5D2wqr = __commonJS({
23638
- "../system/dist/dist-KQ5D2wqr.js"(exports) {
23636
+ // ../system/dist/dist-CcV3k-hD.js
23637
+ var require_dist_CcV3k_hD = __commonJS({
23638
+ "../system/dist/dist-CcV3k-hD.js"(exports) {
23639
23639
  "use strict";
23640
23640
  var zod = require_zod();
23641
23641
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -28498,12 +28498,30 @@ var require_dist_KQ5D2wqr = __commonJS({
28498
28498
  lastSuccessAt: zod.z.number().optional(),
28499
28499
  /** Newest-archive size from `manifests.json`, or undefined. */
28500
28500
  lastSuccessSizeBytes: zod.z.number().optional(),
28501
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
28501
+ /**
28502
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
28503
+ * destination, comma-joined. Absent when no enabled schedule targets it
28504
+ * — a destination nothing is scheduled to write to must not advertise a
28505
+ * cadence (D384). This is never the `backup_destination_policies.cron`
28506
+ * column: that per-location cron has scheduled nothing since 2026-07-28
28507
+ * and reading it made a destination with a DISABLED schedule claim a
28508
+ * nightly run.
28509
+ */
28502
28510
  cron: zod.z.string().optional(),
28503
- /** ms-epoch of next computed firing for this destination's cron, if any. */
28511
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
28504
28512
  nextRunAt: zod.z.number().optional(),
28505
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
28506
- lastRunAt: zod.z.number().optional()
28513
+ /**
28514
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
28515
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
28516
+ * newest archive that actually landed) and `lastError`.
28517
+ */
28518
+ lastAttemptAt: zod.z.number().optional(),
28519
+ /**
28520
+ * Why the last attempt failed, verbatim. Absent when the last attempt
28521
+ * landed the archive. A destination that has never been written to has
28522
+ * neither this nor `lastAttemptAt`.
28523
+ */
28524
+ lastError: zod.z.string().optional()
28507
28525
  });
28508
28526
  var BackupArchiveEntrySchema = zod.z.object({
28509
28527
  id: zod.z.string(),
@@ -28625,8 +28643,16 @@ var require_dist_KQ5D2wqr = __commonJS({
28625
28643
  retentionCount: zod.z.number().int().min(1).max(1e3),
28626
28644
  /** Optional subset of source locations to include; omitted = all. */
28627
28645
  dataSources: zod.z.array(zod.z.string()).readonly().optional(),
28628
- /** ms-epoch of last successful run. */
28629
- lastRunAt: zod.z.number().optional(),
28646
+ /**
28647
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
28648
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
28649
+ * "succeeded" — a run refused by every destination stamps it too.
28650
+ */
28651
+ lastAttemptAt: zod.z.number().optional(),
28652
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
28653
+ lastSuccessAt: zod.z.number().optional(),
28654
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
28655
+ lastError: zod.z.string().optional(),
28630
28656
  /** ms-epoch of next computed firing (read-only, filled on list). */
28631
28657
  nextRunAt: zod.z.number().optional()
28632
28658
  });
@@ -28749,14 +28775,7 @@ var require_dist_KQ5D2wqr = __commonJS({
28749
28775
  locationId: zod.z.string(),
28750
28776
  enabled: zod.z.boolean(),
28751
28777
  retentionCount: zod.z.number().int().min(1).max(1e3),
28752
- label: zod.z.string().optional(),
28753
- /**
28754
- * Per-destination cron expression. Empty string clears the
28755
- * schedule (manual-only). Validated server-side via croner;
28756
- * malformed expressions reject the upsert with an actionable
28757
- * message.
28758
- */
28759
- cron: zod.z.string().optional()
28778
+ label: zod.z.string().optional()
28760
28779
  }), zod.z.void(), {
28761
28780
  kind: "mutation",
28762
28781
  auth: "admin"
@@ -60675,7 +60694,7 @@ var require_alerts_addon = __commonJS({
60675
60694
  [Symbol.toStringTag]: { value: "Module" }
60676
60695
  });
60677
60696
  require_chunk_Cek0wNdY();
60678
- var require_dist10 = require_dist_KQ5D2wqr();
60697
+ var require_dist10 = require_dist_CcV3k_hD();
60679
60698
  function selectExpired(alerts, cutoffMs) {
60680
60699
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
60681
60700
  }
@@ -61494,7 +61513,7 @@ var require_console_logging = __commonJS({
61494
61513
  [Symbol.toStringTag]: { value: "Module" }
61495
61514
  });
61496
61515
  require_chunk_Cek0wNdY();
61497
- var require_dist10 = require_dist_KQ5D2wqr();
61516
+ var require_dist10 = require_dist_CcV3k_hD();
61498
61517
  var require_formatter = require_formatter_DqAKDlvN();
61499
61518
  var LEVEL_RANK = {
61500
61519
  debug: 0,
@@ -61588,7 +61607,7 @@ var require_core_blocks_addon = __commonJS({
61588
61607
  "use strict";
61589
61608
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
61590
61609
  var require_chunk = require_chunk_Cek0wNdY();
61591
- var require_dist10 = require_dist_KQ5D2wqr();
61610
+ var require_dist10 = require_dist_CcV3k_hD();
61592
61611
  var node_crypto = __require("crypto");
61593
61612
  var node_fs_promises = __require("fs/promises");
61594
61613
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -62485,11 +62504,11 @@ var require_core_blocks = __commonJS({
62485
62504
  }
62486
62505
  });
62487
62506
 
62488
- // ../system/dist/retired-settings-keys-2lWk7OeU.js
62489
- var require_retired_settings_keys_2lWk7OeU = __commonJS({
62490
- "../system/dist/retired-settings-keys-2lWk7OeU.js"(exports) {
62507
+ // ../system/dist/retired-settings-keys-Bd8fuwO1.js
62508
+ var require_retired_settings_keys_Bd8fuwO1 = __commonJS({
62509
+ "../system/dist/retired-settings-keys-Bd8fuwO1.js"(exports) {
62491
62510
  "use strict";
62492
- var require_dist10 = require_dist_KQ5D2wqr();
62511
+ var require_dist10 = require_dist_CcV3k_hD();
62493
62512
  function settingsStoreIsAuthoritativeHere(env) {
62494
62513
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
62495
62514
  return raw === "" || raw === "hub";
@@ -64703,8 +64722,8 @@ var require_device_manager_addon = __commonJS({
64703
64722
  [Symbol.toStringTag]: { value: "Module" }
64704
64723
  });
64705
64724
  require_chunk_Cek0wNdY();
64706
- var require_dist10 = require_dist_KQ5D2wqr();
64707
- var require_retired_settings_keys = require_retired_settings_keys_2lWk7OeU();
64725
+ var require_dist10 = require_dist_CcV3k_hD();
64726
+ var require_retired_settings_keys = require_retired_settings_keys_Bd8fuwO1();
64708
64727
  var node_crypto = __require("crypto");
64709
64728
  var _camstack_types_node = require_node();
64710
64729
  var JOB_HISTORY = 20;
@@ -70329,7 +70348,7 @@ var require_hub_forwarder = __commonJS({
70329
70348
  [Symbol.toStringTag]: { value: "Module" }
70330
70349
  });
70331
70350
  require_chunk_Cek0wNdY();
70332
- var require_dist10 = require_dist_KQ5D2wqr();
70351
+ var require_dist10 = require_dist_CcV3k_hD();
70333
70352
  var require_formatter = require_formatter_DqAKDlvN();
70334
70353
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
70335
70354
  var HubForwarderDestination = class {
@@ -70466,7 +70485,7 @@ var require_liveness_monitor_addon = __commonJS({
70466
70485
  "use strict";
70467
70486
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
70468
70487
  require_chunk_Cek0wNdY();
70469
- var require_dist10 = require_dist_KQ5D2wqr();
70488
+ var require_dist10 = require_dist_CcV3k_hD();
70470
70489
  var NO_DEVICES = "liveness:no-devices";
70471
70490
  var ALL_OFFLINE = "liveness:all-devices-offline";
70472
70491
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -70662,7 +70681,7 @@ var require_local_auth_addon = __commonJS({
70662
70681
  [Symbol.toStringTag]: { value: "Module" }
70663
70682
  });
70664
70683
  var require_chunk = require_chunk_Cek0wNdY();
70665
- var require_dist10 = require_dist_KQ5D2wqr();
70684
+ var require_dist10 = require_dist_CcV3k_hD();
70666
70685
  var node_crypto = __require("crypto");
70667
70686
  node_crypto = require_chunk.__toESM(node_crypto);
70668
70687
  var crypto$1 = __require("crypto");
@@ -78475,7 +78494,7 @@ var require_loki_logging = __commonJS({
78475
78494
  [Symbol.toStringTag]: { value: "Module" }
78476
78495
  });
78477
78496
  require_chunk_Cek0wNdY();
78478
- var require_dist10 = require_dist_KQ5D2wqr();
78497
+ var require_dist10 = require_dist_CcV3k_hD();
78479
78498
  function sanitizeLabelName(raw) {
78480
78499
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
78481
78500
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -79040,7 +79059,7 @@ var require_native_metrics_addon = __commonJS({
79040
79059
  [Symbol.toStringTag]: { value: "Module" }
79041
79060
  });
79042
79061
  var require_chunk = require_chunk_Cek0wNdY();
79043
- var require_dist10 = require_dist_KQ5D2wqr();
79062
+ var require_dist10 = require_dist_CcV3k_hD();
79044
79063
  var node_fs_promises = __require("fs/promises");
79045
79064
  var node_child_process = __require("child_process");
79046
79065
  var node_util = __require("util");
@@ -81624,7 +81643,7 @@ var require_filesystem_storage_addon = __commonJS({
81624
81643
  [Symbol.toStringTag]: { value: "Module" }
81625
81644
  });
81626
81645
  var require_chunk = require_chunk_Cek0wNdY();
81627
- var require_dist10 = require_dist_KQ5D2wqr();
81646
+ var require_dist10 = require_dist_CcV3k_hD();
81628
81647
  var node_crypto = __require("crypto");
81629
81648
  var node_fs_promises = __require("fs/promises");
81630
81649
  var node_path = __require("path");
@@ -82740,8 +82759,8 @@ var require_sqlite_settings_addon = __commonJS({
82740
82759
  [Symbol.toStringTag]: { value: "Module" }
82741
82760
  });
82742
82761
  var require_chunk = require_chunk_Cek0wNdY();
82743
- var require_dist10 = require_dist_KQ5D2wqr();
82744
- var require_retired_settings_keys = require_retired_settings_keys_2lWk7OeU();
82762
+ var require_dist10 = require_dist_CcV3k_hD();
82763
+ var require_retired_settings_keys = require_retired_settings_keys_Bd8fuwO1();
82745
82764
  var node_crypto = __require("crypto");
82746
82765
  var node_fs = __require("fs");
82747
82766
  var node_module = __require("module");
@@ -85231,7 +85250,7 @@ var require_storage_orchestrator_addon = __commonJS({
85231
85250
  [Symbol.toStringTag]: { value: "Module" }
85232
85251
  });
85233
85252
  var require_chunk = require_chunk_Cek0wNdY();
85234
- var require_dist10 = require_dist_KQ5D2wqr();
85253
+ var require_dist10 = require_dist_CcV3k_hD();
85235
85254
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
85236
85255
  var zod = require_zod();
85237
85256
  var node_crypto = __require("crypto");
@@ -88182,7 +88201,7 @@ var require_system_config_addon = __commonJS({
88182
88201
  [Symbol.toStringTag]: { value: "Module" }
88183
88202
  });
88184
88203
  require_chunk_Cek0wNdY();
88185
- var require_dist10 = require_dist_KQ5D2wqr();
88204
+ var require_dist10 = require_dist_CcV3k_hD();
88186
88205
  var SECTION_TITLES = {
88187
88206
  server: "Server",
88188
88207
  auth: "Authentication"
@@ -106243,7 +106262,7 @@ var require_winston_logging = __commonJS({
106243
106262
  [Symbol.toStringTag]: { value: "Module" }
106244
106263
  });
106245
106264
  var require_chunk = require_chunk_Cek0wNdY();
106246
- var require_dist10 = require_dist_KQ5D2wqr();
106265
+ var require_dist10 = require_dist_CcV3k_hD();
106247
106266
  var require_formatter = require_formatter_DqAKDlvN();
106248
106267
  var node_path = __require("path");
106249
106268
  node_path = require_chunk.__toESM(node_path);
@@ -130881,7 +130900,7 @@ var require_dist3 = __commonJS({
130881
130900
  "use strict";
130882
130901
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
130883
130902
  var require_chunk = require_chunk_Cek0wNdY();
130884
- var require_dist10 = require_dist_KQ5D2wqr();
130903
+ var require_dist10 = require_dist_CcV3k_hD();
130885
130904
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
130886
130905
  require_alerts();
130887
130906
  var require_formatter = require_formatter_DqAKDlvN();
@@ -216679,12 +216698,30 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
216679
216698
  lastSuccessAt: zod.z.number().optional(),
216680
216699
  /** Newest-archive size from `manifests.json`, or undefined. */
216681
216700
  lastSuccessSizeBytes: zod.z.number().optional(),
216682
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
216701
+ /**
216702
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
216703
+ * destination, comma-joined. Absent when no enabled schedule targets it
216704
+ * — a destination nothing is scheduled to write to must not advertise a
216705
+ * cadence (D384). This is never the `backup_destination_policies.cron`
216706
+ * column: that per-location cron has scheduled nothing since 2026-07-28
216707
+ * and reading it made a destination with a DISABLED schedule claim a
216708
+ * nightly run.
216709
+ */
216683
216710
  cron: zod.z.string().optional(),
216684
- /** ms-epoch of next computed firing for this destination's cron, if any. */
216711
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
216685
216712
  nextRunAt: zod.z.number().optional(),
216686
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
216687
- lastRunAt: zod.z.number().optional()
216713
+ /**
216714
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
216715
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
216716
+ * newest archive that actually landed) and `lastError`.
216717
+ */
216718
+ lastAttemptAt: zod.z.number().optional(),
216719
+ /**
216720
+ * Why the last attempt failed, verbatim. Absent when the last attempt
216721
+ * landed the archive. A destination that has never been written to has
216722
+ * neither this nor `lastAttemptAt`.
216723
+ */
216724
+ lastError: zod.z.string().optional()
216688
216725
  });
216689
216726
  var BackupArchiveEntrySchema = zod.z.object({
216690
216727
  id: zod.z.string(),
@@ -216806,8 +216843,16 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
216806
216843
  retentionCount: zod.z.number().int().min(1).max(1e3),
216807
216844
  /** Optional subset of source locations to include; omitted = all. */
216808
216845
  dataSources: zod.z.array(zod.z.string()).readonly().optional(),
216809
- /** ms-epoch of last successful run. */
216810
- lastRunAt: zod.z.number().optional(),
216846
+ /**
216847
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
216848
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
216849
+ * "succeeded" — a run refused by every destination stamps it too.
216850
+ */
216851
+ lastAttemptAt: zod.z.number().optional(),
216852
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
216853
+ lastSuccessAt: zod.z.number().optional(),
216854
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
216855
+ lastError: zod.z.string().optional(),
216811
216856
  /** ms-epoch of next computed firing (read-only, filled on list). */
216812
216857
  nextRunAt: zod.z.number().optional()
216813
216858
  });
@@ -216930,14 +216975,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
216930
216975
  locationId: zod.z.string(),
216931
216976
  enabled: zod.z.boolean(),
216932
216977
  retentionCount: zod.z.number().int().min(1).max(1e3),
216933
- label: zod.z.string().optional(),
216934
- /**
216935
- * Per-destination cron expression. Empty string clears the
216936
- * schedule (manual-only). Validated server-side via croner;
216937
- * malformed expressions reject the upsert with an actionable
216938
- * message.
216939
- */
216940
- cron: zod.z.string().optional()
216978
+ label: zod.z.string().optional()
216941
216979
  }), zod.z.void(), {
216942
216980
  kind: "mutation",
216943
216981
  auth: "admin"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.110",
3
+ "version": "1.2.111",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",