ReferenceEvents Catalog
Vision — résultat
Auto-généré par
scripts/gen-events-catalog.tsdepuis le schéma Zod canonique danspackages/shared/src/events/widget-data-events.ts. Ne pas éditer ce fichier à la main — modifier la source puis relancerbun 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
});