Aller au contenu
English

HarnessTool

import type { HarnessTool } from "@elie-laloum/outpost";
  • kindRequis
    "tool"
    Discriminant de la définition : tool.
  • nameRequis
    string
    Nom d’outil unique présenté au modèle.
  • descriptionRequis
    string
    Explication envoyée au modèle avec l’outil.
  • readOnlyRequis
    boolean
    Indique si l’outil peut s’exécuter en parallèle d’autres appels en lecture seule.
  • inputSchemaRequis
    Readonly<Record<string, unknown>>
    JSON Schema figé envoyé au modèle, converti depuis un Standard Schema si besoin.
  • validateRequis
    (value: unknown) => Promise<ToolValidation<Input>>
    Contrôle les arguments bruts du modèle et renvoie la valeur typée ou une liste de problèmes lisible.
  • resourcesRequis
    (input: Input) => ToolResources
    Chemins et commande d’une entrée validée ; vide si l’outil n’en déclare pas.
  • executeRequis
    (input: Input, context: HarnessToolContext) => ToolOutput | Promise<ToolOutput>
    Exécute l’appel avec l’entrée validée et son contexte.
export interface HarnessTool<Input = unknown> {
  readonly kind: "tool";
  readonly name: string;
  readonly description: string;
  readonly readOnly: boolean;
  readonly inputSchema: JsonSchema;
  validate(value: unknown): Promise<ToolValidation<Input>>;
  resources(input: Input): ToolResources;
  execute(
    input: Input,
    context: HarnessToolContext,
  ): ToolOutput | Promise<ToolOutput>;
}