@agentgov/sdk 0.1.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/README.md +408 -0
- package/dist/client.d.ts +164 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +399 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/fetch.d.ts +59 -0
- package/dist/utils/fetch.d.ts.map +1 -0
- package/dist/utils/fetch.js +198 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/timing.d.ts +10 -0
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/timing.js +67 -0
- package/dist/utils/timing.js.map +1 -0
- package/dist/wrappers/openai.d.ts +36 -0
- package/dist/wrappers/openai.d.ts.map +1 -0
- package/dist/wrappers/openai.js +351 -0
- package/dist/wrappers/openai.js.map +1 -0
- package/dist/wrappers/vercel-ai.d.ts +101 -0
- package/dist/wrappers/vercel-ai.d.ts.map +1 -0
- package/dist/wrappers/vercel-ai.js +461 -0
- package/dist/wrappers/vercel-ai.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { estimateCost } from '../utils/timing.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap OpenAI client to automatically trace all calls
|
|
4
|
+
*/
|
|
5
|
+
export function wrapOpenAI(client, fetchClient, getContext, options = {}) {
|
|
6
|
+
const { traceNamePrefix = 'openai', autoTrace = true, captureInput = true, captureOutput = true, traceToolCalls = true, debug = false } = options;
|
|
7
|
+
// Create a proxy that intercepts method calls
|
|
8
|
+
return new Proxy(client, {
|
|
9
|
+
get(target, prop) {
|
|
10
|
+
const value = target[prop];
|
|
11
|
+
// Wrap chat.completions
|
|
12
|
+
if (prop === 'chat') {
|
|
13
|
+
return new Proxy(target.chat, {
|
|
14
|
+
get(chatTarget, chatProp) {
|
|
15
|
+
if (chatProp === 'completions') {
|
|
16
|
+
return new Proxy(chatTarget.completions, {
|
|
17
|
+
get(completionsTarget, completionsProp) {
|
|
18
|
+
if (completionsProp === 'create') {
|
|
19
|
+
return wrapChatCompletions(completionsTarget.create.bind(completionsTarget), fetchClient, getContext, { traceNamePrefix, autoTrace, captureInput, captureOutput, traceToolCalls, debug });
|
|
20
|
+
}
|
|
21
|
+
return completionsTarget[completionsProp];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return chatTarget[chatProp];
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
// Wrap embeddings (if exists)
|
|
30
|
+
if (prop === 'embeddings' && target.embeddings) {
|
|
31
|
+
return new Proxy(target.embeddings, {
|
|
32
|
+
get(embeddingsTarget, embeddingsProp) {
|
|
33
|
+
if (embeddingsProp === 'create') {
|
|
34
|
+
return wrapEmbeddings(embeddingsTarget.create.bind(embeddingsTarget), fetchClient, getContext, { traceNamePrefix, autoTrace, captureInput, captureOutput, debug });
|
|
35
|
+
}
|
|
36
|
+
return embeddingsTarget[embeddingsProp];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function wrapChatCompletions(originalFn, fetchClient, getContext, options) {
|
|
45
|
+
return async (params) => {
|
|
46
|
+
const model = params.model || 'unknown';
|
|
47
|
+
const isStreaming = params.stream === true;
|
|
48
|
+
const context = getContext();
|
|
49
|
+
// Create trace if needed
|
|
50
|
+
let traceId = context?.traceId;
|
|
51
|
+
let createdTrace = false;
|
|
52
|
+
if (!traceId && options.autoTrace) {
|
|
53
|
+
const trace = await fetchClient.createTrace({
|
|
54
|
+
name: `${options.traceNamePrefix}.chat.completions`,
|
|
55
|
+
input: options.captureInput ? { messages: params.messages } : undefined,
|
|
56
|
+
metadata: { model, streaming: isStreaming }
|
|
57
|
+
});
|
|
58
|
+
traceId = trace.id;
|
|
59
|
+
createdTrace = true;
|
|
60
|
+
}
|
|
61
|
+
// Create span
|
|
62
|
+
let spanId;
|
|
63
|
+
if (traceId) {
|
|
64
|
+
const span = await fetchClient.createSpan({
|
|
65
|
+
traceId,
|
|
66
|
+
parentId: context?.spanId,
|
|
67
|
+
name: 'chat.completions.create',
|
|
68
|
+
type: 'LLM_CALL',
|
|
69
|
+
model,
|
|
70
|
+
input: options.captureInput ? params : undefined
|
|
71
|
+
});
|
|
72
|
+
spanId = span.id;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
// Call original function
|
|
76
|
+
const response = await originalFn(params);
|
|
77
|
+
// Handle streaming response
|
|
78
|
+
if (isStreaming && isAsyncIterable(response)) {
|
|
79
|
+
return wrapStreamingResponse(response, fetchClient, { traceId, spanId, createdTrace, model, options });
|
|
80
|
+
}
|
|
81
|
+
// Handle non-streaming response
|
|
82
|
+
const completion = response;
|
|
83
|
+
// Create tool call spans if enabled
|
|
84
|
+
if (options.traceToolCalls && spanId && traceId) {
|
|
85
|
+
await createToolCallSpans(completion, fetchClient, traceId, spanId, options.debug);
|
|
86
|
+
}
|
|
87
|
+
// Update span with results
|
|
88
|
+
if (spanId) {
|
|
89
|
+
const usage = completion.usage;
|
|
90
|
+
const promptTokens = usage?.prompt_tokens || 0;
|
|
91
|
+
const outputTokens = usage?.completion_tokens || 0;
|
|
92
|
+
await fetchClient.updateSpan(spanId, {
|
|
93
|
+
status: 'COMPLETED',
|
|
94
|
+
output: options.captureOutput ? {
|
|
95
|
+
id: completion.id,
|
|
96
|
+
model: completion.model,
|
|
97
|
+
choices: completion.choices,
|
|
98
|
+
usage: completion.usage
|
|
99
|
+
} : undefined,
|
|
100
|
+
promptTokens,
|
|
101
|
+
outputTokens,
|
|
102
|
+
cost: estimateCost(model, promptTokens, outputTokens)
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Complete trace if we created it
|
|
106
|
+
if (createdTrace && traceId) {
|
|
107
|
+
await fetchClient.updateTrace(traceId, {
|
|
108
|
+
status: 'COMPLETED',
|
|
109
|
+
output: options.captureOutput ? {
|
|
110
|
+
content: completion.choices[0]?.message?.content
|
|
111
|
+
} : undefined
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return completion;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
// Update span with error
|
|
118
|
+
if (spanId) {
|
|
119
|
+
await fetchClient.updateSpan(spanId, {
|
|
120
|
+
status: 'FAILED',
|
|
121
|
+
error: error instanceof Error ? error.message : String(error)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// Fail trace if we created it
|
|
125
|
+
if (createdTrace && traceId) {
|
|
126
|
+
await fetchClient.updateTrace(traceId, { status: 'FAILED' });
|
|
127
|
+
}
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Wrap streaming response to track completion
|
|
134
|
+
* Note: Returns AsyncIterable, not the full OpenAI Stream type
|
|
135
|
+
*/
|
|
136
|
+
function wrapStreamingResponse(stream, fetchClient, ctx) {
|
|
137
|
+
const { traceId, spanId, createdTrace, model, options } = ctx;
|
|
138
|
+
// Accumulator for streaming data
|
|
139
|
+
let fullContent = '';
|
|
140
|
+
let promptTokens = 0;
|
|
141
|
+
let outputTokens = 0;
|
|
142
|
+
const toolCalls = new Map();
|
|
143
|
+
async function* wrappedStream() {
|
|
144
|
+
try {
|
|
145
|
+
for await (const chunk of stream) {
|
|
146
|
+
// Accumulate content
|
|
147
|
+
const delta = chunk.choices[0]?.delta;
|
|
148
|
+
if (delta?.content) {
|
|
149
|
+
fullContent += delta.content;
|
|
150
|
+
}
|
|
151
|
+
// Accumulate tool calls
|
|
152
|
+
if (delta?.tool_calls) {
|
|
153
|
+
for (const tc of delta.tool_calls) {
|
|
154
|
+
const existing = toolCalls.get(tc.index) || { id: '', type: '', name: '', arguments: '' };
|
|
155
|
+
if (tc.id)
|
|
156
|
+
existing.id = tc.id;
|
|
157
|
+
if (tc.type)
|
|
158
|
+
existing.type = tc.type;
|
|
159
|
+
if (tc.function?.name)
|
|
160
|
+
existing.name = tc.function.name;
|
|
161
|
+
if (tc.function?.arguments)
|
|
162
|
+
existing.arguments += tc.function.arguments;
|
|
163
|
+
toolCalls.set(tc.index, existing);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Get usage from final chunk
|
|
167
|
+
if (chunk.usage) {
|
|
168
|
+
promptTokens = chunk.usage.prompt_tokens;
|
|
169
|
+
outputTokens = chunk.usage.completion_tokens;
|
|
170
|
+
}
|
|
171
|
+
yield chunk;
|
|
172
|
+
}
|
|
173
|
+
// Stream completed - create tool call spans
|
|
174
|
+
if (options.traceToolCalls && spanId && traceId && toolCalls.size > 0) {
|
|
175
|
+
for (const [, tc] of toolCalls) {
|
|
176
|
+
await fetchClient.createSpan({
|
|
177
|
+
traceId,
|
|
178
|
+
parentId: spanId,
|
|
179
|
+
name: tc.name,
|
|
180
|
+
type: 'TOOL_CALL',
|
|
181
|
+
toolName: tc.name,
|
|
182
|
+
toolInput: parseJSON(tc.arguments),
|
|
183
|
+
metadata: { toolCallId: tc.id }
|
|
184
|
+
}).then(span => {
|
|
185
|
+
// Mark as completed immediately (tool not executed by us)
|
|
186
|
+
return fetchClient.updateSpan(span.id, { status: 'COMPLETED' });
|
|
187
|
+
}).catch((error) => {
|
|
188
|
+
if (options.debug) {
|
|
189
|
+
console.warn('[AgentGov] Failed to record tool call span:', error);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Update span with final results
|
|
195
|
+
if (spanId) {
|
|
196
|
+
await fetchClient.updateSpan(spanId, {
|
|
197
|
+
status: 'COMPLETED',
|
|
198
|
+
output: options.captureOutput ? {
|
|
199
|
+
content: fullContent,
|
|
200
|
+
toolCalls: toolCalls.size > 0 ? Array.from(toolCalls.values()) : undefined
|
|
201
|
+
} : undefined,
|
|
202
|
+
promptTokens,
|
|
203
|
+
outputTokens,
|
|
204
|
+
cost: estimateCost(model, promptTokens, outputTokens)
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
// Complete trace if we created it
|
|
208
|
+
if (createdTrace && traceId) {
|
|
209
|
+
await fetchClient.updateTrace(traceId, {
|
|
210
|
+
status: 'COMPLETED',
|
|
211
|
+
output: options.captureOutput ? { content: fullContent } : undefined
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
// Update span with error
|
|
217
|
+
if (spanId) {
|
|
218
|
+
await fetchClient.updateSpan(spanId, {
|
|
219
|
+
status: 'FAILED',
|
|
220
|
+
error: error instanceof Error ? error.message : String(error)
|
|
221
|
+
}).catch((e) => {
|
|
222
|
+
if (options.debug) {
|
|
223
|
+
console.warn('[AgentGov] Failed to update span on error:', e);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
// Fail trace if we created it
|
|
228
|
+
if (createdTrace && traceId) {
|
|
229
|
+
await fetchClient.updateTrace(traceId, { status: 'FAILED' }).catch((e) => {
|
|
230
|
+
if (options.debug) {
|
|
231
|
+
console.warn('[AgentGov] Failed to update trace on error:', e);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
throw error;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return wrappedStream();
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Type guard for function tool calls
|
|
242
|
+
*/
|
|
243
|
+
function isFunctionToolCall(tc) {
|
|
244
|
+
return tc.type === 'function' && 'function' in tc;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Create spans for tool calls in non-streaming response
|
|
248
|
+
*/
|
|
249
|
+
async function createToolCallSpans(completion, fetchClient, traceId, parentSpanId, debug) {
|
|
250
|
+
const toolCalls = completion.choices[0]?.message?.tool_calls;
|
|
251
|
+
if (!toolCalls?.length)
|
|
252
|
+
return;
|
|
253
|
+
for (const tc of toolCalls) {
|
|
254
|
+
// Only handle function tool calls
|
|
255
|
+
if (!isFunctionToolCall(tc))
|
|
256
|
+
continue;
|
|
257
|
+
try {
|
|
258
|
+
const span = await fetchClient.createSpan({
|
|
259
|
+
traceId,
|
|
260
|
+
parentId: parentSpanId,
|
|
261
|
+
name: tc.function.name,
|
|
262
|
+
type: 'TOOL_CALL',
|
|
263
|
+
toolName: tc.function.name,
|
|
264
|
+
toolInput: parseJSON(tc.function.arguments),
|
|
265
|
+
metadata: { toolCallId: tc.id }
|
|
266
|
+
});
|
|
267
|
+
// Mark as completed immediately
|
|
268
|
+
await fetchClient.updateSpan(span.id, { status: 'COMPLETED' });
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
if (debug) {
|
|
272
|
+
console.warn('[AgentGov] Failed to record tool call span:', error);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
function wrapEmbeddings(originalFn, fetchClient, getContext, options) {
|
|
278
|
+
return async (params) => {
|
|
279
|
+
const model = params.model || 'text-embedding-ada-002';
|
|
280
|
+
const context = getContext();
|
|
281
|
+
let traceId = context?.traceId;
|
|
282
|
+
let createdTrace = false;
|
|
283
|
+
if (!traceId && options.autoTrace) {
|
|
284
|
+
const trace = await fetchClient.createTrace({
|
|
285
|
+
name: `${options.traceNamePrefix}.embeddings`,
|
|
286
|
+
metadata: { model }
|
|
287
|
+
});
|
|
288
|
+
traceId = trace.id;
|
|
289
|
+
createdTrace = true;
|
|
290
|
+
}
|
|
291
|
+
let spanId;
|
|
292
|
+
if (traceId) {
|
|
293
|
+
const span = await fetchClient.createSpan({
|
|
294
|
+
traceId,
|
|
295
|
+
parentId: context?.spanId,
|
|
296
|
+
name: 'embeddings.create',
|
|
297
|
+
type: 'EMBEDDING',
|
|
298
|
+
model,
|
|
299
|
+
input: options.captureInput ? {
|
|
300
|
+
model,
|
|
301
|
+
inputLength: Array.isArray(params.input)
|
|
302
|
+
? params.input.length
|
|
303
|
+
: String(params.input).length
|
|
304
|
+
} : undefined
|
|
305
|
+
});
|
|
306
|
+
spanId = span.id;
|
|
307
|
+
}
|
|
308
|
+
try {
|
|
309
|
+
const response = await originalFn(params);
|
|
310
|
+
if (spanId) {
|
|
311
|
+
const usage = response.usage;
|
|
312
|
+
await fetchClient.updateSpan(spanId, {
|
|
313
|
+
status: 'COMPLETED',
|
|
314
|
+
output: { embeddingsCount: response.data.length },
|
|
315
|
+
promptTokens: usage?.prompt_tokens || 0,
|
|
316
|
+
outputTokens: 0,
|
|
317
|
+
cost: estimateCost(model, usage?.prompt_tokens || 0, 0)
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
if (createdTrace && traceId) {
|
|
321
|
+
await fetchClient.updateTrace(traceId, { status: 'COMPLETED' });
|
|
322
|
+
}
|
|
323
|
+
return response;
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
if (spanId) {
|
|
327
|
+
await fetchClient.updateSpan(spanId, {
|
|
328
|
+
status: 'FAILED',
|
|
329
|
+
error: error instanceof Error ? error.message : String(error)
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
if (createdTrace && traceId) {
|
|
333
|
+
await fetchClient.updateTrace(traceId, { status: 'FAILED' });
|
|
334
|
+
}
|
|
335
|
+
throw error;
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
// Helpers
|
|
340
|
+
function isAsyncIterable(obj) {
|
|
341
|
+
return obj != null && typeof obj === 'object' && Symbol.asyncIterator in obj;
|
|
342
|
+
}
|
|
343
|
+
function parseJSON(str) {
|
|
344
|
+
try {
|
|
345
|
+
return JSON.parse(str);
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
return { raw: str };
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { FetchClient } from '../utils/fetch.js';
|
|
2
|
+
import type { TraceContext } from '../types.js';
|
|
3
|
+
export interface VercelAIUsage {
|
|
4
|
+
promptTokens: number;
|
|
5
|
+
completionTokens: number;
|
|
6
|
+
totalTokens: number;
|
|
7
|
+
}
|
|
8
|
+
export interface VercelAIToolCall {
|
|
9
|
+
toolCallId: string;
|
|
10
|
+
toolName: string;
|
|
11
|
+
args: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface VercelAIToolResult {
|
|
14
|
+
toolCallId: string;
|
|
15
|
+
toolName: string;
|
|
16
|
+
args: Record<string, unknown>;
|
|
17
|
+
result: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface GenerateTextResult {
|
|
20
|
+
text: string;
|
|
21
|
+
usage: VercelAIUsage;
|
|
22
|
+
finishReason: string;
|
|
23
|
+
toolCalls?: VercelAIToolCall[];
|
|
24
|
+
toolResults?: VercelAIToolResult[];
|
|
25
|
+
response?: {
|
|
26
|
+
id?: string;
|
|
27
|
+
model?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface StreamTextResult {
|
|
31
|
+
textStream: AsyncIterable<string>;
|
|
32
|
+
fullStream: AsyncIterable<StreamPart>;
|
|
33
|
+
text: Promise<string>;
|
|
34
|
+
usage: Promise<VercelAIUsage>;
|
|
35
|
+
finishReason: Promise<string>;
|
|
36
|
+
toolCalls: Promise<VercelAIToolCall[]>;
|
|
37
|
+
toolResults: Promise<VercelAIToolResult[]>;
|
|
38
|
+
}
|
|
39
|
+
export interface StreamPart {
|
|
40
|
+
type: string;
|
|
41
|
+
value?: unknown;
|
|
42
|
+
textDelta?: string;
|
|
43
|
+
toolCallId?: string;
|
|
44
|
+
toolName?: string;
|
|
45
|
+
args?: Record<string, unknown>;
|
|
46
|
+
result?: unknown;
|
|
47
|
+
}
|
|
48
|
+
export interface GenerateObjectResult<T = unknown> {
|
|
49
|
+
object: T;
|
|
50
|
+
usage: VercelAIUsage;
|
|
51
|
+
finishReason: string;
|
|
52
|
+
}
|
|
53
|
+
export interface EmbedResult {
|
|
54
|
+
embedding: number[];
|
|
55
|
+
usage: {
|
|
56
|
+
tokens: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface EmbedManyResult {
|
|
60
|
+
embeddings: number[][];
|
|
61
|
+
usage: {
|
|
62
|
+
tokens: number;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface WrapVercelAIOptions {
|
|
66
|
+
/** Custom trace name prefix */
|
|
67
|
+
traceNamePrefix?: string;
|
|
68
|
+
/** Auto-create trace for each call (default: true) */
|
|
69
|
+
autoTrace?: boolean;
|
|
70
|
+
/** Include full prompts in trace (default: true) */
|
|
71
|
+
captureInput?: boolean;
|
|
72
|
+
/** Include full responses in trace (default: true) */
|
|
73
|
+
captureOutput?: boolean;
|
|
74
|
+
/** Create separate spans for tool calls (default: true) */
|
|
75
|
+
traceToolCalls?: boolean;
|
|
76
|
+
/** Enable debug logging for span errors (default: false) */
|
|
77
|
+
debug?: boolean;
|
|
78
|
+
}
|
|
79
|
+
type AsyncFunction<TArgs, TResult> = (args: TArgs) => Promise<TResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Wrap Vercel AI SDK's generateText function
|
|
82
|
+
*/
|
|
83
|
+
export declare function wrapGenerateText<TArgs extends Record<string, unknown>, TResult extends GenerateTextResult>(originalFn: AsyncFunction<TArgs, TResult>, fetchClient: FetchClient, getContext: () => TraceContext | null, options?: WrapVercelAIOptions): AsyncFunction<TArgs, TResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Wrap Vercel AI SDK's streamText function
|
|
86
|
+
*/
|
|
87
|
+
export declare function wrapStreamText<TArgs extends Record<string, unknown>, TResult extends StreamTextResult>(originalFn: AsyncFunction<TArgs, TResult>, fetchClient: FetchClient, getContext: () => TraceContext | null, options?: WrapVercelAIOptions): AsyncFunction<TArgs, TResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Wrap Vercel AI SDK's generateObject function
|
|
90
|
+
*/
|
|
91
|
+
export declare function wrapGenerateObject<TArgs extends Record<string, unknown>, TResult extends GenerateObjectResult<unknown>>(originalFn: AsyncFunction<TArgs, TResult>, fetchClient: FetchClient, getContext: () => TraceContext | null, options?: WrapVercelAIOptions): AsyncFunction<TArgs, TResult>;
|
|
92
|
+
/**
|
|
93
|
+
* Wrap Vercel AI SDK's embed function
|
|
94
|
+
*/
|
|
95
|
+
export declare function wrapEmbed<TArgs extends Record<string, unknown>, TResult extends EmbedResult>(originalFn: AsyncFunction<TArgs, TResult>, fetchClient: FetchClient, getContext: () => TraceContext | null, options?: WrapVercelAIOptions): AsyncFunction<TArgs, TResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Wrap Vercel AI SDK's embedMany function
|
|
98
|
+
*/
|
|
99
|
+
export declare function wrapEmbedMany<TArgs extends Record<string, unknown>, TResult extends EmbedManyResult>(originalFn: AsyncFunction<TArgs, TResult>, fetchClient: FetchClient, getContext: () => TraceContext | null, options?: WrapVercelAIOptions): AsyncFunction<TArgs, TResult>;
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=vercel-ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/wrappers/vercel-ai.ts"],"names":[],"mappings":"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"}
|