@camstack/addon-provider-rademacher 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
@@ -21709,6 +21709,14 @@ var AgentPipelineSettingsSchema = object({
21709
21709
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21710
21710
  ingest: boolean().optional(),
21711
21711
  /**
21712
+ * This node's decode RAM budget, MB. Wins over the cluster
21713
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21714
+ * own RAM unless the operator moved the cluster value (D365).
21715
+ */
21716
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21717
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21718
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21719
+ /**
21712
21720
  * Operator override for the LAN host a cross-node decoder dials to reach
21713
21721
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21714
21722
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -22170,6 +22178,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22170
22178
  }), object({ success: literal(true) }), {
22171
22179
  kind: "mutation",
22172
22180
  auth: "admin"
22181
+ }), method(object({
22182
+ agentNodeId: string(),
22183
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
22184
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
22185
+ }), object({ success: literal(true) }), {
22186
+ kind: "mutation",
22187
+ auth: "admin"
22173
22188
  }), method(object({
22174
22189
  agentNodeId: string(),
22175
22190
  reachableHost: string().nullable()
@@ -34088,7 +34103,15 @@ var BaseDeviceProvider = class extends BaseAddon {
34088
34103
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
34089
34104
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
34090
34105
  await this.healSavedConfig(saved, savedDevices);
34091
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34106
+ try {
34107
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34108
+ } catch (err) {
34109
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
34110
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
34111
+ deviceId: saved.id,
34112
+ stableId: saved.stableId
34113
+ } });
34114
+ }
34092
34115
  restored.add(saved.id);
34093
34116
  };
34094
34117
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -38121,6 +38144,12 @@ Object.freeze({
38121
38144
  addonId: null,
38122
38145
  access: "create"
38123
38146
  },
38147
+ "pipelineOrchestrator.setAgentDecodeLimits": {
38148
+ capName: "pipeline-orchestrator",
38149
+ capScope: "system",
38150
+ addonId: null,
38151
+ access: "create"
38152
+ },
38124
38153
  "pipelineOrchestrator.setAgentDetectWeight": {
38125
38154
  capName: "pipeline-orchestrator",
38126
38155
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -21708,6 +21708,14 @@ var AgentPipelineSettingsSchema = object({
21708
21708
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21709
21709
  ingest: boolean().optional(),
21710
21710
  /**
21711
+ * This node's decode RAM budget, MB. Wins over the cluster
21712
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21713
+ * own RAM unless the operator moved the cluster value (D365).
21714
+ */
21715
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21716
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21717
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21718
+ /**
21711
21719
  * Operator override for the LAN host a cross-node decoder dials to reach
21712
21720
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21713
21721
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -22169,6 +22177,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22169
22177
  }), object({ success: literal(true) }), {
22170
22178
  kind: "mutation",
22171
22179
  auth: "admin"
22180
+ }), method(object({
22181
+ agentNodeId: string(),
22182
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
22183
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
22184
+ }), object({ success: literal(true) }), {
22185
+ kind: "mutation",
22186
+ auth: "admin"
22172
22187
  }), method(object({
22173
22188
  agentNodeId: string(),
22174
22189
  reachableHost: string().nullable()
@@ -34087,7 +34102,15 @@ var BaseDeviceProvider = class extends BaseAddon {
34087
34102
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
34088
34103
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
34089
34104
  await this.healSavedConfig(saved, savedDevices);
34090
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34105
+ try {
34106
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34107
+ } catch (err) {
34108
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
34109
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
34110
+ deviceId: saved.id,
34111
+ stableId: saved.stableId
34112
+ } });
34113
+ }
34091
34114
  restored.add(saved.id);
34092
34115
  };
34093
34116
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -38120,6 +38143,12 @@ Object.freeze({
38120
38143
  addonId: null,
38121
38144
  access: "create"
38122
38145
  },
38146
+ "pipelineOrchestrator.setAgentDecodeLimits": {
38147
+ capName: "pipeline-orchestrator",
38148
+ capScope: "system",
38149
+ addonId: null,
38150
+ access: "create"
38151
+ },
38123
38152
  "pipelineOrchestrator.setAgentDetectWeight": {
38124
38153
  capName: "pipeline-orchestrator",
38125
38154
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-rademacher",
3
- "version": "0.2.65",
3
+ "version": "0.2.67",
4
4
  "description": "Rademacher HomePilot device-provider addon for CamStack — wraps the @apocaliss92/noderademacher local-hub client (roller shutters over the cover cap)",
5
5
  "keywords": [
6
6
  "camstack",