camstack 1.2.109 → 1.2.110
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.
|
@@ -15741,13 +15741,28 @@ var RecordingBandSchema = external_exports.object({
|
|
|
15741
15741
|
end: external_exports.string().regex(HHMM),
|
|
15742
15742
|
mode: RecordingBandModeSchema,
|
|
15743
15743
|
triggers: RecordingBandTriggersSchema.optional(),
|
|
15744
|
+
/**
|
|
15745
|
+
* RETIRED (D381). A band no longer carries a pre-buffer of its own.
|
|
15746
|
+
*
|
|
15747
|
+
* It was the retroactive KEEP bound — which already-written segments survive
|
|
15748
|
+
* a trigger — and it had to be at least as wide as the widest pre-roll the
|
|
15749
|
+
* broker could serve, or the gate would delete the seconds the ring had just
|
|
15750
|
+
* handed the writer. That "at least as wide as" is the tell: it was a second
|
|
15751
|
+
* expression of the broker's retention, in different units, in a different
|
|
15752
|
+
* addon, with an invariant the operator had to maintain by hand. The keep
|
|
15753
|
+
* bound is now derived from the one prebuffer ceiling and there is nothing
|
|
15754
|
+
* left to configure here.
|
|
15755
|
+
*
|
|
15756
|
+
* The key survives in the SHAPE so a config written before that record still
|
|
15757
|
+
* parses and can be migrated deliberately — `RecordingBandSchema` is not
|
|
15758
|
+
* strict, so simply deleting it would strip an operator's value in silence on
|
|
15759
|
+
* the next save (the failure D380 came one commit from shipping). Nothing
|
|
15760
|
+
* reads it: {@link stripRetiredBandPreBufferSec} removes it on load.
|
|
15761
|
+
*/
|
|
15744
15762
|
preBufferSec: external_exports.number().min(0).optional(),
|
|
15745
15763
|
postBufferSec: external_exports.number().min(0).optional()
|
|
15746
15764
|
});
|
|
15747
|
-
var DEFAULT_EVENTS_BAND_BUFFER_SEC = {
|
|
15748
|
-
preBufferSec: 15,
|
|
15749
|
-
postBufferSec: 30
|
|
15750
|
-
};
|
|
15765
|
+
var DEFAULT_EVENTS_BAND_BUFFER_SEC = { postBufferSec: 30 };
|
|
15751
15766
|
var VISIT_MERGE_GAP_MS = DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec * 1e3;
|
|
15752
15767
|
var RecordingRetentionSchema = external_exports.object({
|
|
15753
15768
|
maxAgeDays: external_exports.number().min(0).optional(),
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDiscover
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YK6NE5VI.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-
|
|
41
|
+
await import("./launcher-YBWRBM2B.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-
|
|
86
|
+
await import("./launcher-YBWRBM2B.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-
|
|
1133
|
+
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-6YJTDHZO.js");
|
|
1134
1134
|
if (presetNamespace) {
|
|
1135
1135
|
const spinner4 = clack.spinner();
|
|
1136
1136
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|
|
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
|
|
|
23633
23633
|
}
|
|
23634
23634
|
});
|
|
23635
23635
|
|
|
23636
|
-
// ../system/dist/dist-
|
|
23637
|
-
var
|
|
23638
|
-
"../system/dist/dist-
|
|
23636
|
+
// ../system/dist/dist-KQ5D2wqr.js
|
|
23637
|
+
var require_dist_KQ5D2wqr = __commonJS({
|
|
23638
|
+
"../system/dist/dist-KQ5D2wqr.js"(exports) {
|
|
23639
23639
|
"use strict";
|
|
23640
23640
|
var zod = require_zod();
|
|
23641
23641
|
var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
|
|
@@ -26240,13 +26240,28 @@ var require_dist_HAP38XvL = __commonJS({
|
|
|
26240
26240
|
end: zod.z.string().regex(HHMM),
|
|
26241
26241
|
mode: RecordingBandModeSchema,
|
|
26242
26242
|
triggers: RecordingBandTriggersSchema.optional(),
|
|
26243
|
+
/**
|
|
26244
|
+
* RETIRED (D381). A band no longer carries a pre-buffer of its own.
|
|
26245
|
+
*
|
|
26246
|
+
* It was the retroactive KEEP bound — which already-written segments survive
|
|
26247
|
+
* a trigger — and it had to be at least as wide as the widest pre-roll the
|
|
26248
|
+
* broker could serve, or the gate would delete the seconds the ring had just
|
|
26249
|
+
* handed the writer. That "at least as wide as" is the tell: it was a second
|
|
26250
|
+
* expression of the broker's retention, in different units, in a different
|
|
26251
|
+
* addon, with an invariant the operator had to maintain by hand. The keep
|
|
26252
|
+
* bound is now derived from the one prebuffer ceiling and there is nothing
|
|
26253
|
+
* left to configure here.
|
|
26254
|
+
*
|
|
26255
|
+
* The key survives in the SHAPE so a config written before that record still
|
|
26256
|
+
* parses and can be migrated deliberately — `RecordingBandSchema` is not
|
|
26257
|
+
* strict, so simply deleting it would strip an operator's value in silence on
|
|
26258
|
+
* the next save (the failure D380 came one commit from shipping). Nothing
|
|
26259
|
+
* reads it: {@link stripRetiredBandPreBufferSec} removes it on load.
|
|
26260
|
+
*/
|
|
26243
26261
|
preBufferSec: zod.z.number().min(0).optional(),
|
|
26244
26262
|
postBufferSec: zod.z.number().min(0).optional()
|
|
26245
26263
|
});
|
|
26246
|
-
({
|
|
26247
|
-
preBufferSec: 15,
|
|
26248
|
-
postBufferSec: 30
|
|
26249
|
-
}).postBufferSec * 1e3;
|
|
26264
|
+
({ postBufferSec: 30 }).postBufferSec * 1e3;
|
|
26250
26265
|
var RecordingRetentionSchema = zod.z.object({
|
|
26251
26266
|
maxAgeDays: zod.z.number().min(0).optional(),
|
|
26252
26267
|
maxSizeGb: zod.z.number().min(0).optional()
|
|
@@ -60660,7 +60675,7 @@ var require_alerts_addon = __commonJS({
|
|
|
60660
60675
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60661
60676
|
});
|
|
60662
60677
|
require_chunk_Cek0wNdY();
|
|
60663
|
-
var require_dist10 =
|
|
60678
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
60664
60679
|
function selectExpired(alerts, cutoffMs) {
|
|
60665
60680
|
return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
|
|
60666
60681
|
}
|
|
@@ -61479,7 +61494,7 @@ var require_console_logging = __commonJS({
|
|
|
61479
61494
|
[Symbol.toStringTag]: { value: "Module" }
|
|
61480
61495
|
});
|
|
61481
61496
|
require_chunk_Cek0wNdY();
|
|
61482
|
-
var require_dist10 =
|
|
61497
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
61483
61498
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
61484
61499
|
var LEVEL_RANK = {
|
|
61485
61500
|
debug: 0,
|
|
@@ -61573,7 +61588,7 @@ var require_core_blocks_addon = __commonJS({
|
|
|
61573
61588
|
"use strict";
|
|
61574
61589
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
61575
61590
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
61576
|
-
var require_dist10 =
|
|
61591
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
61577
61592
|
var node_crypto = __require("crypto");
|
|
61578
61593
|
var node_fs_promises = __require("fs/promises");
|
|
61579
61594
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -62470,11 +62485,11 @@ var require_core_blocks = __commonJS({
|
|
|
62470
62485
|
}
|
|
62471
62486
|
});
|
|
62472
62487
|
|
|
62473
|
-
// ../system/dist/retired-settings-keys-
|
|
62474
|
-
var
|
|
62475
|
-
"../system/dist/retired-settings-keys-
|
|
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) {
|
|
62476
62491
|
"use strict";
|
|
62477
|
-
var require_dist10 =
|
|
62492
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
62478
62493
|
function settingsStoreIsAuthoritativeHere(env) {
|
|
62479
62494
|
const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
|
|
62480
62495
|
return raw === "" || raw === "hub";
|
|
@@ -64688,8 +64703,8 @@ var require_device_manager_addon = __commonJS({
|
|
|
64688
64703
|
[Symbol.toStringTag]: { value: "Module" }
|
|
64689
64704
|
});
|
|
64690
64705
|
require_chunk_Cek0wNdY();
|
|
64691
|
-
var require_dist10 =
|
|
64692
|
-
var require_retired_settings_keys =
|
|
64706
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
64707
|
+
var require_retired_settings_keys = require_retired_settings_keys_2lWk7OeU();
|
|
64693
64708
|
var node_crypto = __require("crypto");
|
|
64694
64709
|
var _camstack_types_node = require_node();
|
|
64695
64710
|
var JOB_HISTORY = 20;
|
|
@@ -70314,7 +70329,7 @@ var require_hub_forwarder = __commonJS({
|
|
|
70314
70329
|
[Symbol.toStringTag]: { value: "Module" }
|
|
70315
70330
|
});
|
|
70316
70331
|
require_chunk_Cek0wNdY();
|
|
70317
|
-
var require_dist10 =
|
|
70332
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
70318
70333
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
70319
70334
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
70320
70335
|
var HubForwarderDestination = class {
|
|
@@ -70451,7 +70466,7 @@ var require_liveness_monitor_addon = __commonJS({
|
|
|
70451
70466
|
"use strict";
|
|
70452
70467
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
70453
70468
|
require_chunk_Cek0wNdY();
|
|
70454
|
-
var require_dist10 =
|
|
70469
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
70455
70470
|
var NO_DEVICES = "liveness:no-devices";
|
|
70456
70471
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
70457
70472
|
var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
|
|
@@ -70647,7 +70662,7 @@ var require_local_auth_addon = __commonJS({
|
|
|
70647
70662
|
[Symbol.toStringTag]: { value: "Module" }
|
|
70648
70663
|
});
|
|
70649
70664
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
70650
|
-
var require_dist10 =
|
|
70665
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
70651
70666
|
var node_crypto = __require("crypto");
|
|
70652
70667
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
70653
70668
|
var crypto$1 = __require("crypto");
|
|
@@ -78460,7 +78475,7 @@ var require_loki_logging = __commonJS({
|
|
|
78460
78475
|
[Symbol.toStringTag]: { value: "Module" }
|
|
78461
78476
|
});
|
|
78462
78477
|
require_chunk_Cek0wNdY();
|
|
78463
|
-
var require_dist10 =
|
|
78478
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
78464
78479
|
function sanitizeLabelName(raw) {
|
|
78465
78480
|
const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
|
|
78466
78481
|
return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
|
|
@@ -79025,7 +79040,7 @@ var require_native_metrics_addon = __commonJS({
|
|
|
79025
79040
|
[Symbol.toStringTag]: { value: "Module" }
|
|
79026
79041
|
});
|
|
79027
79042
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
79028
|
-
var require_dist10 =
|
|
79043
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
79029
79044
|
var node_fs_promises = __require("fs/promises");
|
|
79030
79045
|
var node_child_process = __require("child_process");
|
|
79031
79046
|
var node_util = __require("util");
|
|
@@ -81609,7 +81624,7 @@ var require_filesystem_storage_addon = __commonJS({
|
|
|
81609
81624
|
[Symbol.toStringTag]: { value: "Module" }
|
|
81610
81625
|
});
|
|
81611
81626
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
81612
|
-
var require_dist10 =
|
|
81627
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
81613
81628
|
var node_crypto = __require("crypto");
|
|
81614
81629
|
var node_fs_promises = __require("fs/promises");
|
|
81615
81630
|
var node_path = __require("path");
|
|
@@ -82725,8 +82740,8 @@ var require_sqlite_settings_addon = __commonJS({
|
|
|
82725
82740
|
[Symbol.toStringTag]: { value: "Module" }
|
|
82726
82741
|
});
|
|
82727
82742
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
82728
|
-
var require_dist10 =
|
|
82729
|
-
var require_retired_settings_keys =
|
|
82743
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
82744
|
+
var require_retired_settings_keys = require_retired_settings_keys_2lWk7OeU();
|
|
82730
82745
|
var node_crypto = __require("crypto");
|
|
82731
82746
|
var node_fs = __require("fs");
|
|
82732
82747
|
var node_module = __require("module");
|
|
@@ -85216,7 +85231,7 @@ var require_storage_orchestrator_addon = __commonJS({
|
|
|
85216
85231
|
[Symbol.toStringTag]: { value: "Module" }
|
|
85217
85232
|
});
|
|
85218
85233
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
85219
|
-
var require_dist10 =
|
|
85234
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
85220
85235
|
var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
|
|
85221
85236
|
var zod = require_zod();
|
|
85222
85237
|
var node_crypto = __require("crypto");
|
|
@@ -88167,7 +88182,7 @@ var require_system_config_addon = __commonJS({
|
|
|
88167
88182
|
[Symbol.toStringTag]: { value: "Module" }
|
|
88168
88183
|
});
|
|
88169
88184
|
require_chunk_Cek0wNdY();
|
|
88170
|
-
var require_dist10 =
|
|
88185
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
88171
88186
|
var SECTION_TITLES = {
|
|
88172
88187
|
server: "Server",
|
|
88173
88188
|
auth: "Authentication"
|
|
@@ -106228,7 +106243,7 @@ var require_winston_logging = __commonJS({
|
|
|
106228
106243
|
[Symbol.toStringTag]: { value: "Module" }
|
|
106229
106244
|
});
|
|
106230
106245
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
106231
|
-
var require_dist10 =
|
|
106246
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
106232
106247
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
106233
106248
|
var node_path = __require("path");
|
|
106234
106249
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -130866,7 +130881,7 @@ var require_dist3 = __commonJS({
|
|
|
130866
130881
|
"use strict";
|
|
130867
130882
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
130868
130883
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
130869
|
-
var require_dist10 =
|
|
130884
|
+
var require_dist10 = require_dist_KQ5D2wqr();
|
|
130870
130885
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
130871
130886
|
require_alerts();
|
|
130872
130887
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -213249,13 +213264,48 @@ var require_dist4 = __commonJS({
|
|
|
213249
213264
|
end: zod.z.string().regex(HHMM),
|
|
213250
213265
|
mode: RecordingBandModeSchema,
|
|
213251
213266
|
triggers: RecordingBandTriggersSchema.optional(),
|
|
213267
|
+
/**
|
|
213268
|
+
* RETIRED (D381). A band no longer carries a pre-buffer of its own.
|
|
213269
|
+
*
|
|
213270
|
+
* It was the retroactive KEEP bound — which already-written segments survive
|
|
213271
|
+
* a trigger — and it had to be at least as wide as the widest pre-roll the
|
|
213272
|
+
* broker could serve, or the gate would delete the seconds the ring had just
|
|
213273
|
+
* handed the writer. That "at least as wide as" is the tell: it was a second
|
|
213274
|
+
* expression of the broker's retention, in different units, in a different
|
|
213275
|
+
* addon, with an invariant the operator had to maintain by hand. The keep
|
|
213276
|
+
* bound is now derived from the one prebuffer ceiling and there is nothing
|
|
213277
|
+
* left to configure here.
|
|
213278
|
+
*
|
|
213279
|
+
* The key survives in the SHAPE so a config written before that record still
|
|
213280
|
+
* parses and can be migrated deliberately — `RecordingBandSchema` is not
|
|
213281
|
+
* strict, so simply deleting it would strip an operator's value in silence on
|
|
213282
|
+
* the next save (the failure D380 came one commit from shipping). Nothing
|
|
213283
|
+
* reads it: {@link stripRetiredBandPreBufferSec} removes it on load.
|
|
213284
|
+
*/
|
|
213252
213285
|
preBufferSec: zod.z.number().min(0).optional(),
|
|
213253
213286
|
postBufferSec: zod.z.number().min(0).optional()
|
|
213254
213287
|
});
|
|
213255
|
-
var DEFAULT_EVENTS_BAND_BUFFER_SEC = {
|
|
213256
|
-
|
|
213257
|
-
|
|
213258
|
-
|
|
213288
|
+
var DEFAULT_EVENTS_BAND_BUFFER_SEC = { postBufferSec: 30 };
|
|
213289
|
+
function stripRetiredBandPreBufferSec(config) {
|
|
213290
|
+
const strippedBands = [];
|
|
213291
|
+
const bands = config.bands.map((band, index) => {
|
|
213292
|
+
if (band.preBufferSec === void 0) return band;
|
|
213293
|
+
strippedBands.push(index);
|
|
213294
|
+
const { preBufferSec: _retired, ...rest } = band;
|
|
213295
|
+
return rest;
|
|
213296
|
+
});
|
|
213297
|
+
if (strippedBands.length === 0) return {
|
|
213298
|
+
config,
|
|
213299
|
+
strippedBands
|
|
213300
|
+
};
|
|
213301
|
+
return {
|
|
213302
|
+
config: {
|
|
213303
|
+
...config,
|
|
213304
|
+
bands
|
|
213305
|
+
},
|
|
213306
|
+
strippedBands
|
|
213307
|
+
};
|
|
213308
|
+
}
|
|
213259
213309
|
var VISIT_MERGE_GAP_MS = DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec * 1e3;
|
|
213260
213310
|
var RecordingRetentionSchema = zod.z.object({
|
|
213261
213311
|
maxAgeDays: zod.z.number().min(0).optional(),
|
|
@@ -257536,6 +257586,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
257536
257586
|
exports.streamParamsCapability = streamParamsCapability;
|
|
257537
257587
|
exports.streamPixels = streamPixels;
|
|
257538
257588
|
exports.streamQualityLabel = streamQualityLabel;
|
|
257589
|
+
exports.stripRetiredBandPreBufferSec = stripRetiredBandPreBufferSec;
|
|
257539
257590
|
exports.subKindsOf = subKindsOf;
|
|
257540
257591
|
exports.summarisePrivacyAudio = summarisePrivacyAudio;
|
|
257541
257592
|
exports.summarizeEffectiveScope = summarizeEffectiveScope;
|