From ec633c1479cfcd4a2c4926d0cf8e1afef0a627a7 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 15 Feb 2026 11:47:40 +0000 Subject: [PATCH] chore: add changeset for @trigger.dev/ai package Co-authored-by: Eric Allam --- .changeset/ai-sdk-chat-transport.md | 41 +++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .changeset/ai-sdk-chat-transport.md diff --git a/.changeset/ai-sdk-chat-transport.md b/.changeset/ai-sdk-chat-transport.md new file mode 100644 index 000000000..a24dcdc19 --- /dev/null +++ b/.changeset/ai-sdk-chat-transport.md @@ -0,0 +1,41 @@ +--- +"@trigger.dev/ai": minor +--- + +New package: `@trigger.dev/ai` — AI SDK integration for Trigger.dev + +Provides `TriggerChatTransport`, a custom `ChatTransport` implementation for the Vercel AI SDK that bridges `useChat` with Trigger.dev's durable task execution and realtime streams. + +**Frontend usage:** +```tsx +import { useChat } from "@ai-sdk/react"; +import { TriggerChatTransport } from "@trigger.dev/ai"; + +const { messages, sendMessage } = useChat({ + transport: new TriggerChatTransport({ + accessToken: publicAccessToken, + taskId: "my-chat-task", + }), +}); +``` + +**Backend task:** +```ts +import { task, streams } from "@trigger.dev/sdk"; +import { streamText, convertToModelMessages } from "ai"; +import type { ChatTaskPayload } from "@trigger.dev/ai"; + +export const myChatTask = task({ + id: "my-chat-task", + run: async (payload: ChatTaskPayload) => { + const result = streamText({ + model: openai("gpt-4o"), + messages: convertToModelMessages(payload.messages), + }); + const { waitUntilComplete } = streams.pipe("chat", result.toUIMessageStream()); + await waitUntilComplete(); + }, +}); +``` + +Also exports `createChatTransport()` factory function and `ChatTaskPayload` type for task-side typing.