KOHAMI Docs
ReferenceEvents Catalog

Assistance — session escaladée

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

assistance:session_escalated
  • Famille : Assistance
  • Bloc d'origine : BLOC-09
  • Discriminant : kind: "assistance:session_escalated"

Description

Tracker dépassé (6 actions / 15 min technique, 3 demandes / 20 min administrative). Publié juste après la requête Inngest d'escalade (INV-S02 sacré).

Schéma JSON

{
  "$ref": "#/definitions/assistance-session-escalated",
  "definitions": {
    "assistance-session-escalated": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "const": "assistance:session_escalated"
        },
        "assistance_kind": {
          "type": "string",
          "enum": [
            "technique",
            "administrative"
          ]
        },
        "session_id": {
          "type": "string",
          "format": "uuid"
        },
        "reason": {
          "type": "string",
          "enum": [
            "max-actions",
            "max-duration",
            "max-demands",
            "hardware"
          ]
        },
        "step_count": {
          "type": "integer",
          "minimum": 1
        },
        "elapsed_ms": {
          "type": "integer",
          "minimum": 0
        },
        "escalated_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "kind",
        "assistance_kind",
        "session_id",
        "reason",
        "step_count",
        "elapsed_ms",
        "escalated_at"
      ],
      "additionalProperties": false
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Import TypeScript

import {
  AssistanceSessionEscalatedEventSchema,
  type AssistanceSessionEscalatedEvent,
} from "@kohami/shared";

Parsing côté tablette

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

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