@camstack/addon-import-alexa 0.2.65 → 0.2.67

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
@@ -20967,6 +20967,14 @@ var AgentPipelineSettingsSchema = object({
20967
20967
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20968
20968
  ingest: boolean().optional(),
20969
20969
  /**
20970
+ * This node's decode RAM budget, MB. Wins over the cluster
20971
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20972
+ * own RAM unless the operator moved the cluster value (D365).
20973
+ */
20974
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20975
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20976
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20977
+ /**
20970
20978
  * Operator override for the LAN host a cross-node decoder dials to reach
20971
20979
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20972
20980
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21428,6 +21436,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21428
21436
  }), object({ success: literal(true) }), {
21429
21437
  kind: "mutation",
21430
21438
  auth: "admin"
21439
+ }), method(object({
21440
+ agentNodeId: string(),
21441
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21442
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21443
+ }), object({ success: literal(true) }), {
21444
+ kind: "mutation",
21445
+ auth: "admin"
21431
21446
  }), method(object({
21432
21447
  agentNodeId: string(),
21433
21448
  reachableHost: string().nullable()
@@ -33363,7 +33378,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33363
33378
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33364
33379
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33365
33380
  await this.healSavedConfig(saved, savedDevices);
33366
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33381
+ try {
33382
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33383
+ } catch (err) {
33384
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33385
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33386
+ deviceId: saved.id,
33387
+ stableId: saved.stableId
33388
+ } });
33389
+ }
33367
33390
  restored.add(saved.id);
33368
33391
  };
33369
33392
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37396,6 +37419,12 @@ Object.freeze({
37396
37419
  addonId: null,
37397
37420
  access: "create"
37398
37421
  },
37422
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37423
+ capName: "pipeline-orchestrator",
37424
+ capScope: "system",
37425
+ addonId: null,
37426
+ access: "create"
37427
+ },
37399
37428
  "pipelineOrchestrator.setAgentDetectWeight": {
37400
37429
  capName: "pipeline-orchestrator",
37401
37430
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -20967,6 +20967,14 @@ var AgentPipelineSettingsSchema = object({
20967
20967
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20968
20968
  ingest: boolean().optional(),
20969
20969
  /**
20970
+ * This node's decode RAM budget, MB. Wins over the cluster
20971
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20972
+ * own RAM unless the operator moved the cluster value (D365).
20973
+ */
20974
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20975
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20976
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20977
+ /**
20970
20978
  * Operator override for the LAN host a cross-node decoder dials to reach
20971
20979
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20972
20980
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21428,6 +21436,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21428
21436
  }), object({ success: literal(true) }), {
21429
21437
  kind: "mutation",
21430
21438
  auth: "admin"
21439
+ }), method(object({
21440
+ agentNodeId: string(),
21441
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21442
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21443
+ }), object({ success: literal(true) }), {
21444
+ kind: "mutation",
21445
+ auth: "admin"
21431
21446
  }), method(object({
21432
21447
  agentNodeId: string(),
21433
21448
  reachableHost: string().nullable()
@@ -33363,7 +33378,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33363
33378
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33364
33379
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33365
33380
  await this.healSavedConfig(saved, savedDevices);
33366
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33381
+ try {
33382
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33383
+ } catch (err) {
33384
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33385
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33386
+ deviceId: saved.id,
33387
+ stableId: saved.stableId
33388
+ } });
33389
+ }
33367
33390
  restored.add(saved.id);
33368
33391
  };
33369
33392
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37396,6 +37419,12 @@ Object.freeze({
37396
37419
  addonId: null,
37397
37420
  access: "create"
37398
37421
  },
37422
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37423
+ capName: "pipeline-orchestrator",
37424
+ capScope: "system",
37425
+ addonId: null,
37426
+ access: "create"
37427
+ },
37399
37428
  "pipelineOrchestrator.setAgentDetectWeight": {
37400
37429
  capName: "pipeline-orchestrator",
37401
37430
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-import-alexa",
3
- "version": "0.2.65",
3
+ "version": "0.2.67",
4
4
  "description": "Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter)",
5
5
  "keywords": [
6
6
  "camstack",