UNPKG

@posthog/ai

Version:
47 lines (42 loc) 1.99 kB
import AnthropicOriginal from '@anthropic-ai/sdk'; import { PostHog } from 'posthog-node'; import { RequestOptions, APIPromise } from '@anthropic-ai/sdk/core'; import { Stream } from '@anthropic-ai/sdk/streaming'; interface MonitoringParams { posthogDistinctId?: string; posthogTraceId?: string; posthogProperties?: Record<string, any>; posthogPrivacyMode?: boolean; posthogGroups?: Record<string, any>; posthogModelOverride?: string; posthogProviderOverride?: string; posthogCostOverride?: CostOverride; posthogCaptureImmediate?: boolean; } interface CostOverride { inputCost: number; outputCost: number; } type MessageCreateParamsNonStreaming = AnthropicOriginal.Messages.MessageCreateParamsNonStreaming; type MessageCreateParamsStreaming = AnthropicOriginal.Messages.MessageCreateParamsStreaming; type Message = AnthropicOriginal.Messages.Message; type RawMessageStreamEvent = AnthropicOriginal.Messages.RawMessageStreamEvent; type MessageCreateParamsBase = AnthropicOriginal.Messages.MessageCreateParams; interface MonitoringAnthropicConfig { apiKey: string; posthog: PostHog; baseURL?: string; } declare class PostHogAnthropic extends AnthropicOriginal { private readonly phClient; messages: WrappedMessages; constructor(config: MonitoringAnthropicConfig); } declare class WrappedMessages extends AnthropicOriginal.Messages { private readonly phClient; constructor(parentClient: PostHogAnthropic, phClient: PostHog); create(body: MessageCreateParamsNonStreaming, options?: RequestOptions): APIPromise<Message>; create(body: MessageCreateParamsStreaming & MonitoringParams, options?: RequestOptions): APIPromise<Stream<RawMessageStreamEvent>>; create(body: MessageCreateParamsBase & MonitoringParams, options?: RequestOptions): APIPromise<Stream<RawMessageStreamEvent> | Message>; } export { PostHogAnthropic as Anthropic, PostHogAnthropic, WrappedMessages, PostHogAnthropic as default };