@camstack/addon-pipeline-orchestrator 1.2.153 → 1.2.155
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.
- package/assets/viewer/.viewer-current-files.json +6 -6
- package/assets/viewer/.viewer-version +1 -1
- package/assets/viewer/_expo/static/js/web/{index-d0c6262238c13f90b3e2f44cde3fa1e5.js → index-75f763b949bea828a458aa4fa88aaabe.js} +6 -6
- package/assets/viewer/embed/assets/{MaskShapeCanvas-DI4BY7W2-or7hYi4E.js → MaskShapeCanvas-DI4BY7W2-CwsEoZgH.js} +1 -1
- package/assets/viewer/embed/assets/{MotionZonesSettings-DNdnFHso-DsKf0EK0.js → MotionZonesSettings-DNdnFHso-BBL6r4UH.js} +1 -1
- package/assets/viewer/embed/assets/{PrivacyMaskSettings-DNSLc6ww-D_ERFExX.js → PrivacyMaskSettings-DNSLc6ww-3mWZlmvm.js} +1 -1
- package/assets/viewer/embed/assets/{SceneMonitorEditor-d_A4kO-M-DT03aIuj.js → SceneMonitorEditor-d_A4kO-M-CULeYhtP.js} +1 -1
- package/assets/viewer/embed/assets/{index-DnRT7vB-.js → index-6Ff1zM4h.js} +19 -19
- package/assets/viewer/embed/index.html +1 -1
- package/assets/viewer/index.html +1 -1
- package/dist/_stub.js +2 -2
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BSKRujYj.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BOf7GO1V.mjs} +3 -3
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-zcPhDMA0.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D5G3kOI3.mjs} +1 -1
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DokBKc_-.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-HpCSXGt7.mjs} +1 -1
- package/dist/{hostInit-CSc5yX2O.mjs → hostInit-XEl2iqFg.mjs} +3 -3
- package/dist/index.js +103 -1
- package/dist/index.mjs +103 -1
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/assets/viewer/_expo/static/js/web/index-0bfe4572bdd5efd9eeb2cefa2e294a8e.js +0 -3674
package/dist/index.js
CHANGED
|
@@ -20200,6 +20200,33 @@ var RecentTracksQueryInput = object({
|
|
|
20200
20200
|
*/
|
|
20201
20201
|
classes: array(string()).optional()
|
|
20202
20202
|
});
|
|
20203
|
+
/**
|
|
20204
|
+
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
20205
|
+
* `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
|
|
20206
|
+
* served by the event-media plane by key), null until the first frame with a
|
|
20207
|
+
* member visible has been materialised.
|
|
20208
|
+
*/
|
|
20209
|
+
var SummarySchema = object({
|
|
20210
|
+
id: string(),
|
|
20211
|
+
deviceId: number(),
|
|
20212
|
+
openedAt: number(),
|
|
20213
|
+
lastActiveAt: number(),
|
|
20214
|
+
sealedAt: number().nullable(),
|
|
20215
|
+
memberCount: number().int().nonnegative(),
|
|
20216
|
+
groupShotKey: string().nullable()
|
|
20217
|
+
});
|
|
20218
|
+
var SummariesQueryInput = object({
|
|
20219
|
+
deviceIds: array(number()).min(1),
|
|
20220
|
+
since: number().optional(),
|
|
20221
|
+
until: number().optional(),
|
|
20222
|
+
limit: number().int().min(1).max(200).default(50)
|
|
20223
|
+
});
|
|
20224
|
+
var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
|
|
20225
|
+
var SummaryDetailSchema = object({
|
|
20226
|
+
summary: SummarySchema,
|
|
20227
|
+
/** Member track ids, in absorption order. */
|
|
20228
|
+
trackIds: array(string()).readonly()
|
|
20229
|
+
});
|
|
20203
20230
|
var RecentTracksPageSchema = object({
|
|
20204
20231
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
20205
20232
|
tracks: array(TrackSchema).readonly(),
|
|
@@ -20600,7 +20627,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
20600
20627
|
* timeline would read as a camera that saw nothing.
|
|
20601
20628
|
*/
|
|
20602
20629
|
classes: array(string()).optional()
|
|
20603
|
-
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
20630
|
+
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
20604
20631
|
kind: "mutation",
|
|
20605
20632
|
auth: "admin"
|
|
20606
20633
|
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
|
|
@@ -21693,6 +21720,14 @@ var AgentPipelineSettingsSchema = object({
|
|
|
21693
21720
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
21694
21721
|
ingest: boolean().optional(),
|
|
21695
21722
|
/**
|
|
21723
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
21724
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
21725
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
21726
|
+
*/
|
|
21727
|
+
decodeBudgetMb: number().int().min(1024).max(65536).optional(),
|
|
21728
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
21729
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
|
|
21730
|
+
/**
|
|
21696
21731
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
21697
21732
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
21698
21733
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -22314,6 +22349,20 @@ var pipelineOrchestratorCapability = {
|
|
|
22314
22349
|
auth: "admin"
|
|
22315
22350
|
}),
|
|
22316
22351
|
/**
|
|
22352
|
+
* Size ONE node's decode admission: its RAM budget and live-worker cap.
|
|
22353
|
+
* `null` clears a limit (back to the cluster setting or the RAM-derived
|
|
22354
|
+
* default); an omitted key leaves it alone. Read by the node's runner on
|
|
22355
|
+
* its next lease refresh (D365).
|
|
22356
|
+
*/
|
|
22357
|
+
setAgentDecodeLimits: method(object({
|
|
22358
|
+
agentNodeId: string(),
|
|
22359
|
+
decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
|
|
22360
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
|
|
22361
|
+
}), object({ success: literal(true) }), {
|
|
22362
|
+
kind: "mutation",
|
|
22363
|
+
auth: "admin"
|
|
22364
|
+
}),
|
|
22365
|
+
/**
|
|
22317
22366
|
* Set (or clear) the operator override for the LAN host a cross-node
|
|
22318
22367
|
* decoder dials to reach this node's restream. Pass a non-empty string to
|
|
22319
22368
|
* override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
|
|
@@ -34105,6 +34154,12 @@ Object.freeze({
|
|
|
34105
34154
|
addonId: null,
|
|
34106
34155
|
access: "view"
|
|
34107
34156
|
},
|
|
34157
|
+
"pipelineAnalytics.getSummary": {
|
|
34158
|
+
capName: "pipeline-analytics",
|
|
34159
|
+
capScope: "device",
|
|
34160
|
+
addonId: null,
|
|
34161
|
+
access: "view"
|
|
34162
|
+
},
|
|
34108
34163
|
"pipelineAnalytics.getTrack": {
|
|
34109
34164
|
capName: "pipeline-analytics",
|
|
34110
34165
|
capScope: "device",
|
|
@@ -34183,6 +34238,12 @@ Object.freeze({
|
|
|
34183
34238
|
addonId: null,
|
|
34184
34239
|
access: "view"
|
|
34185
34240
|
},
|
|
34241
|
+
"pipelineAnalytics.listSummaries": {
|
|
34242
|
+
capName: "pipeline-analytics",
|
|
34243
|
+
capScope: "device",
|
|
34244
|
+
addonId: null,
|
|
34245
|
+
access: "view"
|
|
34246
|
+
},
|
|
34186
34247
|
"pipelineAnalytics.listTrackMedia": {
|
|
34187
34248
|
capName: "pipeline-analytics",
|
|
34188
34249
|
capScope: "device",
|
|
@@ -34741,6 +34802,12 @@ Object.freeze({
|
|
|
34741
34802
|
addonId: null,
|
|
34742
34803
|
access: "create"
|
|
34743
34804
|
},
|
|
34805
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
34806
|
+
capName: "pipeline-orchestrator",
|
|
34807
|
+
capScope: "system",
|
|
34808
|
+
addonId: null,
|
|
34809
|
+
access: "create"
|
|
34810
|
+
},
|
|
34744
34811
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
34745
34812
|
capName: "pipeline-orchestrator",
|
|
34746
34813
|
capScope: "system",
|
|
@@ -37872,6 +37939,11 @@ Object.freeze({
|
|
|
37872
37939
|
form: "array",
|
|
37873
37940
|
optional: true
|
|
37874
37941
|
}],
|
|
37942
|
+
"pipelineAnalytics.listSummaries": [{
|
|
37943
|
+
name: "deviceIds",
|
|
37944
|
+
form: "array",
|
|
37945
|
+
optional: false
|
|
37946
|
+
}],
|
|
37875
37947
|
"pipelineAnalytics.listTrackMedia": [{
|
|
37876
37948
|
name: "deviceId",
|
|
37877
37949
|
form: "single",
|
|
@@ -47642,6 +47714,8 @@ var StoredAgentPipelineSettingsSchema = object({
|
|
|
47642
47714
|
decode: boolean().optional(),
|
|
47643
47715
|
audio: boolean().optional(),
|
|
47644
47716
|
ingest: boolean().optional(),
|
|
47717
|
+
decodeBudgetMb: number().int().min(1024).max(65536).optional(),
|
|
47718
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
|
|
47645
47719
|
reachableHost: string().optional(),
|
|
47646
47720
|
inferenceDevices: record(string(), object({
|
|
47647
47721
|
enabled: boolean(),
|
|
@@ -53234,6 +53308,34 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
53234
53308
|
return { success: true };
|
|
53235
53309
|
}
|
|
53236
53310
|
/**
|
|
53311
|
+
* Size one node's decode admission (D365). `null` clears a limit, an
|
|
53312
|
+
* omitted key leaves it; the node's runner reads the entry on its next
|
|
53313
|
+
* lease refresh and resizes its admission — no restart.
|
|
53314
|
+
*/
|
|
53315
|
+
async setAgentDecodeLimits(input) {
|
|
53316
|
+
const existing = (await this.settingsStore.readAgentSettingsMap())[input.agentNodeId] ?? { maxCameras: null };
|
|
53317
|
+
const applyLimit = (key) => {
|
|
53318
|
+
const patch = input[key];
|
|
53319
|
+
if (patch === void 0) return existing[key];
|
|
53320
|
+
if (patch === null) return void 0;
|
|
53321
|
+
return patch;
|
|
53322
|
+
};
|
|
53323
|
+
const next = {
|
|
53324
|
+
...existing,
|
|
53325
|
+
decodeBudgetMb: applyLimit("decodeBudgetMb"),
|
|
53326
|
+
maxLiveDecodeWorkers: applyLimit("maxLiveDecodeWorkers")
|
|
53327
|
+
};
|
|
53328
|
+
await this.settingsStore.writeAgentSettings(input.agentNodeId, next);
|
|
53329
|
+
this.ctx.logger.info("agentSettings.decodeLimits updated", {
|
|
53330
|
+
tags: { nodeId: input.agentNodeId },
|
|
53331
|
+
meta: {
|
|
53332
|
+
decodeBudgetMb: next.decodeBudgetMb,
|
|
53333
|
+
maxLiveDecodeWorkers: next.maxLiveDecodeWorkers
|
|
53334
|
+
}
|
|
53335
|
+
});
|
|
53336
|
+
return { success: true };
|
|
53337
|
+
}
|
|
53338
|
+
/**
|
|
53237
53339
|
* Set (or clear) the per-node `reachableHost` override — the LAN host a
|
|
53238
53340
|
* cross-node decoder dials to reach this node's restream. A non-empty string
|
|
53239
53341
|
* overrides the auto-detected host the runner would otherwise derive from
|
package/dist/index.mjs
CHANGED
|
@@ -20172,6 +20172,33 @@ var RecentTracksQueryInput = object({
|
|
|
20172
20172
|
*/
|
|
20173
20173
|
classes: array(string()).optional()
|
|
20174
20174
|
});
|
|
20175
|
+
/**
|
|
20176
|
+
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
20177
|
+
* `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
|
|
20178
|
+
* served by the event-media plane by key), null until the first frame with a
|
|
20179
|
+
* member visible has been materialised.
|
|
20180
|
+
*/
|
|
20181
|
+
var SummarySchema = object({
|
|
20182
|
+
id: string(),
|
|
20183
|
+
deviceId: number(),
|
|
20184
|
+
openedAt: number(),
|
|
20185
|
+
lastActiveAt: number(),
|
|
20186
|
+
sealedAt: number().nullable(),
|
|
20187
|
+
memberCount: number().int().nonnegative(),
|
|
20188
|
+
groupShotKey: string().nullable()
|
|
20189
|
+
});
|
|
20190
|
+
var SummariesQueryInput = object({
|
|
20191
|
+
deviceIds: array(number()).min(1),
|
|
20192
|
+
since: number().optional(),
|
|
20193
|
+
until: number().optional(),
|
|
20194
|
+
limit: number().int().min(1).max(200).default(50)
|
|
20195
|
+
});
|
|
20196
|
+
var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
|
|
20197
|
+
var SummaryDetailSchema = object({
|
|
20198
|
+
summary: SummarySchema,
|
|
20199
|
+
/** Member track ids, in absorption order. */
|
|
20200
|
+
trackIds: array(string()).readonly()
|
|
20201
|
+
});
|
|
20175
20202
|
var RecentTracksPageSchema = object({
|
|
20176
20203
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
20177
20204
|
tracks: array(TrackSchema).readonly(),
|
|
@@ -20572,7 +20599,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
20572
20599
|
* timeline would read as a camera that saw nothing.
|
|
20573
20600
|
*/
|
|
20574
20601
|
classes: array(string()).optional()
|
|
20575
|
-
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
20602
|
+
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
20576
20603
|
kind: "mutation",
|
|
20577
20604
|
auth: "admin"
|
|
20578
20605
|
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
|
|
@@ -21665,6 +21692,14 @@ var AgentPipelineSettingsSchema = object({
|
|
|
21665
21692
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
21666
21693
|
ingest: boolean().optional(),
|
|
21667
21694
|
/**
|
|
21695
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
21696
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
21697
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
21698
|
+
*/
|
|
21699
|
+
decodeBudgetMb: number().int().min(1024).max(65536).optional(),
|
|
21700
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
21701
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
|
|
21702
|
+
/**
|
|
21668
21703
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
21669
21704
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
21670
21705
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -22286,6 +22321,20 @@ var pipelineOrchestratorCapability = {
|
|
|
22286
22321
|
auth: "admin"
|
|
22287
22322
|
}),
|
|
22288
22323
|
/**
|
|
22324
|
+
* Size ONE node's decode admission: its RAM budget and live-worker cap.
|
|
22325
|
+
* `null` clears a limit (back to the cluster setting or the RAM-derived
|
|
22326
|
+
* default); an omitted key leaves it alone. Read by the node's runner on
|
|
22327
|
+
* its next lease refresh (D365).
|
|
22328
|
+
*/
|
|
22329
|
+
setAgentDecodeLimits: method(object({
|
|
22330
|
+
agentNodeId: string(),
|
|
22331
|
+
decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
|
|
22332
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
|
|
22333
|
+
}), object({ success: literal(true) }), {
|
|
22334
|
+
kind: "mutation",
|
|
22335
|
+
auth: "admin"
|
|
22336
|
+
}),
|
|
22337
|
+
/**
|
|
22289
22338
|
* Set (or clear) the operator override for the LAN host a cross-node
|
|
22290
22339
|
* decoder dials to reach this node's restream. Pass a non-empty string to
|
|
22291
22340
|
* override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
|
|
@@ -34077,6 +34126,12 @@ Object.freeze({
|
|
|
34077
34126
|
addonId: null,
|
|
34078
34127
|
access: "view"
|
|
34079
34128
|
},
|
|
34129
|
+
"pipelineAnalytics.getSummary": {
|
|
34130
|
+
capName: "pipeline-analytics",
|
|
34131
|
+
capScope: "device",
|
|
34132
|
+
addonId: null,
|
|
34133
|
+
access: "view"
|
|
34134
|
+
},
|
|
34080
34135
|
"pipelineAnalytics.getTrack": {
|
|
34081
34136
|
capName: "pipeline-analytics",
|
|
34082
34137
|
capScope: "device",
|
|
@@ -34155,6 +34210,12 @@ Object.freeze({
|
|
|
34155
34210
|
addonId: null,
|
|
34156
34211
|
access: "view"
|
|
34157
34212
|
},
|
|
34213
|
+
"pipelineAnalytics.listSummaries": {
|
|
34214
|
+
capName: "pipeline-analytics",
|
|
34215
|
+
capScope: "device",
|
|
34216
|
+
addonId: null,
|
|
34217
|
+
access: "view"
|
|
34218
|
+
},
|
|
34158
34219
|
"pipelineAnalytics.listTrackMedia": {
|
|
34159
34220
|
capName: "pipeline-analytics",
|
|
34160
34221
|
capScope: "device",
|
|
@@ -34713,6 +34774,12 @@ Object.freeze({
|
|
|
34713
34774
|
addonId: null,
|
|
34714
34775
|
access: "create"
|
|
34715
34776
|
},
|
|
34777
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
34778
|
+
capName: "pipeline-orchestrator",
|
|
34779
|
+
capScope: "system",
|
|
34780
|
+
addonId: null,
|
|
34781
|
+
access: "create"
|
|
34782
|
+
},
|
|
34716
34783
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
34717
34784
|
capName: "pipeline-orchestrator",
|
|
34718
34785
|
capScope: "system",
|
|
@@ -37844,6 +37911,11 @@ Object.freeze({
|
|
|
37844
37911
|
form: "array",
|
|
37845
37912
|
optional: true
|
|
37846
37913
|
}],
|
|
37914
|
+
"pipelineAnalytics.listSummaries": [{
|
|
37915
|
+
name: "deviceIds",
|
|
37916
|
+
form: "array",
|
|
37917
|
+
optional: false
|
|
37918
|
+
}],
|
|
37847
37919
|
"pipelineAnalytics.listTrackMedia": [{
|
|
37848
37920
|
name: "deviceId",
|
|
37849
37921
|
form: "single",
|
|
@@ -47614,6 +47686,8 @@ var StoredAgentPipelineSettingsSchema = object({
|
|
|
47614
47686
|
decode: boolean().optional(),
|
|
47615
47687
|
audio: boolean().optional(),
|
|
47616
47688
|
ingest: boolean().optional(),
|
|
47689
|
+
decodeBudgetMb: number().int().min(1024).max(65536).optional(),
|
|
47690
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
|
|
47617
47691
|
reachableHost: string().optional(),
|
|
47618
47692
|
inferenceDevices: record(string(), object({
|
|
47619
47693
|
enabled: boolean(),
|
|
@@ -53206,6 +53280,34 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
53206
53280
|
return { success: true };
|
|
53207
53281
|
}
|
|
53208
53282
|
/**
|
|
53283
|
+
* Size one node's decode admission (D365). `null` clears a limit, an
|
|
53284
|
+
* omitted key leaves it; the node's runner reads the entry on its next
|
|
53285
|
+
* lease refresh and resizes its admission — no restart.
|
|
53286
|
+
*/
|
|
53287
|
+
async setAgentDecodeLimits(input) {
|
|
53288
|
+
const existing = (await this.settingsStore.readAgentSettingsMap())[input.agentNodeId] ?? { maxCameras: null };
|
|
53289
|
+
const applyLimit = (key) => {
|
|
53290
|
+
const patch = input[key];
|
|
53291
|
+
if (patch === void 0) return existing[key];
|
|
53292
|
+
if (patch === null) return void 0;
|
|
53293
|
+
return patch;
|
|
53294
|
+
};
|
|
53295
|
+
const next = {
|
|
53296
|
+
...existing,
|
|
53297
|
+
decodeBudgetMb: applyLimit("decodeBudgetMb"),
|
|
53298
|
+
maxLiveDecodeWorkers: applyLimit("maxLiveDecodeWorkers")
|
|
53299
|
+
};
|
|
53300
|
+
await this.settingsStore.writeAgentSettings(input.agentNodeId, next);
|
|
53301
|
+
this.ctx.logger.info("agentSettings.decodeLimits updated", {
|
|
53302
|
+
tags: { nodeId: input.agentNodeId },
|
|
53303
|
+
meta: {
|
|
53304
|
+
decodeBudgetMb: next.decodeBudgetMb,
|
|
53305
|
+
maxLiveDecodeWorkers: next.maxLiveDecodeWorkers
|
|
53306
|
+
}
|
|
53307
|
+
});
|
|
53308
|
+
return { success: true };
|
|
53309
|
+
}
|
|
53310
|
+
/**
|
|
53209
53311
|
* Set (or clear) the per-node `reachableHost` override — the LAN host a
|
|
53210
53312
|
* cross-node decoder dials to reach this node's restream. A non-empty string
|
|
53211
53313
|
* overrides the auto-detected host the runner would otherwise derive from
|
package/dist/remoteEntry.js
CHANGED
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BOf7GO1V.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline-orchestrator",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.155",
|
|
4
4
|
"description": "Hub-side camera-to-agent load balancer — tracks runner capacity and dispatches attachCamera calls to the optimal pipeline-runner instance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|