KOHAMI Docs
ReferenceEvents Catalog

Vision — résultat

Auto-généré par scripts/gen-events-catalog.ts depuis le schéma Zod canonique dans packages/shared/src/events/widget-data-events.ts. Ne pas éditer ce fichier à la main — modifier la source puis relancer bun run gen:events.

Topic

vision:result
  • Famille : Vision
  • Bloc d'origine : BLOC-09
  • Discriminant : kind: "vision:result"

Description

Description sanitisée d'une image envoyée par le senior, produite par Pixtral / Mistral Small 4 multimodal. Inclut detectedEntities en kebab-case.

Schéma JSON

{
  "$ref": "#/definitions/vision-result",
  "definitions": {
    "vision-result": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "const": "vision:result"
        },
        "imageId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        "detectedEntities": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "maxItems": 16
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "kind",
        "imageId",
        "description",
        "detectedEntities",
        "confidence"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Import TypeScript

import {
  VisionResultEventSchema,
  type VisionResultEvent,
} from "@kohami/shared";

Parsing côté tablette

import { VisionResultEventSchema } from "@kohami/shared";

room.on(RoomEvent.DataReceived, (payload, _participant, _kind, topic) => {
  if (topic !== "vision:result") return;
  const raw = new TextDecoder().decode(payload);
  const event = VisionResultEventSchema.parse(JSON.parse(raw));
  // ... handle event
});