@tanstack/ai
Version:
Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.
25 lines (21 loc) • 879 B
text/typescript
import type { StreamChunk } from '../types'
import { tanstackMetadata } from './merge-metadata'
function stringField(value: unknown): string | undefined {
return typeof value === 'string' && value !== '' ? value : undefined
}
/** Run id on the spec event, or `metadata.tanstack.runId` after normalize. */
export function getChunkRunId(chunk: StreamChunk): string | undefined {
if ('runId' in chunk) {
const top = stringField(chunk.runId)
if (top !== undefined) return top
}
return stringField(tanstackMetadata(chunk)?.runId)
}
/** Thread id on the spec event, or `metadata.tanstack.threadId` after normalize. */
export function getChunkThreadId(chunk: StreamChunk): string | undefined {
if ('threadId' in chunk) {
const top = stringField(chunk.threadId)
if (top !== undefined) return top
}
return stringField(tanstackMetadata(chunk)?.threadId)
}