UNPKG

mcp-use

Version:

Opinionated MCP Framework for TypeScript (@modelcontextprotocol/sdk compatible) - Build MCP Agents and Clients + MCP Servers with support for MCP-UI.

65 lines (62 loc) 1.69 kB
import { __name } from "./chunk-3GQAWCBQ.js"; // src/agents/utils/ai_sdk.ts async function* streamEventsToAISDK(streamEvents) { for await (const event of streamEvents) { if (event.event === "on_chat_model_stream" && event.data?.chunk?.text) { const textContent = event.data.chunk.text; if (typeof textContent === "string" && textContent.length > 0) { yield textContent; } } } } __name(streamEventsToAISDK, "streamEventsToAISDK"); function createReadableStreamFromGenerator(generator) { return new ReadableStream({ async start(controller) { try { for await (const chunk of generator) { controller.enqueue(chunk); } controller.close(); } catch (error) { controller.error(error); } } }); } __name(createReadableStreamFromGenerator, "createReadableStreamFromGenerator"); async function* streamEventsToAISDKWithTools(streamEvents) { for await (const event of streamEvents) { switch (event.event) { case "on_chat_model_stream": if (event.data?.chunk?.text) { const textContent = event.data.chunk.text; if (typeof textContent === "string" && textContent.length > 0) { yield textContent; } } break; case "on_tool_start": yield ` \u{1F527} Using tool: ${event.name} `; break; case "on_tool_end": yield ` \u2705 Tool completed: ${event.name} `; break; default: break; } } } __name(streamEventsToAISDKWithTools, "streamEventsToAISDKWithTools"); export { streamEventsToAISDK, createReadableStreamFromGenerator, streamEventsToAISDKWithTools };