camstack 1.2.90 → 1.2.91

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-B195W080.mjs
14525
+ // ../types/dist/sleep-CbBk_3GJ.mjs
14526
14526
  var WELL_KNOWN_TABS = [
14527
14527
  {
14528
14528
  id: "overview",
@@ -26134,6 +26134,21 @@ var TrackFlagFields = {
26134
26134
  markForTrain: external_exports.boolean().optional(),
26135
26135
  /** Operator marked this track for diagnostic attention. */
26136
26136
  debug: external_exports.boolean().optional(),
26137
+ /**
26138
+ * What the operator wants CHECKED on this track, in their own words.
26139
+ *
26140
+ * The flag alone says "look at this" and nothing about what for; a debug set
26141
+ * reviewed hours later is a list of tracks with no question attached. Bound
26142
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
26143
+ * and refuses it on a track whose debug is off — so a note can never outlive
26144
+ * the attention it belongs to.
26145
+ *
26146
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
26147
+ * "leave whatever is stored alone", which is what lets a surface turn debug
26148
+ * on without a note (a cancelled prompt) and what lets it edit the note
26149
+ * without touching the flag.
26150
+ */
26151
+ debugNote: external_exports.string().max(500).optional(),
26137
26152
  /** Operator favourited this track. Pins it against pruning. */
26138
26153
  favourited: external_exports.boolean().optional()
26139
26154
  };
@@ -26143,6 +26158,12 @@ var TrackFlagsSchema = external_exports.object({
26143
26158
  trackId: external_exports.string(),
26144
26159
  markForTrain: external_exports.boolean(),
26145
26160
  debug: external_exports.boolean(),
26161
+ /** The note as it STANDS after the write — never absent here (a track with no
26162
+ * note reports `''`), for the same reason the booleans are required: a
26163
+ * surface that has just written must be able to render the note it now owns
26164
+ * without a re-fetch, and an absent key would read as "unchanged" on a
26165
+ * screen that has no previous value to keep. */
26166
+ debugNote: external_exports.string(),
26146
26167
  favourited: external_exports.boolean(),
26147
26168
  /** The lifecycle state the boolean was derived from. Required here (unlike on
26148
26169
  * a track row) because this shape is only ever produced by the write body,
@@ -27197,11 +27218,20 @@ var pipelineAnalyticsCapability = {
27197
27218
  * staging is a deliberate action of the retrain page, which is also the only
27198
27219
  * thing that produces `trained` in the first place.
27199
27220
  *
27200
- * Returns the RESOLVED state of both flags (absent → `false`) plus the
27201
- * `retrainStatus` they were derived from, so a caller can drive its toggle
27202
- * — and render a `trained` badge — without a re-fetch. Rejects an unknown
27203
- * track, a new staging mark on a device already holding its full budget, and
27204
- * any `markForTrain` write against a trained track.
27221
+ * `debugNote` is the operator's sentence about WHAT to check on this track,
27222
+ * and it is bound to `debug`: writing `debug: false` clears it in the same
27223
+ * statement, and a note sent for a track whose debug is off (and is not
27224
+ * being turned on) is DROPPED with a warning rather than stored where
27225
+ * nothing will ever read it. An omitted `debugNote` leaves the stored one
27226
+ * alone — which is what lets a surface turn debug on when the operator
27227
+ * declined to type anything, without that refusal costing them the flag.
27228
+ *
27229
+ * Returns the RESOLVED state of all three flags (absent → `false`) plus the
27230
+ * note (absent → `''`) and the `retrainStatus` they were derived from, so a
27231
+ * caller can drive its toggle — and render a `trained` badge — without a
27232
+ * re-fetch. Rejects an unknown track, a new staging mark on a device already
27233
+ * holding its full budget, and any `markForTrain` write against a trained
27234
+ * track.
27205
27235
  */
27206
27236
  setTrackFlags: method(external_exports.object({
27207
27237
  /** Log/audit scope only — the trackId is globally unique on its own. */
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-BLJRLA7I.js";
4
+ } from "./chunk-ECD5A36V.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-7KH64TCV.js");
41
+ await import("./launcher-FFY5TY3C.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-7KH64TCV.js");
86
+ await import("./launcher-FFY5TY3C.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-FHE2CTRJ.js");
1133
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-QUITQWRC.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-BLJRLA7I.js";
8
+ } from "./chunk-ECD5A36V.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-DE3OH-FG.js
23637
- var require_dist_DE3OH_FG = __commonJS({
23638
- "../system/dist/dist-DE3OH-FG.js"(exports) {
23636
+ // ../system/dist/dist-0fjBDzUu.js
23637
+ var require_dist_0fjBDzUu = __commonJS({
23638
+ "../system/dist/dist-0fjBDzUu.js"(exports) {
23639
23639
  "use strict";
23640
23640
  var zod = require_zod();
23641
23641
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -36840,6 +36840,21 @@ var require_dist_DE3OH_FG = __commonJS({
36840
36840
  markForTrain: zod.z.boolean().optional(),
36841
36841
  /** Operator marked this track for diagnostic attention. */
36842
36842
  debug: zod.z.boolean().optional(),
36843
+ /**
36844
+ * What the operator wants CHECKED on this track, in their own words.
36845
+ *
36846
+ * The flag alone says "look at this" and nothing about what for; a debug set
36847
+ * reviewed hours later is a list of tracks with no question attached. Bound
36848
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
36849
+ * and refuses it on a track whose debug is off — so a note can never outlive
36850
+ * the attention it belongs to.
36851
+ *
36852
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
36853
+ * "leave whatever is stored alone", which is what lets a surface turn debug
36854
+ * on without a note (a cancelled prompt) and what lets it edit the note
36855
+ * without touching the flag.
36856
+ */
36857
+ debugNote: zod.z.string().max(500).optional(),
36843
36858
  /** Operator favourited this track. Pins it against pruning. */
36844
36859
  favourited: zod.z.boolean().optional()
36845
36860
  };
@@ -36849,6 +36864,12 @@ var require_dist_DE3OH_FG = __commonJS({
36849
36864
  trackId: zod.z.string(),
36850
36865
  markForTrain: zod.z.boolean(),
36851
36866
  debug: zod.z.boolean(),
36867
+ /** The note as it STANDS after the write — never absent here (a track with no
36868
+ * note reports `''`), for the same reason the booleans are required: a
36869
+ * surface that has just written must be able to render the note it now owns
36870
+ * without a re-fetch, and an absent key would read as "unchanged" on a
36871
+ * screen that has no previous value to keep. */
36872
+ debugNote: zod.z.string(),
36852
36873
  favourited: zod.z.boolean(),
36853
36874
  /** The lifecycle state the boolean was derived from. Required here (unlike on
36854
36875
  * a track row) because this shape is only ever produced by the write body,
@@ -37902,11 +37923,20 @@ var require_dist_DE3OH_FG = __commonJS({
37902
37923
  * staging is a deliberate action of the retrain page, which is also the only
37903
37924
  * thing that produces `trained` in the first place.
37904
37925
  *
37905
- * Returns the RESOLVED state of both flags (absent → `false`) plus the
37906
- * `retrainStatus` they were derived from, so a caller can drive its toggle
37907
- * — and render a `trained` badge — without a re-fetch. Rejects an unknown
37908
- * track, a new staging mark on a device already holding its full budget, and
37909
- * any `markForTrain` write against a trained track.
37926
+ * `debugNote` is the operator's sentence about WHAT to check on this track,
37927
+ * and it is bound to `debug`: writing `debug: false` clears it in the same
37928
+ * statement, and a note sent for a track whose debug is off (and is not
37929
+ * being turned on) is DROPPED with a warning rather than stored where
37930
+ * nothing will ever read it. An omitted `debugNote` leaves the stored one
37931
+ * alone — which is what lets a surface turn debug on when the operator
37932
+ * declined to type anything, without that refusal costing them the flag.
37933
+ *
37934
+ * Returns the RESOLVED state of all three flags (absent → `false`) plus the
37935
+ * note (absent → `''`) and the `retrainStatus` they were derived from, so a
37936
+ * caller can drive its toggle — and render a `trained` badge — without a
37937
+ * re-fetch. Rejects an unknown track, a new staging mark on a device already
37938
+ * holding its full budget, and any `markForTrain` write against a trained
37939
+ * track.
37910
37940
  */
37911
37941
  setTrackFlags: method(zod.z.object({
37912
37942
  /** Log/audit scope only — the trackId is globally unique on its own. */
@@ -60079,7 +60109,7 @@ var require_alerts_addon = __commonJS({
60079
60109
  [Symbol.toStringTag]: { value: "Module" }
60080
60110
  });
60081
60111
  require_chunk_Cek0wNdY();
60082
- var require_dist10 = require_dist_DE3OH_FG();
60112
+ var require_dist10 = require_dist_0fjBDzUu();
60083
60113
  function selectExpired(alerts, cutoffMs) {
60084
60114
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
60085
60115
  }
@@ -60898,7 +60928,7 @@ var require_console_logging = __commonJS({
60898
60928
  [Symbol.toStringTag]: { value: "Module" }
60899
60929
  });
60900
60930
  require_chunk_Cek0wNdY();
60901
- var require_dist10 = require_dist_DE3OH_FG();
60931
+ var require_dist10 = require_dist_0fjBDzUu();
60902
60932
  var require_formatter = require_formatter_DqAKDlvN();
60903
60933
  var LEVEL_RANK = {
60904
60934
  debug: 0,
@@ -60992,7 +61022,7 @@ var require_core_blocks_addon = __commonJS({
60992
61022
  "use strict";
60993
61023
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
60994
61024
  var require_chunk = require_chunk_Cek0wNdY();
60995
- var require_dist10 = require_dist_DE3OH_FG();
61025
+ var require_dist10 = require_dist_0fjBDzUu();
60996
61026
  var node_crypto = __require("crypto");
60997
61027
  var node_fs_promises = __require("fs/promises");
60998
61028
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -61889,11 +61919,11 @@ var require_core_blocks = __commonJS({
61889
61919
  }
61890
61920
  });
61891
61921
 
61892
- // ../system/dist/retired-settings-keys-BgUS9Rr3.js
61893
- var require_retired_settings_keys_BgUS9Rr3 = __commonJS({
61894
- "../system/dist/retired-settings-keys-BgUS9Rr3.js"(exports) {
61922
+ // ../system/dist/retired-settings-keys-pL2Nq6KT.js
61923
+ var require_retired_settings_keys_pL2Nq6KT = __commonJS({
61924
+ "../system/dist/retired-settings-keys-pL2Nq6KT.js"(exports) {
61895
61925
  "use strict";
61896
- var require_dist10 = require_dist_DE3OH_FG();
61926
+ var require_dist10 = require_dist_0fjBDzUu();
61897
61927
  function settingsStoreIsAuthoritativeHere(env) {
61898
61928
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
61899
61929
  return raw === "" || raw === "hub";
@@ -64107,8 +64137,8 @@ var require_device_manager_addon = __commonJS({
64107
64137
  [Symbol.toStringTag]: { value: "Module" }
64108
64138
  });
64109
64139
  require_chunk_Cek0wNdY();
64110
- var require_dist10 = require_dist_DE3OH_FG();
64111
- var require_retired_settings_keys = require_retired_settings_keys_BgUS9Rr3();
64140
+ var require_dist10 = require_dist_0fjBDzUu();
64141
+ var require_retired_settings_keys = require_retired_settings_keys_pL2Nq6KT();
64112
64142
  var node_crypto = __require("crypto");
64113
64143
  var _camstack_types_node = require_node();
64114
64144
  var JOB_HISTORY = 20;
@@ -69634,7 +69664,7 @@ var require_hub_forwarder = __commonJS({
69634
69664
  [Symbol.toStringTag]: { value: "Module" }
69635
69665
  });
69636
69666
  require_chunk_Cek0wNdY();
69637
- var require_dist10 = require_dist_DE3OH_FG();
69667
+ var require_dist10 = require_dist_0fjBDzUu();
69638
69668
  var require_formatter = require_formatter_DqAKDlvN();
69639
69669
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
69640
69670
  var HubForwarderDestination = class {
@@ -69771,7 +69801,7 @@ var require_liveness_monitor_addon = __commonJS({
69771
69801
  "use strict";
69772
69802
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
69773
69803
  require_chunk_Cek0wNdY();
69774
- var require_dist10 = require_dist_DE3OH_FG();
69804
+ var require_dist10 = require_dist_0fjBDzUu();
69775
69805
  var NO_DEVICES = "liveness:no-devices";
69776
69806
  var ALL_OFFLINE = "liveness:all-devices-offline";
69777
69807
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -69961,7 +69991,7 @@ var require_local_auth_addon = __commonJS({
69961
69991
  [Symbol.toStringTag]: { value: "Module" }
69962
69992
  });
69963
69993
  var require_chunk = require_chunk_Cek0wNdY();
69964
- var require_dist10 = require_dist_DE3OH_FG();
69994
+ var require_dist10 = require_dist_0fjBDzUu();
69965
69995
  var node_crypto = __require("crypto");
69966
69996
  node_crypto = require_chunk.__toESM(node_crypto);
69967
69997
  var crypto$1 = __require("crypto");
@@ -77774,7 +77804,7 @@ var require_loki_logging = __commonJS({
77774
77804
  [Symbol.toStringTag]: { value: "Module" }
77775
77805
  });
77776
77806
  require_chunk_Cek0wNdY();
77777
- var require_dist10 = require_dist_DE3OH_FG();
77807
+ var require_dist10 = require_dist_0fjBDzUu();
77778
77808
  function sanitizeLabelName(raw) {
77779
77809
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
77780
77810
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -78339,7 +78369,7 @@ var require_native_metrics_addon = __commonJS({
78339
78369
  [Symbol.toStringTag]: { value: "Module" }
78340
78370
  });
78341
78371
  var require_chunk = require_chunk_Cek0wNdY();
78342
- var require_dist10 = require_dist_DE3OH_FG();
78372
+ var require_dist10 = require_dist_0fjBDzUu();
78343
78373
  var node_fs_promises = __require("fs/promises");
78344
78374
  var node_child_process = __require("child_process");
78345
78375
  var node_util = __require("util");
@@ -80923,7 +80953,7 @@ var require_filesystem_storage_addon = __commonJS({
80923
80953
  [Symbol.toStringTag]: { value: "Module" }
80924
80954
  });
80925
80955
  var require_chunk = require_chunk_Cek0wNdY();
80926
- var require_dist10 = require_dist_DE3OH_FG();
80956
+ var require_dist10 = require_dist_0fjBDzUu();
80927
80957
  var node_crypto = __require("crypto");
80928
80958
  var node_fs_promises = __require("fs/promises");
80929
80959
  var node_path = __require("path");
@@ -82039,8 +82069,8 @@ var require_sqlite_settings_addon = __commonJS({
82039
82069
  [Symbol.toStringTag]: { value: "Module" }
82040
82070
  });
82041
82071
  var require_chunk = require_chunk_Cek0wNdY();
82042
- var require_dist10 = require_dist_DE3OH_FG();
82043
- var require_retired_settings_keys = require_retired_settings_keys_BgUS9Rr3();
82072
+ var require_dist10 = require_dist_0fjBDzUu();
82073
+ var require_retired_settings_keys = require_retired_settings_keys_pL2Nq6KT();
82044
82074
  var node_crypto = __require("crypto");
82045
82075
  var node_fs = __require("fs");
82046
82076
  var node_module = __require("module");
@@ -84530,7 +84560,7 @@ var require_storage_orchestrator_addon = __commonJS({
84530
84560
  [Symbol.toStringTag]: { value: "Module" }
84531
84561
  });
84532
84562
  var require_chunk = require_chunk_Cek0wNdY();
84533
- var require_dist10 = require_dist_DE3OH_FG();
84563
+ var require_dist10 = require_dist_0fjBDzUu();
84534
84564
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
84535
84565
  var zod = require_zod();
84536
84566
  var node_crypto = __require("crypto");
@@ -87481,7 +87511,7 @@ var require_system_config_addon = __commonJS({
87481
87511
  [Symbol.toStringTag]: { value: "Module" }
87482
87512
  });
87483
87513
  require_chunk_Cek0wNdY();
87484
- var require_dist10 = require_dist_DE3OH_FG();
87514
+ var require_dist10 = require_dist_0fjBDzUu();
87485
87515
  var SECTION_TITLES = {
87486
87516
  server: "Server",
87487
87517
  auth: "Authentication"
@@ -105542,7 +105572,7 @@ var require_winston_logging = __commonJS({
105542
105572
  [Symbol.toStringTag]: { value: "Module" }
105543
105573
  });
105544
105574
  var require_chunk = require_chunk_Cek0wNdY();
105545
- var require_dist10 = require_dist_DE3OH_FG();
105575
+ var require_dist10 = require_dist_0fjBDzUu();
105546
105576
  var require_formatter = require_formatter_DqAKDlvN();
105547
105577
  var node_path = __require("path");
105548
105578
  node_path = require_chunk.__toESM(node_path);
@@ -107485,9 +107515,9 @@ var require_event_category_BaEgqJNv = __commonJS({
107485
107515
  }
107486
107516
  });
107487
107517
 
107488
- // ../types/dist/sleep-jdpPltQH.js
107489
- var require_sleep_jdpPltQH = __commonJS({
107490
- "../types/dist/sleep-jdpPltQH.js"(exports) {
107518
+ // ../types/dist/sleep-BtIF8lWc.js
107519
+ var require_sleep_BtIF8lWc = __commonJS({
107520
+ "../types/dist/sleep-BtIF8lWc.js"(exports) {
107491
107521
  "use strict";
107492
107522
  var require_event_category = require_event_category_BaEgqJNv();
107493
107523
  var zod = require_zod();
@@ -109478,6 +109508,7 @@ var require_sleep_jdpPltQH = __commonJS({
109478
109508
  DeviceRole2["GenericNotifier"] = "generic-notifier";
109479
109509
  return DeviceRole2;
109480
109510
  })({});
109511
+ var DEVICE_CHILDREN_BATCH_MAX = 256;
109481
109512
  var StaticDirOutputSchema = zod.z.object({ staticDir: zod.z.string() });
109482
109513
  var VersionOutputSchema = zod.z.object({ version: zod.z.string() });
109483
109514
  var viewerUiCapability = {
@@ -110732,6 +110763,12 @@ var require_sleep_jdpPltQH = __commonJS({
110732
110763
  return DEFAULT_RUNTIME_STATE_DURABILITY;
110733
110764
  }
110734
110765
  });
110766
+ Object.defineProperty(exports, "DEVICE_CHILDREN_BATCH_MAX", {
110767
+ enumerable: true,
110768
+ get: function() {
110769
+ return DEVICE_CHILDREN_BATCH_MAX;
110770
+ }
110771
+ });
110735
110772
  Object.defineProperty(exports, "DEVICE_SCOPED_CAPS", {
110736
110773
  enumerable: true,
110737
110774
  get: function() {
@@ -111161,7 +111198,7 @@ var require_addon = __commonJS({
111161
111198
  "use strict";
111162
111199
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
111163
111200
  var require_event_category = require_event_category_BaEgqJNv();
111164
- var require_sleep = require_sleep_jdpPltQH();
111201
+ var require_sleep = require_sleep_BtIF8lWc();
111165
111202
  var require_err_msg = require_err_msg_COpsHMw2();
111166
111203
  var CAP_INPUT_DEFAULTS = Object.freeze({
111167
111204
  "addons": { "getLogs": { "limit": 100 } },
@@ -111479,6 +111516,7 @@ var require_addon = __commonJS({
111479
111516
  exports.CAP_INPUT_DEFAULTS = CAP_INPUT_DEFAULTS;
111480
111517
  exports.COLLECTION_ARRAY_METHODS = COLLECTION_ARRAY_METHODS;
111481
111518
  exports.DATAPLANE_SECRET_HEADER = require_sleep.DATAPLANE_SECRET_HEADER;
111519
+ exports.DEVICE_CHILDREN_BATCH_MAX = require_sleep.DEVICE_CHILDREN_BATCH_MAX;
111482
111520
  exports.DEVICE_SCOPED_CAPS = require_sleep.DEVICE_SCOPED_CAPS;
111483
111521
  exports.DeviceType = require_sleep.DeviceType;
111484
111522
  exports.DisposerChain = require_sleep.DisposerChain;
@@ -118044,12 +118082,11 @@ var require_dist2 = __commonJS({
118044
118082
  }
118045
118083
  });
118046
118084
 
118047
- // ../system/dist/manifest-system-deps-DMWd5Ygf.js
118048
- var require_manifest_system_deps_DMWd5Ygf = __commonJS({
118049
- "../system/dist/manifest-system-deps-DMWd5Ygf.js"(exports) {
118085
+ // ../system/dist/manifest-system-deps-KBuTXH-y.js
118086
+ var require_manifest_system_deps_KBuTXH_y = __commonJS({
118087
+ "../system/dist/manifest-system-deps-KBuTXH-y.js"(exports) {
118050
118088
  "use strict";
118051
118089
  var require_chunk = require_chunk_Cek0wNdY();
118052
- require_dist_DE3OH_FG();
118053
118090
  require_hub_cap_forward_DmHNjbB0();
118054
118091
  var node_crypto = __require("crypto");
118055
118092
  node_crypto = require_chunk.__toESM(node_crypto);
@@ -119547,7 +119584,7 @@ var require_manifest_system_deps_DMWd5Ygf = __commonJS({
119547
119584
  return lowered.includes("not_found") || lowered.includes("no procedure") || lowered.includes("unknown method") || lowered.includes("no such method") || lowered.includes("not available");
119548
119585
  }
119549
119586
  function createChildrenBatchLoader(opts) {
119550
- const maxBatch = Math.max(1, opts.maxBatch ?? 256);
119587
+ const maxBatch = Math.max(1, opts.maxBatch ?? _camstack_types_addon.DEVICE_CHILDREN_BATCH_MAX);
119551
119588
  let pending = [];
119552
119589
  let flushScheduled = false;
119553
119590
  let flushing = false;
@@ -130116,7 +130153,7 @@ var require_dist3 = __commonJS({
130116
130153
  "use strict";
130117
130154
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
130118
130155
  var require_chunk = require_chunk_Cek0wNdY();
130119
- var require_dist10 = require_dist_DE3OH_FG();
130156
+ var require_dist10 = require_dist_0fjBDzUu();
130120
130157
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
130121
130158
  require_alerts();
130122
130159
  var require_formatter = require_formatter_DqAKDlvN();
@@ -130143,7 +130180,7 @@ var require_dist3 = __commonJS({
130143
130180
  var require_builtins_winston_logging_index = require_winston_logging();
130144
130181
  var require_file_data_plane = require_file_data_plane_DO8KbxCe();
130145
130182
  var require_tls$1 = require_tls_BxQlomxd();
130146
- var require_manifest_system_deps = require_manifest_system_deps_DMWd5Ygf();
130183
+ var require_manifest_system_deps = require_manifest_system_deps_KBuTXH_y();
130147
130184
  var require_resource_monitor = require_resource_monitor_CdnzxBLP();
130148
130185
  var require_custom_action_registry = require_custom_action_registry_jY0NOZK8();
130149
130186
  var zod = require_zod();
@@ -211233,7 +211270,7 @@ var require_dist4 = __commonJS({
211233
211270
  "use strict";
211234
211271
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
211235
211272
  var require_event_category = require_event_category_BaEgqJNv();
211236
- var require_sleep = require_sleep_jdpPltQH();
211273
+ var require_sleep = require_sleep_BtIF8lWc();
211237
211274
  var require_canonical_hash = require_canonical_hash_DNV8S5ET();
211238
211275
  var require_enums2 = require_enums();
211239
211276
  var require_err_msg = require_err_msg_COpsHMw2();
@@ -218693,7 +218730,6 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
218693
218730
  })
218694
218731
  }
218695
218732
  };
218696
- var DEVICE_CHILDREN_BATCH_MAX = 256;
218697
218733
  var ChildLayoutEntrySchema = zod.z.object({
218698
218734
  childKey: zod.z.string(),
218699
218735
  section: zod.z.string(),
@@ -225111,12 +225147,28 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
225111
225147
  "staging",
225112
225148
  "trained"
225113
225149
  ]);
225150
+ var MAX_TRACK_DEBUG_NOTE_LEN = 500;
225114
225151
  var TrackFlagFields = {
225115
225152
  /** Operator marked this track as training material — i.e. `retrainStatus` is
225116
225153
  * `'staging'`. */
225117
225154
  markForTrain: zod.z.boolean().optional(),
225118
225155
  /** Operator marked this track for diagnostic attention. */
225119
225156
  debug: zod.z.boolean().optional(),
225157
+ /**
225158
+ * What the operator wants CHECKED on this track, in their own words.
225159
+ *
225160
+ * The flag alone says "look at this" and nothing about what for; a debug set
225161
+ * reviewed hours later is a list of tracks with no question attached. Bound
225162
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
225163
+ * and refuses it on a track whose debug is off — so a note can never outlive
225164
+ * the attention it belongs to.
225165
+ *
225166
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
225167
+ * "leave whatever is stored alone", which is what lets a surface turn debug
225168
+ * on without a note (a cancelled prompt) and what lets it edit the note
225169
+ * without touching the flag.
225170
+ */
225171
+ debugNote: zod.z.string().max(500).optional(),
225120
225172
  /** Operator favourited this track. Pins it against pruning. */
225121
225173
  favourited: zod.z.boolean().optional()
225122
225174
  };
@@ -225126,6 +225178,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
225126
225178
  trackId: zod.z.string(),
225127
225179
  markForTrain: zod.z.boolean(),
225128
225180
  debug: zod.z.boolean(),
225181
+ /** The note as it STANDS after the write — never absent here (a track with no
225182
+ * note reports `''`), for the same reason the booleans are required: a
225183
+ * surface that has just written must be able to render the note it now owns
225184
+ * without a re-fetch, and an absent key would read as "unchanged" on a
225185
+ * screen that has no previous value to keep. */
225186
+ debugNote: zod.z.string(),
225129
225187
  favourited: zod.z.boolean(),
225130
225188
  /** The lifecycle state the boolean was derived from. Required here (unlike on
225131
225189
  * a track row) because this shape is only ever produced by the write body,
@@ -226181,11 +226239,20 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
226181
226239
  * staging is a deliberate action of the retrain page, which is also the only
226182
226240
  * thing that produces `trained` in the first place.
226183
226241
  *
226184
- * Returns the RESOLVED state of both flags (absent → `false`) plus the
226185
- * `retrainStatus` they were derived from, so a caller can drive its toggle
226186
- * — and render a `trained` badge — without a re-fetch. Rejects an unknown
226187
- * track, a new staging mark on a device already holding its full budget, and
226188
- * any `markForTrain` write against a trained track.
226242
+ * `debugNote` is the operator's sentence about WHAT to check on this track,
226243
+ * and it is bound to `debug`: writing `debug: false` clears it in the same
226244
+ * statement, and a note sent for a track whose debug is off (and is not
226245
+ * being turned on) is DROPPED with a warning rather than stored where
226246
+ * nothing will ever read it. An omitted `debugNote` leaves the stored one
226247
+ * alone — which is what lets a surface turn debug on when the operator
226248
+ * declined to type anything, without that refusal costing them the flag.
226249
+ *
226250
+ * Returns the RESOLVED state of all three flags (absent → `false`) plus the
226251
+ * note (absent → `''`) and the `retrainStatus` they were derived from, so a
226252
+ * caller can drive its toggle — and render a `trained` badge — without a
226253
+ * re-fetch. Rejects an unknown track, a new staging mark on a device already
226254
+ * holding its full budget, and any `markForTrain` write against a trained
226255
+ * track.
226189
226256
  */
226190
226257
  setTrackFlags: require_sleep.method(zod.z.object({
226191
226258
  /** Log/audit scope only — the trackId is globally unique on its own. */
@@ -254719,7 +254786,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
254719
254786
  exports.DETECTION_PIPELINE_CAP_NAME = DETECTION_PIPELINE_CAP_NAME;
254720
254787
  exports.DEVICE_BACKEND_TO_FORMAT = DEVICE_BACKEND_TO_FORMAT;
254721
254788
  exports.DEVICE_CAP_NAMES = DEVICE_CAP_NAMES;
254722
- exports.DEVICE_CHILDREN_BATCH_MAX = DEVICE_CHILDREN_BATCH_MAX;
254789
+ exports.DEVICE_CHILDREN_BATCH_MAX = require_sleep.DEVICE_CHILDREN_BATCH_MAX;
254723
254790
  exports.DEVICE_PROFILES = DEVICE_PROFILES;
254724
254791
  exports.DEVICE_RESTORE_RETRY_CONCURRENCY = DEVICE_RESTORE_RETRY_CONCURRENCY;
254725
254792
  exports.DEVICE_RESTORE_RETRY_DELAYS_MS = DEVICE_RESTORE_RETRY_DELAYS_MS;
@@ -254955,6 +255022,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
254955
255022
  exports.MAX_KEYS = MAX_KEYS;
254956
255023
  exports.MAX_REASONS_PER_KEY = MAX_REASONS_PER_KEY;
254957
255024
  exports.MAX_SENSOR_TRIGGER_DEVICES = MAX_SENSOR_TRIGGER_DEVICES;
255025
+ exports.MAX_TRACK_DEBUG_NOTE_LEN = MAX_TRACK_DEBUG_NOTE_LEN;
254958
255026
  exports.METHOD_ACCESS_MAP = METHOD_ACCESS_MAP;
254959
255027
  exports.METHOD_DEVICE_SELECTORS = METHOD_DEVICE_SELECTORS;
254960
255028
  exports.MODEL_FORMATS = MODEL_FORMATS;
@@ -424490,9 +424558,9 @@ var require_agent_registry_service = __commonJS({
424490
424558
  }
424491
424559
  return nodes.delete(nodeId) === true;
424492
424560
  }
424493
- /** Typed view of the broker's node catalog — one documented boundary cast. */
424561
+ /** Typed view of the broker's node catalog — reached through the ONE cast. */
424494
424562
  nodeCatalogRegistry() {
424495
- return this.moleculer.broker.registry;
424563
+ return this.broker.registry;
424496
424564
  }
424497
424565
  /** Typed view of the Moleculer broker — single documented cast. */
424498
424566
  get broker() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.90",
3
+ "version": "1.2.91",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",