camstack 1.1.17 → 1.1.18

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.
@@ -24902,7 +24902,17 @@ var AgentAddonConfigSchema = external_exports.object({
24902
24902
  });
24903
24903
  var AgentPipelineSettingsSchema = external_exports.object({
24904
24904
  addonDefaults: external_exports.record(external_exports.string(), AgentAddonConfigSchema).readonly(),
24905
- maxCameras: external_exports.number().int().nonnegative().nullable().default(null)
24905
+ maxCameras: external_exports.number().int().nonnegative().nullable().default(null),
24906
+ /** Per-node detection weight (relative share for the quota balancer). */
24907
+ detectWeight: external_exports.number().positive().optional(),
24908
+ /** Node is eligible to run the detection pipeline (decode + inference). */
24909
+ detect: external_exports.boolean().optional(),
24910
+ /** Node is eligible to host decoder sessions. */
24911
+ decode: external_exports.boolean().optional(),
24912
+ /** Node is eligible to run audio-analyzer sessions. */
24913
+ audio: external_exports.boolean().optional(),
24914
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
24915
+ ingest: external_exports.boolean().optional()
24906
24916
  });
24907
24917
  var CameraPipelineForAgentSchema = external_exports.object({
24908
24918
  steps: external_exports.array(PipelineStepInputSchema).readonly(),
@@ -25275,6 +25285,38 @@ var pipelineOrchestratorCapability = {
25275
25285
  kind: "mutation",
25276
25286
  auth: "admin"
25277
25287
  }),
25288
+ /**
25289
+ * Set a node's detection WEIGHT (relative share for the quota balancer).
25290
+ * `null` clears it (back to the implicit weight 1). Unpinned cameras
25291
+ * distribute proportionally to weight; `maxCameras` still clamps on top.
25292
+ */
25293
+ setAgentDetectWeight: method(external_exports.object({
25294
+ agentNodeId: external_exports.string(),
25295
+ detectWeight: external_exports.number().positive().nullable()
25296
+ }), external_exports.object({ success: external_exports.literal(true) }), {
25297
+ kind: "mutation",
25298
+ auth: "admin"
25299
+ }),
25300
+ /**
25301
+ * Set one node's placement CAPABILITIES — the per-node record that
25302
+ * replaced the four flat orchestrator lists (`enabledNodes`,
25303
+ * `enabledDecoderNodes`, `enabledAudioNodes`, `remoteSourcingNodes`).
25304
+ * Each flag is optional in the patch: omit a flag to leave it unchanged,
25305
+ * pass `null` to reset it to the node default (`hub` → capable, every
25306
+ * other node → not). Detection/decode/audio eligibility is derived from
25307
+ * these flags across the cluster; changing them re-derives the enabled
25308
+ * sets and reconciles dispatch immediately.
25309
+ */
25310
+ setAgentCapabilities: method(external_exports.object({
25311
+ agentNodeId: external_exports.string(),
25312
+ detect: external_exports.boolean().nullable().optional(),
25313
+ decode: external_exports.boolean().nullable().optional(),
25314
+ audio: external_exports.boolean().nullable().optional(),
25315
+ ingest: external_exports.boolean().nullable().optional()
25316
+ }), external_exports.object({ success: external_exports.literal(true) }), {
25317
+ kind: "mutation",
25318
+ auth: "admin"
25319
+ }),
25278
25320
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
25279
25321
  getCameraSettings: method(external_exports.object({ deviceId: external_exports.number() }), CameraPipelineSettingsSchema.nullable()),
25280
25322
  /** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
@@ -31808,6 +31850,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
31808
31850
  addonId: null,
31809
31851
  access: "create"
31810
31852
  },
31853
+ "pipelineOrchestrator.setAgentCapabilities": {
31854
+ capName: "pipeline-orchestrator",
31855
+ capScope: "system",
31856
+ addonId: null,
31857
+ access: "create"
31858
+ },
31859
+ "pipelineOrchestrator.setAgentDetectWeight": {
31860
+ capName: "pipeline-orchestrator",
31861
+ capScope: "system",
31862
+ addonId: null,
31863
+ access: "create"
31864
+ },
31811
31865
  "pipelineOrchestrator.setAgentMaxCameras": {
31812
31866
  capName: "pipeline-orchestrator",
31813
31867
  capScope: "system",
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-TU5JV774.js";
4
+ } from "./chunk-2EOZGJYA.js";
5
5
  import "./chunk-K3NQKI34.js";
6
6
 
7
7
  // src/cli.ts
@@ -608,7 +608,7 @@ function isUnknown(_value) {
608
608
  return true;
609
609
  }
610
610
  async function resolveServerInteractive(presetNamespace) {
611
- const { discoverNodes, resolveHubFromDiscovered } = await import("./discover-MUJ2PB6I.js");
611
+ const { discoverNodes, resolveHubFromDiscovered } = await import("./discover-HWCPQL6X.js");
612
612
  if (presetNamespace) {
613
613
  const spinner4 = clack.spinner();
614
614
  spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
@@ -3,7 +3,7 @@ import {
3
3
  discoverNodes,
4
4
  resolveHubFromDiscovered,
5
5
  runDiscover
6
- } from "./chunk-TU5JV774.js";
6
+ } from "./chunk-2EOZGJYA.js";
7
7
  import "./chunk-K3NQKI34.js";
8
8
  export {
9
9
  discoverNodes,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.1.17",
3
+ "version": "1.1.18",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",