@camstack/addon-provider-gree 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
@@ -20727,6 +20727,14 @@ var AgentPipelineSettingsSchema = object({
20727
20727
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20728
20728
  ingest: boolean().optional(),
20729
20729
  /**
20730
+ * This node's decode RAM budget, MB. Wins over the cluster
20731
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20732
+ * own RAM unless the operator moved the cluster value (D365).
20733
+ */
20734
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20735
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20736
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20737
+ /**
20730
20738
  * Operator override for the LAN host a cross-node decoder dials to reach
20731
20739
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20732
20740
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21188,6 +21196,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21188
21196
  }), object({ success: literal(true) }), {
21189
21197
  kind: "mutation",
21190
21198
  auth: "admin"
21199
+ }), method(object({
21200
+ agentNodeId: string(),
21201
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21202
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21203
+ }), object({ success: literal(true) }), {
21204
+ kind: "mutation",
21205
+ auth: "admin"
21191
21206
  }), method(object({
21192
21207
  agentNodeId: string(),
21193
21208
  reachableHost: string().nullable()
@@ -33106,7 +33121,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33106
33121
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33107
33122
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33108
33123
  await this.healSavedConfig(saved, savedDevices);
33109
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33124
+ try {
33125
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33126
+ } catch (err) {
33127
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33128
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33129
+ deviceId: saved.id,
33130
+ stableId: saved.stableId
33131
+ } });
33132
+ }
33110
33133
  restored.add(saved.id);
33111
33134
  };
33112
33135
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37139,6 +37162,12 @@ Object.freeze({
37139
37162
  addonId: null,
37140
37163
  access: "create"
37141
37164
  },
37165
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37166
+ capName: "pipeline-orchestrator",
37167
+ capScope: "system",
37168
+ addonId: null,
37169
+ access: "create"
37170
+ },
37142
37171
  "pipelineOrchestrator.setAgentDetectWeight": {
37143
37172
  capName: "pipeline-orchestrator",
37144
37173
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -20726,6 +20726,14 @@ var AgentPipelineSettingsSchema = object({
20726
20726
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20727
20727
  ingest: boolean().optional(),
20728
20728
  /**
20729
+ * This node's decode RAM budget, MB. Wins over the cluster
20730
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20731
+ * own RAM unless the operator moved the cluster value (D365).
20732
+ */
20733
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20734
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20735
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20736
+ /**
20729
20737
  * Operator override for the LAN host a cross-node decoder dials to reach
20730
20738
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20731
20739
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21187,6 +21195,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21187
21195
  }), object({ success: literal(true) }), {
21188
21196
  kind: "mutation",
21189
21197
  auth: "admin"
21198
+ }), method(object({
21199
+ agentNodeId: string(),
21200
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21201
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21202
+ }), object({ success: literal(true) }), {
21203
+ kind: "mutation",
21204
+ auth: "admin"
21190
21205
  }), method(object({
21191
21206
  agentNodeId: string(),
21192
21207
  reachableHost: string().nullable()
@@ -33105,7 +33120,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33105
33120
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33106
33121
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33107
33122
  await this.healSavedConfig(saved, savedDevices);
33108
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33123
+ try {
33124
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33125
+ } catch (err) {
33126
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33127
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33128
+ deviceId: saved.id,
33129
+ stableId: saved.stableId
33130
+ } });
33131
+ }
33109
33132
  restored.add(saved.id);
33110
33133
  };
33111
33134
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37138,6 +37161,12 @@ Object.freeze({
37138
37161
  addonId: null,
37139
37162
  access: "create"
37140
37163
  },
37164
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37165
+ capName: "pipeline-orchestrator",
37166
+ capScope: "system",
37167
+ addonId: null,
37168
+ access: "create"
37169
+ },
37141
37170
  "pipelineOrchestrator.setAgentDetectWeight": {
37142
37171
  capName: "pipeline-orchestrator",
37143
37172
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-gree",
3
- "version": "0.2.65",
3
+ "version": "0.2.67",
4
4
  "description": "Gree air-conditioner device-provider addon for CamStack — wraps the @apocaliss92/nodegree local-UDP client (LAN discovery + AES control), exposing climate-control and fan-control",
5
5
  "keywords": [
6
6
  "camstack",