@camstack/addon-remote-storage 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.
package/dist/s3.addon.js CHANGED
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-CCwZkQ8w.js");
5
+ const require_shared = require("./shared-CWESrfMQ.js");
6
6
  let node_stream = require("node:stream");
7
7
  let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
8
8
  let _aws_sdk_lib_storage = require("@aws-sdk/lib-storage");
package/dist/s3.addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-Gufyq4pP.mjs";
1
+ import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-D9Aw9Suk.mjs";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { DeleteObjectCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
4
4
  import { Upload } from "@aws-sdk/lib-storage";
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-CCwZkQ8w.js");
5
+ const require_shared = require("./shared-CWESrfMQ.js");
6
6
  let ssh2 = require("ssh2");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_shared.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-Gufyq4pP.mjs";
1
+ import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-D9Aw9Suk.mjs";
2
2
  import { Client } from "ssh2";
3
3
  import * as path from "node:path";
4
4
  //#region src/providers/sftp/sftp-config-schema.ts
@@ -14905,7 +14905,17 @@ var AgentAddonConfigSchema = object({
14905
14905
  });
14906
14906
  var AgentPipelineSettingsSchema = object({
14907
14907
  addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
14908
- maxCameras: number().int().nonnegative().nullable().default(null)
14908
+ maxCameras: number().int().nonnegative().nullable().default(null),
14909
+ /** Per-node detection weight (relative share for the quota balancer). */
14910
+ detectWeight: number().positive().optional(),
14911
+ /** Node is eligible to run the detection pipeline (decode + inference). */
14912
+ detect: boolean().optional(),
14913
+ /** Node is eligible to host decoder sessions. */
14914
+ decode: boolean().optional(),
14915
+ /** Node is eligible to run audio-analyzer sessions. */
14916
+ audio: boolean().optional(),
14917
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
14918
+ ingest: boolean().optional()
14909
14919
  });
