@camstack/addon-provider-rtsp 1.2.66 → 1.2.68

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/dist/addon.js CHANGED
@@ -20780,6 +20780,14 @@ var AgentPipelineSettingsSchema = object({
20780
20780
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20781
20781
  ingest: boolean().optional(),
20782
20782
  /**
20783
+ * This node's decode RAM budget, MB. Wins over the cluster
20784
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20785
+ * own RAM unless the operator moved the cluster value (D365).
20786
+ */
20787
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20788
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20789
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20790
+ /**
20783
20791
  * Operator override for the LAN host a cross-node decoder dials to reach
20784
20792
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20785
20793
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21241,6 +21249,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21241
21249
  }), object({ success: literal(true) }), {
21242
21250
  kind: "mutation",
21243
21251
  auth: "admin"
21252
+ }), method(object({
21253
+ agentNodeId: string(),
21254
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21255
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21256
+ }), object({ success: literal(true) }), {
21257
+ kind: "mutation",
21258
+ auth: "admin"
21244
21259
  }), method(object({
21245
21260
  agentNodeId: string(),
21246
21261
  reachableHost: string().nullable()
@@ -33271,7 +33286,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33271
33286
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33272
33287
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33273
33288
  await this.healSavedConfig(saved, savedDevices);
33274
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33289
+ try {
33290
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33291
+ } catch (err) {
33292
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33293
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33294
+ deviceId: saved.id,
33295
+ stableId: saved.stableId
33296
+ } });
33297
+ }
33275
33298
  restored.add(saved.id);
33276
33299
  };
33277
33300
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37370,6 +37393,12 @@ Object.freeze({
37370
37393
  addonId: null,
37371
37394
  access: "create"
37372
37395
  },
37396
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37397
+ capName: "pipeline-orchestrator",
37398
+ capScope: "system",
37399
+ addonId: null,
37400
+ access: "create"
37401
+ },
37373
37402
  "pipelineOrchestrator.setAgentDetectWeight": {
37374
37403
  capName: "pipeline-orchestrator",
37375
37404
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -20756,6 +20756,14 @@ var AgentPipelineSettingsSchema = object({
20756
20756
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20757
20757
  ingest: boolean().optional(),
20758
20758
  /**
20759
+ * This node's decode RAM budget, MB. Wins over the cluster
20760
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20761
+ * own RAM unless the operator moved the cluster value (D365).
20762
+ */
20763
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20764
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20765
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20766
+ /**
20759
20767
  * Operator override for the LAN host a cross-node decoder dials to reach
20760
20768
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20761
20769
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21217,6 +21225,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21217
21225
  }), object({ success: literal(true) }), {
21218
21226
  kind: "mutation",
21219
21227
  auth: "admin"
21228
+ }), method(object({
21229
+ agentNodeId: string(),
21230
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21231
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21232
+ }), object({ success: literal(true) }), {
21233
+ kind: "mutation",
21234
+ auth: "admin"
21220
21235
  }), method(object({
21221
21236
  agentNodeId: string(),
21222
21237
  reachableHost: string().nullable()
@@ -33247,7 +33262,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33247
33262
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33248
33263
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33249
33264
  await this.healSavedConfig(saved, savedDevices);
33250
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33265
+ try {
33266
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33267
+ } catch (err) {
33268
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33269
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33270
+ deviceId: saved.id,
33271
+ stableId: saved.stableId
33272
+ } });
33273
+ }
33251
33274
  restored.add(saved.id);
33252
33275
  };
33253
33276
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37346,6 +37369,12 @@ Object.freeze({
37346
37369
  addonId: null,
37347
37370
  access: "create"
37348
37371
  },
37372
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37373
+ capName: "pipeline-orchestrator",
37374
+ capScope: "system",
37375
+ addonId: null,
37376
+ access: "create"
37377
+ },
37349
37378
  "pipelineOrchestrator.setAgentDetectWeight": {
37350
37379
  capName: "pipeline-orchestrator",
37351
37380
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-rtsp",
3
- "version": "1.2.66",
3
+ "version": "1.2.68",
4
4
  "description": "Generic RTSP camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",