@camstack/addon-matter-broker 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
@@ -20804,6 +20804,14 @@ var AgentPipelineSettingsSchema = object({
20804
20804
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20805
20805
  ingest: boolean().optional(),
20806
20806
  /**
20807
+ * This node's decode RAM budget, MB. Wins over the cluster
20808
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20809
+ * own RAM unless the operator moved the cluster value (D365).
20810
+ */
20811
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20812
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20813
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20814
+ /**
20807
20815
  * Operator override for the LAN host a cross-node decoder dials to reach
20808
20816
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20809
20817
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21265,6 +21273,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21265
21273
  }), object({ success: literal(true) }), {
21266
21274
  kind: "mutation",
21267
21275
  auth: "admin"
21276
+ }), method(object({
21277
+ agentNodeId: string$2(),
21278
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21279
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21280
+ }), object({ success: literal(true) }), {
21281
+ kind: "mutation",
21282
+ auth: "admin"
21268
21283
  }), method(object({
21269
21284
  agentNodeId: string$2(),
21270
21285
  reachableHost: string$2().nullable()
@@ -33200,7 +33215,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33200
33215
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33201
33216
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33202
33217
  await this.healSavedConfig(saved, savedDevices);
33203
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33218
+ try {
33219
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33220
+ } catch (err) {
33221
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33222
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33223
+ deviceId: saved.id,
33224
+ stableId: saved.stableId
33225
+ } });
33226
+ }
33204
33227
  restored.add(saved.id);
33205
33228
  };
33206
33229
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37233,6 +37256,12 @@ Object.freeze({
37233
37256
  addonId: null,
37234
37257
  access: "create"
37235
37258
  },
37259
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37260
+ capName: "pipeline-orchestrator",
37261
+ capScope: "system",
37262
+ addonId: null,
37263
+ access: "create"
37264
+ },
37236
37265
  "pipelineOrchestrator.setAgentDetectWeight": {
37237
37266
  capName: "pipeline-orchestrator",
37238
37267
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -20802,6 +20802,14 @@ var AgentPipelineSettingsSchema = object({
20802
20802
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20803
20803
  ingest: boolean().optional(),
20804
20804
  /**
20805
+ * This node's decode RAM budget, MB. Wins over the cluster
20806
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20807
+ * own RAM unless the operator moved the cluster value (D365).
20808
+ */
20809
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20810
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20811
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20812
+ /**
20805
20813
  * Operator override for the LAN host a cross-node decoder dials to reach
20806
20814
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20807
20815
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21263,6 +21271,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21263
21271
  }), object({ success: literal(true) }), {
21264
21272
  kind: "mutation",
21265
21273
  auth: "admin"
21274
+ }), method(object({
21275
+ agentNodeId: string$2(),
21276
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21277
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21278
+ }), object({ success: literal(true) }), {
21279
+ kind: "mutation",
21280
+ auth: "admin"
21266
21281
  }), method(object({
21267
21282
  agentNodeId: string$2(),
21268
21283
  reachableHost: string$2().nullable()
@@ -33198,7 +33213,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33198
33213
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33199
33214
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33200
33215
  await this.healSavedConfig(saved, savedDevices);
33201
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33216
+ try {
33217
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33218
+ } catch (err) {
33219
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33220
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33221
+ deviceId: saved.id,
33222
+ stableId: saved.stableId
33223
+ } });
33224
+ }
33202
33225
  restored.add(saved.id);
33203
33226
  };
33204
33227
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37231,6 +37254,12 @@ Object.freeze({
37231
37254
  addonId: null,
37232
37255
  access: "create"
37233
37256
  },
37257
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37258
+ capName: "pipeline-orchestrator",
37259
+ capScope: "system",
37260
+ addonId: null,
37261
+ access: "create"
37262
+ },
37234
37263
  "pipelineOrchestrator.setAgentDetectWeight": {
37235
37264
  capName: "pipeline-orchestrator",
37236
37265
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-matter-broker",
3
- "version": "0.2.65",
3
+ "version": "0.2.67",
4
4
  "description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
5
5
  "keywords": [
6
6
  "camstack",