@camstack/addon-provider-petkit 0.2.66 → 0.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
@@ -21843,6 +21843,14 @@ var AgentPipelineSettingsSchema = object({
21843
21843
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21844
21844
  ingest: boolean().optional(),
21845
21845
  /**
21846
+ * This node's decode RAM budget, MB. Wins over the cluster
21847
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21848
+ * own RAM unless the operator moved the cluster value (D365).
21849
+ */
21850
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21851
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21852
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21853
+ /**
21846
21854
  * Operator override for the LAN host a cross-node decoder dials to reach
21847
21855
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21848
21856
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -22304,6 +22312,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22304
22312
  }), object({ success: literal(true) }), {
22305
22313
  kind: "mutation",
22306
22314
  auth: "admin"
22315
+ }), method(object({
22316
+ agentNodeId: string(),
22317
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
22318
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
22319
+ }), object({ success: literal(true) }), {
22320
+ kind: "mutation",
22321
+ auth: "admin"
22307
22322
  }), method(object({
22308
22323
  agentNodeId: string(),
22309
22324
  reachableHost: string().nullable()
@@ -34230,7 +34245,15 @@ var BaseDeviceProvider = class extends BaseAddon {
34230
34245
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
34231
34246
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
34232
34247
  await this.healSavedConfig(saved, savedDevices);
34233
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34248
+ try {
34249
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34250
+ } catch (err) {
34251
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
34252
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
34253
+ deviceId: saved.id,
34254
+ stableId: saved.stableId
34255
+ } });
34256
+ }
34234
34257
  restored.add(saved.id);
34235
34258
  };
34236
34259
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -38263,6 +38286,12 @@ Object.freeze({
38263
38286
  addonId: null,
38264
38287
  access: "create"
38265
38288
  },
38289
+ "pipelineOrchestrator.setAgentDecodeLimits": {
38290
+ capName: "pipeline-orchestrator",
38291
+ capScope: "system",
38292
+ addonId: null,
38293
+ access: "create"
38294
+ },
38266
38295
  "pipelineOrchestrator.setAgentDetectWeight": {
38267
38296
  capName: "pipeline-orchestrator",
38268
38297
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -21842,6 +21842,14 @@ var AgentPipelineSettingsSchema = object({
21842
21842
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21843
21843
  ingest: boolean().optional(),
21844
21844
  /**
21845
+ * This node's decode RAM budget, MB. Wins over the cluster
21846
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21847
+ * own RAM unless the operator moved the cluster value (D365).
21848
+ */
21849
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
21850
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21851
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
21852
+ /**
21845
21853
  * Operator override for the LAN host a cross-node decoder dials to reach
21846
21854
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21847
21855
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -22303,6 +22311,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22303
22311
  }), object({ success: literal(true) }), {
22304
22312
  kind: "mutation",
22305
22313
  auth: "admin"
22314
+ }), method(object({
22315
+ agentNodeId: string(),
22316
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
22317
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
22318
+ }), object({ success: literal(true) }), {
22319
+ kind: "mutation",
22320
+ auth: "admin"
22306
22321
  }), method(object({
22307
22322
  agentNodeId: string(),
22308
22323
  reachableHost: string().nullable()
@@ -34229,7 +34244,15 @@ var BaseDeviceProvider = class extends BaseAddon {
34229
34244
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
34230
34245
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
34231
34246
  await this.healSavedConfig(saved, savedDevices);
34232
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34247
+ try {
34248
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
34249
+ } catch (err) {
34250
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
34251
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
34252
+ deviceId: saved.id,
34253
+ stableId: saved.stableId
34254
+ } });
34255
+ }
34233
34256
  restored.add(saved.id);
34234
34257
  };
34235
34258
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -38262,6 +38285,12 @@ Object.freeze({
38262
38285
  addonId: null,
38263
38286
  access: "create"
38264
38287
  },
38288
+ "pipelineOrchestrator.setAgentDecodeLimits": {
38289
+ capName: "pipeline-orchestrator",
38290
+ capScope: "system",
38291
+ addonId: null,
38292
+ access: "create"
38293
+ },
38265
38294
  "pipelineOrchestrator.setAgentDetectWeight": {
38266
38295
  capName: "pipeline-orchestrator",
38267
38296
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-petkit",
3
- "version": "0.2.66",
3
+ "version": "0.2.68",
4
4
  "description": "PetKit smart-feeder device-provider addon for CamStack — wraps the @apocaliss92/nodepetkit PetKit cloud client",
5
5
  "keywords": [
6
6
  "camstack",