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.
@@ -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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"}
@@ -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,5 @@
1
+ /**
2
+ * Raindrop SDK Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -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"}