({
userId,
stripeCustomerId,
agentId,
clientId,
clientRequestId,
costMode,
startTime,
request,
originalModel,
data,
state,
logger,
insertMessage,
}: {
userId: string
stripeCustomerId?: string | null
agentId: string
clientId: string | null
clientRequestId: string | null
costMode: string | undefined
startTime: Date
request: unknown
originalModel: string
data: Record<string, unknown>
state: StreamState
logger: Logger
insertMessage: InsertMessageBigqueryFn
})
| 579 | } |
| 580 | |
| 581 | async function handleResponse({ |
| 582 | userId, |
| 583 | stripeCustomerId, |
| 584 | agentId, |
| 585 | clientId, |
| 586 | clientRequestId, |
| 587 | costMode, |
| 588 | startTime, |
| 589 | request, |
| 590 | originalModel, |
| 591 | data, |
| 592 | state, |
| 593 | logger, |
| 594 | insertMessage, |
| 595 | }: { |
| 596 | userId: string |
| 597 | stripeCustomerId?: string | null |
| 598 | agentId: string |
| 599 | clientId: string | null |
| 600 | clientRequestId: string | null |
| 601 | costMode: string | undefined |
| 602 | startTime: Date |
| 603 | request: unknown |
| 604 | originalModel: string |
| 605 | data: Record<string, unknown> |
| 606 | state: StreamState |
| 607 | logger: Logger |
| 608 | insertMessage: InsertMessageBigqueryFn |
| 609 | }): Promise<{ state: StreamState; billedCredits?: number }> { |
| 610 | state = handleStreamChunk({ |
| 611 | data, |
| 612 | state, |
| 613 | startTime, |
| 614 | logger, |
| 615 | userId, |
| 616 | agentId, |
| 617 | model: originalModel, |
| 618 | }) |
| 619 | |
| 620 | if ('error' in data || !data.usage) { |
| 621 | return { state } |
| 622 | } |
| 623 | |
| 624 | const usageData = extractUsageAndCost( |
| 625 | data.usage as Record<string, unknown>, |
| 626 | originalModel, |
| 627 | ) |
| 628 | const messageId = typeof data.id === 'string' ? data.id : 'unknown' |
| 629 | |
| 630 | insertMessageToBigQuery({ |
| 631 | messageId, |
| 632 | userId, |
| 633 | startTime, |
| 634 | request, |
| 635 | reasoningText: state.reasoningText, |
| 636 | responseText: state.responseText, |
| 637 | usageData, |
| 638 | logger, |
no test coverage detected