FakeChatModel.failingThenAnswering constructor

FakeChatModel.failingThenAnswering({
  1. required AgenticException error,
  2. int times = 1,
  3. String then = 'Recovered.',
  4. ModelInfo? info,
})

Creates a model that fails times times, then answers with then.

The script for exercising a retry policy.

Implementation

factory FakeChatModel.failingThenAnswering({
  required AgenticException error,
  int times = 1,
  String then = 'Recovered.',
  ModelInfo? info,
}) => FakeChatModel(
  info: info,
  turns: <FakeTurn>[
    for (var i = 0; i < times; i++) FakeTurn.failure(error),
    FakeTurn.answer(
      ChatResponse(
        message: Message.assistant(then),
        modelId: info?.id ?? 'fake-model',
      ),
    ),
  ],
);