FakeChatModel.toolCall constructor

FakeChatModel.toolCall({
  1. required List<ToolCallPart> toolCalls,
  2. String then = 'Done.',
  3. ModelInfo? info,
})

Creates a model that requests toolCalls, then answers with then.

The two-turn script an agent-loop test almost always needs.

Implementation

factory FakeChatModel.toolCall({
  required List<ToolCallPart> toolCalls,
  String then = 'Done.',
  ModelInfo? info,
}) => FakeChatModel(
  info: info,
  turns: <FakeTurn>[
    FakeTurn.answer(
      ChatResponse(
        message: Message.assistant('', toolCalls: toolCalls),
        modelId: info?.id ?? 'fake-model',
        finishReason: FinishReason.toolCalls,
        usage: const TokenUsage(promptTokens: 20, completionTokens: 10),
      ),
    ),
    FakeTurn.answer(
      ChatResponse(
        message: Message.assistant(then),
        modelId: info?.id ?? 'fake-model',
        usage: const TokenUsage(promptTokens: 30, completionTokens: 5),
      ),
    ),
  ],
);