UNPKG

@tanstack/ai

Version:

Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.

25 lines (24 loc) • 1.37 kB
import { TokenUsage as SpecTokenUsage } from '@ag-ui/core'; import { TokenUsage } from '../types.js'; /** AG-UI spec `usage[]` item (provider/model labels + token counts only). */ export type { TokenUsage as SpecTokenUsage } from '@ag-ui/core'; export interface ToSpecTokenUsageOptions { provider?: string; model?: string; } /** TokenUsage fields that have no AG-UI `usage[]` equivalent. */ export type TokenUsageLeftover = Omit<TokenUsage, 'promptTokens' | 'completionTokens' | 'totalTokens'>; export declare function isTanstackUsage(usage: unknown): usage is TokenUsage; export declare function toSpecTokenUsage(usage: TokenUsage, options?: ToSpecTokenUsageOptions): { usage: Array<SpecTokenUsage>; leftover?: TokenUsageLeftover; }; /** * Add two usage totals, as for a parent run and its children. Numbers add * up. `billed` adds up only in the same unit. `providerUsageDetails` is * opaque, so the latest one stays. `@tanstack/ai-persistence` sums per-run * usage with the same rules. */ export declare function addTokenUsage(current: TokenUsage, next: TokenUsage): TokenUsage; export declare function rebuildTokenUsage(usage: unknown, leftover?: TokenUsageLeftover): TokenUsage | undefined; export declare function fromSpecTokenUsage(usage: ReadonlyArray<SpecTokenUsage> | undefined, leftover?: TokenUsageLeftover): TokenUsage | undefined;