@camstack/addon-provider-unifi 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 +30 -1
- package/dist/addon.mjs +30 -1
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -20724,6 +20724,14 @@ var AgentPipelineSettingsSchema = object({
|
|
|
20724
20724
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
20725
20725
|
ingest: boolean().optional(),
|
|
20726
20726
|
/**
|
|
20727
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
20728
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
20729
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
20730
|
+
*/
|
|
20731
|
+
decodeBudgetMb: number().int().min(1024).max(65536).optional(),
|
|
20732
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
20733
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
|
|
20734
|
+
/**
|
|
20727
20735
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
20728
20736
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
20729
20737
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -21185,6 +21193,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
|
21185
21193
|
}), object({ success: literal(true) }), {
|
|
21186
21194
|
kind: "mutation",
|
|
21187
21195
|
auth: "admin"
|
|
21196
|
+
}), method(object({
|
|
21197
|
+
agentNodeId: string(),
|
|
21198
|
+
decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
|
|
21199
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
|
|
21200
|
+
}), object({ success: literal(true) }), {
|
|
21201
|
+
kind: "mutation",
|
|
21202
|
+
auth: "admin"
|
|
21188
21203
|
}), method(object({
|
|
21189
21204
|
agentNodeId: string(),
|
|
21190
21205
|
reachableHost: string().nullable()
|
|
@@ -33120,7 +33135,15 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
33120
33135
|
if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
|
|
33121
33136
|
if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
|
|
33122
33137
|
await this.healSavedConfig(saved, savedDevices);
|
|
33123
|
-
|
|
33138
|
+
try {
|
|
33139
|
+
await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
|
|
33140
|
+
} catch (err) {
|
|
33141
|
+
if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
|
|
33142
|
+
this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
|
|
33143
|
+
deviceId: saved.id,
|
|
33144
|
+
stableId: saved.stableId
|
|
33145
|
+
} });
|
|
33146
|
+
}
|
|
33124
33147
|
restored.add(saved.id);
|
|
33125
33148
|
};
|
|
33126
33149
|
const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
|
|
@@ -37153,6 +37176,12 @@ Object.freeze({
|
|
|
37153
37176
|
addonId: null,
|
|
37154
37177
|
access: "create"
|
|
37155
37178
|
},
|
|
37179
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
37180
|
+
capName: "pipeline-orchestrator",
|
|
37181
|
+
capScope: "system",
|
|
37182
|
+
addonId: null,
|
|
37183
|
+
access: "create"
|
|
37184
|
+
},
|
|
37156
37185
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
37157
37186
|
capName: "pipeline-orchestrator",
|
|
37158
37187
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -20723,6 +20723,14 @@ var AgentPipelineSettingsSchema = object({
|
|
|
20723
20723
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
20724
20724
|
ingest: boolean().optional(),
|
|
20725
20725
|
/**
|
|
20726
|
+
* This node's decode RAM budget, MB. Wins over the cluster
|
|
20727
|
+
* `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
|
|
20728
|
+
* own RAM unless the operator moved the cluster value (D365).
|
|
20729
|
+
*/
|
|
20730
|
+
decodeBudgetMb: number().int().min(1024).max(65536).optional(),
|
|
20731
|
+
/** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
|
|
20732
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
|
|
20733
|
+
/**
|
|
20726
20734
|
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
20727
20735
|
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
20728
20736
|
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
@@ -21184,6 +21192,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
|
21184
21192
|
}), object({ success: literal(true) }), {
|
|
21185
21193
|
kind: "mutation",
|
|
21186
21194
|
auth: "admin"
|
|
21195
|
+
}), method(object({
|
|
21196
|
+
agentNodeId: string(),
|
|
21197
|
+
decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
|
|
21198
|
+
maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
|
|
21199
|
+
}), object({ success: literal(true) }), {
|
|
21200
|
+
kind: "mutation",
|
|
21201
|
+
auth: "admin"
|
|
21187
21202
|
}), method(object({
|
|
21188
21203
|
agentNodeId: string(),
|
|
21189
21204
|
reachableHost: string().nullable()
|
|
@@ -33119,7 +33134,15 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
33119
33134
|
if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
|
|
33120
33135
|
if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
|
|
33121
33136
|
await this.healSavedConfig(saved, savedDevices);
|
|
33122
|
-
|
|
33137
|
+
try {
|
|
33138
|
+
await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
|
|
33139
|
+
} catch (err) {
|
|
33140
|
+
if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
|
|
33141
|
+
this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
|
|
33142
|
+
deviceId: saved.id,
|
|
33143
|
+
stableId: saved.stableId
|
|
33144
|
+
} });
|
|
33145
|
+
}
|
|
33123
33146
|
restored.add(saved.id);
|
|
33124
33147
|
};
|
|
33125
33148
|
const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
|
|
@@ -37152,6 +37175,12 @@ Object.freeze({
|
|
|
37152
37175
|
addonId: null,
|
|
37153
37176
|
access: "create"
|
|
37154
37177
|
},
|
|
37178
|
+
"pipelineOrchestrator.setAgentDecodeLimits": {
|
|
37179
|
+
capName: "pipeline-orchestrator",
|
|
37180
|
+
capScope: "system",
|
|
37181
|
+
addonId: null,
|
|
37182
|
+
access: "create"
|
|
37183
|
+
},
|
|
37155
37184
|
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
37156
37185
|
capName: "pipeline-orchestrator",
|
|
37157
37186
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-unifi",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.68",
|
|
4
4
|
"description": "UniFi Network controller device-provider addon for CamStack — local-controller infra switches/APs (as containers) + network-client presence. NO cameras/Protect.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|