import { mock } from "bun:test"; void mock.module("ai", () => ({ createAgentUIStreamResponse: (opts: { agent: unknown; messages: unknown[]; onFinish: | ((event: { finishReason?: string; responseMessage: { parts?: Array<{ text: string; type: string }> } }) => void) | undefined; }) => { if (opts.onFinish) { opts.onFinish({ responseMessage: { parts: [{ text: "test reply from AI", type: "text" }], }, }); } return Promise.resolve( new Response( 'data: {"type":"start-step"}\n\ndata: {"type":"text-start","id":"txt-1"}\n\ndata: {"type":"text-delta","id":"txt-1","delta":"test reply from AI"}\n\ndata: {"type":"text-end","id":"txt-1"}\n\ndata: {"type":"finish-step"}\n\ndata: {"type":"finish"}\n\n', { headers: { "Content-Type": "text/event-stream" }, }, ), ); }, createProviderRegistry: () => ({ languageModel: () => ({}), }), generateText: () => Promise.resolve({ text: "AI\u603B\u7ED3\u6807\u9898", usage: {} }), stepCountIs: () => () => true, tool: () => ({ execute: async () => await Promise.resolve({}) }), ToolLoopAgent: function M() { // no-op: createAgentUIStreamResponse handles streaming }, }));