@posthog/ai 3.3.0 → 3.3.1

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/lib/index.esm.js CHANGED
@@ -531,6 +531,45 @@ const mapVercelPrompt = prompt => {
531
531
  };
532
532
  });
533
533
  };
534
+ const mapVercelOutput = result => {
535
+ let output = {
536
+ ...(result.text ? {
537
+ text: result.text
538
+ } : {}),
539
+ ...(result.object ? {
540
+ object: result.object
541
+ } : {}),
542
+ ...(result.reasoning ? {
543
+ reasoning: result.reasoning
544
+ } : {}),
545
+ ...(result.response ? {
546
+ response: result.response
547
+ } : {}),
548
+ ...(result.finishReason ? {
549
+ finishReason: result.finishReason
550
+ } : {}),
551
+ ...(result.usage ? {
552
+ usage: result.usage
553
+ } : {}),
554
+ ...(result.warnings ? {
555
+ warnings: result.warnings
556
+ } : {}),
557
+ ...(result.providerMetadata ? {
558
+ toolCalls: result.providerMetadata
559
+ } : {})
560
+ };
561
+ // if text and no object or reasoning, return text
562
+ if (output.text && !output.object && !output.reasoning) {
563
+ return [{
564
+ content: output.text,
565
+ role: 'assistant'
566
+ }];
567
+ }
568
+ return [{
569
+ content: JSON.stringify(output),
570
+ role: 'assistant'
571
+ }];
572
+ };
534
573
  const extractProvider = model => {
535
574
  // vercel provider is in the format of provider.endpoint
536
575
  const provider = model.provider.toLowerCase();
@@ -554,14 +593,14 @@ const createInstrumentationMiddleware = (phClient, model, options) => {
554
593
  const modelId = options.posthogModelOverride ?? (result.response?.modelId ? result.response.modelId : model.modelId);
555
594
  const provider = options.posthogProviderOverride ?? extractProvider(model);
556
595
  const baseURL = ''; // cannot currently get baseURL from vercel
557
- let content = result.text || JSON.stringify(result);
596
+ let content = mapVercelOutput(result);
558
597
  // let tools = result.toolCalls
559
598
  let providerMetadata = result.providerMetadata;
560
599
  let additionalTokenValues = {
561
600
  ...(providerMetadata?.openai?.reasoningTokens ? {
562
601
  reasoningTokens: providerMetadata.openai.reasoningTokens
563
602
  } : {}),
564
- ...(providerMetadata?.openai?.cachedPromptToken ? {
603
+ ...(providerMetadata?.openai?.cachedPromptTokens ? {
565
604
  cacheReadInputTokens: providerMetadata.openai.cachedPromptTokens
566
605
  } : {}),
567
606
  ...(providerMetadata?.anthropic ? {
@@ -647,8 +686,8 @@ const createInstrumentationMiddleware = (phClient, model, options) => {
647
686
  if (chunk.providerMetadata?.openai?.reasoningTokens) {
648
687
  usage.reasoningTokens = chunk.providerMetadata.openai.reasoningTokens;
649
688
  }
650
- if (chunk.providerMetadata?.openai?.cachedPromptToken) {
651
- usage.cacheReadInputTokens = chunk.providerMetadata.openai.cachedPromptToken;
689
+ if (chunk.providerMetadata?.openai?.cachedPromptTokens) {
690
+ usage.cacheReadInputTokens = chunk.providerMetadata.openai.cachedPromptTokens;
652
691
  }
653
692
  if (chunk.providerMetadata?.anthropic?.cacheReadInputTokens) {
654
693
  usage.cacheReadInputTokens = chunk.providerMetadata.anthropic.cacheReadInputTokens;