@camstack/types 1.2.258 → 1.2.259

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.
@@ -124,6 +124,10 @@ declare const DetailResultSchema: z.ZodObject<{
124
124
  labelModelId: z.ZodOptional<z.ZodString>;
125
125
  alignedCropJpeg: z.ZodOptional<z.ZodString>;
126
126
  nativeFaceShortSidePx: z.ZodOptional<z.ZodNumber>;
127
+ landmarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
128
+ x: z.ZodNumber;
129
+ y: z.ZodNumber;
130
+ }, z.core.$strip>>>;
127
131
  }, z.core.$strip>;
128
132
  export type DetailParent = z.infer<typeof DetailParentSchema>;
129
133
  export type DetailResult = z.infer<typeof DetailResultSchema>;
@@ -1011,6 +1015,10 @@ export declare const pipelineRunnerCapability: {
1011
1015
  labelModelId: z.ZodOptional<z.ZodString>;
1012
1016
  alignedCropJpeg: z.ZodOptional<z.ZodString>;
1013
1017
  nativeFaceShortSidePx: z.ZodOptional<z.ZodNumber>;
1018
+ landmarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1019
+ x: z.ZodNumber;
1020
+ y: z.ZodNumber;
1021
+ }, z.core.$strip>>>;
1014
1022
  }, z.core.$strip>>;
1015
1023
  }, z.core.$strip>>, "mutation">;
1016
1024
  /**
@@ -1091,6 +1099,10 @@ export declare const pipelineRunnerCapability: {
1091
1099
  labelModelId: z.ZodOptional<z.ZodString>;
1092
1100
  alignedCropJpeg: z.ZodOptional<z.ZodString>;
1093
1101
  nativeFaceShortSidePx: z.ZodOptional<z.ZodNumber>;
1102
+ landmarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1103
+ x: z.ZodNumber;
1104
+ y: z.ZodNumber;
1105
+ }, z.core.$strip>>>;
1094
1106
  }, z.core.$strip>>;
1095
1107
  }, z.core.$strip>, z.ZodObject<{
1096
1108
  kind: z.ZodLiteral<"refused">;
package/dist/index.js CHANGED
@@ -23870,7 +23870,17 @@ var DetailResultSchema = zod.z.object({
23870
23870
  /** Face short side (px) measured on the NATIVE crop surface. The `bbox`
23871
23871
  * above is detection-frame px (≈6× smaller on a 4K camera) — min-face-size
23872
23872
  * consumers MUST prefer this when present (2026-07-22 native-gate fix). */
23873
- nativeFaceShortSidePx: zod.z.number().optional()
23873
+ nativeFaceShortSidePx: zod.z.number().optional(),
23874
+ /**
23875
+ * The five facial landmarks of a `face` detail, in the SAME frame space as
23876
+ * `bbox` (D644). Additive and optional: post-analysis stores them beside the
23877
+ * face's source frame so a future alignment can be re-derived exactly; a
23878
+ * runner that predates the field sends none and the face is stored without.
23879
+ */
23880
+ landmarks: zod.z.array(zod.z.object({
23881
+ x: zod.z.number(),
23882
+ y: zod.z.number()
23883
+ })).optional()
23874
23884
  });
23875
23885
  /**
23876
23886
  * Why an executing node REFUSED a stateless step run (`runStatelessStep`).
package/dist/index.mjs CHANGED
@@ -23869,7 +23869,17 @@ var DetailResultSchema = z.object({
23869
23869
  /** Face short side (px) measured on the NATIVE crop surface. The `bbox`
23870
23870
  * above is detection-frame px (≈6× smaller on a 4K camera) — min-face-size
23871
23871
  * consumers MUST prefer this when present (2026-07-22 native-gate fix). */
23872
- nativeFaceShortSidePx: z.number().optional()
23872
+ nativeFaceShortSidePx: z.number().optional(),
23873
+ /**
23874
+ * The five facial landmarks of a `face` detail, in the SAME frame space as
23875
+ * `bbox` (D644). Additive and optional: post-analysis stores them beside the
23876
+ * face's source frame so a future alignment can be re-derived exactly; a
23877
+ * runner that predates the field sends none and the face is stored without.
23878
+ */
23879
+ landmarks: z.array(z.object({
23880
+ x: z.number(),
23881
+ y: z.number()
23882
+ })).optional()
23873
23883
  });
23874
23884
  /**
23875
23885
  * Why an executing node REFUSED a stateless step run (`runStatelessStep`).
@@ -412,6 +412,15 @@ export interface ObjectDetection extends DetectionBase {
412
412
  * Present iff the face path cut its aligned crop from a native surface.
413
413
  */
414
414
  readonly nativeFaceShortSidePx?: number;
415
+ /**
416
+ * The five facial landmarks the face detector regressed for THIS `face`
417
+ * detail, in the same absolute pixel space as `bbox` (D644). Only a face
418
+ * detail carries them; never inherited onto the parent.
419
+ */
420
+ readonly landmarks?: readonly {
421
+ readonly x: number;
422
+ readonly y: number;
423
+ }[];
415
424
  }
416
425
  /** Audio detection — flat, time-localised within the window. */
417
426
  export interface AudioDetection extends DetectionBase {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.258",
3
+ "version": "1.2.259",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",