@camstack/addon-tailscale 1.1.15 → 1.1.17

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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-DipnCq6A.js");
27
+ const require_dist = require("../dist-C7REjypo.js");
28
28
  let node_child_process = require("node:child_process");
29
29
  let node_util = require("node:util");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-TacENOlR.mjs";
1
+ import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-BCTaceZ_.mjs";
2
2
  import { execFile, spawn } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as fs from "node:fs";
@@ -14897,7 +14897,17 @@ var AgentAddonConfigSchema = object({
14897
14897
  });
14898
14898
  var AgentPipelineSettingsSchema = object({
14899
14899
  addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
14900
- maxCameras: number().int().nonnegative().nullable().default(null)
14900
+ maxCameras: number().int().nonnegative().nullable().default(null),
14901
+ /** Per-node detection weight (relative share for the quota balancer). */
14902
+ detectWeight: number().positive().optional(),
14903
+ /** Node is eligible to run the detection pipeline (decode + inference). */
14904
+ detect: boolean().optional(),
14905
+ /** Node is eligible to host decoder sessions. */
14906
+ decode: boolean().optional(),
14907
+ /** Node is eligible to run audio-analyzer sessions. */
14908
+ audio: boolean().optional(),
14909
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
14910
+ ingest: boolean().optional()
14901
14911
  });