14910
14920
  var CameraPipelineForAgentSchema = object({
14911
14921
  steps: array(PipelineStepInputSchema).readonly(),
@@ -14980,7 +14990,10 @@ var AgentLoadSummarySchema = object({
14980
14990
  online: boolean(),
14981
14991
  load: RunnerLocalLoadSchema,
14982
14992
  /** Computed score used by the L2 capacity balancer (lower = less loaded). */
14983
- score: number()
14993
+ score: number(),
14994
+ /** This node's decode hwaccel backend (per-node `probedBestHwaccel`), or null
14995
+ * when not yet probed — for the cluster Pipeline table UI (P0.2). */
14996
+ decodeHwaccel: string().nullable()
14984
14997
  });
14985
14998
  /**
14986
14999
  * Aggregate metrics across the whole detection cluster. Replaces the legacy
@@ -15208,6 +15221,21 @@ method(object({
15208
15221
  }), object({ success: literal(true) }), {
15209
15222
  kind: "mutation",
15210
15223
  auth: "admin"
15224
+ }), method(object({
15225
+ agentNodeId: string(),
15226
+ detectWeight: number().positive().nullable()
15227
+ }), object({ success: literal(true) }), {
15228
+ kind: "mutation",
15229
+ auth: "admin"
15230
+ }), method(object({
15231
+ agentNodeId: string(),
15232
+ detect: boolean().nullable().optional(),
15233
+ decode: boolean().nullable().optional(),
15234
+ audio: boolean().nullable().optional(),
15235
+ ingest: boolean().nullable().optional()
15236
+ }), object({ success: literal(true) }), {
15237
+ kind: "mutation",
15238
+ auth: "admin"
15211
15239
  }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
15212
15240
  deviceId: number(),
15213
15241
  addonId: string(),
@@ -17561,7 +17589,7 @@ var HardwareEncoderIdSchema = _enum([
17561
17589
  "libx264",
17562
17590
  "libx265"
17563
17591
  ]);
17564
- var HardwareEncodersSchema = object({
17592
+ object({
17565
17593
  encoders: array(object({
17566
17594
  encoder: HardwareEncoderIdSchema,
17567
17595
  codec: _enum(["H264", "H265"]),
@@ -17580,15 +17608,7 @@ var HardwareEncodersSchema = object({
17580
17608
  defaultH265: HardwareEncoderIdSchema,
17581
17609
  probedAt: number()
17582
17610
  });
17583
- /**
17584
- * Decode-side companion to {@link HardwareEncodersSchema}: the `-hwaccel`
17585
- * methods the configured ffmpeg binary actually supports (parsed from
17586
- * `ffmpeg -hwaccels`). Used to gate decode-hwaccel attempts so the transcode
17587
- * egress never spends a spawn on a backend this build cannot offer. Per-stream
17588
- * decode fragility (e.g. VideoToolbox HEVC) is still handled by the egress's
17589
- * software fallback — this only filters out wholly-unsupported backends.
17590
- */
17591
- var HardwareDecodeAccelsSchema = object({
17611
+ object({
17592
17612
  methods: array(string()).readonly(),
17593
17613
  probedAt: number()
17594
17614
  });
@@ -17651,13 +17671,7 @@ var ResolvedInferenceConfigSchema = object({
17651
17671
  format: ModelFormatSchema,
17652
17672
  reason: string()
17653
17673
  });
17654
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
17655
- kind: "mutation",
17656
- auth: "admin"
17657
- }), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
17658
- kind: "mutation",
17659
- auth: "admin"
17660
- });
17674
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
17661
17675
  var PtzPresetSchema = object({
17662
17676
  id: string(),
17663
17677
  name: string()
@@ -21126,6 +21140,18 @@ Object.freeze({
21126
21140
  addonId: null,
21127
21141
  access: "create"
21128
21142
  },
21143
+ "pipelineOrchestrator.setAgentCapabilities": {
21144
+ capName: "pipeline-orchestrator",
21145
+ capScope: "system",
21146
+ addonId: null,
21147
+ access: "create"
21148
+ },
21149
+ "pipelineOrchestrator.setAgentDetectWeight": {
21150
+ capName: "pipeline-orchestrator",
21151
+ capScope: "system",
21152
+ addonId: null,
21153
+ access: "create"
21154
+ },
21129
21155
  "pipelineOrchestrator.setAgentMaxCameras": {
21130
21156
  capName: "pipeline-orchestrator",
21131
21157
  capScope: "system",
@@ -21282,30 +21308,6 @@ Object.freeze({
21282
21308
  addonId: null,
21283
21309
  access: "view"
21284
21310
  },
21285
- "platformProbe.getHardwareDecodeAccels": {
21286
- capName: "platform-probe",
21287
- capScope: "system",
21288
- addonId: null,
21289
- access: "view"
21290
- },
21291
- "platformProbe.getHardwareEncoders": {
21292
- capName: "platform-probe",
21293
- capScope: "system",
21294
- addonId: null,
21295
- access: "view"
21296
- },
21297
- "platformProbe.refreshHardwareDecodeAccels": {
21298
- capName: "platform-probe",
21299
- capScope: "system",
21300
- addonId: null,
21301
- access: "create"
21302
- },
21303
- "platformProbe.refreshHardwareEncoders": {
21304
- capName: "platform-probe",
21305
- capScope: "system",
21306
- addonId: null,
21307
- access: "create"
21308
- },
21309
21311
  "platformProbe.resolveHwAccel": {
21310
21312
  capName: "platform-probe",
21311
21313
  capScope: "system",
@@ -14882,7 +14882,17 @@ var AgentAddonConfigSchema = object({
14882
14882
  });
14883
14883
  var AgentPipelineSettingsSchema = object({
14884
14884
  addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
14885
- maxCameras: number().int().nonnegative().nullable().default(null)
14885
+ maxCameras: number().int().nonnegative().nullable().default(null),
14886
+ /** Per-node detection weight (relative share for the quota balancer). */
14887
+ detectWeight: number().positive().optional(),
14888
+ /** Node is eligible to run the detection pipeline (decode + inference). */
14889
+ detect: boolean().optional(),
14890
+ /** Node is eligible to host decoder sessions. */
14891
+ decode: boolean().optional(),
14892
+ /** Node is eligible to run audio-analyzer sessions. */
14893
+ audio: boolean().optional(),
14894
+ /** Node is eligible to be the ingest / source-owner (serve the restream). */
14895
+ ingest: boolean().optional()
14886
14896
  });
14887
14897
  var CameraPipelineForAgentSchema = object({
14888
14898
  steps: array(PipelineStepInputSchema).readonly(),
@@ -14957,7 +14967,10 @@ var AgentLoadSummarySchema = object({
14957
14967
  online: boolean(),
14958
14968
  load: RunnerLocalLoadSchema,
14959
14969
  /** Computed score used by the L2 capacity balancer (lower = less loaded). */
14960
- score: number()
14970
+ score: number(),
14971
+ /** This node's decode hwaccel backend (per-node `probedBestHwaccel`), or null
14972
+ * when not yet probed — for the cluster Pipeline table UI (P0.2). */
14973
+ decodeHwaccel: string().nullable()
14961
14974
  });
14962
14975
  /**
14963
14976
  * Aggregate metrics across the whole detection cluster. Replaces the legacy
@@ -15185,6 +15198,21 @@ method(object({
15185
15198
  }), object({ success: literal(true) }), {
15186
15199
  kind: "mutation",
15187
15200
  auth: "admin"
15201
+ }), method(object({
15202
+ agentNodeId: string(),
15203
+ detectWeight: number().positive().nullable()
15204
+ }), object({ success: literal(true) }), {
15205
+ kind: "mutation",
15206
+ auth: "admin"
15207
+ }), method(object({
15208
+ agentNodeId: string(),
15209
+ detect: boolean().nullable().optional(),
15210
+ decode: boolean().nullable().optional(),
15211
+ audio: boolean().nullable().optional(),
15212
+ ingest: boolean().nullable().optional()
15213
+ }), object({ success: literal(true) }), {
15214
+ kind: "mutation",
15215
+ auth: "admin"
15188
15216
  }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
15189
15217
  deviceId: number(),
15190
15218
  addonId: string(),
@@ -17538,7 +17566,7 @@ var HardwareEncoderIdSchema = _enum([
17538
17566
  "libx264",
17539
17567
  "libx265"
17540
17568
  ]);
17541
- var HardwareEncodersSchema = object({
17569
+ object({
17542
17570
  encoders: array(object({
17543
17571
  encoder: HardwareEncoderIdSchema,
17544
17572
  codec: _enum(["H264", "H265"]),
@@ -17557,15 +17585,7 @@ var HardwareEncodersSchema = object({
17557
17585
  defaultH265: HardwareEncoderIdSchema,
17558
17586
  probedAt: number()
17559
17587
  });
17560
- /**
17561
- * Decode-side companion to {@link HardwareEncodersSchema}: the `-hwaccel`
17562
- * methods the configured ffmpeg binary actually supports (parsed from
17563
- * `ffmpeg -hwaccels`). Used to gate decode-hwaccel attempts so the transcode
17564
- * egress never spends a spawn on a backend this build cannot offer. Per-stream
17565
- * decode fragility (e.g. VideoToolbox HEVC) is still handled by the egress's
17566
- * software fallback — this only filters out wholly-unsupported backends.
17567
- */
17568
- var HardwareDecodeAccelsSchema = object({
17588
+ object({
17569
17589
  methods: array(string()).readonly(),
17570
17590
  probedAt: number()
17571
17591
  });
@@ -17628,13 +17648,7 @@ var ResolvedInferenceConfigSchema = object({
17628
17648
  format: ModelFormatSchema,
17629
17649
  reason: string()
17630
17650
  });
17631
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
17632
- kind: "mutation",
17633
- auth: "admin"
17634
- }), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
17635
- kind: "mutation",
17636
- auth: "admin"
17637
- });
17651
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
17638
17652
  var PtzPresetSchema = object({
17639
17653
  id: string(),
17640
17654
  name: string()
@@ -21103,6 +21117,18 @@ Object.freeze({
21103
21117
  addonId: null,
21104
21118
  access: "create"
21105
21119
  },
21120
+ "pipelineOrchestrator.setAgentCapabilities": {
21121
+ capName: "pipeline-orchestrator",
21122
+ capScope: "system",
21123
+ addonId: null,
21124
+ access: "create"
21125
+ },
21126
+ "pipelineOrchestrator.setAgentDetectWeight": {
21127
+ capName: "pipeline-orchestrator",
21128
+ capScope: "system",
21129
+ addonId: null,
21130
+ access: "create"
21131
+ },
21106
21132
  "pipelineOrchestrator.setAgentMaxCameras": {
21107
21133
  capName: "pipeline-orchestrator",
21108
21134
  capScope: "system",
@@ -21259,30 +21285,6 @@ Object.freeze({
21259
21285
  addonId: null,
21260
21286
  access: "view"
21261
21287
  },
21262
- "platformProbe.getHardwareDecodeAccels": {
21263
- capName: "platform-probe",
21264
- capScope: "system",
21265
- addonId: null,
21266
- access: "view"
21267
- },
21268
- "platformProbe.getHardwareEncoders": {
21269
- capName: "platform-probe",
21270
- capScope: "system",
21271
- addonId: null,
21272
- access: "view"
21273
- },
21274
- "platformProbe.refreshHardwareDecodeAccels": {
21275
- capName: "platform-probe",
21276
- capScope: "system",
21277
- addonId: null,
21278
- access: "create"
21279
- },
21280
- "platformProbe.refreshHardwareEncoders": {
21281
- capName: "platform-probe",
21282
- capScope: "system",
21283
- addonId: null,
21284
- access: "create"
21285
- },
21286
21288
  "platformProbe.resolveHwAccel": {
21287
21289
  capName: "platform-probe",
21288
21290
  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_shared = require("./shared-CCwZkQ8w.js");
5
+ const require_shared = require("./shared-CWESrfMQ.js");
6
6
  let node_stream = require("node:stream");
7
7
  let webdav = require("webdav");
8
8
  //#region src/providers/webdav/webdav-config-schema.ts
@@ -1,4 +1,4 @@
1
- import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-Gufyq4pP.mjs";
1
+ import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-D9Aw9Suk.mjs";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { AuthType, createClient } from "webdav";
4
4
  //#region src/providers/webdav/webdav-config-schema.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-remote-storage",
3
- "version": "1.1.15",
3
+ "version": "1.1.17",
4
4
  "description": "Remote storage providers (SFTP, S3, WebDAV) — unifies remote backends behind the storage-provider cap",
5
5
  "keywords": [
6
6
  "camstack",