Skip to content
Français

ModelStreamEvent

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

The fields below cover all variants; the signature specifies their allowed combinations.

  • typeRequired
    "reasoning" | "retry" | "text-delta" | "result"
    text-delta for a fragment of answer text, reasoning for readable reasoning, retry for a provider-reported retry, result for the final result. Built-in providers emit only text-delta and result.
  • textVariant-dependent
    string
    Fragment of answer text for text-delta, or readable reasoning for reasoning, in arrival order. The harness forwards both as events of the same kind.
  • attemptVariant-dependent
    number
    Retry attempt number reported by the provider. The harness forwards it as a model-retry event and does not retry itself.
  • messageVariant-dependent
    string | undefined
    Diagnostic for the reported retry, forwarded in the model-retry event.
  • resultVariant-dependent
    ModelResult
    Final normalized result, identical to a non-streaming request. The harness requires exactly one per stream.
export type ModelStreamEvent =
  | {
      readonly type: "reasoning";
      readonly text: string;
    }
  | {
      readonly type: "retry";
      readonly attempt: number;
      readonly message?: string;
    }
  | {
      readonly type: "text-delta";
      readonly text: string;
    }
  | {
      readonly type: "result";
      readonly result: ModelResult;
    };