UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and

66 lines (65 loc) 2.3 kB
import type { AnalyticsData } from "./types.js"; import type { TokenUsage } from "../types/providers.js"; import type { ToolCall, ToolResult } from "../types/streamTypes.js"; /** * Stream analytics result from Vercel AI SDK streamText */ export interface StreamTextResult { textStream: AsyncIterable<string>; text: Promise<string>; usage: Promise<{ promptTokens: number; completionTokens: number; totalTokens: number; } | undefined>; response: Promise<{ id?: string; model?: string; timestamp?: number | Date; } | undefined>; finishReason: Promise<"stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown">; toolResults?: Promise<ToolResult[]>; toolCalls?: Promise<ToolCall[]>; } /** * Interface for collecting analytics from streaming results */ export interface StreamAnalyticsCollector { collectUsage(result: StreamTextResult): Promise<TokenUsage>; collectMetadata(result: StreamTextResult): Promise<ResponseMetadata>; createAnalytics(provider: string, model: string, result: StreamTextResult, responseTime: number, metadata?: Record<string, unknown>): Promise<AnalyticsData>; } /** * Response metadata from stream result */ export interface ResponseMetadata { id?: string; model?: string; timestamp?: number; finishReason?: string; } /** * Base implementation for collecting analytics from Vercel AI SDK stream results */ export declare class BaseStreamAnalyticsCollector implements StreamAnalyticsCollector { /** * Collect token usage from stream result */ collectUsage(result: StreamTextResult): Promise<TokenUsage>; /** * Collect response metadata from stream result */ collectMetadata(result: StreamTextResult): Promise<ResponseMetadata>; /** * Create comprehensive analytics from stream result */ createAnalytics(provider: string, model: string, result: StreamTextResult, responseTime: number, metadata?: Record<string, unknown>): Promise<AnalyticsData>; /** * Clean up resources and force garbage collection if needed */ cleanup(): void; } /** * Global instance of stream analytics collector */ export declare const streamAnalyticsCollector: BaseStreamAnalyticsCollector;