@posthog/ai 7.11.2 → 7.12.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,8 +4,7 @@ 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
+ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
9
8
  import AnthropicOriginal, { APIPromise as APIPromise$1 } from '@anthropic-ai/sdk';
10
9
  import { Stream as Stream$1 } from '@anthropic-ai/sdk/streaming';
11
10
  import { GoogleGenAI, GenerateContentParameters, GenerateContentResponse, GoogleGenAIOptions } from '@google/genai';
@@ -58,10 +57,6 @@ interface CostOverride {
58
57
  inputCost: number;
59
58
  outputCost: number;
60
59
  }
61
- declare enum AIEvent {
62
- Generation = "$ai_generation",
63
- Embedding = "$ai_embedding"
64
- }
65
60
 
66
61
  declare const Chat: typeof OpenAI.Chat;
67
62
  declare const Completions: typeof OpenAI.Chat.Completions;
@@ -193,63 +188,35 @@ interface ClientOptions {
193
188
  */
194
189
  declare const wrapVercelLanguageModel: <T extends LanguageModel>(model: T, phClient: PostHog, options: ClientOptions) => T;
195
190
 
196
- type UsageData = Record<string, unknown>;
197
- interface PostHogSpanMapperContext {
198
- options: PostHogTelemetryOptions;
199
- }
200
- interface PostHogSpanMapperResult {
201
- distinctId?: string;
202
- traceId?: string;
203
- model?: string;
204
- provider: string;
205
- input: any;
206
- output: any;
207
- latency: number;
208
- timeToFirstToken?: number;
209
- baseURL?: string;
210
- httpStatus?: number;
211
- eventType?: AIEvent;
212
- usage?: UsageData;
213
- tools?: any[] | null;
214
- modelParams?: Record<string, unknown>;
215
- posthogProperties?: Record<string, unknown>;
216
- error?: unknown;
217
- }
218
- interface PostHogSpanMapper {
219
- name: string;
220
- canMap: (span: ReadableSpan) => boolean;
221
- map: (span: ReadableSpan, context: PostHogSpanMapperContext) => PostHogSpanMapperResult | null;
222
- }
223
- type ShouldExportSpan = (params: {
224
- otelSpan: ReadableSpan;
225
- }) => boolean;
226
- interface PostHogTelemetryOptions {
227
- posthogDistinctId?: string;
228
- posthogTraceId?: string;
229
- posthogProperties?: Record<string, any>;
230
- posthogPrivacyMode?: boolean;
231
- posthogGroups?: Record<string, any>;
232
- posthogModelOverride?: string;
233
- posthogProviderOverride?: string;
234
- posthogCostOverride?: CostOverride;
235
- posthogCaptureImmediate?: boolean;
236
- mappers?: PostHogSpanMapper[];
237
- shouldExportSpan?: ShouldExportSpan;
191
+ interface PostHogTraceExporterOptions {
192
+ /**
193
+ * Your PostHog project API key.
194
+ */
195
+ apiKey: string;
196
+ /**
197
+ * PostHog host URL. Defaults to `https://us.i.posthog.com`.
198
+ */
199
+ host?: string;
238
200
  }
239
-
240
- declare function captureSpan(span: ReadableSpan, phClient: PostHog, options?: PostHogTelemetryOptions): Promise<void>;
241
-
242
- declare class PostHogSpanProcessor implements SpanProcessor {
243
- private readonly phClient;
244
- private readonly options;
245
- private readonly pendingCaptures;
246
- constructor(phClient: PostHog, options?: PostHogTelemetryOptions);
247
- onStart(_span: Span, _parentContext: Context): void;
248
- onEnd(span: ReadableSpan): void;
249
- shutdown(): Promise<void>;
250
- forceFlush(): Promise<void>;
201
+ /**
202
+ * An OpenTelemetry SpanExporter that sends traces to PostHog's OTLP
203
+ * ingestion endpoint. PostHog converts `gen_ai.*` spans into
204
+ * `$ai_generation` events server-side.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * import { PostHogTraceExporter } from '@posthog/ai/otel'
209
+ * import { NodeSDK } from '@opentelemetry/sdk-node'
210
+ *
211
+ * const sdk = new NodeSDK({
212
+ * traceExporter: new PostHogTraceExporter({ apiKey: 'phc_...' }),
213
+ * })
214
+ * sdk.start()
215
+ * ```
216
+ */
217
+ declare class PostHogTraceExporter extends OTLPTraceExporter {
218
+ constructor(options: PostHogTraceExporterOptions);
251
219
  }
252
- declare function createPostHogSpanProcessor(phClient: PostHog, options?: PostHogTelemetryOptions): SpanProcessor;
253
220
 
254
221
  type MessageCreateParamsNonStreaming = AnthropicOriginal.Messages.MessageCreateParamsNonStreaming;
255
222
  type MessageCreateParamsStreaming = AnthropicOriginal.Messages.MessageCreateParamsStreaming;
@@ -436,4 +403,4 @@ declare class Prompts {
436
403
  private fetchPromptFromApi;
437
404
  }
438
405
 
439
- export { PostHogAnthropic as Anthropic, PostHogAzureOpenAI as AzureOpenAI, PostHogGoogleGenAI as GoogleGenAI, LangChainCallbackHandler, PostHogOpenAI as OpenAI, PostHogSpanProcessor, Prompts, captureSpan, createPostHogSpanProcessor, wrapVercelLanguageModel as withTracing };
406
+ export { PostHogAnthropic as Anthropic, PostHogAzureOpenAI as AzureOpenAI, PostHogGoogleGenAI as GoogleGenAI, LangChainCallbackHandler, PostHogOpenAI as OpenAI, PostHogTraceExporter, Prompts, wrapVercelLanguageModel as withTracing };