Aller au contenu
English

HarnessHookDecisions

import type { HarnessHookDecisions } from "@elie-laloum/outpost";
  • session-startRequis
    { readonly instructions: string; }
    Renvoyez { instructions } pour ajouter du texte aux instructions système du tour.
  • before-modelRequis
    never
    Aucune décision : toute valeur renvoyée est ignorée ; levez une erreur pour faire échouer le tour.
  • after-modelRequis
    never
    Aucune décision : toute valeur renvoyée est ignorée ; levez une erreur pour faire échouer le tour.
  • before-toolRequis
    { readonly deny: string; } | { readonly input: unknown; }
    Renvoyez { deny } avec une raison non vide pour refuser l’appel et ignorer les hooks suivants, ou { input } pour transmettre une entrée de remplacement au hook suivant. L’entrée finale est validée puis contrôlée de nouveau par les permissions.
  • after-toolRequis
    { readonly result: ToolOutput; }
    Renvoyez { result } avec du texte ou { content, isError } pour remplacer ce que reçoit le modèle ; les hooks suivants voient le remplacement.
  • stopRequis
    { readonly continue: string; }
    Renvoyez { continue } avec un message non vide pour refuser la réponse finale ; le message devient le message utilisateur suivant et les hooks stop suivants sont ignorés. Borné par maxSteps.
export interface HarnessHookDecisions {
  readonly "session-start": {
    readonly instructions: string;
  };
  readonly "before-model": never;
  readonly "after-model": never;
  readonly "before-tool":
    | {
        readonly deny: string;
      }
    | {
        readonly input: unknown;
      };
  readonly "after-tool": {
    readonly result: ToolOutput;
  };
  readonly stop: {
    readonly continue: string;
  };
}