Skip to content

Commit b53b61b

Browse files
Add package README for @trigger.dev/ai usage
Co-authored-by: Eric Allam <eric@trigger.dev>
1 parent 5d5a757 commit b53b61b

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

packages/ai/README.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# @trigger.dev/ai
2+
3+
AI SDK integrations for Trigger.dev.
4+
5+
## What this package includes
6+
7+
- `TriggerChatTransport` for wiring AI SDK `useChat()` to Trigger.dev tasks + Realtime Streams v2
8+
- `createTriggerChatTransport(...)` factory helper
9+
- `ai.tool(...)` and `ai.currentToolOptions()` helpers for tool-calling flows
10+
11+
## Install
12+
13+
```bash
14+
npm add @trigger.dev/ai ai
15+
```
16+
17+
## `useChat()` transport example
18+
19+
```tsx
20+
import { useChat } from "@ai-sdk/react";
21+
import { TriggerChatTransport } from "@trigger.dev/ai";
22+
import { aiStream } from "@/app/streams";
23+
24+
export function Chat({ triggerToken }: { triggerToken: string }) {
25+
const chat = useChat({
26+
transport: new TriggerChatTransport({
27+
task: "ai-chat",
28+
stream: aiStream,
29+
accessToken: triggerToken,
30+
}),
31+
});
32+
33+
return (
34+
<button
35+
onClick={function onClick() {
36+
chat.sendMessage({ text: "Hello" });
37+
}}
38+
>
39+
Send
40+
</button>
41+
);
42+
}
43+
```
44+
45+
## Task payload typing
46+
47+
Use `TriggerChatTransportPayload<UIMessage>` in your task for the default rich payload:
48+
49+
- `chatId`
50+
- `trigger`
51+
- `messageId`
52+
- `messages`
53+
- `request` (`headers`, `body`, `metadata`)
54+
55+
```ts
56+
import type { TriggerChatTransportPayload } from "@trigger.dev/ai";
57+
import { UIMessage } from "ai";
58+
59+
type Payload = TriggerChatTransportPayload<UIMessage>;
60+
```
61+
62+
## `ai.tool(...)` example
63+
64+
```ts
65+
import { ai } from "@trigger.dev/ai";
66+
import { schemaTask } from "@trigger.dev/sdk";
67+
import { z } from "zod";
68+
69+
const searchTask = schemaTask({
70+
id: "search",
71+
schema: z.object({ query: z.string() }),
72+
run: async function run(payload) {
73+
return { result: payload.query };
74+
},
75+
});
76+
77+
const tool = ai.tool(searchTask);
78+
```
79+
80+
`@trigger.dev/sdk/ai` remains available for backwards compatibility, but `@trigger.dev/ai` is the recommended import path.

0 commit comments

Comments
 (0)