diff --git a/typescript-sdk/integrations/langgraph/src/index.ts b/typescript-sdk/integrations/langgraph/src/index.ts index 9f6528f9..7edfdbc4 100644 --- a/typescript-sdk/integrations/langgraph/src/index.ts +++ b/typescript-sdk/integrations/langgraph/src/index.ts @@ -10,7 +10,7 @@ import { Config, Interrupt, } from "@langchain/langgraph-sdk"; -import { randomUUID } from "node:crypto"; +import { randomUUID } from "@ag-ui/client"; import { RemoveMessage } from "@langchain/core/messages"; import { LangGraphPlatformMessage, diff --git a/typescript-sdk/integrations/mastra/src/index.ts b/typescript-sdk/integrations/mastra/src/index.ts index 88a6be67..e48bda01 100644 --- a/typescript-sdk/integrations/mastra/src/index.ts +++ b/typescript-sdk/integrations/mastra/src/index.ts @@ -27,7 +27,7 @@ import { registerApiRoute } from "@mastra/core/server"; import type { Agent as LocalMastraAgent } from "@mastra/core/agent"; import type { Context } from "hono"; import { RuntimeContext } from "@mastra/core/runtime-context"; -import { randomUUID } from "crypto"; +import { randomUUID } from "@ag-ui/client"; import { Observable } from "rxjs"; import { MastraClient } from "@mastra/client-js"; type RemoteMastraAgent = ReturnType; diff --git a/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts b/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts index b06664f3..9f30bc37 100644 --- a/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts +++ b/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts @@ -26,7 +26,7 @@ import { ToolChoice, ToolSet, } from "ai"; -import { randomUUID } from "crypto"; +import { randomUUID } from "@ag-ui/client"; import { z } from "zod"; type ProcessedEvent = diff --git a/typescript-sdk/packages/client/src/index.ts b/typescript-sdk/packages/client/src/index.ts index dfad3575..31bb4c82 100644 --- a/typescript-sdk/packages/client/src/index.ts +++ b/typescript-sdk/packages/client/src/index.ts @@ -4,4 +4,5 @@ export * from "./transform"; export * from "./run"; export * from "./legacy"; export * from "./agent"; +export * from "./utils"; export * from "@ag-ui/core"; diff --git a/typescript-sdk/packages/client/src/utils.ts b/typescript-sdk/packages/client/src/utils.ts index 675e9f70..169edace 100644 --- a/typescript-sdk/packages/client/src/utils.ts +++ b/typescript-sdk/packages/client/src/utils.ts @@ -1,3 +1,5 @@ +import { v4 as uuidv4 } from 'uuid'; + export const structuredClone_ = (obj: any) => { if (typeof structuredClone === "function") { return structuredClone(obj); @@ -9,3 +11,11 @@ export const structuredClone_ = (obj: any) => { return { ...obj }; } }; + +/** + * Generate a random UUID v4 + * Cross-platform compatible (Node.js, browsers, React Native) + */ +export function randomUUID(): string { + return uuidv4(); +}