rd-mini 0.1.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/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/raindrop.d.ts +166 -0
- package/dist/raindrop.d.ts.map +1 -0
- package/dist/raindrop.js +515 -0
- package/dist/raindrop.js.map +1 -0
- package/dist/transport.d.ts +82 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +288 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +180 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/wrappers/ai-sdk.d.ts +32 -0
- package/dist/wrappers/ai-sdk.d.ts.map +1 -0
- package/dist/wrappers/ai-sdk.js +295 -0
- package/dist/wrappers/ai-sdk.js.map +1 -0
- package/dist/wrappers/anthropic.d.ts +23 -0
- package/dist/wrappers/anthropic.d.ts.map +1 -0
- package/dist/wrappers/anthropic.js +251 -0
- package/dist/wrappers/anthropic.js.map +1 -0
- package/dist/wrappers/openai.d.ts +29 -0
- package/dist/wrappers/openai.d.ts.map +1 -0
- package/dist/wrappers/openai.js +328 -0
- package/dist/wrappers/openai.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Transport for Raindrop
|
|
3
|
+
* Fire-and-forget with buffering and retry
|
|
4
|
+
*/
|
|
5
|
+
export class Transport {
|
|
6
|
+
config;
|
|
7
|
+
queue = [];
|
|
8
|
+
flushTimeout = null;
|
|
9
|
+
FLUSH_INTERVAL = 1000; // 1 second
|
|
10
|
+
MAX_QUEUE_SIZE = 100;
|
|
11
|
+
MAX_RETRIES = 3;
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Send a trace event (fire-and-forget)
|
|
17
|
+
*/
|
|
18
|
+
sendTrace(trace) {
|
|
19
|
+
if (this.config.disabled)
|
|
20
|
+
return;
|
|
21
|
+
this.enqueue({
|
|
22
|
+
type: 'trace',
|
|
23
|
+
data: this.formatTrace(trace),
|
|
24
|
+
timestamp: Date.now(),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Send feedback/signal event
|
|
29
|
+
*/
|
|
30
|
+
sendFeedback(traceId, feedback) {
|
|
31
|
+
if (this.config.disabled)
|
|
32
|
+
return;
|
|
33
|
+
this.enqueue({
|
|
34
|
+
type: 'feedback',
|
|
35
|
+
data: {
|
|
36
|
+
event_id: traceId,
|
|
37
|
+
signal_name: feedback.type || (feedback.score !== undefined && feedback.score >= 0.5 ? 'positive' : 'negative'),
|
|
38
|
+
sentiment: feedback.score !== undefined
|
|
39
|
+
? (feedback.score >= 0.5 ? 'POSITIVE' : 'NEGATIVE')
|
|
40
|
+
: (feedback.type === 'thumbs_up' ? 'POSITIVE' : 'NEGATIVE'),
|
|
41
|
+
signal_type: feedback.signalType || 'default',
|
|
42
|
+
timestamp: feedback.timestamp || new Date().toISOString(),
|
|
43
|
+
...(feedback.attachmentId && { attachment_id: feedback.attachmentId }),
|
|
44
|
+
properties: {
|
|
45
|
+
score: feedback.score,
|
|
46
|
+
comment: feedback.comment,
|
|
47
|
+
...feedback.properties,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
timestamp: Date.now(),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Send user identification
|
|
55
|
+
*/
|
|
56
|
+
sendIdentify(userId, traits) {
|
|
57
|
+
if (this.config.disabled)
|
|
58
|
+
return;
|
|
59
|
+
this.enqueue({
|
|
60
|
+
type: 'identify',
|
|
61
|
+
data: {
|
|
62
|
+
user_id: userId,
|
|
63
|
+
traits,
|
|
64
|
+
},
|
|
65
|
+
timestamp: Date.now(),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Send an interaction with nested spans
|
|
70
|
+
*/
|
|
71
|
+
sendInteraction(interaction) {
|
|
72
|
+
if (this.config.disabled)
|
|
73
|
+
return;
|
|
74
|
+
this.enqueue({
|
|
75
|
+
type: 'interaction',
|
|
76
|
+
data: this.formatInteraction(interaction),
|
|
77
|
+
timestamp: Date.now(),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Format interaction data for API
|
|
82
|
+
*/
|
|
83
|
+
formatInteraction(interaction) {
|
|
84
|
+
// Convert spans to attachments for now (until we have proper nested trace support)
|
|
85
|
+
const spanAttachments = interaction.spans.map(span => ({
|
|
86
|
+
type: 'code',
|
|
87
|
+
name: `${span.type}:${span.name}`,
|
|
88
|
+
value: JSON.stringify({
|
|
89
|
+
spanId: span.spanId,
|
|
90
|
+
input: span.input,
|
|
91
|
+
output: span.output,
|
|
92
|
+
latencyMs: span.latencyMs,
|
|
93
|
+
error: span.error,
|
|
94
|
+
properties: span.properties,
|
|
95
|
+
}),
|
|
96
|
+
role: 'output',
|
|
97
|
+
language: 'json',
|
|
98
|
+
}));
|
|
99
|
+
// Combine user attachments with span attachments
|
|
100
|
+
const allAttachments = [
|
|
101
|
+
...(interaction.attachments || []),
|
|
102
|
+
...spanAttachments,
|
|
103
|
+
];
|
|
104
|
+
return {
|
|
105
|
+
event_id: interaction.interactionId,
|
|
106
|
+
user_id: interaction.userId,
|
|
107
|
+
event: interaction.event,
|
|
108
|
+
timestamp: new Date(interaction.startTime).toISOString(),
|
|
109
|
+
properties: {
|
|
110
|
+
latency_ms: interaction.latencyMs,
|
|
111
|
+
span_count: interaction.spans.length,
|
|
112
|
+
...(interaction.error && { error: interaction.error }),
|
|
113
|
+
...interaction.properties,
|
|
114
|
+
},
|
|
115
|
+
ai_data: {
|
|
116
|
+
input: interaction.input,
|
|
117
|
+
output: interaction.output,
|
|
118
|
+
convo_id: interaction.conversationId,
|
|
119
|
+
},
|
|
120
|
+
...(allAttachments.length > 0 && { attachments: allAttachments }),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Format trace data for API
|
|
125
|
+
*/
|
|
126
|
+
formatTrace(trace) {
|
|
127
|
+
return {
|
|
128
|
+
event_id: trace.traceId,
|
|
129
|
+
user_id: trace.userId,
|
|
130
|
+
event: 'ai_interaction',
|
|
131
|
+
timestamp: new Date(trace.startTime).toISOString(),
|
|
132
|
+
properties: {
|
|
133
|
+
provider: trace.provider,
|
|
134
|
+
conversation_id: trace.conversationId,
|
|
135
|
+
latency_ms: trace.latencyMs,
|
|
136
|
+
// Token usage
|
|
137
|
+
...(trace.tokens && {
|
|
138
|
+
input_tokens: trace.tokens.input,
|
|
139
|
+
output_tokens: trace.tokens.output,
|
|
140
|
+
total_tokens: trace.tokens.total,
|
|
141
|
+
}),
|
|
142
|
+
// Error info
|
|
143
|
+
...(trace.error && { error: trace.error }),
|
|
144
|
+
...trace.properties,
|
|
145
|
+
},
|
|
146
|
+
ai_data: {
|
|
147
|
+
model: trace.model,
|
|
148
|
+
input: typeof trace.input === 'string' ? trace.input : JSON.stringify(trace.input),
|
|
149
|
+
output: trace.output ? (typeof trace.output === 'string' ? trace.output : JSON.stringify(trace.output)) : undefined,
|
|
150
|
+
convo_id: trace.conversationId,
|
|
151
|
+
},
|
|
152
|
+
// Include tool calls if present
|
|
153
|
+
...(trace.toolCalls && trace.toolCalls.length > 0 && {
|
|
154
|
+
attachments: trace.toolCalls.map(tc => ({
|
|
155
|
+
type: 'code',
|
|
156
|
+
name: `tool:${tc.name}`,
|
|
157
|
+
value: JSON.stringify({ arguments: tc.arguments, result: tc.result }),
|
|
158
|
+
role: 'output',
|
|
159
|
+
language: 'json',
|
|
160
|
+
})),
|
|
161
|
+
}),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Enqueue an event for sending
|
|
166
|
+
*/
|
|
167
|
+
enqueue(event) {
|
|
168
|
+
this.queue.push(event);
|
|
169
|
+
if (this.config.debug) {
|
|
170
|
+
console.log('[raindrop] Queued event:', event.type, event.data);
|
|
171
|
+
}
|
|
172
|
+
// Flush if queue is full
|
|
173
|
+
if (this.queue.length >= this.MAX_QUEUE_SIZE) {
|
|
174
|
+
this.flush();
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// Schedule flush
|
|
178
|
+
if (!this.flushTimeout) {
|
|
179
|
+
this.flushTimeout = setTimeout(() => this.flush(), this.FLUSH_INTERVAL);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Flush all queued events
|
|
184
|
+
*/
|
|
185
|
+
async flush() {
|
|
186
|
+
if (this.flushTimeout) {
|
|
187
|
+
clearTimeout(this.flushTimeout);
|
|
188
|
+
this.flushTimeout = null;
|
|
189
|
+
}
|
|
190
|
+
if (this.queue.length === 0)
|
|
191
|
+
return;
|
|
192
|
+
const events = [...this.queue];
|
|
193
|
+
this.queue = [];
|
|
194
|
+
// Group by type for batch sending
|
|
195
|
+
const traces = events.filter(e => e.type === 'trace').map(e => e.data);
|
|
196
|
+
const interactions = events.filter(e => e.type === 'interaction').map(e => e.data);
|
|
197
|
+
const feedbacks = events.filter(e => e.type === 'feedback').map(e => e.data);
|
|
198
|
+
const identifies = events.filter(e => e.type === 'identify').map(e => e.data);
|
|
199
|
+
// Send in parallel, fire-and-forget
|
|
200
|
+
const promises = [];
|
|
201
|
+
// Combine traces and interactions - both go to /events/track
|
|
202
|
+
const allTraces = [...traces, ...interactions];
|
|
203
|
+
if (allTraces.length > 0) {
|
|
204
|
+
promises.push(this.sendBatch('/events/track', allTraces));
|
|
205
|
+
}
|
|
206
|
+
if (feedbacks.length > 0) {
|
|
207
|
+
promises.push(this.sendBatch('/signals/track', feedbacks));
|
|
208
|
+
}
|
|
209
|
+
for (const identify of identifies) {
|
|
210
|
+
promises.push(this.sendSingle('/users/identify', identify));
|
|
211
|
+
}
|
|
212
|
+
// Wait but don't throw
|
|
213
|
+
await Promise.allSettled(promises);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Send a batch of events
|
|
217
|
+
*/
|
|
218
|
+
async sendBatch(endpoint, data, retries = 0) {
|
|
219
|
+
try {
|
|
220
|
+
const response = await fetch(`${this.config.baseUrl}/v1${endpoint}`, {
|
|
221
|
+
method: 'POST',
|
|
222
|
+
headers: {
|
|
223
|
+
'Content-Type': 'application/json',
|
|
224
|
+
'Authorization': `Bearer ${this.config.apiKey}`,
|
|
225
|
+
},
|
|
226
|
+
body: JSON.stringify(data),
|
|
227
|
+
});
|
|
228
|
+
if (!response.ok && retries < this.MAX_RETRIES) {
|
|
229
|
+
if (this.config.debug) {
|
|
230
|
+
console.warn(`[raindrop] Request failed (${response.status}), retrying...`);
|
|
231
|
+
}
|
|
232
|
+
await this.delay(Math.pow(2, retries) * 100);
|
|
233
|
+
return this.sendBatch(endpoint, data, retries + 1);
|
|
234
|
+
}
|
|
235
|
+
if (this.config.debug && response.ok) {
|
|
236
|
+
console.log(`[raindrop] Sent ${data.length} events to ${endpoint}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
if (retries < this.MAX_RETRIES) {
|
|
241
|
+
await this.delay(Math.pow(2, retries) * 100);
|
|
242
|
+
return this.sendBatch(endpoint, data, retries + 1);
|
|
243
|
+
}
|
|
244
|
+
if (this.config.debug) {
|
|
245
|
+
console.warn('[raindrop] Failed to send events:', error);
|
|
246
|
+
}
|
|
247
|
+
// Fire-and-forget: swallow the error
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Send a single event
|
|
252
|
+
*/
|
|
253
|
+
async sendSingle(endpoint, data, retries = 0) {
|
|
254
|
+
try {
|
|
255
|
+
const response = await fetch(`${this.config.baseUrl}/v1${endpoint}`, {
|
|
256
|
+
method: 'POST',
|
|
257
|
+
headers: {
|
|
258
|
+
'Content-Type': 'application/json',
|
|
259
|
+
'Authorization': `Bearer ${this.config.apiKey}`,
|
|
260
|
+
},
|
|
261
|
+
body: JSON.stringify(data),
|
|
262
|
+
});
|
|
263
|
+
if (!response.ok && retries < this.MAX_RETRIES) {
|
|
264
|
+
await this.delay(Math.pow(2, retries) * 100);
|
|
265
|
+
return this.sendSingle(endpoint, data, retries + 1);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
if (retries < this.MAX_RETRIES) {
|
|
270
|
+
await this.delay(Math.pow(2, retries) * 100);
|
|
271
|
+
return this.sendSingle(endpoint, data, retries + 1);
|
|
272
|
+
}
|
|
273
|
+
if (this.config.debug) {
|
|
274
|
+
console.warn('[raindrop] Failed to send event:', error);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
delay(ms) {
|
|
279
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Close transport and flush remaining events
|
|
283
|
+
*/
|
|
284
|
+
async close() {
|
|
285
|
+
await this.flush();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raindrop SDK Types
|
|
3
|
+
*/
|
|
4
|
+
export interface RaindropConfig {
|
|
5
|
+
/** Your Raindrop API key */
|
|
6
|
+
apiKey: string;
|
|
7
|
+
/** Base URL for API (default: https://api.raindrop.ai) */
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
/** Enable debug logging */
|
|
10
|
+
debug?: boolean;
|
|
11
|
+
/** Disable all tracking (useful for tests) */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface UserTraits {
|
|
15
|
+
name?: string;
|
|
16
|
+
email?: string;
|
|
17
|
+
plan?: string;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
export interface TraceData {
|
|
21
|
+
traceId: string;
|
|
22
|
+
provider: 'openai' | 'anthropic' | 'ai-sdk' | 'unknown';
|
|
23
|
+
model: string;
|
|
24
|
+
input: unknown;
|
|
25
|
+
output?: unknown;
|
|
26
|
+
startTime: number;
|
|
27
|
+
endTime?: number;
|
|
28
|
+
latencyMs?: number;
|
|
29
|
+
tokens?: {
|
|
30
|
+
input?: number;
|
|
31
|
+
output?: number;
|
|
32
|
+
total?: number;
|
|
33
|
+
};
|
|
34
|
+
toolCalls?: ToolCall[];
|
|
35
|
+
userId?: string;
|
|
36
|
+
conversationId?: string;
|
|
37
|
+
error?: string;
|
|
38
|
+
properties?: Record<string, unknown>;
|
|
39
|
+
}
|
|
40
|
+
export interface ToolCall {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
arguments: unknown;
|
|
44
|
+
result?: unknown;
|
|
45
|
+
}
|
|
46
|
+
export interface FeedbackOptions {
|
|
47
|
+
/** Score from 0 to 1, or use type for categorical */
|
|
48
|
+
score?: number;
|
|
49
|
+
/** Categorical feedback type */
|
|
50
|
+
type?: 'thumbs_up' | 'thumbs_down';
|
|
51
|
+
/** Optional comment */
|
|
52
|
+
comment?: string;
|
|
53
|
+
/** Signal type: default, feedback, edit, or standard */
|
|
54
|
+
signalType?: 'default' | 'feedback' | 'edit' | 'standard';
|
|
55
|
+
/** Reference to a specific attachment */
|
|
56
|
+
attachmentId?: string;
|
|
57
|
+
/** ISO timestamp (auto-generated if not provided) */
|
|
58
|
+
timestamp?: string;
|
|
59
|
+
/** Additional properties */
|
|
60
|
+
properties?: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
export interface RaindropRequestOptions {
|
|
63
|
+
/** Override user ID for this request */
|
|
64
|
+
userId?: string;
|
|
65
|
+
/** Conversation ID for threading */
|
|
66
|
+
conversationId?: string;
|
|
67
|
+
/** Custom trace ID (generated if not provided) */
|
|
68
|
+
traceId?: string;
|
|
69
|
+
/** Additional properties */
|
|
70
|
+
properties?: Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extended response type that includes _traceId
|
|
74
|
+
*/
|
|
75
|
+
export type WithTraceId<T> = T & {
|
|
76
|
+
_traceId: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Provider detection result
|
|
80
|
+
*/
|
|
81
|
+
export type ProviderType = 'openai' | 'anthropic' | 'ai-sdk' | 'unknown';
|
|
82
|
+
/**
|
|
83
|
+
* Interaction options for withInteraction()
|
|
84
|
+
*/
|
|
85
|
+
export interface InteractionOptions {
|
|
86
|
+
/** User ID for this interaction */
|
|
87
|
+
userId?: string;
|
|
88
|
+
/** Event name (e.g., "rag_query", "chat_message") */
|
|
89
|
+
event?: string;
|
|
90
|
+
/** Input to the interaction (user's query) */
|
|
91
|
+
input?: string;
|
|
92
|
+
/** Conversation ID for threading */
|
|
93
|
+
conversationId?: string;
|
|
94
|
+
/** Additional properties */
|
|
95
|
+
properties?: Record<string, unknown>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Tool wrapper options
|
|
99
|
+
*/
|
|
100
|
+
export interface WrapToolOptions {
|
|
101
|
+
/** Version number for the tool */
|
|
102
|
+
version?: number;
|
|
103
|
+
/** Additional properties */
|
|
104
|
+
properties?: Record<string, unknown>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Internal context for tracking interaction state
|
|
108
|
+
*/
|
|
109
|
+
export interface InteractionContext {
|
|
110
|
+
interactionId: string;
|
|
111
|
+
userId?: string;
|
|
112
|
+
conversationId?: string;
|
|
113
|
+
startTime: number;
|
|
114
|
+
input?: string;
|
|
115
|
+
output?: string;
|
|
116
|
+
model?: string;
|
|
117
|
+
event?: string;
|
|
118
|
+
properties?: Record<string, unknown>;
|
|
119
|
+
attachments?: Attachment[];
|
|
120
|
+
spans: SpanData[];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Attachment types for events
|
|
124
|
+
*/
|
|
125
|
+
export interface Attachment {
|
|
126
|
+
type: 'code' | 'text' | 'image' | 'iframe';
|
|
127
|
+
name?: string;
|
|
128
|
+
value: string;
|
|
129
|
+
role: 'input' | 'output';
|
|
130
|
+
language?: string;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Options for begin() method
|
|
134
|
+
*/
|
|
135
|
+
export interface BeginOptions {
|
|
136
|
+
/** Custom event ID (generated if not provided) */
|
|
137
|
+
eventId?: string;
|
|
138
|
+
/** User ID for this interaction */
|
|
139
|
+
userId?: string;
|
|
140
|
+
/** Event name (e.g., "rag_query", "chat_message") */
|
|
141
|
+
event?: string;
|
|
142
|
+
/** Input to the interaction (user's query) */
|
|
143
|
+
input?: string;
|
|
144
|
+
/** AI model being used */
|
|
145
|
+
model?: string;
|
|
146
|
+
/** Conversation ID for threading */
|
|
147
|
+
conversationId?: string;
|
|
148
|
+
/** Additional properties */
|
|
149
|
+
properties?: Record<string, unknown>;
|
|
150
|
+
/** Initial attachments */
|
|
151
|
+
attachments?: Attachment[];
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Options for finish() method
|
|
155
|
+
*/
|
|
156
|
+
export interface FinishOptions {
|
|
157
|
+
/** The final output of the interaction */
|
|
158
|
+
output?: string;
|
|
159
|
+
/** Additional properties to merge */
|
|
160
|
+
properties?: Record<string, unknown>;
|
|
161
|
+
/** Additional attachments to add */
|
|
162
|
+
attachments?: Attachment[];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Span data for tools and tasks
|
|
166
|
+
*/
|
|
167
|
+
export interface SpanData {
|
|
168
|
+
spanId: string;
|
|
169
|
+
parentId?: string;
|
|
170
|
+
name: string;
|
|
171
|
+
type: 'tool' | 'ai';
|
|
172
|
+
startTime: number;
|
|
173
|
+
endTime?: number;
|
|
174
|
+
latencyMs?: number;
|
|
175
|
+
input?: unknown;
|
|
176
|
+
output?: unknown;
|
|
177
|
+
error?: string;
|
|
178
|
+
properties?: Record<string, unknown>;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vercel AI SDK Wrapper
|
|
3
|
+
* Wraps AI SDK model providers to auto-capture all calls
|
|
4
|
+
*/
|
|
5
|
+
import type { TraceData, RaindropRequestOptions, InteractionContext } from '../types.js';
|
|
6
|
+
type LanguageModel = {
|
|
7
|
+
modelId: string;
|
|
8
|
+
provider: string;
|
|
9
|
+
doGenerate?: (options: unknown) => Promise<unknown>;
|
|
10
|
+
doStream?: (options: unknown) => Promise<unknown>;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
export interface AISDKWrapperContext {
|
|
14
|
+
generateTraceId: () => string;
|
|
15
|
+
sendTrace: (trace: TraceData) => void;
|
|
16
|
+
getUserId: () => string | undefined;
|
|
17
|
+
getInteractionContext: () => InteractionContext | undefined;
|
|
18
|
+
debug: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Wrap a Vercel AI SDK model to auto-trace calls
|
|
22
|
+
*
|
|
23
|
+
* Usage:
|
|
24
|
+
* const model = raindrop.wrap(openai('gpt-4o'));
|
|
25
|
+
* const result = await generateText({ model, prompt: '...' });
|
|
26
|
+
*/
|
|
27
|
+
export declare function wrapAISDKModel<T extends LanguageModel>(model: T, context: AISDKWrapperContext, defaultOptions?: RaindropRequestOptions): T & {
|
|
28
|
+
_raindropContext: AISDKWrapperContext;
|
|
29
|
+
_raindropOptions?: RaindropRequestOptions;
|
|
30
|
+
};
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=ai-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/wrappers/ai-sdk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,kBAAkB,EAAY,MAAM,aAAa,CAAC;AAGnG,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,qBAAqB,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAC;IAC5D,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EACpD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,EAC5B,cAAc,CAAC,EAAE,sBAAsB,GACtC,CAAC,GAAG;IAAE,gBAAgB,EAAE,mBAAmB,CAAC;IAAC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;CAAE,CAiT1F"}
|