@camstack/types 1.1.33 → 1.1.35

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.
@@ -3,7 +3,7 @@ import type { PipelineSchema, PipelineDefaultStep, PipelineTemplateStep, Pipelin
3
3
  import type { ModelFormat } from '../types/models.js';
4
4
  import type { FrameInput } from '../types/io.js';
5
5
  import type { FrameHandle } from './frame-handle.js';
6
- import type { FrameResult, DetectorOutput } from '../types/detection.js';
6
+ import type { FrameResult } from '../types/detection.js';
7
7
  import type { ConfigUISchema } from './config-ui.js';
8
8
  import type { InferenceCapabilities } from './inference-capabilities.js';
9
9
  import type { IAddonResolver } from './pipeline-runner.js';
@@ -77,7 +77,7 @@ export interface IPipelineExecutorProvider {
77
77
  getAvailableEngines(): Promise<PipelineEngineChoice[]>;
78
78
  /** Build default step tree for an engine */
79
79
  getDefaultSteps(engine: PipelineEngineChoice): Promise<PipelineDefaultStep[]>;
80
- /** Get persisted global steps (null if not yet configured). Kept read-only for benchmark fallback. */
80
+ /** Compute this node's hardware-aware default step tree (null when the catalog yields no steps). */
81
81
  getGlobalSteps(): Promise<PipelineDefaultStep[] | null>;
82
82
  /** Get the runner-ready pipeline config */
83
83
  getGlobalPipelineConfig(): Promise<PipelineConfig | null>;
@@ -151,12 +151,6 @@ export interface IPipelineExecutorProvider {
151
151
  }): Promise<{
152
152
  readonly results: readonly FrameResult[];
153
153
  }>;
154
- /** Run single-addon detection on a frame */
155
- detect(input: {
156
- addonId: string;
157
- frame: FrameInput;
158
- config?: Record<string, unknown>;
159
- }): Promise<DetectorOutput>;
160
154
  listReferenceImages(): Promise<Array<{
161
155
  id: string;
162
156
  filename: string;
@@ -30,20 +30,6 @@ export interface PipelineAssignment {
30
30
  /** Unix timestamp (ms) when the assignment was last updated. */
31
31
  readonly assignedAt: number;
32
32
  }
33
- /**
34
- * Decoder placement record. Symmetric to `PipelineAssignment` but for the
35
- * decoder-node placement domain (`balanceDecoder` decision: manual pin →
36
- * co-located with pipeline → capacity).
37
- */
38
- export interface DecoderAssignment {
39
- readonly deviceId: number;
40
- /** Moleculer node id of the decoder provider currently responsible for this camera. */
41
- readonly decoderNodeId: string;
42
- /** True when the assignment was set manually via `assignDecoder`, false when chosen by the balancer. */
43
- readonly pinned: boolean;
44
- /** Why this assignment was made — useful for debugging the decoder balancer. */
45
- readonly reason: 'manual' | 'co-located' | 'capacity' | 'hardware-affinity';
46
- }
47
33
  /**
48
34
  * Per-agent load summary surfaced to the load balancer + dashboards.
49
35
  * Aggregated from each runner's `getLocalLoad` cap call.
@@ -3537,13 +3537,10 @@ function createDeviceProxy(api, binding, opts) {
3537
3537
  unassignPipeline: (input) => dispatchSystem("pipelineOrchestrator", "unassignPipeline", "mutation", input),
3538
3538
  getPipelineAssignment: (input) => dispatchSystem("pipelineOrchestrator", "getPipelineAssignment", "query", input),
3539
3539
  getCameraMetrics: (input) => dispatchSystem("pipelineOrchestrator", "getCameraMetrics", "query", input),
3540
- assignDecoder: (input) => dispatchSystem("pipelineOrchestrator", "assignDecoder", "mutation", input),
3541
- unassignDecoder: (input) => dispatchSystem("pipelineOrchestrator", "unassignDecoder", "mutation", input),
3542
3540
  assignAudio: (input) => dispatchSystem("pipelineOrchestrator", "assignAudio", "mutation", input),
3543
3541
  unassignAudio: (input) => dispatchSystem("pipelineOrchestrator", "unassignAudio", "mutation", input),
3544
3542
  getAudioAssignment: (input) => dispatchSystem("pipelineOrchestrator", "getAudioAssignment", "query", input),
3545
3543
  getAudioAssignments: (input) => dispatchSystem("pipelineOrchestrator", "getAudioAssignments", "query", input),
3546
- getDecoderAssignment: (input) => dispatchSystem("pipelineOrchestrator", "getDecoderAssignment", "query", input),
3547
3544
  getCameraSettings: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSettings", "query", input),
3548
3545
  setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
3549
3546
  getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
@@ -3537,13 +3537,10 @@ function createDeviceProxy(api, binding, opts) {
3537
3537
  unassignPipeline: (input) => dispatchSystem("pipelineOrchestrator", "unassignPipeline", "mutation", input),
3538
3538
  getPipelineAssignment: (input) => dispatchSystem("pipelineOrchestrator", "getPipelineAssignment", "query", input),
3539
3539
  getCameraMetrics: (input) => dispatchSystem("pipelineOrchestrator", "getCameraMetrics", "query", input),
3540
- assignDecoder: (input) => dispatchSystem("pipelineOrchestrator", "assignDecoder", "mutation", input),
3541
- unassignDecoder: (input) => dispatchSystem("pipelineOrchestrator", "unassignDecoder", "mutation", input),
3542
3540
  assignAudio: (input) => dispatchSystem("pipelineOrchestrator", "assignAudio", "mutation", input),
3543
3541
  unassignAudio: (input) => dispatchSystem("pipelineOrchestrator", "unassignAudio", "mutation", input),
3544
3542
  getAudioAssignment: (input) => dispatchSystem("pipelineOrchestrator", "getAudioAssignment", "query", input),
3545
3543
  getAudioAssignments: (input) => dispatchSystem("pipelineOrchestrator", "getAudioAssignments", "query", input),
3546
- getDecoderAssignment: (input) => dispatchSystem("pipelineOrchestrator", "getDecoderAssignment", "query", input),
3547
3544
  getCameraSettings: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSettings", "query", input),
3548
3545
  setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
3549
3546
  getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
@@ -82,6 +82,14 @@ export interface AgentPipelineSettings {
82
82
  * enabled-node sets from these flags across the cluster.
83
83
  */
84
84
  readonly detect?: boolean;
85
+ /**
86
+ * @deprecated DEPRECATED AND IGNORED. Decode is always co-located with its
87
+ * frame consumer (the shm ring is node-local; off-owner detection decodes
88
+ * locally via the satellite plane), so a separate per-node decode flag is
89
+ * meaningless: decode eligibility IS detect eligibility. The field is kept
90
+ * OPTIONAL purely so persisted stores written before the removal still
91
+ * parse — no code reads it and no write path emits it.
92
+ */
85
93
  readonly decode?: boolean;
86
94
  readonly audio?: boolean;
87
95
  readonly ingest?: boolean;
@@ -33,6 +33,7 @@ export interface ModelVariantSource {
33
33
  readonly tier: string;
34
34
  readonly precision?: VariantPrecision;
35
35
  readonly optimization?: VariantOptimization;
36
+ readonly resolution?: number;
36
37
  };
37
38
  readonly formats: Readonly<Record<string, {
38
39
  readonly sizeMB: number;
@@ -43,6 +44,12 @@ export interface ModelVariantOption {
43
44
  readonly modelId: string;
44
45
  readonly precision: VariantPrecision;
45
46
  readonly optimization: VariantOptimization;
47
+ /**
48
+ * Input resolution (square side, px). `undefined` ⇒ the family's native
49
+ * resolution (640 for yolo26). Reduced values (320 / 256) are the reduced-
50
+ * input latency variants.
51
+ */
52
+ readonly resolution?: number;
46
53
  /** Short chip label: `Standard` | `Int8` | `Fast` | `Fast · Int8`. */
47
54
  readonly label: string;
48
55
  /** Formats this variant ships (drives per-node availability). */
@@ -80,6 +87,8 @@ export declare function resolveVariantModelId(models: readonly ModelVariantSourc
80
87
  readonly tier: string;
81
88
  readonly precision?: VariantPrecision;
82
89
  readonly optimization?: VariantOptimization;
90
+ /** `undefined` ⇒ the native-resolution build. */
91
+ readonly resolution?: number;
83
92
  }): string | null;
84
93
  /** Inverse: describe a flat model id as a grouped selection, or `null`. */
85
94
  export declare function describeModelVariant(models: readonly ModelVariantSource[], modelId: string): {
@@ -87,4 +96,5 @@ export declare function describeModelVariant(models: readonly ModelVariantSource
87
96
  readonly tier: string;
88
97
  readonly precision: VariantPrecision;
89
98
  readonly optimization: VariantOptimization;
99
+ readonly resolution?: number;
90
100
  } | null;
@@ -113,6 +113,7 @@ export declare const ModelVariantGroupSchema: z.ZodObject<{
113
113
  standard: "standard";
114
114
  fast: "fast";
115
115
  }>>;
116
+ resolution: z.ZodOptional<z.ZodNumber>;
116
117
  }, z.core.$strip>;
117
118
  export type ModelVariantGroup = z.infer<typeof ModelVariantGroupSchema>;
118
119
  export declare const ModelCatalogEntrySchema: z.ZodObject<{
@@ -218,6 +219,7 @@ export declare const ModelCatalogEntrySchema: z.ZodObject<{
218
219
  standard: "standard";
219
220
  fast: "fast";
220
221
  }>>;
222
+ resolution: z.ZodOptional<z.ZodNumber>;
221
223
  }, z.core.$strip>>;
222
224
  }, z.core.$strip>;
223
225
  export type ModelCatalogEntry = z.infer<typeof ModelCatalogEntrySchema>;
@@ -424,6 +426,7 @@ export declare const ConvertResultSchema: z.ZodObject<{
424
426
  standard: "standard";
425
427
  fast: "fast";
426
428
  }>>;
429
+ resolution: z.ZodOptional<z.ZodNumber>;
427
430
  }, z.core.$strip>>;
428
431
  }, z.core.$strip>;
429
432
  artifacts: z.ZodReadonly<z.ZodArray<z.ZodObject<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.1.33",
3
+ "version": "1.1.35",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",