@posthog/ai 7.8.12 → 7.9.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 CHANGED
@@ -4,6 +4,8 @@ import { Stream } from 'openai/streaming';
4
4
  import { ParsedResponse } from 'openai/resources/responses/responses';
5
5
  import { ResponseCreateParamsWithTools, ExtractParsedContentFromParams } from 'openai/lib/ResponsesParser';
6
6
  import { LanguageModelV2, LanguageModelV3 } from '@ai-sdk/provider';
7
+ import { ReadableSpan, SpanProcessor } from '@opentelemetry/sdk-trace-base';
8
+ import { Span, Context } from '@opentelemetry/api';
7
9
  import AnthropicOriginal, { APIPromise as APIPromise$1 } from '@anthropic-ai/sdk';
8
10
  import { Stream as Stream$1 } from '@anthropic-ai/sdk/streaming';
9
11
  import { GoogleGenAI, GenerateContentParameters, GenerateContentResponse, GoogleGenAIOptions } from '@google/genai';
@@ -55,6 +57,10 @@ interface CostOverride {
55
57
  inputCost: number;
56
58
  outputCost: number;
57
59
  }
60
+ declare enum AIEvent {
61
+ Generation = "$ai_generation",
62
+ Embedding = "$ai_embedding"
63
+ }
58
64
 
59
65
  declare const Chat: typeof OpenAI.Chat;
60
66
  declare const Completions: typeof OpenAI.Chat.Completions;
@@ -186,6 +192,64 @@ interface ClientOptions {
186
192
  */
187
193
  declare const wrapVercelLanguageModel: <T extends LanguageModel>(model: T, phClient: PostHog, options: ClientOptions) => T;
188
194
 
195
+ type UsageData = Record<string, unknown>;
196
+ interface PostHogSpanMapperContext {
197
+ options: PostHogTelemetryOptions;
198
+ }
199
+ interface PostHogSpanMapperResult {
200
+ distinctId?: string;
201
+ traceId?: string;
202
+ model?: string;
203
+ provider: string;
204
+ input: any;
205
+ output: any;
206
+ latency: number;
207
+ timeToFirstToken?: number;
208
+ baseURL?: string;
209
+ httpStatus?: number;
210
+ eventType?: AIEvent;
211
+ usage?: UsageData;
212
+ tools?: any[] | null;
213
+ modelParams?: Record<string, unknown>;
214
+ posthogProperties?: Record<string, unknown>;
215
+ error?: unknown;
216
+ }
217
+ interface PostHogSpanMapper {
218
+ name: string;
219
+ canMap: (span: ReadableSpan) => boolean;
220
+ map: (span: ReadableSpan, context: PostHogSpanMapperContext) => PostHogSpanMapperResult | null;
221
+ }
222
+ type ShouldExportSpan = (params: {
223
+ otelSpan: ReadableSpan;
224
+ }) => boolean;
225
+ interface PostHogTelemetryOptions {
226
+ posthogDistinctId?: string;
227
+ posthogTraceId?: string;
228
+ posthogProperties?: Record<string, any>;
229
+ posthogPrivacyMode?: boolean;
230
+ posthogGroups?: Record<string, any>;
231
+ posthogModelOverride?: string;
232
+ posthogProviderOverride?: string;
233
+ posthogCostOverride?: CostOverride;
234
+ posthogCaptureImmediate?: boolean;
235
+ mappers?: PostHogSpanMapper[];
236
+ shouldExportSpan?: ShouldExportSpan;
237
+ }
238
+
239
+ declare function captureSpan(span: ReadableSpan, phClient: PostHog, options?: PostHogTelemetryOptions): Promise<void>;
240
+
241
+ declare class PostHogSpanProcessor implements SpanProcessor {
242
+ private readonly phClient;
243
+ private readonly options;
244
+ private readonly pendingCaptures;
245
+ constructor(phClient: PostHog, options?: PostHogTelemetryOptions);
246
+ onStart(_span: Span, _parentContext: Context): void;
247
+ onEnd(span: ReadableSpan): void;
248
+ shutdown(): Promise<void>;
249
+ forceFlush(): Promise<void>;
250
+ }
251
+ declare function createPostHogSpanProcessor(phClient: PostHog, options?: PostHogTelemetryOptions): SpanProcessor;
252
+
189
253
  type MessageCreateParamsNonStreaming = AnthropicOriginal.Messages.MessageCreateParamsNonStreaming;
190
254
  type MessageCreateParamsStreaming = AnthropicOriginal.Messages.MessageCreateParamsStreaming;
191
255
  type Message = AnthropicOriginal.Messages.Message;
@@ -362,4 +426,4 @@ declare class Prompts {
362
426
  private fetchPromptFromApi;
363
427
  }
364
428
 
365
- export { PostHogAnthropic as Anthropic, PostHogAzureOpenAI as AzureOpenAI, PostHogGoogleGenAI as GoogleGenAI, LangChainCallbackHandler, PostHogOpenAI as OpenAI, Prompts, wrapVercelLanguageModel as withTracing };
429
+ export { PostHogAnthropic as Anthropic, PostHogAzureOpenAI as AzureOpenAI, PostHogGoogleGenAI as GoogleGenAI, LangChainCallbackHandler, PostHogOpenAI as OpenAI, PostHogSpanProcessor, Prompts, captureSpan, createPostHogSpanProcessor, wrapVercelLanguageModel as withTracing };