@camstack/addon-provider-unraid 0.1.1 → 0.1.3

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
@@ -17820,7 +17820,17 @@ var AgentAddonConfigSchema = object({
17820
17820
  });
17821
17821
  var AgentPipelineSettingsSchema = object({
17822
17822
  addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
17823
- maxCameras: number().int().nonnegative().nullable().default(null)
17823
+ maxCameras: number().int().nonnegative().nullable().default(null),
17824
+ /** Per-node detection weight (relative share for the quota balancer). */
17825
+ detectWeight: number().positive().optional(),
17826
+ /** Node is eligible to run the detection pipeline (decode + inference). */
17827
+ detect: boolean().optional(),
17828
+ /** Node is eligible to host decoder sessions. */
17829
+ decode: boolean().optional(),
17830
+ /** Node is eligible to run audio-analyzer sessions. */
17831
+ audio: boolean().optional(),
17832
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
17833
+ ingest: boolean().optional()
17824
17834
  });
17825
17835
  var CameraPipelineForAgentSchema = object({
17826
17836
  steps: array(PipelineStepInputSchema).readonly(),
@@ -17895,7 +17905,10 @@ var AgentLoadSummarySchema = object({
17895
17905
  online: boolean(),
17896
17906
  load: RunnerLocalLoadSchema,
17897
17907
  /** Computed score used by the L2 capacity balancer (lower = less loaded). */
17898
- score: number()
17908
+ score: number(),
17909
+ /** This node's decode hwaccel backend (per-node `probedBestHwaccel`), or null
17910
+ * when not yet probed — for the cluster Pipeline table UI (P0.2). */
17911
+ decodeHwaccel: string().nullable()
17899
17912
  });
17900
17913
  /**
17901
17914
  * Aggregate metrics across the whole detection cluster. Replaces the legacy
@@ -18123,6 +18136,21 @@ method(object({
18123
18136
  }), object({ success: literal(true) }), {
18124
18137
  kind: "mutation",
18125
18138
  auth: "admin"
18139
+ }), method(object({
18140
+ agentNodeId: string(),
18141
+ detectWeight: number().positive().nullable()
18142
+ }), object({ success: literal(true) }), {
18143
+ kind: "mutation",
18144
+ auth: "admin"
18145
+ }), method(object({
18146
+ agentNodeId: string(),
18147
+ detect: boolean().nullable().optional(),
18148
+ decode: boolean().nullable().optional(),
18149
+ audio: boolean().nullable().optional(),
18150
+ ingest: boolean().nullable().optional()
18151
+ }), object({ success: literal(true) }), {
18152
+ kind: "mutation",
18153
+ auth: "admin"
18126
18154
  }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
18127
18155
  deviceId: number(),
18128
18156
  addonId: string(),
@@ -20448,7 +20476,7 @@ var HardwareEncoderIdSchema = _enum([
20448
20476
  "libx264",
20449
20477
  "libx265"
20450
20478
  ]);
20451
- var HardwareEncodersSchema = object({
20479
+ object({
20452
20480
  encoders: array(object({
20453
20481
  encoder: HardwareEncoderIdSchema,
20454
20482
  codec: _enum(["H264", "H265"]),
@@ -20467,15 +20495,7 @@ var HardwareEncodersSchema = object({
20467
20495
  defaultH265: HardwareEncoderIdSchema,
20468
20496
  probedAt: number()
20469
20497
  });
20470
- /**
20471
- * Decode-side companion to {@link HardwareEncodersSchema}: the `-hwaccel`
20472
- * methods the configured ffmpeg binary actually supports (parsed from
20473
- * `ffmpeg -hwaccels`). Used to gate decode-hwaccel attempts so the transcode
20474
- * egress never spends a spawn on a backend this build cannot offer. Per-stream
20475
- * decode fragility (e.g. VideoToolbox HEVC) is still handled by the egress's
20476
- * software fallback — this only filters out wholly-unsupported backends.
20477
- */
20478
- var HardwareDecodeAccelsSchema = object({
20498
+ object({
20479
20499
  methods: array(string()).readonly(),
20480
20500
  probedAt: number()
20481
20501
  });
@@ -20538,13 +20558,7 @@ var ResolvedInferenceConfigSchema = object({
20538
20558
  format: ModelFormatSchema,
20539
20559
  reason: string()
20540
20560
  });
20541
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
20542
- kind: "mutation",
20543
- auth: "admin"
20544
- }), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
20545
- kind: "mutation",
20546
- auth: "admin"
20547
- });
20561
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
20548
20562
  var PtzPresetSchema = object({
20549
20563
  id: string(),
20550
20564
  name: string()
@@ -24013,6 +24027,18 @@ Object.freeze({
24013
24027
  addonId: null,
24014
24028
  access: "create"
24015
24029
  },
24030
+ "pipelineOrchestrator.setAgentCapabilities": {
24031
+ capName: "pipeline-orchestrator",
24032
+ capScope: "system",
24033
+ addonId: null,
24034
+ access: "create"
24035
+ },
24036
+ "pipelineOrchestrator.setAgentDetectWeight": {
24037
+ capName: "pipeline-orchestrator",
24038
+ capScope: "system",
24039
+ addonId: null,
24040
+ access: "create"
24041
+ },
24016
24042
  "pipelineOrchestrator.setAgentMaxCameras": {
24017
24043
  capName: "pipeline-orchestrator",
24018
24044
  capScope: "system",
@@ -24169,30 +24195,6 @@ Object.freeze({
24169
24195
  addonId: null,
24170
24196
  access: "view"
24171
24197
  },
24172
- "platformProbe.getHardwareDecodeAccels": {
24173
- capName: "platform-probe",
24174
- capScope: "system",
24175
- addonId: null,
24176
- access: "view"
24177
- },
24178
- "platformProbe.getHardwareEncoders": {
24179
- capName: "platform-probe",
24180
- capScope: "system",
24181
- addonId: null,
24182
- access: "view"
24183
- },
24184
- "platformProbe.refreshHardwareDecodeAccels": {
24185
- capName: "platform-probe",
24186
- capScope: "system",
24187
- addonId: null,
24188
- access: "create"
24189
- },
24190
- "platformProbe.refreshHardwareEncoders": {
24191
- capName: "platform-probe",
24192
- capScope: "system",
24193
- addonId: null,
24194
- access: "create"
24195
- },
24196
24198
  "platformProbe.resolveHwAccel": {
24197
24199
  capName: "platform-probe",
24198
24200
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -17819,7 +17819,17 @@ var AgentAddonConfigSchema = object({
17819
17819
  });
17820
17820
  var AgentPipelineSettingsSchema = object({
17821
17821
  addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
17822
- maxCameras: number().int().nonnegative().nullable().default(null)
17822
+ maxCameras: number().int().nonnegative().nullable().default(null),
17823
+ /** Per-node detection weight (relative share for the quota balancer). */
17824
+ detectWeight: number().positive().optional(),
17825
+ /** Node is eligible to run the detection pipeline (decode + inference). */
17826
+ detect: boolean().optional(),
17827
+ /** Node is eligible to host decoder sessions. */
17828
+ decode: boolean().optional(),
17829
+ /** Node is eligible to run audio-analyzer sessions. */
17830
+ audio: boolean().optional(),
17831
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
17832
+ ingest: boolean().optional()
17823
17833
  });
17824
17834
  var CameraPipelineForAgentSchema = object({
17825
17835
  steps: array(PipelineStepInputSchema).readonly(),
@@ -17894,7 +17904,10 @@ var AgentLoadSummarySchema = object({
17894
17904
  online: boolean(),
17895
17905
  load: RunnerLocalLoadSchema,
17896
17906
  /** Computed score used by the L2 capacity balancer (lower = less loaded). */
17897
- score: number()
17907
+ score: number(),
17908
+ /** This node's decode hwaccel backend (per-node `probedBestHwaccel`), or null
17909
+ * when not yet probed — for the cluster Pipeline table UI (P0.2). */
17910
+ decodeHwaccel: string().nullable()
17898
17911
  });
17899
17912
  /**
17900
17913
  * Aggregate metrics across the whole detection cluster. Replaces the legacy
@@ -18122,6 +18135,21 @@ method(object({
18122
18135
  }), object({ success: literal(true) }), {
18123
18136
  kind: "mutation",
18124
18137
  auth: "admin"
18138
+ }), method(object({
18139
+ agentNodeId: string(),
18140
+ detectWeight: number().positive().nullable()
18141
+ }), object({ success: literal(true) }), {
18142
+ kind: "mutation",
18143
+ auth: "admin"
18144
+ }), method(object({
18145
+ agentNodeId: string(),
18146
+ detect: boolean().nullable().optional(),
18147
+ decode: boolean().nullable().optional(),
18148
+ audio: boolean().nullable().optional(),
18149
+ ingest: boolean().nullable().optional()
18150
+ }), object({ success: literal(true) }), {
18151
+ kind: "mutation",
18152
+ auth: "admin"
18125
18153
  }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
18126
18154
  deviceId: number(),
18127
18155
  addonId: string(),
@@ -20447,7 +20475,7 @@ var HardwareEncoderIdSchema = _enum([
20447
20475
  "libx264",
20448
20476
  "libx265"
20449
20477
  ]);
20450
- var HardwareEncodersSchema = object({
20478
+ object({
20451
20479
  encoders: array(object({
20452
20480
  encoder: HardwareEncoderIdSchema,
20453
20481
  codec: _enum(["H264", "H265"]),
@@ -20466,15 +20494,7 @@ var HardwareEncodersSchema = object({
20466
20494
  defaultH265: HardwareEncoderIdSchema,
20467
20495
  probedAt: number()
20468
20496
  });
20469
- /**
20470
- * Decode-side companion to {@link HardwareEncodersSchema}: the `-hwaccel`
20471
- * methods the configured ffmpeg binary actually supports (parsed from
20472
- * `ffmpeg -hwaccels`). Used to gate decode-hwaccel attempts so the transcode
20473
- * egress never spends a spawn on a backend this build cannot offer. Per-stream
20474
- * decode fragility (e.g. VideoToolbox HEVC) is still handled by the egress's
20475
- * software fallback — this only filters out wholly-unsupported backends.
20476
- */
20477
- var HardwareDecodeAccelsSchema = object({
20497
+ object({
20478
20498
  methods: array(string()).readonly(),
20479
20499
  probedAt: number()
20480
20500
  });
@@ -20537,13 +20557,7 @@ var ResolvedInferenceConfigSchema = object({
20537
20557
  format: ModelFormatSchema,
20538
20558
  reason: string()
20539
20559
  });
20540
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
20541
- kind: "mutation",
20542
- auth: "admin"
20543
- }), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
20544
- kind: "mutation",
20545
- auth: "admin"
20546
- });
20560
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
20547
20561
  var PtzPresetSchema = object({
20548
20562
  id: string(),
20549
20563
  name: string()
@@ -24012,6 +24026,18 @@ Object.freeze({
24012
24026
  addonId: null,
24013
24027
  access: "create"
24014
24028
  },
24029
+ "pipelineOrchestrator.setAgentCapabilities": {
24030
+ capName: "pipeline-orchestrator",
24031
+ capScope: "system",
24032
+ addonId: null,
24033
+ access: "create"
24034
+ },
24035
+ "pipelineOrchestrator.setAgentDetectWeight": {
24036
+ capName: "pipeline-orchestrator",
24037
+ capScope: "system",
24038
+ addonId: null,
24039
+ access: "create"
24040
+ },
24015
24041
  "pipelineOrchestrator.setAgentMaxCameras": {
24016
24042
  capName: "pipeline-orchestrator",
24017
24043
  capScope: "system",
@@ -24168,30 +24194,6 @@ Object.freeze({
24168
24194
  addonId: null,
24169
24195
  access: "view"
24170
24196
  },
24171
- "platformProbe.getHardwareDecodeAccels": {
24172
- capName: "platform-probe",
24173
- capScope: "system",
24174
- addonId: null,
24175
- access: "view"
24176
- },
24177
- "platformProbe.getHardwareEncoders": {
24178
- capName: "platform-probe",
24179
- capScope: "system",
24180
- addonId: null,
24181
- access: "view"
24182
- },
24183
- "platformProbe.refreshHardwareDecodeAccels": {
24184
- capName: "platform-probe",
24185
- capScope: "system",
24186
- addonId: null,
24187
- access: "create"
24188
- },
24189
- "platformProbe.refreshHardwareEncoders": {
24190
- capName: "platform-probe",
24191
- capScope: "system",
24192
- addonId: null,
24193
- access: "create"
24194
- },
24195
24197
  "platformProbe.resolveHwAccel": {
24196
24198
  capName: "platform-probe",
24197
24199
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-unraid",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Unraid device-provider addon for CamStack — one Container per Unraid instance fanning out array, disk, docker and notification entities",
5
5
  "keywords": [
6
6
  "camstack",