@@ -112,6 +112,24 @@ const mapVercelPrompt = (prompt: LanguageModelV1Prompt): PostHogInput[] => {
112
112
} )
113
113
}
114
114
115
+ const mapVercelOutput = ( result : any ) : PostHogInput [ ] => {
116
+ let output = {
117
+ ...( result . text ? { text : result . text } : { } ) ,
118
+ ...( result . object ? { object : result . object } : { } ) ,
119
+ ...( result . reasoning ? { reasoning : result . reasoning } : { } ) ,
120
+ ...( result . response ? { response : result . response } : { } ) ,
121
+ ...( result . finishReason ? { finishReason : result . finishReason } : { } ) ,
122
+ ...( result . usage ? { usage : result . usage } : { } ) ,
123
+ ...( result . warnings ? { warnings : result . warnings } : { } ) ,
124
+ ...( result . providerMetadata ? { toolCalls : result . providerMetadata } : { } ) ,
125
+ }
126
+ // if text and no object or reasoning, return text
127
+ if ( output . text && ! output . object && ! output . reasoning ) {
128
+ return [ { content : output . text , role : 'assistant' } ]
129
+ }
130
+ return [ { content : JSON . stringify ( output ) , role : 'assistant' } ]
131
+ }
132
+
115
133
const extractProvider = ( model : LanguageModelV1 ) : string => {
116
134
// vercel provider is in the format of provider.endpoint
117
135
const provider = model . provider . toLowerCase ( )
@@ -138,14 +156,14 @@ export const createInstrumentationMiddleware = (
138
156
options . posthogModelOverride ?? ( result . response ?. modelId ? result . response . modelId : model . modelId )
139
157
const provider = options . posthogProviderOverride ?? extractProvider ( model )
140
158
const baseURL = '' // cannot currently get baseURL from vercel
141
- let content = result . text || JSON . stringify ( result )
159
+ let content = mapVercelOutput ( result )
142
160
// let tools = result.toolCalls
143
161
let providerMetadata = result . providerMetadata
144
162
let additionalTokenValues = {
145
163
...( providerMetadata ?. openai ?. reasoningTokens
146
164
? { reasoningTokens : providerMetadata . openai . reasoningTokens }
147
165
: { } ) ,
148
- ...( providerMetadata ?. openai ?. cachedPromptToken
166
+ ...( providerMetadata ?. openai ?. cachedPromptTokens
149
167
? { cacheReadInputTokens : providerMetadata . openai . cachedPromptTokens }
150
168
: { } ) ,
151
169
...( providerMetadata ?. anthropic
@@ -233,8 +251,8 @@ export const createInstrumentationMiddleware = (
233
251
if ( chunk . providerMetadata ?. openai ?. reasoningTokens ) {
234
252
usage . reasoningTokens = chunk . providerMetadata . openai . reasoningTokens
235
253
}
236
- if ( chunk . providerMetadata ?. openai ?. cachedPromptToken ) {
237
- usage . cacheReadInputTokens = chunk . providerMetadata . openai . cachedPromptToken
254
+ if ( chunk . providerMetadata ?. openai ?. cachedPromptTokens ) {
255
+ usage . cacheReadInputTokens = chunk . providerMetadata . openai . cachedPromptTokens
238
256
}
239
257
if ( chunk . providerMetadata ?. anthropic ?. cacheReadInputTokens ) {
240
258
usage . cacheReadInputTokens = chunk . providerMetadata . anthropic . cacheReadInputTokens
0 commit comments