@posthog/ai 8.2.0 → 8.2.2

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.
@@ -29,6 +29,9 @@ type ChatCompletionChunk$1 = OpenAIOrignal.ChatCompletionChunk;
29
29
  type ChatCompletionCreateParamsBase$1 = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParams;
30
30
  type ChatCompletionCreateParamsNonStreaming$1 = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParamsNonStreaming;
31
31
  type ChatCompletionCreateParamsStreaming$1 = OpenAIOrignal.Chat.Completions.ChatCompletionCreateParamsStreaming;
32
+ type ResponsesCreateParamsBase$1 = OpenAIOrignal.Responses.ResponseCreateParams;
33
+ type ResponsesCreateParamsNonStreaming$1 = OpenAIOrignal.Responses.ResponseCreateParamsNonStreaming;
34
+ type ResponsesCreateParamsStreaming$1 = OpenAIOrignal.Responses.ResponseCreateParamsStreaming;
32
35
  type CreateEmbeddingResponse$1 = OpenAIOrignal.CreateEmbeddingResponse;
33
36
  type EmbeddingCreateParams$1 = OpenAIOrignal.EmbeddingCreateParams;
34
37
  interface MonitoringOpenAIConfig$1 {
@@ -40,6 +43,7 @@ type RequestOptions$1 = Record<string, any>;
40
43
  declare class PostHogAzureOpenAI extends AzureOpenAI {
41
44
  private readonly phClient;
42
45
  chat: WrappedChat$1;
46
+ responses: WrappedResponses$1;
43
47
  embeddings: WrappedEmbeddings$1;
44
48
  constructor(config: MonitoringOpenAIConfig$1);
45
49
  }
@@ -55,6 +59,15 @@ declare class WrappedCompletions$1 extends AzureOpenAI.Chat.Completions {
55
59
  create(body: ChatCompletionCreateParamsStreaming$1 & MonitoringParams, options?: RequestOptions$1): APIPromise<Stream<ChatCompletionChunk$1>>;
56
60
  create(body: ChatCompletionCreateParamsBase$1 & MonitoringParams, options?: RequestOptions$1): APIPromise<ChatCompletion$1 | Stream<ChatCompletionChunk$1>>;
57
61
  }
62
+ declare class WrappedResponses$1 extends AzureOpenAI.Responses {
63
+ private readonly phClient;
64
+ private readonly baseURL;
65
+ constructor(client: AzureOpenAI, phClient: PostHog);
66
+ create(body: ResponsesCreateParamsNonStreaming$1 & MonitoringParams, options?: RequestOptions$1): APIPromise<OpenAIOrignal.Responses.Response>;
67
+ create(body: ResponsesCreateParamsStreaming$1 & MonitoringParams, options?: RequestOptions$1): APIPromise<Stream<OpenAIOrignal.Responses.ResponseStreamEvent>>;
68
+ create(body: ResponsesCreateParamsBase$1 & MonitoringParams, options?: RequestOptions$1): APIPromise<OpenAIOrignal.Responses.Response | Stream<OpenAIOrignal.Responses.ResponseStreamEvent>>;
69
+ parse<Params extends ResponseCreateParamsWithTools, ParsedT = ExtractParsedContentFromParams<Params>>(body: Params & MonitoringParams, options?: RequestOptions$1): APIPromise<ParsedResponse<ParsedT>>;
70
+ }
58
71
  declare class WrappedEmbeddings$1 extends AzureOpenAI.Embeddings {
59
72
  private readonly phClient;
60
73
  private readonly baseURL;
@@ -530,7 +530,7 @@ function formatOpenAIResponsesInput(input, instructions) {
530
530
  return messages;
531
531
  }
532
532
 
533
- var version = "8.2.0";
533
+ var version = "8.2.2";
534
534
 
535
535
  const DEFAULT_MAX_DEPTH = 3;
536
536
  const MAX_STACK_LINES = 20;
@@ -803,6 +803,7 @@ class PostHogAzureOpenAI extends AzureOpenAI {
803
803
  super(openAIConfig);
804
804
  this.phClient = posthog;
805
805
  this.chat = new WrappedChat$1(this, this.phClient);
806
+ this.responses = new WrappedResponses$1(this, this.phClient);
806
807
  this.embeddings = new WrappedEmbeddings$1(this, this.phClient);
807
808
  }
808
809
  }
@@ -1354,6 +1355,10 @@ function preserveAPIPromiseHelpers(parentPromise, wrappedPromise) {
1354
1355
  }
1355
1356
  return apiPromise;
1356
1357
  }
1358
+ const TERMINAL_RESPONSE_STATUSES = new Set(['completed', 'failed', 'cancelled', 'incomplete']);
1359
+ function isPendingBackgroundResponse(params, response) {
1360
+ return params.background === true && !response.usage && !!response.status && !TERMINAL_RESPONSE_STATUSES.has(response.status);
1361
+ }
1357
1362
  class PostHogOpenAI extends OpenAI {
1358
1363
  constructor(config) {
1359
1364
  const {
@@ -1779,6 +1784,9 @@ class WrappedResponses extends Responses {
1779
1784
  } else {
1780
1785
  const wrappedPromise = parentPromise.then(async result => {
1781
1786
  if ('output' in result) {
1787
+ if (isPendingBackgroundResponse(openAIParams, result)) {
1788
+ return result;
1789
+ }
1782
1790
  const latency = (Date.now() - startTime) / 1000;
1783
1791
  const availableTools = extractAvailableToolCalls('openai', openAIParams);
1784
1792
  const formattedOutput = formatResponseOpenAI({
@@ -1847,6 +1855,9 @@ class WrappedResponses extends Responses {
1847
1855
  try {
1848
1856
  const parentPromise = super.parse(openAIParams, options);
1849
1857
  const wrappedPromise = parentPromise.then(async result => {
1858
+ if (isPendingBackgroundResponse(openAIParams, result)) {
1859
+ return result;
1860
+ }
1850
1861
  const latency = (Date.now() - startTime) / 1000;
1851
1862
  await captureAiGeneration(this.phClient, {
1852
1863
  ...posthogParams,