@convex-dev/agent 0.5.0-alpha.1 → 0.6.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +153 -0
- package/README.md +32 -27
- package/dist/UIMessages.d.ts +46 -0
- package/dist/UIMessages.d.ts.map +1 -0
- package/dist/UIMessages.js +546 -0
- package/dist/UIMessages.js.map +1 -0
- package/dist/client/createTool.d.ts +126 -27
- package/dist/client/createTool.d.ts.map +1 -1
- package/dist/client/createTool.js +67 -12
- package/dist/client/createTool.js.map +1 -1
- package/dist/client/defaultComponent.d.ts +11 -0
- package/dist/client/defaultComponent.d.ts.map +1 -0
- package/dist/client/defaultComponent.js +7 -0
- package/dist/client/defaultComponent.js.map +1 -0
- package/dist/client/definePlaygroundAPI.d.ts +1335 -204
- package/dist/client/definePlaygroundAPI.d.ts.map +1 -1
- package/dist/client/definePlaygroundAPI.js +52 -28
- package/dist/client/definePlaygroundAPI.js.map +1 -1
- package/dist/client/files.d.ts +20 -7
- package/dist/client/files.d.ts.map +1 -1
- package/dist/client/files.js +68 -11
- package/dist/client/files.js.map +1 -1
- package/dist/client/index.d.ts +1116 -978
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +332 -747
- package/dist/client/index.js.map +1 -1
- package/dist/client/messages.d.ts +461 -0
- package/dist/client/messages.d.ts.map +1 -0
- package/dist/client/messages.js +106 -0
- package/dist/client/messages.js.map +1 -0
- package/dist/client/mockModel.d.ts +42 -0
- package/dist/client/mockModel.d.ts.map +1 -0
- package/dist/client/mockModel.js +182 -0
- package/dist/client/mockModel.js.map +1 -0
- package/dist/client/saveInputMessages.d.ts +20 -0
- package/dist/client/saveInputMessages.d.ts.map +1 -0
- package/dist/client/saveInputMessages.js +58 -0
- package/dist/client/saveInputMessages.js.map +1 -0
- package/dist/client/search.d.ts +350 -39
- package/dist/client/search.d.ts.map +1 -1
- package/dist/client/search.js +350 -39
- package/dist/client/search.js.map +1 -1
- package/dist/client/start.d.ts +84 -0
- package/dist/client/start.d.ts.map +1 -0
- package/dist/client/start.js +185 -0
- package/dist/client/start.js.map +1 -0
- package/dist/client/streamText.d.ts +46 -0
- package/dist/client/streamText.d.ts.map +1 -0
- package/dist/client/streamText.js +117 -0
- package/dist/client/streamText.js.map +1 -0
- package/dist/client/streaming.d.ts +3716 -32
- package/dist/client/streaming.d.ts.map +1 -1
- package/dist/client/streaming.js +161 -59
- package/dist/client/streaming.js.map +1 -1
- package/dist/client/threads.d.ts +46 -0
- package/dist/client/threads.d.ts.map +1 -0
- package/dist/client/threads.js +49 -0
- package/dist/client/threads.js.map +1 -0
- package/dist/client/types.d.ts +266 -128
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/utils.d.ts +4 -0
- package/dist/client/utils.d.ts.map +1 -0
- package/dist/client/utils.js +21 -0
- package/dist/client/utils.js.map +1 -0
- package/dist/component/_generated/api.d.ts +24 -2178
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js +10 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +3120 -0
- package/dist/component/_generated/component.d.ts.map +1 -0
- package/dist/component/_generated/component.js +11 -0
- package/dist/component/_generated/component.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +4 -18
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +10 -38
- package/dist/component/_generated/server.d.ts.map +1 -1
- package/dist/component/_generated/server.js +9 -5
- package/dist/component/_generated/server.js.map +1 -1
- package/dist/component/files.d.ts +16 -10
- package/dist/component/files.d.ts.map +1 -1
- package/dist/component/files.js +10 -2
- package/dist/component/files.js.map +1 -1
- package/dist/component/messages.d.ts +2578 -366
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +397 -154
- package/dist/component/messages.js.map +1 -1
- package/dist/component/schema.d.ts +5697 -3584
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +18 -41
- package/dist/component/schema.js.map +1 -1
- package/dist/component/streams.d.ts +39 -339
- package/dist/component/streams.d.ts.map +1 -1
- package/dist/component/streams.js +114 -73
- package/dist/component/streams.js.map +1 -1
- package/dist/component/threads.d.ts +13 -13
- package/dist/component/users.d.ts +7 -7
- package/dist/component/vector/index.d.ts +1 -1
- package/dist/component/vector/index.d.ts.map +1 -1
- package/dist/component/vector/index.js +1 -3
- package/dist/component/vector/index.js.map +1 -1
- package/dist/deltas.d.ts +43 -0
- package/dist/deltas.d.ts.map +1 -0
- package/dist/deltas.js +446 -0
- package/dist/deltas.js.map +1 -0
- package/dist/mapping.d.ts +38 -20
- package/dist/mapping.d.ts.map +1 -1
- package/dist/mapping.js +365 -97
- package/dist/mapping.js.map +1 -1
- package/dist/react/SmoothText.d.ts +5 -0
- package/dist/react/SmoothText.d.ts.map +1 -0
- package/dist/react/SmoothText.js +6 -0
- package/dist/react/SmoothText.js.map +1 -0
- package/dist/react/index.d.ts +5 -77
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +6 -160
- package/dist/react/index.js.map +1 -1
- package/dist/react/optimisticallySendMessage.d.ts +36 -3
- package/dist/react/optimisticallySendMessage.d.ts.map +1 -1
- package/dist/react/optimisticallySendMessage.js +35 -9
- package/dist/react/optimisticallySendMessage.js.map +1 -1
- package/dist/react/types.d.ts +4 -18
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/useDeltaStreams.d.ts +10 -0
- package/dist/react/useDeltaStreams.d.ts.map +1 -0
- package/dist/react/useDeltaStreams.js +106 -0
- package/dist/react/useDeltaStreams.js.map +1 -0
- package/dist/react/useSmoothText.d.ts +13 -12
- package/dist/react/useSmoothText.d.ts.map +1 -1
- package/dist/react/useSmoothText.js +32 -15
- package/dist/react/useSmoothText.js.map +1 -1
- package/dist/react/useStreamingUIMessages.d.ts +22 -0
- package/dist/react/useStreamingUIMessages.d.ts.map +1 -0
- package/dist/react/useStreamingUIMessages.js +92 -0
- package/dist/react/useStreamingUIMessages.js.map +1 -0
- package/dist/react/useThreadMessages.d.ts +104 -0
- package/dist/react/useThreadMessages.d.ts.map +1 -0
- package/dist/react/useThreadMessages.js +148 -0
- package/dist/react/useThreadMessages.js.map +1 -0
- package/dist/react/useUIMessages.d.ts +96 -0
- package/dist/react/useUIMessages.d.ts.map +1 -0
- package/dist/react/useUIMessages.js +108 -0
- package/dist/react/useUIMessages.js.map +1 -0
- package/dist/shared.d.ts +20 -4
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +45 -8
- package/dist/shared.js.map +1 -1
- package/dist/validators.d.ts +22981 -5666
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +245 -137
- package/dist/validators.js.map +1 -1
- package/package.json +101 -51
- package/src/UIMessages.combineUIMessages.test.ts +239 -0
- package/src/UIMessages.test.ts +273 -0
- package/src/UIMessages.ts +739 -0
- package/src/client/approval.test.ts +350 -0
- package/src/client/createTool.ts +291 -76
- package/src/client/defaultComponent.ts +17 -0
- package/src/client/definePlaygroundAPI.ts +67 -31
- package/src/client/files.ts +100 -20
- package/src/client/index.test.ts +40 -85
- package/src/client/index.ts +638 -1289
- package/src/client/messages.ts +237 -0
- package/src/client/mockModel.ts +252 -0
- package/src/client/saveInputMessages.test.ts +583 -0
- package/src/client/saveInputMessages.ts +101 -0
- package/src/client/search.test.ts +1207 -0
- package/src/client/search.ts +581 -70
- package/src/client/start.ts +327 -0
- package/src/client/streamText.ts +187 -0
- package/src/client/streaming.test.ts +186 -0
- package/src/client/streaming.ts +241 -97
- package/src/client/threads.ts +83 -0
- package/src/client/types.ts +370 -219
- package/src/client/utils.ts +27 -0
- package/src/component/_generated/api.ts +64 -0
- package/src/component/_generated/component.ts +4902 -0
- package/src/component/_generated/{server.d.ts → server.ts} +33 -21
- package/src/component/files.ts +11 -2
- package/src/component/messages.test.ts +195 -51
- package/src/component/messages.ts +500 -201
- package/src/component/schema.ts +20 -46
- package/src/component/setup.test.ts +7 -0
- package/src/component/streams.ts +184 -83
- package/src/component/users.test.ts +0 -1
- package/src/component/vector/index.ts +1 -3
- package/src/deltas.test.ts +626 -0
- package/src/deltas.ts +569 -0
- package/src/fromUIMessages.test.ts +497 -0
- package/src/mapping.test.ts +180 -6
- package/src/mapping.ts +479 -162
- package/src/react/SmoothText.tsx +9 -0
- package/src/react/index.ts +10 -230
- package/src/react/optimisticallySendMessage.ts +55 -12
- package/src/react/types.ts +6 -39
- package/src/react/useDeltaStreams.ts +160 -0
- package/src/react/useSmoothText.ts +56 -36
- package/src/react/useStreamingUIMessages.ts +143 -0
- package/src/react/useThreadMessages.ts +262 -0
- package/src/react/useUIMessages.test.ts +255 -0
- package/src/react/useUIMessages.ts +195 -0
- package/src/shared.ts +88 -12
- package/src/test.ts +18 -0
- package/src/toUIMessages.test.ts +1269 -0
- package/src/validators.test.ts +18 -19
- package/src/validators.ts +325 -185
- package/dist/client/_generated/_ignore.d.ts +0 -1
- package/dist/client/_generated/_ignore.d.ts.map +0 -1
- package/dist/client/_generated/_ignore.js +0 -3
- package/dist/client/_generated/_ignore.js.map +0 -1
- package/dist/client/listMessages.d.ts +0 -22
- package/dist/client/listMessages.d.ts.map +0 -1
- package/dist/client/listMessages.js +0 -25
- package/dist/client/listMessages.js.map +0 -1
- package/dist/package.json +0 -3
- package/dist/react/deltas.d.ts +0 -26
- package/dist/react/deltas.d.ts.map +0 -1
- package/dist/react/deltas.js +0 -384
- package/dist/react/deltas.js.map +0 -1
- package/dist/react/toUIMessages.d.ts +0 -15
- package/dist/react/toUIMessages.d.ts.map +0 -1
- package/dist/react/toUIMessages.js +0 -211
- package/dist/react/toUIMessages.js.map +0 -1
- package/src/client/listMessages.ts +0 -38
- package/src/component/_generated/api.d.ts +0 -2202
- package/src/component/_generated/api.js +0 -23
- package/src/component/_generated/server.js +0 -90
- package/src/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
- package/src/react/deltas.test.ts +0 -315
- package/src/react/deltas.ts +0 -478
- package/src/react/toUIMessages.test.ts +0 -420
- package/src/react/toUIMessages.ts +0 -253
- package/src/vitest.config.ts +0 -7
- /package/src/component/_generated/{dataModel.d.ts → dataModel.ts} +0 -0
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Migration Guide: v0.3.x to v0.6.0 (AI SDK v6)
|
|
2
|
+
|
|
3
|
+
This guide helps you upgrade from @convex-dev/agent v0.3.x to v0.6.0.
|
|
4
|
+
|
|
5
|
+
## Step 1: Update dependencies
|
|
6
|
+
|
|
7
|
+
Update all AI SDK packages **together** to avoid peer dependency conflicts:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @convex-dev/agent@^0.6.0 ai@^6.0.35 @ai-sdk/provider-utils@^4.0.6
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Official AI SDK providers
|
|
14
|
+
|
|
15
|
+
Update your AI SDK provider packages to v3.x:
|
|
16
|
+
```bash
|
|
17
|
+
# For OpenAI
|
|
18
|
+
npm install @ai-sdk/openai@^3.0.10
|
|
19
|
+
|
|
20
|
+
# For Anthropic
|
|
21
|
+
npm install @ai-sdk/anthropic@^3.0.13
|
|
22
|
+
|
|
23
|
+
# For Groq
|
|
24
|
+
npm install @ai-sdk/groq@^3.0.8
|
|
25
|
+
|
|
26
|
+
# For Google (Gemini)
|
|
27
|
+
npm install @ai-sdk/google@^3.0.8
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Third-party providers
|
|
31
|
+
|
|
32
|
+
Third-party providers also need updates to be compatible with AI SDK v6:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# For OpenRouter
|
|
36
|
+
npm install @openrouter/ai-sdk-provider@^2.0.0
|
|
37
|
+
|
|
38
|
+
# For other providers, check their documentation for AI SDK v6 compatibility
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Handling dependency conflicts
|
|
42
|
+
|
|
43
|
+
If you see peer dependency warnings or errors, try updating all packages at once:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install @convex-dev/agent@^0.6.0 ai@^6.0.35 @ai-sdk/openai@^3.0.10 @openrouter/ai-sdk-provider@^2.0.0
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If you still have conflicts, you can use `--force` as a last resort:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm install @convex-dev/agent@^0.6.0 --force
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> **Note**: Using `--force` can lead to inconsistent dependency trees. After using it, verify your app works correctly and consider running `npm dedupe` to clean up.
|
|
56
|
+
|
|
57
|
+
## Step 2: Update tool definitions
|
|
58
|
+
|
|
59
|
+
Replace `parameters` with `inputSchema`:
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// Before (v5)
|
|
63
|
+
const myTool = createTool({
|
|
64
|
+
description: "My tool",
|
|
65
|
+
parameters: z.object({ query: z.string() }),
|
|
66
|
+
execute: async (ctx, args) => { ... }
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
// After (v6)
|
|
70
|
+
const myTool = createTool({
|
|
71
|
+
description: "My tool",
|
|
72
|
+
inputSchema: z.object({ query: z.string() }),
|
|
73
|
+
execute: async (ctx, input, options) => { ... }
|
|
74
|
+
})
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Step 3: Update Agent config (if using embeddings)
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
// Before
|
|
81
|
+
new Agent(components.agent, {
|
|
82
|
+
textEmbeddingModel: openai.embedding("text-embedding-3-small")
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
// After
|
|
86
|
+
new Agent(components.agent, {
|
|
87
|
+
embeddingModel: openai.embedding("text-embedding-3-small")
|
|
88
|
+
})
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Step 4: Update maxSteps (optional)
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
// Before
|
|
95
|
+
await agent.generateText(ctx, { threadId }, {
|
|
96
|
+
prompt: "...",
|
|
97
|
+
maxSteps: 5
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
// After (maxSteps still works, but stopWhen is preferred)
|
|
101
|
+
import { stepCountIs } from "ai"
|
|
102
|
+
await agent.generateText(ctx, { threadId }, {
|
|
103
|
+
prompt: "...",
|
|
104
|
+
stopWhen: stepCountIs(5)
|
|
105
|
+
})
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Step 5: Verify
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npm run typecheck
|
|
112
|
+
npm test
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Common Issues
|
|
116
|
+
|
|
117
|
+
### EmbeddingModelV2 vs EmbeddingModelV3 type errors
|
|
118
|
+
Ensure all `@ai-sdk/*` packages are updated to v3.x. Older versions use AI SDK v5 types.
|
|
119
|
+
|
|
120
|
+
### Tool `args` vs `input`
|
|
121
|
+
AI SDK v6 renamed `args` to `input` in tool calls. The library maintains backwards compatibility, but you may see this in types.
|
|
122
|
+
|
|
123
|
+
### `mimeType` vs `mediaType`
|
|
124
|
+
AI SDK v6 renamed `mimeType` to `mediaType`. Backwards compatibility is maintained.
|
|
125
|
+
|
|
126
|
+
### Peer dependency conflicts
|
|
127
|
+
|
|
128
|
+
If you see errors like:
|
|
129
|
+
```
|
|
130
|
+
npm error ERESOLVE unable to resolve dependency tree
|
|
131
|
+
npm error peer ai@"^5.0.0" from @openrouter/ai-sdk-provider@1.0.3
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
This means a third-party provider needs updating. Common solutions:
|
|
135
|
+
|
|
136
|
+
1. **Update the provider** to a version compatible with AI SDK v6
|
|
137
|
+
2. **Check npm** for the latest version: `npm view @openrouter/ai-sdk-provider versions`
|
|
138
|
+
3. **Use `--force`** if a compatible version isn't available yet (temporary workaround)
|
|
139
|
+
|
|
140
|
+
### Third-party provider compatibility
|
|
141
|
+
|
|
142
|
+
| Provider | AI SDK v5 (ai@5.x) | AI SDK v6 (ai@6.x) |
|
|
143
|
+
|----------|-------------------|-------------------|
|
|
144
|
+
| @openrouter/ai-sdk-provider | v1.x | v2.x |
|
|
145
|
+
| @ai-sdk/openai | v1.x-v2.x | v3.x |
|
|
146
|
+
| @ai-sdk/anthropic | v1.x-v2.x | v3.x |
|
|
147
|
+
| @ai-sdk/groq | v1.x-v2.x | v3.x |
|
|
148
|
+
| @ai-sdk/google | v1.x-v2.x | v3.x |
|
|
149
|
+
|
|
150
|
+
## More Information
|
|
151
|
+
|
|
152
|
+
- [AI SDK v6 Migration Guide](https://ai-sdk.dev/docs/migration-guides/migration-guide-6-0)
|
|
153
|
+
- [Convex Agent Documentation](https://docs.convex.dev/agents)
|
package/README.md
CHANGED
|
@@ -21,34 +21,39 @@ The Agent component is a core building block for building AI agents. It manages
|
|
|
21
21
|
threads and messages, around which you Agents can cooperate in static or dynamic
|
|
22
22
|
workflows.
|
|
23
23
|
|
|
24
|
-
- [Agents](
|
|
25
|
-
represent units of use-case-specific prompting with
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
[
|
|
24
|
+
- [Agents](https://docs.convex.dev/agents/agent-usage) provide an abstraction
|
|
25
|
+
for using LLMs to represent units of use-case-specific prompting with
|
|
26
|
+
associated models, prompts,
|
|
27
|
+
[Tool Calls](https://docs.convex.dev/agents/tools), and behavior in relation
|
|
28
|
+
to other Agents, functions, APIs, and more.
|
|
29
|
+
- [Threads](https://docs.convex.dev/agents/threads) persist
|
|
30
|
+
[messages](https://docs.convex.dev/agents/messages) and can be shared by
|
|
31
|
+
multiple users and agents (including
|
|
32
|
+
[human agents](https://docs.convex.dev/agents/human-agents)).
|
|
31
33
|
- Streaming text and objects using deltas over websockets so all clients stay in
|
|
32
34
|
sync efficiently, without http streaming. Enables streaming from async
|
|
33
35
|
functions.
|
|
34
|
-
- [Conversation context](
|
|
35
|
-
LLM call, including built-in hybrid vector/text
|
|
36
|
-
thread and opt-in search for messages from other
|
|
37
|
-
specified user).
|
|
38
|
-
- [RAG](
|
|
39
|
-
other sources, either up front in the prompt or as tool
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- [
|
|
36
|
+
- [Conversation context](https://docs.convex.dev/agents/context) is
|
|
37
|
+
automatically included in each LLM call, including built-in hybrid vector/text
|
|
38
|
+
search for messages in the thread and opt-in search for messages from other
|
|
39
|
+
threads (for the same specified user).
|
|
40
|
+
- [RAG](https://docs.convex.dev/agents/rag) techniques are supported for prompt
|
|
41
|
+
augmentation from other sources, either up front in the prompt or as tool
|
|
42
|
+
calls. Integrates with the
|
|
43
|
+
[RAG Component](https://www.convex.dev/components/rag), or DIY.
|
|
44
|
+
- [Workflows](https://docs.convex.dev/agents/workflows) allow building
|
|
45
|
+
multi-step operations that can span agents, users, durably and reliably.
|
|
46
|
+
- [Files](https://docs.convex.dev/agents/files) are supported in thread history
|
|
47
|
+
with automatic saving to [file storage](https://docs.convex.dev/file-storage)
|
|
48
|
+
and ref-counting.
|
|
49
|
+
- [Debugging](https://docs.convex.dev/agents/debugging) is enabled by callbacks,
|
|
50
|
+
the [agent playground](https://docs.convex.dev/agents/playground) where you
|
|
51
|
+
can inspect all metadata and iterate on prompts and context settings, and
|
|
52
|
+
inspection in the dashboard.
|
|
53
|
+
- [Usage tracking](https://docs.convex.dev/agents/usage-tracking) is easy to set
|
|
54
|
+
up, enabling usage attribution per-provider, per-model, per-user, per-agent,
|
|
55
|
+
for billing & more.
|
|
56
|
+
- [Rate limiting](https://docs.convex.dev/agents/rate-limiting), powered by the
|
|
52
57
|
[Rate Limiter Component](https://www.convex.dev/components/rate-limiter),
|
|
53
58
|
helps control the rate at which users can interact with agents and keep you
|
|
54
59
|
from exceeding your LLM provider's limits.
|
|
@@ -58,13 +63,13 @@ workflows.
|
|
|
58
63
|
[](https://youtu.be/tUKMPUlOCHY)
|
|
59
64
|
**Read the [docs](https://docs.convex.dev/agents) for more details.**
|
|
60
65
|
|
|
61
|
-
Play with the
|
|
66
|
+
Play with the example:
|
|
62
67
|
|
|
63
68
|
```sh
|
|
64
69
|
git clone https://github.com/get-convex/agent.git
|
|
65
70
|
cd agent
|
|
66
71
|
npm run setup
|
|
67
|
-
npm run
|
|
72
|
+
npm run dev
|
|
68
73
|
```
|
|
69
74
|
|
|
70
75
|
Found a bug? Feature request?
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type UIMessage as AIUIMessage, type UIDataTypes, type UITools } from "ai";
|
|
2
|
+
import type { MessageDoc, MessageStatus, ProviderOptions } from "./validators.js";
|
|
3
|
+
export type UIStatus = "streaming" | MessageStatus;
|
|
4
|
+
export type UIMessage<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools> = AIUIMessage<METADATA, DATA_PARTS, TOOLS> & {
|
|
5
|
+
key: string;
|
|
6
|
+
order: number;
|
|
7
|
+
stepOrder: number;
|
|
8
|
+
status: UIStatus;
|
|
9
|
+
agentName?: string;
|
|
10
|
+
userId?: string;
|
|
11
|
+
text: string;
|
|
12
|
+
_creationTime: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Converts a list of UIMessages to MessageDocs, along with extra metadata that
|
|
16
|
+
* may be available to associate with the MessageDocs.
|
|
17
|
+
* @param messages - The UIMessages to convert to MessageDocs.
|
|
18
|
+
* @param meta - The metadata to add to the MessageDocs.
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare function fromUIMessages<METADATA = unknown>(messages: UIMessage<METADATA>[], meta: {
|
|
22
|
+
threadId: string;
|
|
23
|
+
userId?: string;
|
|
24
|
+
model?: string;
|
|
25
|
+
provider?: string;
|
|
26
|
+
providerOptions?: ProviderOptions;
|
|
27
|
+
metadata?: METADATA;
|
|
28
|
+
}): Promise<(MessageDoc & {
|
|
29
|
+
streaming: boolean;
|
|
30
|
+
metadata?: METADATA;
|
|
31
|
+
})[]>;
|
|
32
|
+
type ExtraFields<METADATA = unknown> = {
|
|
33
|
+
streaming?: boolean;
|
|
34
|
+
metadata?: METADATA;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Converts a list of MessageDocs to UIMessages.
|
|
38
|
+
* This is somewhat lossy, as many fields are not supported by UIMessages, e.g.
|
|
39
|
+
* the model, provider, userId, etc.
|
|
40
|
+
* The UIMessage type is the augmented type that includes more fields such as
|
|
41
|
+
* key, order, stepOrder, status, agentName, text, etc.
|
|
42
|
+
*/
|
|
43
|
+
export declare function toUIMessages<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools>(messages: (MessageDoc & ExtraFields<METADATA>)[]): UIMessage<METADATA, DATA_PARTS, TOOLS>[];
|
|
44
|
+
export declare function combineUIMessages(messages: UIMessage[]): UIMessage[];
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=UIMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIMessages.d.ts","sourceRoot":"","sources":["../src/UIMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,IAAI,WAAW,EAU7B,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,IAAI,CAAC;AAUZ,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,SAAS,CACnB,QAAQ,GAAG,OAAO,EAClB,UAAU,SAAS,WAAW,GAAG,WAAW,EAC5C,KAAK,SAAS,OAAO,GAAG,OAAO,IAC7B,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,QAAQ,GAAG,OAAO,EACrD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAC/B,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACA,OAAO,CAAC,CAAC,UAAU,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,EAAE,CAAC,CAiEvE;AA8BD,KAAK,WAAW,CAAC,QAAQ,GAAG,OAAO,IAAI;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,GAAG,OAAO,EAClB,UAAU,SAAS,WAAW,GAAG,WAAW,EAC5C,KAAK,SAAS,OAAO,GAAG,OAAO,EAE/B,QAAQ,EAAE,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,GAC/C,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAiB1C;AA+dD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CA2CpE"}
|