Aller au contenu
English

defineJsonResponse

import { defineJsonResponse } from "@elie-laloum/outpost";

Déclare une réponse lue dans la dernière paire <tag>…</tag> complète, analysée comme du JSON, éventuellement dans un bloc de code Markdown, puis vérifiée par schema. Une balise absente, un JSON invalide, des problèmes signalés par le schéma ou une erreur levée par la fonction échouent avec ResponseError ; un tag ou un repairs invalide échoue avec le code configuration.

Exemple complet et règles détaillées.

  • optionsRequis
    JsonResponseOptions<T>
    Nom de la balise, schéma ou fonction d’analyse, et nombre de tours de réparation autorisés après une réponse invalide.
  • options.tagRequis
    string
    Nom de la balise, sans chevrons : une lettre suivie de lettres, chiffres, _ ou -. Toute autre forme échoue avec le code configuration.
  • options.schemaRequis
    StandardValidator<T> | ((input: unknown) => T | Promise<T>)
    Validateur Standard Schema, par exemple Zod ou Valibot, ou fonction qui reçoit le JSON analysé comme unknown et renvoie la valeur typée. Des problèmes signalés ou une erreur levée rejettent la réponse.
  • options.repairsOptionnel
    number | undefined
    Tours de correction autorisés après une réponse invalide, 0 par défaut ; entier positif ou nul. Au-dessus de 0, l’agent doit pouvoir reprendre sa conversation.

ResponseSpec<T>

export declare function defineJsonResponse<T>(
  options: JsonResponseOptions<T>,
): ResponseSpec<T>;