@convex-dev/agent 0.2.0-alpha.2 → 0.2.0
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/dist/client/createTool.d.ts +3 -5
- package/dist/client/createTool.d.ts.map +1 -1
- package/dist/client/createTool.js +0 -1
- package/dist/client/createTool.js.map +1 -1
- package/dist/client/definePlaygroundAPI.d.ts +28 -28
- package/dist/client/files.d.ts +8 -1
- package/dist/client/files.d.ts.map +1 -1
- package/dist/client/files.js +60 -5
- package/dist/client/files.js.map +1 -1
- package/dist/client/index.d.ts +223 -239
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +368 -382
- package/dist/client/index.js.map +1 -1
- package/dist/client/messages.d.ts +91 -373
- package/dist/client/messages.d.ts.map +1 -1
- package/dist/client/messages.js +7 -1
- package/dist/client/messages.js.map +1 -1
- package/dist/client/search.d.ts +15 -15
- package/dist/client/search.d.ts.map +1 -1
- package/dist/client/search.js +3 -3
- package/dist/client/search.js.map +1 -1
- package/dist/client/streaming.d.ts +21 -22
- package/dist/client/streaming.d.ts.map +1 -1
- package/dist/client/streaming.js +35 -40
- package/dist/client/streaming.js.map +1 -1
- package/dist/client/types.d.ts +148 -61
- package/dist/client/types.d.ts.map +1 -1
- package/dist/component/_generated/api.d.ts +47 -357
- package/dist/component/messages.d.ts +157 -150
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +124 -70
- package/dist/component/messages.js.map +1 -1
- package/dist/component/schema.d.ts +1147 -2687
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +5 -4
- package/dist/component/schema.js.map +1 -1
- package/dist/component/streams.d.ts +29 -323
- package/dist/component/streams.d.ts.map +1 -1
- package/dist/component/streams.js +104 -60
- package/dist/component/streams.js.map +1 -1
- package/dist/component/threads.d.ts +4 -4
- package/dist/component/users.d.ts +3 -3
- package/dist/mapping.d.ts +4 -1
- package/dist/mapping.d.ts.map +1 -1
- package/dist/mapping.js +17 -1
- package/dist/mapping.js.map +1 -1
- package/dist/parts.d.ts +3 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +34 -0
- package/dist/parts.js.map +1 -0
- 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/deltas.d.ts +3 -2
- package/dist/react/deltas.d.ts.map +1 -1
- package/dist/react/deltas.js +19 -79
- package/dist/react/deltas.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +31 -11
- package/dist/react/index.js.map +1 -1
- package/dist/react/optimisticallySendMessage.d.ts.map +1 -1
- package/dist/react/optimisticallySendMessage.js +2 -8
- package/dist/react/optimisticallySendMessage.js.map +1 -1
- package/dist/react/useSmoothText.d.ts +13 -12
- package/dist/react/useSmoothText.d.ts.map +1 -1
- package/dist/react/useSmoothText.js +1 -1
- package/dist/react/useSmoothText.js.map +1 -1
- package/dist/validators.d.ts +109 -1590
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +4 -81
- package/dist/validators.js.map +1 -1
- package/package.json +3 -3
- package/src/client/createTool.ts +4 -9
- package/src/client/files.ts +88 -10
- package/src/client/index.test.ts +9 -21
- package/src/client/index.ts +664 -650
- package/src/client/messages.ts +16 -2
- package/src/client/search.ts +10 -7
- package/src/client/streaming.ts +53 -57
- package/src/client/types.ts +227 -97
- package/src/component/_generated/api.d.ts +47 -357
- package/src/component/messages.ts +157 -96
- package/src/component/schema.ts +4 -4
- package/src/component/streams.ts +180 -69
- package/src/mapping.ts +23 -2
- package/src/parts.ts +39 -0
- package/src/react/SmoothText.tsx +9 -0
- package/src/react/deltas.test.ts +38 -42
- package/src/react/deltas.ts +24 -86
- package/src/react/index.ts +35 -13
- package/src/react/optimisticallySendMessage.ts +2 -8
- package/src/react/useSmoothText.ts +14 -15
- package/src/validators.test.ts +0 -17
- package/src/validators.ts +8 -101
package/dist/client/search.js
CHANGED
|
@@ -47,7 +47,7 @@ export async function fetchContextMessages(ctx, component, args) {
|
|
|
47
47
|
if (opts.searchOptions?.vectorSearch && !args.getEmbedding) {
|
|
48
48
|
throw new Error("You must provide an embedding and embeddingModel to use vector search");
|
|
49
49
|
}
|
|
50
|
-
const embeddingFields = opts.searchOptions?.vectorSearch
|
|
50
|
+
const embeddingFields = opts.searchOptions?.vectorSearch && text
|
|
51
51
|
? await args.getEmbedding?.(text)
|
|
52
52
|
: undefined;
|
|
53
53
|
const searchMessages = await ctx.runAction(component.messages.searchMessages, {
|
|
@@ -69,8 +69,8 @@ export async function fetchContextMessages(ctx, component, args) {
|
|
|
69
69
|
vectorScoreThreshold: opts.searchOptions?.vectorScoreThreshold ??
|
|
70
70
|
DEFAULT_VECTOR_SCORE_THRESHOLD,
|
|
71
71
|
embedding: embeddingFields?.embedding,
|
|
72
|
-
embeddingModel: embeddingFields?.
|
|
73
|
-
? getModelName(embeddingFields.
|
|
72
|
+
embeddingModel: embeddingFields?.textEmbeddingModel
|
|
73
|
+
? getModelName(embeddingFields.textEmbeddingModel)
|
|
74
74
|
: undefined,
|
|
75
75
|
});
|
|
76
76
|
// TODO: track what messages we used for context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,cAAc,CAAC;AAGtB,MAAM,8BAA8B,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { type ChunkDetector, type StreamTextTransform, type ToolSet } from "ai";
|
|
2
|
-
import type { ProviderOptions, StreamArgs, StreamMessage
|
|
3
|
-
import type { MessageDoc } from "../component/schema.js";
|
|
1
|
+
import { type ChunkDetector, type StreamTextTransform, type TextStreamPart, type ToolSet } from "ai";
|
|
2
|
+
import type { ProviderOptions, StreamArgs, StreamMessage } from "../validators.js";
|
|
4
3
|
import type { AgentComponent, RunActionCtx, RunMutationCtx, RunQueryCtx, SyncStreamsReturnValue } from "./types.js";
|
|
5
|
-
import type { Infer } from "convex/values";
|
|
6
4
|
/**
|
|
7
5
|
* A function that handles fetching stream deltas, used with the React hooks
|
|
8
6
|
* `useThreadMessages` or `useStreamingThreadMessages`.
|
|
@@ -65,30 +63,31 @@ export declare class DeltaStreamer {
|
|
|
65
63
|
readonly ctx: RunActionCtx;
|
|
66
64
|
readonly metadata: {
|
|
67
65
|
threadId: string;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
abortSignal
|
|
66
|
+
userId?: string;
|
|
67
|
+
order: number;
|
|
68
|
+
stepOrder: number;
|
|
69
|
+
agentName?: string;
|
|
70
|
+
model?: string;
|
|
71
|
+
provider?: string;
|
|
72
|
+
providerOptions?: ProviderOptions;
|
|
73
|
+
abortSignal?: AbortSignal;
|
|
76
74
|
};
|
|
77
75
|
streamId: string | undefined;
|
|
78
76
|
readonly options: Required<StreamingOptions>;
|
|
79
77
|
abortController: AbortController;
|
|
80
78
|
constructor(component: AgentComponent, ctx: RunActionCtx, options: true | StreamingOptions, metadata: {
|
|
81
79
|
threadId: string;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
abortSignal
|
|
80
|
+
userId?: string;
|
|
81
|
+
order: number;
|
|
82
|
+
stepOrder: number;
|
|
83
|
+
agentName?: string;
|
|
84
|
+
model?: string;
|
|
85
|
+
provider?: string;
|
|
86
|
+
providerOptions?: ProviderOptions;
|
|
87
|
+
abortSignal?: AbortSignal;
|
|
90
88
|
});
|
|
91
|
-
addParts(parts:
|
|
92
|
-
finish(
|
|
89
|
+
addParts(parts: TextStreamPart<ToolSet>[]): Promise<void>;
|
|
90
|
+
finish(): Promise<void>;
|
|
91
|
+
fail(reason: string): Promise<void>;
|
|
93
92
|
}
|
|
94
93
|
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACb,MAAM,IAAI,CAAC;AACZ,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EAEV,aAAa,
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"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"}
|
package/dist/client/streaming.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { smoothStream, } from "ai";
|
|
2
2
|
import { omit } from "convex-helpers";
|
|
3
|
+
import { serializeTextStreamingPartsV5 } from "../parts.js";
|
|
3
4
|
/**
|
|
4
5
|
* A function that handles fetching stream deltas, used with the React hooks
|
|
5
6
|
* `useThreadMessages` or `useStreamingThreadMessages`.
|
|
@@ -90,8 +91,6 @@ export class DeltaStreamer {
|
|
|
90
91
|
streamId;
|
|
91
92
|
options;
|
|
92
93
|
#nextParts = [];
|
|
93
|
-
#nextOrder;
|
|
94
|
-
#nextStepOrder;
|
|
95
94
|
#latestWrite = 0;
|
|
96
95
|
#ongoingWrite;
|
|
97
96
|
#cursor = 0;
|
|
@@ -103,23 +102,21 @@ export class DeltaStreamer {
|
|
|
103
102
|
this.options =
|
|
104
103
|
typeof options === "boolean"
|
|
105
104
|
? DEFAULT_STREAMING_OPTIONS
|
|
106
|
-
: {
|
|
107
|
-
...DEFAULT_STREAMING_OPTIONS,
|
|
108
|
-
...options,
|
|
109
|
-
};
|
|
105
|
+
: { ...DEFAULT_STREAMING_OPTIONS, ...options };
|
|
110
106
|
this.#nextParts = [];
|
|
111
|
-
this.#nextOrder = metadata.order ?? 0;
|
|
112
|
-
this.#nextStepOrder = (metadata.stepOrder ?? 0) + 1;
|
|
113
107
|
this.abortController = new AbortController();
|
|
114
108
|
if (metadata.abortSignal) {
|
|
115
109
|
metadata.abortSignal.addEventListener("abort", async () => {
|
|
116
110
|
if (this.streamId) {
|
|
111
|
+
this.abortController.abort();
|
|
112
|
+
const finalDelta = this.#createDelta();
|
|
113
|
+
await this.#ongoingWrite;
|
|
117
114
|
await this.ctx.runMutation(this.component.streams.abort, {
|
|
118
115
|
streamId: this.streamId,
|
|
119
116
|
reason: "abortSignal",
|
|
117
|
+
finalDelta,
|
|
120
118
|
});
|
|
121
119
|
}
|
|
122
|
-
this.abortController.abort();
|
|
123
120
|
});
|
|
124
121
|
}
|
|
125
122
|
}
|
|
@@ -128,11 +125,7 @@ export class DeltaStreamer {
|
|
|
128
125
|
return;
|
|
129
126
|
}
|
|
130
127
|
if (!this.streamId) {
|
|
131
|
-
this.streamId = await this.ctx.runMutation(this.component.streams.create,
|
|
132
|
-
...omit(this.metadata, ["abortSignal"]),
|
|
133
|
-
order: this.#nextOrder,
|
|
134
|
-
stepOrder: this.#nextStepOrder,
|
|
135
|
-
});
|
|
128
|
+
this.streamId = await this.ctx.runMutation(this.component.streams.create, omit(this.metadata, ["abortSignal"]));
|
|
136
129
|
}
|
|
137
130
|
this.#nextParts.push(...parts);
|
|
138
131
|
if (!this.#ongoingWrite &&
|
|
@@ -145,6 +138,9 @@ export class DeltaStreamer {
|
|
|
145
138
|
return;
|
|
146
139
|
}
|
|
147
140
|
const delta = this.#createDelta();
|
|
141
|
+
if (!delta) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
148
144
|
this.#latestWrite = Date.now();
|
|
149
145
|
try {
|
|
150
146
|
const success = await this.ctx.runMutation(this.component.streams.addDelta, delta);
|
|
@@ -167,44 +163,43 @@ export class DeltaStreamer {
|
|
|
167
163
|
}
|
|
168
164
|
}
|
|
169
165
|
#createDelta() {
|
|
166
|
+
if (this.#nextParts.length === 0) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
170
169
|
const start = this.#cursor;
|
|
171
170
|
const end = start + this.#nextParts.length;
|
|
172
171
|
this.#cursor = end;
|
|
173
|
-
const parts = this.#nextParts;
|
|
172
|
+
const parts = serializeTextStreamingPartsV5(this.#nextParts);
|
|
174
173
|
this.#nextParts = [];
|
|
175
174
|
if (!this.streamId) {
|
|
176
175
|
throw new Error("Creating a delta before the stream is created");
|
|
177
176
|
}
|
|
178
|
-
return {
|
|
179
|
-
streamId: this.streamId,
|
|
180
|
-
start,
|
|
181
|
-
end,
|
|
182
|
-
parts,
|
|
183
|
-
};
|
|
177
|
+
return { streamId: this.streamId, start, end, parts };
|
|
184
178
|
}
|
|
185
|
-
async finish(
|
|
186
|
-
if (this.#ongoingWrite) {
|
|
187
|
-
await this.#ongoingWrite;
|
|
188
|
-
this.#ongoingWrite = undefined;
|
|
189
|
-
}
|
|
179
|
+
async finish() {
|
|
190
180
|
if (!this.streamId) {
|
|
191
|
-
|
|
181
|
+
return;
|
|
192
182
|
}
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
this
|
|
183
|
+
const finalDelta = this.#createDelta();
|
|
184
|
+
await this.#ongoingWrite;
|
|
185
|
+
await this.ctx.runMutation(this.component.streams.finish, {
|
|
186
|
+
streamId: this.streamId,
|
|
187
|
+
finalDelta,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
async fail(reason) {
|
|
191
|
+
if (this.abortController.signal.aborted) {
|
|
192
|
+
return;
|
|
197
193
|
}
|
|
198
|
-
|
|
199
|
-
|
|
194
|
+
this.abortController.abort();
|
|
195
|
+
if (!this.streamId) {
|
|
196
|
+
return;
|
|
200
197
|
}
|
|
201
|
-
const finalDelta = this.#
|
|
202
|
-
this.#
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
await this.ctx.runMutation(this.component.streams.finish, {
|
|
207
|
-
streamId,
|
|
198
|
+
const finalDelta = this.#createDelta();
|
|
199
|
+
await this.#ongoingWrite;
|
|
200
|
+
await this.ctx.runMutation(this.component.streams.abort, {
|
|
201
|
+
streamId: this.streamId,
|
|
202
|
+
reason,
|
|
208
203
|
finalDelta,
|
|
209
204
|
});
|
|
210
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"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"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import type { InferSchema, ProviderOptions, Schema } from "@ai-sdk/provider-utils";
|
|
2
|
+
import type { JSONValue } from "@ai-sdk/provider";
|
|
3
|
+
import type { GenerateObjectResult, generateText, GenerateTextResult, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModel, streamObject, streamText, StreamTextResult, ToolChoice, ToolSet, RepairTextFunction, TelemetrySettings, CallSettings, Prompt } from "ai";
|
|
4
|
+
import type { Auth, Expand, FunctionArgs, FunctionReference, FunctionReturnType, GenericActionCtx, GenericDataModel, StorageActionWriter, StorageReader, WithoutSystemFields } from "convex/server";
|
|
4
5
|
import type { GenericId } from "convex/values";
|
|
5
|
-
import type { z } from "zod/v3";
|
|
6
6
|
import type { Mounts } from "../component/_generated/api.js";
|
|
7
7
|
import type { MessageDoc, ThreadDoc } from "../component/schema.js";
|
|
8
|
-
import type {
|
|
8
|
+
import type { ProviderMetadata, StreamDelta, StreamMessage } from "../validators.js";
|
|
9
9
|
import type { StreamingOptions } from "./streaming.js";
|
|
10
|
+
import type * as z3 from "zod/v3";
|
|
11
|
+
import type * as z4 from "zod/v4";
|
|
10
12
|
/**
|
|
11
13
|
* Options to configure what messages are fetched as context,
|
|
12
14
|
* automatically with thread.generateText, or directly via search.
|
|
@@ -82,16 +84,23 @@ export type GenerationOutputMetadata = {
|
|
|
82
84
|
/**
|
|
83
85
|
* The ID of the prompt message for the generation.
|
|
84
86
|
*/
|
|
85
|
-
|
|
87
|
+
promptMessageId?: string;
|
|
86
88
|
/**
|
|
87
|
-
* The order of the prompt message for the generation.
|
|
89
|
+
* The order of the prompt message and responses for the generation.
|
|
90
|
+
* Each order starts with a user message, then followed by agent responses.
|
|
91
|
+
* If a promptMessageId is provided, that dictates the order.
|
|
88
92
|
*/
|
|
89
93
|
order?: number;
|
|
90
94
|
/**
|
|
91
95
|
* The messages saved for the generation - both saved input and output.
|
|
92
96
|
* If you passed promptMessageId, it will not include that message.
|
|
93
97
|
*/
|
|
94
|
-
|
|
98
|
+
savedMessages?: MessageDoc[];
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use promptMessageId instead.
|
|
101
|
+
* The ID of the prompt message for the generation.
|
|
102
|
+
*/
|
|
103
|
+
messageId?: string;
|
|
95
104
|
};
|
|
96
105
|
export type UsageHandler = (ctx: RunActionCtx, args: {
|
|
97
106
|
userId: string | undefined;
|
|
@@ -122,7 +131,7 @@ export type TextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet | undefin
|
|
|
122
131
|
* The model to use for the LLM calls. This will override the model specified
|
|
123
132
|
* in the Agent constructor.
|
|
124
133
|
*/
|
|
125
|
-
model?:
|
|
134
|
+
model?: LanguageModel;
|
|
126
135
|
/**
|
|
127
136
|
* The tools to use for the tool calls. This will override tools specified
|
|
128
137
|
* in the Agent constructor or createThread / continueThread.
|
|
@@ -146,7 +155,7 @@ export type StreamingTextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet
|
|
|
146
155
|
* The model to use for the tool calls. This will override the model specified
|
|
147
156
|
* in the Agent constructor.
|
|
148
157
|
*/
|
|
149
|
-
model?:
|
|
158
|
+
model?: LanguageModel;
|
|
150
159
|
/**
|
|
151
160
|
* The tools to use for the tool calls. This will override tools specified
|
|
152
161
|
* in the Agent constructor or createThread / continueThread.
|
|
@@ -158,63 +167,106 @@ export type StreamingTextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet
|
|
|
158
167
|
*/
|
|
159
168
|
toolChoice?: ToolChoice<TOOLS extends undefined ? AgentTools : TOOLS>;
|
|
160
169
|
};
|
|
161
|
-
type
|
|
170
|
+
export type ObjectMode = "object" | "array" | "enum" | "no-schema";
|
|
171
|
+
export type ObjectSchema = z3.Schema | z4.core.$ZodType | Schema;
|
|
172
|
+
export type DefaultObjectSchema = z4.core.$ZodType<JSONValue>;
|
|
173
|
+
/**
|
|
174
|
+
* Due to some issues with the type inference of the ai sdk, we need to
|
|
175
|
+
* manually type the arguments for the generateObject function.
|
|
176
|
+
* This is a workaround to allow the model to be optional.
|
|
177
|
+
*/
|
|
178
|
+
export type GenerateObjectArgs<SCHEMA extends ObjectSchema = DefaultObjectSchema, OUTPUT extends ObjectMode = InferSchema<SCHEMA> extends string ? "enum" : "object", RESULT = OUTPUT extends "array" ? Array<InferSchema<SCHEMA>> : InferSchema<SCHEMA>> = Omit<CallSettings, "stopSequences"> & Prompt & (OUTPUT extends "enum" ? {
|
|
162
179
|
/**
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
180
|
+
The enum values that the model should use.
|
|
181
|
+
*/
|
|
182
|
+
enum: Array<RESULT>;
|
|
183
|
+
mode?: "json";
|
|
184
|
+
output: "enum";
|
|
185
|
+
} : OUTPUT extends "no-schema" ? {} : {
|
|
167
186
|
/**
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
system?: string;
|
|
187
|
+
The schema of the object that the model should generate.
|
|
188
|
+
*/
|
|
189
|
+
schema: SCHEMA;
|
|
172
190
|
/**
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
191
|
+
Optional name of the output that should be generated.
|
|
192
|
+
Used by some providers for additional LLM guidance, e.g.
|
|
193
|
+
via tool or schema name.
|
|
194
|
+
*/
|
|
195
|
+
schemaName?: string;
|
|
177
196
|
/**
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
197
|
+
Optional description of the output that should be generated.
|
|
198
|
+
Used by some providers for additional LLM guidance, e.g.
|
|
199
|
+
via tool or schema description.
|
|
200
|
+
*/
|
|
201
|
+
schemaDescription?: string;
|
|
183
202
|
/**
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
203
|
+
The mode to use for object generation.
|
|
204
|
+
|
|
205
|
+
The schema is converted into a JSON schema and used in one of the following ways
|
|
206
|
+
|
|
207
|
+
- 'auto': The provider will choose the best mode for the model.
|
|
208
|
+
- 'tool': A tool with the JSON schema as parameters is provided and the provider is instructed to use it.
|
|
209
|
+
- 'json': The JSON schema and an instruction are injected into the prompt. If the provider supports JSON mode, it is enabled. If the provider supports JSON grammars, the grammar is used.
|
|
210
|
+
|
|
211
|
+
Please note that most providers do not support all modes.
|
|
212
|
+
|
|
213
|
+
Default and recommended: 'auto' (best mode for the model).
|
|
214
|
+
*/
|
|
215
|
+
mode?: "auto" | "json" | "tool";
|
|
216
|
+
}) & {
|
|
217
|
+
output?: OUTPUT;
|
|
218
|
+
/**
|
|
219
|
+
The language model to use.
|
|
220
|
+
*/
|
|
221
|
+
model?: LanguageModel;
|
|
222
|
+
/**
|
|
223
|
+
A function that attempts to repair the raw output of the model
|
|
224
|
+
to enable JSON parsing.
|
|
225
|
+
*/
|
|
190
226
|
experimental_repairText?: RepairTextFunction;
|
|
227
|
+
/**
|
|
228
|
+
Optional telemetry configuration (experimental).
|
|
229
|
+
*/
|
|
191
230
|
experimental_telemetry?: TelemetrySettings;
|
|
231
|
+
/**
|
|
232
|
+
Additional provider-specific options. They are passed through
|
|
233
|
+
to the provider from the AI SDK and enable provider-specific
|
|
234
|
+
functionality that can be fully encapsulated in the provider.
|
|
235
|
+
*/
|
|
192
236
|
providerOptions?: ProviderOptions;
|
|
193
|
-
|
|
237
|
+
/**
|
|
238
|
+
* Internal. For test use only. May change without notice.
|
|
239
|
+
*/
|
|
240
|
+
_internal?: {
|
|
241
|
+
generateId?: () => string;
|
|
242
|
+
currentDate?: () => Date;
|
|
243
|
+
};
|
|
194
244
|
};
|
|
195
|
-
type
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
245
|
+
export type StreamObjectArgs<SCHEMA extends ObjectSchema = DefaultObjectSchema, OUTPUT extends ObjectMode = InferSchema<SCHEMA> extends string ? "enum" : "object", RESULT = OUTPUT extends "array" ? Array<InferSchema<SCHEMA>> : InferSchema<SCHEMA>> = GenerateObjectArgs<SCHEMA, OUTPUT, RESULT> & Pick<Parameters<typeof streamObject<SCHEMA, OUTPUT, RESULT>>[0], "onError" | "onFinish" | "_internal">;
|
|
246
|
+
export type MaybeCustomCtx<CustomCtx, DataModel extends GenericDataModel, AgentTools extends ToolSet> = CustomCtx extends Record<string, unknown> ? {
|
|
247
|
+
/**
|
|
248
|
+
* If you have a custom ctx that you use with the Agent
|
|
249
|
+
* (e.g. new Agent<{ orgId: string }>(...))
|
|
250
|
+
* you need to provide this function to add any extra fields.
|
|
251
|
+
* e.g.
|
|
252
|
+
* ```ts
|
|
253
|
+
* const myAgent = new Agent<{ orgId: string }>(...);
|
|
254
|
+
* const myAction = myAgent.asTextAction({
|
|
255
|
+
* customCtx: (ctx: ActionCtx, target, llmArgs) => {
|
|
256
|
+
* const orgId = await lookupOrgId(ctx, target.threadId);
|
|
257
|
+
* return { orgId };
|
|
258
|
+
* },
|
|
259
|
+
* });
|
|
260
|
+
* ```
|
|
261
|
+
* Then, in your tools, you can
|
|
262
|
+
*/
|
|
263
|
+
customCtx: (ctx: GenericActionCtx<DataModel>, target: {
|
|
264
|
+
userId?: string | undefined;
|
|
265
|
+
threadId?: string | undefined;
|
|
266
|
+
}, llmArgs: TextArgs<AgentTools>) => CustomCtx;
|
|
267
|
+
} : {
|
|
268
|
+
customCtx?: never;
|
|
201
269
|
};
|
|
202
|
-
type GenerateObjectArgs<T> = BaseGenerateObjectOptions & (StandardGenerateObjectOptions<T> | {
|
|
203
|
-
output: "enum";
|
|
204
|
-
enum: Array<T>;
|
|
205
|
-
mode?: "auto" | "json" | "tool";
|
|
206
|
-
} | {
|
|
207
|
-
output: "any";
|
|
208
|
-
schema: undefined;
|
|
209
|
-
mode: "json";
|
|
210
|
-
});
|
|
211
|
-
type StreamObjectArgs<T> = BaseGenerateObjectOptions & (StandardGenerateObjectOptions<T> | {
|
|
212
|
-
output: "any";
|
|
213
|
-
schema: undefined;
|
|
214
|
-
mode: "json";
|
|
215
|
-
});
|
|
216
|
-
export type OurObjectArgs<T> = GenerateObjectArgs<T> & Pick<Parameters<typeof generateObject<any>>[0], "experimental_repairText" | "abortSignal">;
|
|
217
|
-
export type OurStreamObjectArgs<T extends Schema | z.Schema> = StreamObjectArgs<T> & Pick<Parameters<typeof streamObject<T>>[0], "onError" | "onFinish" | "abortSignal">;
|
|
218
270
|
type ThreadOutputMetadata = Required<GenerationOutputMetadata>;
|
|
219
271
|
/**
|
|
220
272
|
* The interface for a thread returned from {@link createThread} or {@link continueThread}.
|
|
@@ -243,7 +295,7 @@ export interface Thread<DefaultTools extends ToolSet> {
|
|
|
243
295
|
* for the {@link ContextOptions} and {@link StorageOptions}.
|
|
244
296
|
* @returns The result of the generateText function.
|
|
245
297
|
*/
|
|
246
|
-
generateText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, OUTPUT_PARTIAL = never>(
|
|
298
|
+
generateText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, OUTPUT_PARTIAL = never>(generateTextArgs: TextArgs<TOOLS extends undefined ? DefaultTools : TOOLS, TOOLS, OUTPUT, OUTPUT_PARTIAL>, options?: Options): Promise<GenerateTextResult<TOOLS extends undefined ? DefaultTools : TOOLS, OUTPUT> & ThreadOutputMetadata>;
|
|
247
299
|
/**
|
|
248
300
|
* This behaves like {@link streamText} from the "ai" package except that
|
|
249
301
|
* it add context based on the userId and threadId and saves the input and
|
|
@@ -254,7 +306,7 @@ export interface Thread<DefaultTools extends ToolSet> {
|
|
|
254
306
|
* for the {@link ContextOptions} and {@link StorageOptions}.
|
|
255
307
|
* @returns The result of the streamText function.
|
|
256
308
|
*/
|
|
257
|
-
streamText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, PARTIAL_OUTPUT = never>(
|
|
309
|
+
streamText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, PARTIAL_OUTPUT = never>(streamTextArgs: StreamingTextArgs<TOOLS extends undefined ? DefaultTools : TOOLS, TOOLS, OUTPUT, PARTIAL_OUTPUT>, options?: Options & {
|
|
258
310
|
/**
|
|
259
311
|
* Whether to save incremental data (deltas) from streaming responses.
|
|
260
312
|
* Defaults to false.
|
|
@@ -277,7 +329,20 @@ export interface Thread<DefaultTools extends ToolSet> {
|
|
|
277
329
|
* for the {@link ContextOptions} and {@link StorageOptions}.
|
|
278
330
|
* @returns The result of the generateObject function.
|
|
279
331
|
*/
|
|
280
|
-
generateObject<
|
|
332
|
+
generateObject<SCHEMA extends ObjectSchema = DefaultObjectSchema, OUTPUT extends ObjectMode = InferSchema<SCHEMA> extends string ? "enum" : "object", RESULT = OUTPUT extends "array" ? Array<InferSchema<SCHEMA>> : InferSchema<SCHEMA>>(generateObjectArgs: GenerateObjectArgs<SCHEMA, OUTPUT, RESULT> & {
|
|
333
|
+
/**
|
|
334
|
+
* If provided, this message will be used as the "prompt" for the LLM call,
|
|
335
|
+
* instead of the prompt or messages.
|
|
336
|
+
* This is useful if you want to first save a user message, then use it as
|
|
337
|
+
* the prompt for the LLM call in another call.
|
|
338
|
+
*/
|
|
339
|
+
promptMessageId?: string;
|
|
340
|
+
/**
|
|
341
|
+
* The model to use for the LLM calls. This will override the model specified
|
|
342
|
+
* in the Agent constructor.
|
|
343
|
+
*/
|
|
344
|
+
model?: LanguageModel;
|
|
345
|
+
}, options?: Options): Promise<GenerateObjectResult<RESULT> & ThreadOutputMetadata>;
|
|
281
346
|
/**
|
|
282
347
|
* This behaves like {@link streamObject} from the "ai" package except that
|
|
283
348
|
* it add context based on the userId and threadId and saves the input and
|
|
@@ -288,7 +353,24 @@ export interface Thread<DefaultTools extends ToolSet> {
|
|
|
288
353
|
* for the {@link ContextOptions} and {@link StorageOptions}.
|
|
289
354
|
* @returns The result of the streamObject function.
|
|
290
355
|
*/
|
|
291
|
-
streamObject<
|
|
356
|
+
streamObject<SCHEMA extends ObjectSchema = DefaultObjectSchema, OUTPUT extends ObjectMode = InferSchema<SCHEMA> extends string ? "enum" : "object", RESULT = OUTPUT extends "array" ? Array<InferSchema<SCHEMA>> : InferSchema<SCHEMA>>(
|
|
357
|
+
/**
|
|
358
|
+
* The same arguments you'd pass to "ai" sdk {@link streamObject}.
|
|
359
|
+
*/
|
|
360
|
+
streamObjectArgs: StreamObjectArgs<SCHEMA, OUTPUT, RESULT> & {
|
|
361
|
+
/**
|
|
362
|
+
* If provided, this message will be used as the "prompt" for the LLM call,
|
|
363
|
+
* instead of the prompt or messages.
|
|
364
|
+
* This is useful if you want to first save a user message, then use it as
|
|
365
|
+
* the prompt for the LLM call in another call.
|
|
366
|
+
*/
|
|
367
|
+
promptMessageId?: string;
|
|
368
|
+
/**
|
|
369
|
+
* The model to use for the LLM calls. This will override the model specified
|
|
370
|
+
* in the Agent constructor.
|
|
371
|
+
*/
|
|
372
|
+
model?: LanguageModel;
|
|
373
|
+
}, options?: Options): Promise<ReturnType<typeof streamObject<SCHEMA, OUTPUT, RESULT>> & ThreadOutputMetadata>;
|
|
292
374
|
}
|
|
293
375
|
export type Options = {
|
|
294
376
|
/**
|
|
@@ -299,6 +381,11 @@ export type Options = {
|
|
|
299
381
|
* The storage options to use for saving the input and output messages to the thread.
|
|
300
382
|
*/
|
|
301
383
|
storageOptions?: StorageOptions;
|
|
384
|
+
/**
|
|
385
|
+
* The usage handler to use for this thread. Overrides any handler
|
|
386
|
+
* set in the agent constructor.
|
|
387
|
+
*/
|
|
388
|
+
usageHandler?: UsageHandler;
|
|
302
389
|
};
|
|
303
390
|
export type SyncStreamsReturnValue = {
|
|
304
391
|
kind: "list";
|