camstack 1.2.97 → 1.2.99
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-
|
|
14525
|
+
// ../types/dist/sleep-BQJlnUOJ.mjs
|
|
14526
14526
|
var WELL_KNOWN_TABS = [
|
|
14527
14527
|
{
|
|
14528
14528
|
id: "overview",
|
|
@@ -28593,6 +28593,14 @@ var AgentPipelineSettingsSchema = external_exports.object({
|
|
|
28593
28593
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
28594
28594
|
ingest: external_exports.boolean().optional(),
|
|
28595
28595
|
/**
|
|
28596
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
28597
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
28598
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
28599
|
+
*/
|
|
28600
|
+
decodeBudgetMb: external_exports.number().int().min(1024).max(65536).optional(),
|
|
28601
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
28602
|
+
maxLiveDecodeWorkers: external_exports.number().int().min(1).max(32).optional(),
|
|
28603
|
+
/**
|
|
28596
28604
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
28597
28605
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
28598
28606
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -29156,6 +29164,20 @@ var pipelineOrchestratorCapability = {
|
|
|
29156
29164
|
auth: "admin"
|
|
29157
29165
|
}),
|
|
29158
29166
|
/**
|
|
29167
|
+
* Size ONE node's decode admission: its RAM budget and live-worker cap.
|
|
29168
|
+
* `null` clears a limit (back to the cluster setting or the RAM-derived
|
|
29169
|
+
* default); an omitted key leaves it alone. Read by the node's runner on
|
|
29170
|
+
* its next lease refresh (D365).
|
|
29171
|
+
*/
|
|
29172
|
+
setAgentDecodeLimits: method(external_exports.object({
|
|
29173
|
+
agentNodeId: external_exports.string(),
|
|
29174
|
+
decodeBudgetMb: external_exports.number().int().min(1024).max(65536).nullable().optional(),
|
|
29175
|
+
maxLiveDecodeWorkers: external_exports.number().int().min(1).max(32).nullable().optional()
|
|
29176
|
+
}), external_exports.object({ success: external_exports.literal(true) }), {
|
|
29177
|
+
kind: "mutation",
|
|
29178
|
+
auth: "admin"
|
|
29179
|
+
}),
|
|
29180
|
+
/**
|
|
29159
29181
|
* Set (or clear) the operator override for the LAN host a cross-node
|
|
29160
29182
|
* decoder dials to reach this node's restream. Pass a non-empty string to
|
|
29161
29183
|
* override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
|
|
@@ -43423,6 +43445,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43423
43445
|
addonId: null,
|
|
43424
43446
|
access: "create"
|
|
43425
43447
|
},
|
|
43448
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
43449
|
+
capName: "pipeline-orchestrator",
|
|
43450
|
+
capScope: "system",
|
|
43451
|
+
addonId: null,
|
|
43452
|
+
access: "create"
|
|
43453
|
+
},
|
|
43426
43454
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
43427
43455
|
capName: "pipeline-orchestrator",
|
|
43428
43456
|
capScope: "system",
|
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-MVI45IY3.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-F62YE57J.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-F62YE57J.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-F3GZOIXQ.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-2wpm3tOu.js
|
|
23637
|
+
var require_dist_2wpm3tOu = __commonJS({
|
|
23638
|
+
"../system/dist/dist-2wpm3tOu.js"(exports) {
|
|
23639
23639
|
"use strict";
|
|
23640
23640
|
var zod = require_zod();
|
|
23641
23641
|
var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
|
|
@@ -39155,6 +39155,14 @@ var require_dist_DlL8iWQo = __commonJS({
|
|
|
39155
39155
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
39156
39156
|
ingest: zod.z.boolean().optional(),
|
|
39157
39157
|
/**
|
|
39158
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
39159
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
39160
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
39161
|
+
*/
|
|
39162
|
+
decodeBudgetMb: zod.z.number().int().min(1024).max(65536).optional(),
|
|
39163
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
39164
|
+
maxLiveDecodeWorkers: zod.z.number().int().min(1).max(32).optional(),
|
|
39165
|
+
/**
|
|
39158
39166
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
39159
39167
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
39160
39168
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -39717,6 +39725,20 @@ var require_dist_DlL8iWQo = __commonJS({
|
|
|
39717
39725
|
auth: "admin"
|
|
39718
39726
|
}),
|
|
39719
39727
|
/**
|
|
39728
|
+
* Size ONE node's decode admission: its RAM budget and live-worker cap.
|
|
39729
|
+
* `null` clears a limit (back to the cluster setting or the RAM-derived
|
|
39730
|
+
* default); an omitted key leaves it alone. Read by the node's runner on
|
|
39731
|
+
* its next lease refresh (D365).
|
|
39732
|
+
*/
|
|
39733
|
+
setAgentDecodeLimits: method(zod.z.object({
|
|
39734
|
+
agentNodeId: zod.z.string(),
|
|
39735
|
+
decodeBudgetMb: zod.z.number().int().min(1024).max(65536).nullable().optional(),
|
|
39736
|
+
maxLiveDecodeWorkers: zod.z.number().int().min(1).max(32).nullable().optional()
|
|
39737
|
+
}), zod.z.object({ success: zod.z.literal(true) }), {
|
|
39738
|
+
kind: "mutation",
|
|
39739
|
+
auth: "admin"
|
|
39740
|
+
}),
|
|
39741
|
+
/**
|
|
39720
39742
|
* Set (or clear) the operator override for the LAN host a cross-node
|
|
39721
39743
|
* decoder dials to reach this node's restream. Pass a non-empty string to
|
|
39722
39744
|
* override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
|
|
@@ -54805,6 +54827,12 @@ var require_dist_DlL8iWQo = __commonJS({
|
|
|
54805
54827
|
addonId: null,
|
|
54806
54828
|
access: "create"
|
|
54807
54829
|
},
|
|
54830
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
54831
|
+
capName: "pipeline-orchestrator",
|
|
54832
|
+
capScope: "system",
|
|
54833
|
+
addonId: null,
|
|
54834
|
+
access: "create"
|
|
54835
|
+
},
|
|
54808
54836
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
54809
54837
|
capName: "pipeline-orchestrator",
|
|
54810
54838
|
capScope: "system",
|
|
@@ -60118,7 +60146,7 @@ var require_alerts_addon = __commonJS({
|
|
|
60118
60146
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60119
60147
|
});
|
|
60120
60148
|
require_chunk_Cek0wNdY();
|
|
60121
|
-
var require_dist10 =
|
|
60149
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
60122
60150
|
function selectExpired(alerts, cutoffMs) {
|
|
60123
60151
|
return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
|
|
60124
60152
|
}
|
|
@@ -60937,7 +60965,7 @@ var require_console_logging = __commonJS({
|
|
|
60937
60965
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60938
60966
|
});
|
|
60939
60967
|
require_chunk_Cek0wNdY();
|
|
60940
|
-
var require_dist10 =
|
|
60968
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
60941
60969
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
60942
60970
|
var LEVEL_RANK = {
|
|
60943
60971
|
debug: 0,
|
|
@@ -61031,7 +61059,7 @@ var require_core_blocks_addon = __commonJS({
|
|
|
61031
61059
|
"use strict";
|
|
61032
61060
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
61033
61061
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
61034
|
-
var require_dist10 =
|
|
61062
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
61035
61063
|
var node_crypto = __require("crypto");
|
|
61036
61064
|
var node_fs_promises = __require("fs/promises");
|
|
61037
61065
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -61928,11 +61956,11 @@ var require_core_blocks = __commonJS({
|
|
|
61928
61956
|
}
|
|
61929
61957
|
});
|
|
61930
61958
|
|
|
61931
|
-
// ../system/dist/retired-settings-keys-
|
|
61932
|
-
var
|
|
61933
|
-
"../system/dist/retired-settings-keys-
|
|
61959
|
+
// ../system/dist/retired-settings-keys-D6gkOkcN.js
|
|
61960
|
+
var require_retired_settings_keys_D6gkOkcN = __commonJS({
|
|
61961
|
+
"../system/dist/retired-settings-keys-D6gkOkcN.js"(exports) {
|
|
61934
61962
|
"use strict";
|
|
61935
|
-
var require_dist10 =
|
|
61963
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
61936
61964
|
function settingsStoreIsAuthoritativeHere(env) {
|
|
61937
61965
|
const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
|
|
61938
61966
|
return raw === "" || raw === "hub";
|
|
@@ -64146,8 +64174,8 @@ var require_device_manager_addon = __commonJS({
|
|
|
64146
64174
|
[Symbol.toStringTag]: { value: "Module" }
|
|
64147
64175
|
});
|
|
64148
64176
|
require_chunk_Cek0wNdY();
|
|
64149
|
-
var require_dist10 =
|
|
64150
|
-
var require_retired_settings_keys =
|
|
64177
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
64178
|
+
var require_retired_settings_keys = require_retired_settings_keys_D6gkOkcN();
|
|
64151
64179
|
var node_crypto = __require("crypto");
|
|
64152
64180
|
var _camstack_types_node = require_node();
|
|
64153
64181
|
var JOB_HISTORY = 20;
|
|
@@ -69662,7 +69690,7 @@ var require_hub_forwarder = __commonJS({
|
|
|
69662
69690
|
[Symbol.toStringTag]: { value: "Module" }
|
|
69663
69691
|
});
|
|
69664
69692
|
require_chunk_Cek0wNdY();
|
|
69665
|
-
var require_dist10 =
|
|
69693
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
69666
69694
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
69667
69695
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
69668
69696
|
var HubForwarderDestination = class {
|
|
@@ -69799,7 +69827,7 @@ var require_liveness_monitor_addon = __commonJS({
|
|
|
69799
69827
|
"use strict";
|
|
69800
69828
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
69801
69829
|
require_chunk_Cek0wNdY();
|
|
69802
|
-
var require_dist10 =
|
|
69830
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
69803
69831
|
var NO_DEVICES = "liveness:no-devices";
|
|
69804
69832
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
69805
69833
|
var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
|
|
@@ -69989,7 +70017,7 @@ var require_local_auth_addon = __commonJS({
|
|
|
69989
70017
|
[Symbol.toStringTag]: { value: "Module" }
|
|
69990
70018
|
});
|
|
69991
70019
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
69992
|
-
var require_dist10 =
|
|
70020
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
69993
70021
|
var node_crypto = __require("crypto");
|
|
69994
70022
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
69995
70023
|
var crypto$1 = __require("crypto");
|
|
@@ -77802,7 +77830,7 @@ var require_loki_logging = __commonJS({
|
|
|
77802
77830
|
[Symbol.toStringTag]: { value: "Module" }
|
|
77803
77831
|
});
|
|
77804
77832
|
require_chunk_Cek0wNdY();
|
|
77805
|
-
var require_dist10 =
|
|
77833
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
77806
77834
|
function sanitizeLabelName(raw) {
|
|
77807
77835
|
const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
|
|
77808
77836
|
return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
|
|
@@ -78367,7 +78395,7 @@ var require_native_metrics_addon = __commonJS({
|
|
|
78367
78395
|
[Symbol.toStringTag]: { value: "Module" }
|
|
78368
78396
|
});
|
|
78369
78397
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
78370
|
-
var require_dist10 =
|
|
78398
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
78371
78399
|
var node_fs_promises = __require("fs/promises");
|
|
78372
78400
|
var node_child_process = __require("child_process");
|
|
78373
78401
|
var node_util = __require("util");
|
|
@@ -80951,7 +80979,7 @@ var require_filesystem_storage_addon = __commonJS({
|
|
|
80951
80979
|
[Symbol.toStringTag]: { value: "Module" }
|
|
80952
80980
|
});
|
|
80953
80981
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
80954
|
-
var require_dist10 =
|
|
80982
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
80955
80983
|
var node_crypto = __require("crypto");
|
|
80956
80984
|
var node_fs_promises = __require("fs/promises");
|
|
80957
80985
|
var node_path = __require("path");
|
|
@@ -82067,8 +82095,8 @@ var require_sqlite_settings_addon = __commonJS({
|
|
|
82067
82095
|
[Symbol.toStringTag]: { value: "Module" }
|
|
82068
82096
|
});
|
|
82069
82097
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
82070
|
-
var require_dist10 =
|
|
82071
|
-
var require_retired_settings_keys =
|
|
82098
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
82099
|
+
var require_retired_settings_keys = require_retired_settings_keys_D6gkOkcN();
|
|
82072
82100
|
var node_crypto = __require("crypto");
|
|
82073
82101
|
var node_fs = __require("fs");
|
|
82074
82102
|
var node_module = __require("module");
|
|
@@ -84558,7 +84586,7 @@ var require_storage_orchestrator_addon = __commonJS({
|
|
|
84558
84586
|
[Symbol.toStringTag]: { value: "Module" }
|
|
84559
84587
|
});
|
|
84560
84588
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
84561
|
-
var require_dist10 =
|
|
84589
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
84562
84590
|
var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
|
|
84563
84591
|
var zod = require_zod();
|
|
84564
84592
|
var node_crypto = __require("crypto");
|
|
@@ -87509,7 +87537,7 @@ var require_system_config_addon = __commonJS({
|
|
|
87509
87537
|
[Symbol.toStringTag]: { value: "Module" }
|
|
87510
87538
|
});
|
|
87511
87539
|
require_chunk_Cek0wNdY();
|
|
87512
|
-
var require_dist10 =
|
|
87540
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
87513
87541
|
var SECTION_TITLES = {
|
|
87514
87542
|
server: "Server",
|
|
87515
87543
|
auth: "Authentication"
|
|
@@ -105570,7 +105598,7 @@ var require_winston_logging = __commonJS({
|
|
|
105570
105598
|
[Symbol.toStringTag]: { value: "Module" }
|
|
105571
105599
|
});
|
|
105572
105600
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
105573
|
-
var require_dist10 =
|
|
105601
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
105574
105602
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
105575
105603
|
var node_path = __require("path");
|
|
105576
105604
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -107513,9 +107541,9 @@ var require_event_category_BaEgqJNv = __commonJS({
|
|
|
107513
107541
|
}
|
|
107514
107542
|
});
|
|
107515
107543
|
|
|
107516
|
-
// ../types/dist/sleep-
|
|
107517
|
-
var
|
|
107518
|
-
"../types/dist/sleep-
|
|
107544
|
+
// ../types/dist/sleep-BCUreN6s.js
|
|
107545
|
+
var require_sleep_BCUreN6s = __commonJS({
|
|
107546
|
+
"../types/dist/sleep-BCUreN6s.js"(exports) {
|
|
107519
107547
|
"use strict";
|
|
107520
107548
|
var require_event_category = require_event_category_BaEgqJNv();
|
|
107521
107549
|
var zod = require_zod();
|
|
@@ -108507,6 +108535,7 @@ var require_sleep_BtIF8lWc = __commonJS({
|
|
|
108507
108535
|
}
|
|
108508
108536
|
};
|
|
108509
108537
|
var DATAPLANE_SECRET_HEADER = "x-camstack-dataplane-secret";
|
|
108538
|
+
var SHARE_VIEW_KINDS = ["grid-view", "events-view"];
|
|
108510
108539
|
var CamProfileSchema = zod.z.enum([
|
|
108511
108540
|
"high",
|
|
108512
108541
|
"mid",
|
|
@@ -110875,6 +110904,12 @@ var require_sleep_BtIF8lWc = __commonJS({
|
|
|
110875
110904
|
return ReadinessTimeoutError;
|
|
110876
110905
|
}
|
|
110877
110906
|
});
|
|
110907
|
+
Object.defineProperty(exports, "SHARE_VIEW_KINDS", {
|
|
110908
|
+
enumerable: true,
|
|
110909
|
+
get: function() {
|
|
110910
|
+
return SHARE_VIEW_KINDS;
|
|
110911
|
+
}
|
|
110912
|
+
});
|
|
110878
110913
|
Object.defineProperty(exports, "StreamSourceEntrySchema", {
|
|
110879
110914
|
enumerable: true,
|
|
110880
110915
|
get: function() {
|
|
@@ -111196,7 +111231,7 @@ var require_addon = __commonJS({
|
|
|
111196
111231
|
"use strict";
|
|
111197
111232
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
111198
111233
|
var require_event_category = require_event_category_BaEgqJNv();
|
|
111199
|
-
var require_sleep =
|
|
111234
|
+
var require_sleep = require_sleep_BCUreN6s();
|
|
111200
111235
|
var require_err_msg = require_err_msg_COpsHMw2();
|
|
111201
111236
|
var CAP_INPUT_DEFAULTS = Object.freeze({
|
|
111202
111237
|
"addons": { "getLogs": { "limit": 100 } },
|
|
@@ -118080,9 +118115,9 @@ var require_dist2 = __commonJS({
|
|
|
118080
118115
|
}
|
|
118081
118116
|
});
|
|
118082
118117
|
|
|
118083
|
-
// ../system/dist/manifest-system-deps-
|
|
118084
|
-
var
|
|
118085
|
-
"../system/dist/manifest-system-deps-
|
|
118118
|
+
// ../system/dist/manifest-system-deps-DvY1bY_n.js
|
|
118119
|
+
var require_manifest_system_deps_DvY1bY_n = __commonJS({
|
|
118120
|
+
"../system/dist/manifest-system-deps-DvY1bY_n.js"(exports) {
|
|
118086
118121
|
"use strict";
|
|
118087
118122
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
118088
118123
|
require_hub_cap_forward_DmHNjbB0();
|
|
@@ -118730,7 +118765,8 @@ var require_manifest_system_deps_CdIVy85V = __commonJS({
|
|
|
118730
118765
|
prefix,
|
|
118731
118766
|
access: entry.access,
|
|
118732
118767
|
baseUrl,
|
|
118733
|
-
secret
|
|
118768
|
+
secret,
|
|
118769
|
+
...entry.share !== void 0 ? { share: entry.share } : {}
|
|
118734
118770
|
}));
|
|
118735
118771
|
args.sink?.set(args.addonId, endpoints);
|
|
118736
118772
|
};
|
|
@@ -118740,7 +118776,8 @@ var require_manifest_system_deps_CdIVy85V = __commonJS({
|
|
|
118740
118776
|
await ensureServer();
|
|
118741
118777
|
served.set(prefix, {
|
|
118742
118778
|
access: options.access,
|
|
118743
|
-
handler: options.handler
|
|
118779
|
+
handler: options.handler,
|
|
118780
|
+
...options.share !== void 0 ? { share: options.share } : {}
|
|
118744
118781
|
});
|
|
118745
118782
|
publish();
|
|
118746
118783
|
args.logger.info("data-plane endpoint served", { meta: {
|
|
@@ -130153,7 +130190,7 @@ var require_dist3 = __commonJS({
|
|
|
130153
130190
|
"use strict";
|
|
130154
130191
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
130155
130192
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
130156
|
-
var require_dist10 =
|
|
130193
|
+
var require_dist10 = require_dist_2wpm3tOu();
|
|
130157
130194
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
130158
130195
|
require_alerts();
|
|
130159
130196
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -130180,7 +130217,7 @@ var require_dist3 = __commonJS({
|
|
|
130180
130217
|
var require_builtins_winston_logging_index = require_winston_logging();
|
|
130181
130218
|
var require_file_data_plane = require_file_data_plane_DO8KbxCe();
|
|
130182
130219
|
var require_tls$1 = require_tls_BxQlomxd();
|
|
130183
|
-
var require_manifest_system_deps =
|
|
130220
|
+
var require_manifest_system_deps = require_manifest_system_deps_DvY1bY_n();
|
|
130184
130221
|
var require_resource_monitor = require_resource_monitor_CdnzxBLP();
|
|
130185
130222
|
var require_custom_action_registry = require_custom_action_registry_jY0NOZK8();
|
|
130186
130223
|
var zod = require_zod();
|
|
@@ -211270,7 +211307,7 @@ var require_dist4 = __commonJS({
|
|
|
211270
211307
|
"use strict";
|
|
211271
211308
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
211272
211309
|
var require_event_category = require_event_category_BaEgqJNv();
|
|
211273
|
-
var require_sleep =
|
|
211310
|
+
var require_sleep = require_sleep_BCUreN6s();
|
|
211274
211311
|
var require_canonical_hash = require_canonical_hash_DNV8S5ET();
|
|
211275
211312
|
var require_enums2 = require_enums();
|
|
211276
211313
|
var require_err_msg = require_err_msg_COpsHMw2();
|
|
@@ -227614,6 +227651,14 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
227614
227651
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
227615
227652
|
ingest: zod.z.boolean().optional(),
|
|
227616
227653
|
/**
|
|
227654
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
227655
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
227656
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
227657
|
+
*/
|
|
227658
|
+
decodeBudgetMb: zod.z.number().int().min(1024).max(65536).optional(),
|
|
227659
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
227660
|
+
maxLiveDecodeWorkers: zod.z.number().int().min(1).max(32).optional(),
|
|
227661
|
+
/**
|
|
227617
227662
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
227618
227663
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
227619
227664
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -228177,6 +228222,20 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
228177
228222
|
auth: "admin"
|
|
228178
228223
|
}),
|
|
228179
228224
|
/**
|
|
228225
|
+
* Size ONE node's decode admission: its RAM budget and live-worker cap.
|
|
228226
|
+
* `null` clears a limit (back to the cluster setting or the RAM-derived
|
|
228227
|
+
* default); an omitted key leaves it alone. Read by the node's runner on
|
|
228228
|
+
* its next lease refresh (D365).
|
|
228229
|
+
*/
|
|
228230
|
+
setAgentDecodeLimits: require_sleep.method(zod.z.object({
|
|
228231
|
+
agentNodeId: zod.z.string(),
|
|
228232
|
+
decodeBudgetMb: zod.z.number().int().min(1024).max(65536).nullable().optional(),
|
|
228233
|
+
maxLiveDecodeWorkers: zod.z.number().int().min(1).max(32).nullable().optional()
|
|
228234
|
+
}), zod.z.object({ success: zod.z.literal(true) }), {
|
|
228235
|
+
kind: "mutation",
|
|
228236
|
+
auth: "admin"
|
|
228237
|
+
}),
|
|
228238
|
+
/**
|
|
228180
228239
|
* Set (or clear) the operator override for the LAN host a cross-node
|
|
228181
228240
|
* decoder dials to reach this node's restream. Pass a non-empty string to
|
|
228182
228241
|
* override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
|
|
@@ -240214,7 +240273,15 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
240214
240273
|
if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
|
|
240215
240274
|
if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
|
|
240216
240275
|
await this.healSavedConfig(saved, savedDevices);
|
|
240217
|
-
|
|
240276
|
+
try {
|
|
240277
|
+
await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
|
|
240278
|
+
} catch (err) {
|
|
240279
|
+
if (!(await this.ctx.kernel.devices.getAll()).some((device2) => device2.stableId === saved.stableId)) throw err;
|
|
240280
|
+
this.ctx.logger.debug("Restore row came to life during its own dial \u2014 kept", { tags: {
|
|
240281
|
+
deviceId: saved.id,
|
|
240282
|
+
stableId: saved.stableId
|
|
240283
|
+
} });
|
|
240284
|
+
}
|
|
240218
240285
|
restored.add(saved.id);
|
|
240219
240286
|
};
|
|
240220
240287
|
const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
|
|
@@ -246580,6 +246647,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
246580
246647
|
addonId: null,
|
|
246581
246648
|
access: "create"
|
|
246582
246649
|
},
|
|
246650
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
246651
|
+
capName: "pipeline-orchestrator",
|
|
246652
|
+
capScope: "system",
|
|
246653
|
+
addonId: null,
|
|
246654
|
+
access: "create"
|
|
246655
|
+
},
|
|
246583
246656
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
246584
246657
|
capName: "pipeline-orchestrator",
|
|
246585
246658
|
capScope: "system",
|
|
@@ -251694,6 +251767,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
251694
251767
|
setAgentMaxCameras: (input) => dispatch("pipelineOrchestrator", "setAgentMaxCameras", "mutation", input),
|
|
251695
251768
|
setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
|
|
251696
251769
|
setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
|
|
251770
|
+
setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
|
|
251697
251771
|
setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
|
|
251698
251772
|
setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
|
|
251699
251773
|
getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
|
|
@@ -255389,6 +255463,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
255389
255463
|
exports.SCOPE_PRESETS = SCOPE_PRESETS;
|
|
255390
255464
|
exports.SENSOR_FEATURES = SENSOR_FEATURES;
|
|
255391
255465
|
exports.SENSOR_MAP = SENSOR_MAP;
|
|
255466
|
+
exports.SHARE_VIEW_KINDS = require_sleep.SHARE_VIEW_KINDS;
|
|
255392
255467
|
exports.SOURCE_CAPS = SOURCE_CAPS;
|
|
255393
255468
|
exports.SOURCE_CAP_ACTIVE_FIELD = SOURCE_CAP_ACTIVE_FIELD;
|
|
255394
255469
|
exports.SOURCE_CAP_CHANGED_AT_FIELD = SOURCE_CAP_CHANGED_AT_FIELD;
|
|
@@ -415493,6 +415568,7 @@ var require_share_token_service = __commonJS({
|
|
|
415493
415568
|
})();
|
|
415494
415569
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
415495
415570
|
exports.ShareTokenService = exports.ShareTokenRecordSchema = exports.ShareTokenScopeSchema = exports.SHARE_TOKEN_MAX_DEVICES = exports.SHARE_TOKEN_TTL_DEFAULT_SEC = exports.SHARE_TOKEN_TTL_MAX_SEC = exports.SHARE_TOKEN_TTL_MIN_SEC = exports.SHARE_TOKEN_PREFIX = void 0;
|
|
415571
|
+
var types_1 = require_dist4();
|
|
415496
415572
|
var crypto2 = __importStar(__require("crypto"));
|
|
415497
415573
|
var zod_1 = require_zod();
|
|
415498
415574
|
var SHARE_TOKENS_COLLECTION = "share_view_tokens";
|
|
@@ -415506,7 +415582,7 @@ var require_share_token_service = __commonJS({
|
|
|
415506
415582
|
exports.SHARE_TOKEN_TTL_DEFAULT_SEC = 7 * 24 * 60 * 60;
|
|
415507
415583
|
exports.SHARE_TOKEN_MAX_DEVICES = 64;
|
|
415508
415584
|
exports.ShareTokenScopeSchema = zod_1.z.object({
|
|
415509
|
-
kind: zod_1.z.enum(
|
|
415585
|
+
kind: zod_1.z.enum(types_1.SHARE_VIEW_KINDS),
|
|
415510
415586
|
deviceIds: zod_1.z.array(zod_1.z.number().int().nonnegative()).min(1).max(exports.SHARE_TOKEN_MAX_DEVICES)
|
|
415511
415587
|
});
|
|
415512
415588
|
exports.ShareTokenRecordSchema = zod_1.z.object({
|
|
@@ -420202,6 +420278,44 @@ var require_addon_route_jwt_gate = __commonJS({
|
|
|
420202
420278
|
}
|
|
420203
420279
|
});
|
|
420204
420280
|
|
|
420281
|
+
// ../../server/backend/dist/auth/addon-route-share-gate.js
|
|
420282
|
+
var require_addon_route_share_gate = __commonJS({
|
|
420283
|
+
"../../server/backend/dist/auth/addon-route-share-gate.js"(exports) {
|
|
420284
|
+
"use strict";
|
|
420285
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
420286
|
+
exports.SHARE_DEVICES_HEADER = exports.SHARE_KIND_HEADER = void 0;
|
|
420287
|
+
exports.gateAddonShareToken = gateAddonShareToken;
|
|
420288
|
+
exports.stripShareHeaders = stripShareHeaders;
|
|
420289
|
+
exports.SHARE_KIND_HEADER = "x-camstack-share-kind";
|
|
420290
|
+
exports.SHARE_DEVICES_HEADER = "x-camstack-share-devices";
|
|
420291
|
+
function gateAddonShareToken(input) {
|
|
420292
|
+
if (input.record === null)
|
|
420293
|
+
return { ok: false, status: 401, error: "Invalid token" };
|
|
420294
|
+
const kind = input.record.scope.kind;
|
|
420295
|
+
if (!(input.endpoint.share ?? []).includes(kind)) {
|
|
420296
|
+
return { ok: false, status: 403, error: "Share token not accepted here" };
|
|
420297
|
+
}
|
|
420298
|
+
return {
|
|
420299
|
+
ok: true,
|
|
420300
|
+
headers: {
|
|
420301
|
+
[exports.SHARE_KIND_HEADER]: kind,
|
|
420302
|
+
[exports.SHARE_DEVICES_HEADER]: input.record.scope.deviceIds.join(",")
|
|
420303
|
+
}
|
|
420304
|
+
};
|
|
420305
|
+
}
|
|
420306
|
+
function stripShareHeaders(headers) {
|
|
420307
|
+
const out = {};
|
|
420308
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
420309
|
+
const lower = key.toLowerCase();
|
|
420310
|
+
if (lower === exports.SHARE_KIND_HEADER || lower === exports.SHARE_DEVICES_HEADER)
|
|
420311
|
+
continue;
|
|
420312
|
+
out[key] = value;
|
|
420313
|
+
}
|
|
420314
|
+
return out;
|
|
420315
|
+
}
|
|
420316
|
+
}
|
|
420317
|
+
});
|
|
420318
|
+
|
|
420205
420319
|
// ../../server/backend/dist/core/config/config.schema.js
|
|
420206
420320
|
var require_config_schema = __commonJS({
|
|
420207
420321
|
"../../server/backend/dist/core/config/config.schema.js"(exports) {
|
|
@@ -421239,6 +421353,7 @@ var require_addon_registry_service = __commonJS({
|
|
|
421239
421353
|
exports.AddonRegistryService = void 0;
|
|
421240
421354
|
exports.shouldEvictMissingOnDisk = shouldEvictMissingOnDisk;
|
|
421241
421355
|
exports.addonUpdatePayload = addonUpdatePayload;
|
|
421356
|
+
exports.parseDataPlaneEndpoints = parseDataPlaneEndpoints;
|
|
421242
421357
|
exports.shouldEmitProviderRegisteredReady = shouldEmitProviderRegisteredReady;
|
|
421243
421358
|
var node_crypto_1 = __require("crypto");
|
|
421244
421359
|
var fs = __importStar(__require("fs"));
|
|
@@ -421357,9 +421472,30 @@ var require_addon_registry_service = __commonJS({
|
|
|
421357
421472
|
if (typeof prefix !== "string" || typeof baseUrl !== "string" || typeof secret !== "string") {
|
|
421358
421473
|
throw new Error("data-planes: endpoint descriptor missing prefix/baseUrl/secret");
|
|
421359
421474
|
}
|
|
421360
|
-
|
|
421475
|
+
const share = parseDataPlaneShare(Reflect.get(entry, "share"));
|
|
421476
|
+
return {
|
|
421477
|
+
prefix,
|
|
421478
|
+
access: asRouteAccess(Reflect.get(entry, "access")),
|
|
421479
|
+
baseUrl,
|
|
421480
|
+
secret,
|
|
421481
|
+
...share !== void 0 ? { share } : {}
|
|
421482
|
+
};
|
|
421361
421483
|
});
|
|
421362
421484
|
}
|
|
421485
|
+
function parseDataPlaneShare(value) {
|
|
421486
|
+
if (value === void 0)
|
|
421487
|
+
return void 0;
|
|
421488
|
+
if (!Array.isArray(value))
|
|
421489
|
+
throw new Error("data-planes: `share` is not an array");
|
|
421490
|
+
return value.map((kind) => {
|
|
421491
|
+
if (!isShareViewKind(kind))
|
|
421492
|
+
throw new Error(`data-planes: unknown share kind ${String(kind)}`);
|
|
421493
|
+
return kind;
|
|
421494
|
+
});
|
|
421495
|
+
}
|
|
421496
|
+
function isShareViewKind(value) {
|
|
421497
|
+
return typeof value === "string" && types_1.SHARE_VIEW_KINDS.includes(value);
|
|
421498
|
+
}
|
|
421363
421499
|
function shouldEmitProviderRegisteredReady(capability) {
|
|
421364
421500
|
return capability !== "platform-probe";
|
|
421365
421501
|
}
|
|
@@ -428219,6 +428355,7 @@ var require_main4 = __commonJS({
|
|
|
428219
428355
|
var trpc_error_device_tags_1 = require_trpc_error_device_tags();
|
|
428220
428356
|
var ws_request_census_1 = require_ws_request_census();
|
|
428221
428357
|
var addon_route_jwt_gate_js_1 = require_addon_route_jwt_gate();
|
|
428358
|
+
var addon_route_share_gate_js_1 = require_addon_route_share_gate();
|
|
428222
428359
|
var session_cookie_js_1 = require_session_cookie();
|
|
428223
428360
|
var boot_config_1 = require_boot_config();
|
|
428224
428361
|
var integration_id_backfill_1 = require_integration_id_backfill();
|
|
@@ -428770,6 +428907,7 @@ var require_main4 = __commonJS({
|
|
|
428770
428907
|
const dpMatch = dataPlaneRegistry.match(addonId, subPath);
|
|
428771
428908
|
if (dpMatch) {
|
|
428772
428909
|
const access = dpMatch.endpoint.access;
|
|
428910
|
+
let shareHeaders = null;
|
|
428773
428911
|
if (access !== "public") {
|
|
428774
428912
|
const authHeader = request.headers.authorization;
|
|
428775
428913
|
const cookieToken = request.cookies?.[session_cookie_js_1.SESSION_COOKIE];
|
|
@@ -428777,7 +428915,13 @@ var require_main4 = __commonJS({
|
|
|
428777
428915
|
return reply.status(401).send({ error: "Unauthorized" });
|
|
428778
428916
|
}
|
|
428779
428917
|
const token2 = authHeader ? authHeader.replace("Bearer ", "") : cookieToken;
|
|
428780
|
-
if (token2.startsWith("
|
|
428918
|
+
if (token2.startsWith("csv_")) {
|
|
428919
|
+
const record = await shareTokenService.validate(token2);
|
|
428920
|
+
const gate = (0, addon_route_share_gate_js_1.gateAddonShareToken)({ record, endpoint: dpMatch.endpoint });
|
|
428921
|
+
if (!gate.ok)
|
|
428922
|
+
return reply.status(gate.status).send({ error: gate.error });
|
|
428923
|
+
shareHeaders = gate.headers;
|
|
428924
|
+
} else if (token2.startsWith("cst_")) {
|
|
428781
428925
|
const userMgmt = capabilityRegistry?.getSingleton("user-management");
|
|
428782
428926
|
if (!userMgmt)
|
|
428783
428927
|
return reply.status(503).send({ error: "User management not available" });
|
|
@@ -428802,6 +428946,12 @@ var require_main4 = __commonJS({
|
|
|
428802
428946
|
const qIdx = request.url.indexOf("?");
|
|
428803
428947
|
const queryString = qIdx >= 0 ? request.url.slice(qIdx) : "";
|
|
428804
428948
|
const upstreamPath = `/${subPath}${queryString}`;
|
|
428949
|
+
for (const name of Object.keys(request.raw.headers)) {
|
|
428950
|
+
if (name.toLowerCase() === addon_route_share_gate_js_1.SHARE_KIND_HEADER || name.toLowerCase() === addon_route_share_gate_js_1.SHARE_DEVICES_HEADER)
|
|
428951
|
+
delete request.raw.headers[name];
|
|
428952
|
+
}
|
|
428953
|
+
if (shareHeaders !== null)
|
|
428954
|
+
Object.assign(request.raw.headers, shareHeaders);
|
|
428805
428955
|
reply.hijack();
|
|
428806
428956
|
const replayBody = request.body === void 0 ? void 0 : Buffer.isBuffer(request.body) ? request.body : Buffer.from(typeof request.body === "string" ? request.body : JSON.stringify(request.body));
|
|
428807
428957
|
(0, system_1.proxyToUpstream)({
|