@camstack/types 1.2.150 → 1.2.151

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.
@@ -873,6 +873,8 @@ export declare const pipelineOrchestratorCapability: {
873
873
  decode: z.ZodOptional<z.ZodBoolean>;
874
874
  audio: z.ZodOptional<z.ZodBoolean>;
875
875
  ingest: z.ZodOptional<z.ZodBoolean>;
876
+ decodeBudgetMb: z.ZodOptional<z.ZodNumber>;
877
+ maxLiveDecodeWorkers: z.ZodOptional<z.ZodNumber>;
876
878
  reachableHost: z.ZodOptional<z.ZodString>;
877
879
  inferenceDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
878
880
  enabled: z.ZodBoolean;
@@ -895,6 +897,8 @@ export declare const pipelineOrchestratorCapability: {
895
897
  decode: z.ZodOptional<z.ZodBoolean>;
896
898
  audio: z.ZodOptional<z.ZodBoolean>;
897
899
  ingest: z.ZodOptional<z.ZodBoolean>;
900
+ decodeBudgetMb: z.ZodOptional<z.ZodNumber>;
901
+ maxLiveDecodeWorkers: z.ZodOptional<z.ZodNumber>;
898
902
  reachableHost: z.ZodOptional<z.ZodString>;
899
903
  inferenceDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
900
904
  enabled: z.ZodBoolean;
@@ -973,6 +977,19 @@ export declare const pipelineOrchestratorCapability: {
973
977
  }, z.core.$strip>, z.ZodObject<{
974
978
  success: z.ZodLiteral<true>;
975
979
  }, z.core.$strip>, "mutation">;
980
+ /**
981
+ * Size ONE node's decode admission: its RAM budget and live-worker cap.
982
+ * `null` clears a limit (back to the cluster setting or the RAM-derived
983
+ * default); an omitted key leaves it alone. Read by the node's runner on
984
+ * its next lease refresh (D365).
985
+ */
986
+ readonly setAgentDecodeLimits: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
987
+ agentNodeId: z.ZodString;
988
+ decodeBudgetMb: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
989
+ maxLiveDecodeWorkers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
990
+ }, z.core.$strip>, z.ZodObject<{
991
+ success: z.ZodLiteral<true>;
992
+ }, z.core.$strip>, "mutation">;
976
993
  /**
977
994
  * Set (or clear) the operator override for the LAN host a cross-node
978
995
  * decoder dials to reach this node's restream. Pass a non-empty string to
@@ -5842,6 +5842,13 @@ export type AppRouter = TrpcCoreRouter<{
5842
5842
  output: z.infer<typeof pipelineOrchestratorCapability.methods.setAgentCapabilities.output>;
5843
5843
  meta: object;
5844
5844
  }>;
5845
+ setAgentDecodeLimits: TRPCMutationProcedure<{
5846
+ input: {
5847
+ [x: string]: unknown;
5848
+ } & z.input<typeof pipelineOrchestratorCapability.methods.setAgentDecodeLimits.input>;
5849
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.setAgentDecodeLimits.output>;
5850
+ meta: object;
5851
+ }>;
5845
5852
  setAgentReachableHost: TRPCMutationProcedure<{
5846
5853
  input: {
5847
5854
  [x: string]: unknown;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1006 method paths across 126 capabilities.
9
+ * Coverage: 1007 method paths across 126 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -84,7 +84,7 @@ export interface SystemProxy {
84
84
  readonly notificationOutput: Pick<InferProvider<typeof notificationOutputCapability>, 'listTargetKinds' | 'listTargets' | 'discoverTargets' | 'send' | 'testTarget' | 'upsertTarget' | 'deleteTarget' | 'setTargetEnabled'>;
85
85
  readonly osdManager: Pick<InferProvider<typeof osdManagerCapability>, 'getConditionSupport' | 'copyDeviceConfiguration'>;
86
86
  readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'getInferenceDeviceHealth' | 'rearmInferenceDevice' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
87
- readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
87
+ readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentDecodeLimits' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
88
88
  readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep'>;
89
89
  readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
90
90
  readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getAvailabilityBatch' | 'getDaysWithRecordingsBatch' | 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
package/dist/index.js CHANGED
@@ -21220,6 +21220,14 @@ var AgentPipelineSettingsSchema = zod.z.object({
21220
21220
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21221
21221
  ingest: zod.z.boolean().optional(),
21222
21222
  /**
21223
+ * This node's decode RAM budget, MB. Wins over the cluster
21224
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21225
+ * own RAM unless the operator moved the cluster value (D365).
21226
+ */
21227
+ decodeBudgetMb: zod.z.number().int().min(1024).max(65536).optional(),
21228
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21229
+ maxLiveDecodeWorkers: zod.z.number().int().min(1).max(32).optional(),
21230
+ /**
21223
21231
  * Operator override for the LAN host a cross-node decoder dials to reach
21224
21232
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21225
21233
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21881,6 +21889,20 @@ var pipelineOrchestratorCapability = {
21881
21889
  auth: "admin"
21882
21890
  }),
21883
21891
  /**
21892
+ * Size ONE node's decode admission: its RAM budget and live-worker cap.
21893
+ * `null` clears a limit (back to the cluster setting or the RAM-derived
21894
+ * default); an omitted key leaves it alone. Read by the node's runner on
21895
+ * its next lease refresh (D365).
21896
+ */
21897
+ setAgentDecodeLimits: require_sleep.method(zod.z.object({
21898
+ agentNodeId: zod.z.string(),
21899
+ decodeBudgetMb: zod.z.number().int().min(1024).max(65536).nullable().optional(),
21900
+ maxLiveDecodeWorkers: zod.z.number().int().min(1).max(32).nullable().optional()
21901
+ }), zod.z.object({ success: zod.z.literal(true) }), {
21902
+ kind: "mutation",
21903
+ auth: "admin"
21904
+ }),
21905
+ /**
21884
21906
  * Set (or clear) the operator override for the LAN host a cross-node
21885
21907
  * decoder dials to reach this node's restream. Pass a non-empty string to
21886
21908
  * override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
@@ -43720,6 +43742,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
43720
43742
  addonId: null,
43721
43743
  access: "create"
43722
43744
  },
43745
+ "pipelineOrchestrator.setAgentDecodeLimits": {
43746
+ capName: "pipeline-orchestrator",
43747
+ capScope: "system",
43748
+ addonId: null,
43749
+ access: "create"
43750
+ },
43723
43751
  "pipelineOrchestrator.setAgentDetectWeight": {
43724
43752
  capName: "pipeline-orchestrator",
43725
43753
  capScope: "system",
@@ -48886,6 +48914,7 @@ function createSystemProxy(api) {
48886
48914
  setAgentMaxCameras: (input) => dispatch("pipelineOrchestrator", "setAgentMaxCameras", "mutation", input),
48887
48915
  setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
48888
48916
  setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
48917
+ setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
48889
48918
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
48890
48919
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
48891
48920
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
package/dist/index.mjs CHANGED
@@ -21219,6 +21219,14 @@ var AgentPipelineSettingsSchema = z.object({
21219
21219
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
21220
21220
  ingest: z.boolean().optional(),
21221
21221
  /**
21222
+ * This node's decode RAM budget, MB. Wins over the cluster
21223
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
21224
+ * own RAM unless the operator moved the cluster value (D365).
21225
+ */
21226
+ decodeBudgetMb: z.number().int().min(1024).max(65536).optional(),
21227
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
21228
+ maxLiveDecodeWorkers: z.number().int().min(1).max(32).optional(),
21229
+ /**
21222
21230
  * Operator override for the LAN host a cross-node decoder dials to reach
21223
21231
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
21224
21232
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21880,6 +21888,20 @@ var pipelineOrchestratorCapability = {
21880
21888
  auth: "admin"
21881
21889
  }),
21882
21890
  /**
21891
+ * Size ONE node's decode admission: its RAM budget and live-worker cap.
21892
+ * `null` clears a limit (back to the cluster setting or the RAM-derived
21893
+ * default); an omitted key leaves it alone. Read by the node's runner on
21894
+ * its next lease refresh (D365).
21895
+ */
21896
+ setAgentDecodeLimits: method(z.object({
21897
+ agentNodeId: z.string(),
21898
+ decodeBudgetMb: z.number().int().min(1024).max(65536).nullable().optional(),
21899
+ maxLiveDecodeWorkers: z.number().int().min(1).max(32).nullable().optional()
21900
+ }), z.object({ success: z.literal(true) }), {
21901
+ kind: "mutation",
21902
+ auth: "admin"
21903
+ }),
21904
+ /**
21883
21905
  * Set (or clear) the operator override for the LAN host a cross-node
21884
21906
  * decoder dials to reach this node's restream. Pass a non-empty string to
21885
21907
  * override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
@@ -43712,6 +43734,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
43712
43734
  addonId: null,
43713
43735
  access: "create"
43714
43736
  },
43737
+ "pipelineOrchestrator.setAgentDecodeLimits": {
43738
+ capName: "pipeline-orchestrator",
43739
+ capScope: "system",
43740
+ addonId: null,
43741
+ access: "create"
43742
+ },
43715
43743
  "pipelineOrchestrator.setAgentDetectWeight": {
43716
43744
  capName: "pipeline-orchestrator",
43717
43745
  capScope: "system",
@@ -48878,6 +48906,7 @@ function createSystemProxy(api) {
48878
48906
  setAgentMaxCameras: (input) => dispatch("pipelineOrchestrator", "setAgentMaxCameras", "mutation", input),
48879
48907
  setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
48880
48908
  setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
48909
+ setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
48881
48910
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
48882
48911
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
48883
48912
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
@@ -109,6 +109,10 @@ export interface AgentPipelineSettings {
109
109
  */
110
110
  readonly decode?: boolean;
111
111
  readonly audio?: boolean;
112
+ /** This node's decode RAM budget, MB — wins over the cluster `nodeDecodeBudgetMb` (D365). */
113
+ readonly decodeBudgetMb?: number;
114
+ /** This node's live decode-worker cap — wins over the cluster `maxLiveDecodeWorkers` (D365). */
115
+ readonly maxLiveDecodeWorkers?: number;
112
116
  readonly ingest?: boolean;
113
117
  /**
114
118
  * Operator override for the LAN host a cross-node decoder dials to reach
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.150",
3
+ "version": "1.2.151",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",