14902
14912
  var CameraPipelineForAgentSchema = object({
14903
14913
  steps: array(PipelineStepInputSchema).readonly(),
@@ -14972,7 +14982,10 @@ var AgentLoadSummarySchema = object({
14972
14982
  online: boolean(),
14973
14983
  load: RunnerLocalLoadSchema,
14974
14984
  /** Computed score used by the L2 capacity balancer (lower = less loaded). */
14975
- score: number()
14985
+ score: number(),
14986
+ /** This node's decode hwaccel backend (per-node `probedBestHwaccel`), or null
14987
+ * when not yet probed — for the cluster Pipeline table UI (P0.2). */
14988
+ decodeHwaccel: string().nullable()
14976
14989
  });
14977
14990
  /**
14978
14991
  * Aggregate metrics across the whole detection cluster. Replaces the legacy
@@ -15200,6 +15213,21 @@ method(object({
15200
15213
  }), object({ success: literal(true) }), {
15201
15214
  kind: "mutation",
15202
15215
  auth: "admin"
15216
+ }), method(object({
15217
+ agentNodeId: string(),
15218
+ detectWeight: number().positive().nullable()
15219
+ }), object({ success: literal(true) }), {
15220
+ kind: "mutation",
15221
+ auth: "admin"
15222
+ }), method(object({
15223
+ agentNodeId: string(),
15224
+ detect: boolean().nullable().optional(),
15225
+ decode: boolean().nullable().optional(),
15226
+ audio: boolean().nullable().optional(),
15227
+ ingest: boolean().nullable().optional()
15228
+ }), object({ success: literal(true) }), {
15229
+ kind: "mutation",
15230
+ auth: "admin"
15203
15231
  }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
15204
15232
  deviceId: number(),
15205
15233
  addonId: string(),
@@ -17569,7 +17597,7 @@ var HardwareEncoderIdSchema = _enum([
17569
17597
  "libx264",
17570
17598
  "libx265"
17571
17599
  ]);
17572
- var HardwareEncodersSchema = object({
17600
+ object({
17573
17601
  encoders: array(object({
17574
17602
  encoder: HardwareEncoderIdSchema,
17575
17603
  codec: _enum(["H264", "H265"]),
@@ -17588,15 +17616,7 @@ var HardwareEncodersSchema = object({
17588
17616
  defaultH265: HardwareEncoderIdSchema,
17589
17617
  probedAt: number()
17590
17618
  });
17591
- /**
17592
- * Decode-side companion to {@link HardwareEncodersSchema}: the `-hwaccel`
17593
- * methods the configured ffmpeg binary actually supports (parsed from
17594
- * `ffmpeg -hwaccels`). Used to gate decode-hwaccel attempts so the transcode
17595
- * egress never spends a spawn on a backend this build cannot offer. Per-stream
17596
- * decode fragility (e.g. VideoToolbox HEVC) is still handled by the egress's
17597
- * software fallback — this only filters out wholly-unsupported backends.
17598
- */
17599
- var HardwareDecodeAccelsSchema = object({
17619
+ object({
17600
17620
  methods: array(string()).readonly(),
17601
17621
  probedAt: number()
17602
17622
  });
@@ -17659,13 +17679,7 @@ var ResolvedInferenceConfigSchema = object({
17659
17679
  format: ModelFormatSchema,
17660
17680
  reason: string()
17661
17681
  });
17662
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
17663
- kind: "mutation",
17664
- auth: "admin"
17665
- }), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
17666
- kind: "mutation",
17667
- auth: "admin"
17668
- });
17682
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
17669
17683
  var PtzPresetSchema = object({
17670
17684
  id: string(),
17671
17685
  name: string()
@@ -21134,6 +21148,18 @@ Object.freeze({
21134
21148
  addonId: null,
21135
21149
  access: "create"
21136
21150
  },
21151
+ "pipelineOrchestrator.setAgentCapabilities": {
21152
+ capName: "pipeline-orchestrator",
21153
+ capScope: "system",
21154
+ addonId: null,
21155
+ access: "create"
21156
+ },
21157
+ "pipelineOrchestrator.setAgentDetectWeight": {
21158
+ capName: "pipeline-orchestrator",
21159
+ capScope: "system",
21160
+ addonId: null,
21161
+ access: "create"
21162
+ },
21137
21163
  "pipelineOrchestrator.setAgentMaxCameras": {
21138
21164
  capName: "pipeline-orchestrator",
21139
21165
  capScope: "system",
@@ -21290,30 +21316,6 @@ Object.freeze({
21290
21316
  addonId: null,
21291
21317
  access: "view"
21292
21318
  },
21293
- "platformProbe.getHardwareDecodeAccels": {
21294
- capName: "platform-probe",
21295
- capScope: "system",
21296
- addonId: null,
21297
- access: "view"
21298
- },
21299
- "platformProbe.getHardwareEncoders": {
21300
- capName: "platform-probe",
21301
- capScope: "system",
21302
- addonId: null,
21303
- access: "view"
21304
- },
21305
- "platformProbe.refreshHardwareDecodeAccels": {
21306
- capName: "platform-probe",
21307
- capScope: "system",
21308
- addonId: null,
21309
- access: "create"
21310
- },
21311
- "platformProbe.refreshHardwareEncoders": {
21312
- capName: "platform-probe",
21313
- capScope: "system",
21314
- addonId: null,
21315
- access: "create"
21316
- },
21317
21319
  "platformProbe.resolveHwAccel": {
21318
21320
  capName: "platform-probe",
21319
21321
  capScope: "system",
@@ -14897,7 +14897,17 @@ var AgentAddonConfigSchema = object({
14897
14897
  });
14898
14898
  var AgentPipelineSettingsSchema = object({
14899
14899
  addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
14900
- maxCameras: number().int().nonnegative().nullable().default(null)
14900
+ maxCameras: number().int().nonnegative().nullable().default(null),
14901
+ /** Per-node detection weight (relative share for the quota balancer). */
14902
+ detectWeight: number().positive().optional(),
14903
+ /** Node is eligible to run the detection pipeline (decode + inference). */
14904
+ detect: boolean().optional(),
14905
+ /** Node is eligible to host decoder sessions. */
14906
+ decode: boolean().optional(),
14907
+ /** Node is eligible to run audio-analyzer sessions. */
14908
+ audio: boolean().optional(),
14909
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
14910
+ ingest: boolean().optional()
14901
14911
  });
14902
14912
  var CameraPipelineForAgentSchema = object({
14903
14913
  steps: array(PipelineStepInputSchema).readonly(),
@@ -14972,7 +14982,10 @@ var AgentLoadSummarySchema = object({
14972
14982
  online: boolean(),
14973
14983
  load: RunnerLocalLoadSchema,
14974
14984
  /** Computed score used by the L2 capacity balancer (lower = less loaded). */
14975
- score: number()
14985
+ score: number(),
14986
+ /** This node's decode hwaccel backend (per-node `probedBestHwaccel`), or null
14987
+ * when not yet probed — for the cluster Pipeline table UI (P0.2). */
14988
+ decodeHwaccel: string().nullable()
14976
14989
  });
14977
14990
  /**
14978
14991
  * Aggregate metrics across the whole detection cluster. Replaces the legacy
@@ -15200,6 +15213,21 @@ method(object({
15200
15213
  }), object({ success: literal(true) }), {
15201
15214
  kind: "mutation",
15202
15215
  auth: "admin"
15216
+ }), method(object({
15217
+ agentNodeId: string(),
15218
+ detectWeight: number().positive().nullable()
15219
+ }), object({ success: literal(true) }), {
15220
+ kind: "mutation",
15221
+ auth: "admin"
15222
+ }), method(object({
15223
+ agentNodeId: string(),
15224
+ detect: boolean().nullable().optional(),
15225
+ decode: boolean().nullable().optional(),
15226
+ audio: boolean().nullable().optional(),
15227
+ ingest: boolean().nullable().optional()
15228
+ }), object({ success: literal(true) }), {
15229
+ kind: "mutation",
15230
+ auth: "admin"
15203
15231
  }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
15204
15232
  deviceId: number(),
15205
15233
  addonId: string(),
@@ -17569,7 +17597,7 @@ var HardwareEncoderIdSchema = _enum([
17569
17597
  "libx264",
17570
17598
  "libx265"
17571
17599
  ]);
17572
- var HardwareEncodersSchema = object({
17600
+ object({
17573
17601
  encoders: array(object({
17574
17602
  encoder: HardwareEncoderIdSchema,
17575
17603
  codec: _enum(["H264", "H265"]),
@@ -17588,15 +17616,7 @@ var HardwareEncodersSchema = object({
17588
17616
  defaultH265: HardwareEncoderIdSchema,
17589
17617
  probedAt: number()
17590
17618
  });
17591
- /**
17592
- * Decode-side companion to {@link HardwareEncodersSchema}: the `-hwaccel`
17593
- * methods the configured ffmpeg binary actually supports (parsed from
17594
- * `ffmpeg -hwaccels`). Used to gate decode-hwaccel attempts so the transcode
17595
- * egress never spends a spawn on a backend this build cannot offer. Per-stream
17596
- * decode fragility (e.g. VideoToolbox HEVC) is still handled by the egress's
17597
- * software fallback — this only filters out wholly-unsupported backends.
17598
- */
17599
- var HardwareDecodeAccelsSchema = object({
17619
+ object({
17600
17620
  methods: array(string()).readonly(),
17601
17621
  probedAt: number()
17602
17622
  });
@@ -17659,13 +17679,7 @@ var ResolvedInferenceConfigSchema = object({
17659
17679
  format: ModelFormatSchema,
17660
17680
  reason: string()
17661
17681
  });
17662
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
17663
- kind: "mutation",
17664
- auth: "admin"
17665
- }), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
17666
- kind: "mutation",
17667
- auth: "admin"
17668
- });
17682
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
17669
17683
  var PtzPresetSchema = object({
17670
17684
  id: string(),
17671
17685
  name: string()
@@ -21134,6 +21148,18 @@ Object.freeze({
21134
21148
  addonId: null,
21135
21149
  access: "create"
21136
21150
  },
21151
+ "pipelineOrchestrator.setAgentCapabilities": {
21152
+ capName: "pipeline-orchestrator",
21153
+ capScope: "system",
21154
+ addonId: null,
21155
+ access: "create"
21156
+ },
21157
+ "pipelineOrchestrator.setAgentDetectWeight": {
21158
+ capName: "pipeline-orchestrator",
21159
+ capScope: "system",
21160
+ addonId: null,
21161
+ access: "create"
21162
+ },
21137
21163
  "pipelineOrchestrator.setAgentMaxCameras": {
21138
21164
  capName: "pipeline-orchestrator",
21139
21165
  capScope: "system",
@@ -21290,30 +21316,6 @@ Object.freeze({
21290
21316
  addonId: null,
21291
21317
  access: "view"
21292
21318
  },
21293
- "platformProbe.getHardwareDecodeAccels": {
21294
- capName: "platform-probe",
21295
- capScope: "system",
21296
- addonId: null,
21297
- access: "view"
21298
- },
21299
- "platformProbe.getHardwareEncoders": {
21300
- capName: "platform-probe",
21301
- capScope: "system",
21302
- addonId: null,
21303
- access: "view"
21304
- },
21305
- "platformProbe.refreshHardwareDecodeAccels": {
21306
- capName: "platform-probe",
21307
- capScope: "system",
21308
- addonId: null,
21309
- access: "create"
21310
- },
21311
- "platformProbe.refreshHardwareEncoders": {
21312
- capName: "platform-probe",
21313
- capScope: "system",
21314
- addonId: null,
21315
- access: "create"
21316
- },
21317
21319
  "platformProbe.resolveHwAccel": {
21318
21320
  capName: "platform-probe",
21319
21321
  capScope: "system",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-DipnCq6A.js");
5
+ const require_dist = require("../dist-C7REjypo.js");
6
6
  let node_child_process = require("node:child_process");
7
7
  let node_util = require("node:util");
8
8
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-TacENOlR.mjs";
1
+ import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-BCTaceZ_.mjs";
2
2
  import { execFile } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import { randomUUID } from "node:crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.1.15",
3
+ "version": "1.1.17",
4
4
  "description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",