@xynehq/jaf
Version:
Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools
76 lines • 5.52 kB
TypeScript
/**
* JAF ADK Layer - Streaming System
*
* Functional streaming and live interaction utilities
*/
import { LiveRequestQueue, Content, AgentEvent, AgentEventType, StreamConfig, ResponseModality, FunctionCall, FunctionResponse } from '../types';
export declare const createLiveRequestQueue: () => LiveRequestQueue;
export declare const createAgentEvent: (type: AgentEventType, data?: {
content?: Content;
functionCall?: FunctionCall;
functionResponse?: FunctionResponse;
error?: string;
metadata?: Record<string, unknown>;
}) => AgentEvent;
export declare const createMessageStartEvent: (content?: Content) => AgentEvent;
export declare const createMessageDeltaEvent: (content: Content) => AgentEvent;
export declare const createMessageCompleteEvent: (content?: Content) => AgentEvent;
export declare const createFunctionCallStartEvent: (functionCall: FunctionCall) => AgentEvent;
export declare const createFunctionCallCompleteEvent: (functionResponse: FunctionResponse) => AgentEvent;
export declare const createAgentTransferEvent: (targetAgent: string, metadata?: Record<string, unknown>) => AgentEvent;
export declare const createConversationEndEvent: (metadata?: Record<string, unknown>) => AgentEvent;
export declare const createErrorEvent: (error: string, metadata?: Record<string, unknown>) => AgentEvent;
export declare const streamToQueue: (stream: AsyncGenerator<AgentEvent>, queue: LiveRequestQueue) => Promise<void>;
export declare const queueToStream: (queue: LiveRequestQueue) => AsyncGenerator<AgentEvent>;
export declare const combineStreams: (...streams: AsyncGenerator<AgentEvent>[]) => AsyncGenerator<AgentEvent>;
export declare const filterEventStream: (stream: AsyncGenerator<AgentEvent>, predicate: (event: AgentEvent) => boolean) => AsyncGenerator<AgentEvent>;
export declare const mapEventStream: <T>(stream: AsyncGenerator<AgentEvent>, mapper: (event: AgentEvent) => T) => AsyncGenerator<T>;
export declare const createStreamConfig: (responseModalities?: ResponseModality[], options?: {
bufferSize?: number;
timeout?: number;
}) => StreamConfig;
export declare const createTextStreamConfig: () => StreamConfig;
export declare const createAudioStreamConfig: () => StreamConfig;
export declare const createMultiModalStreamConfig: () => StreamConfig;
export declare const createBufferedStream: (stream: AsyncGenerator<AgentEvent>, bufferSize?: number) => AsyncGenerator<AgentEvent[]>;
export declare const createThrottledStream: (stream: AsyncGenerator<AgentEvent>, intervalMs?: number) => AsyncGenerator<AgentEvent>;
export declare const createDebouncedStream: (stream: AsyncGenerator<AgentEvent>, delayMs?: number) => AsyncGenerator<AgentEvent>;
export declare const collectEvents: (stream: AsyncGenerator<AgentEvent>, predicate?: (event: AgentEvent) => boolean) => Promise<AgentEvent[]>;
export declare const findFirstEvent: (stream: AsyncGenerator<AgentEvent>, predicate: (event: AgentEvent) => boolean) => Promise<AgentEvent | null>;
export declare const waitForEvent: (stream: AsyncGenerator<AgentEvent>, type: AgentEventType, timeout?: number) => Promise<AgentEvent | null>;
export declare const countEvents: (stream: AsyncGenerator<AgentEvent>, predicate?: (event: AgentEvent) => boolean) => Promise<number>;
export declare const isMessageEvent: (event: AgentEvent) => boolean;
export declare const isFunctionEvent: (event: AgentEvent) => boolean;
export declare const isControlEvent: (event: AgentEvent) => boolean;
export declare const isErrorEvent: (event: AgentEvent) => boolean;
export declare const filterMessageEvents: (stream: AsyncGenerator<AgentEvent>) => AsyncGenerator<AgentEvent, any, any>;
export declare const filterFunctionEvents: (stream: AsyncGenerator<AgentEvent>) => AsyncGenerator<AgentEvent, any, any>;
export declare const filterControlEvents: (stream: AsyncGenerator<AgentEvent>) => AsyncGenerator<AgentEvent, any, any>;
export declare const filterErrorEvents: (stream: AsyncGenerator<AgentEvent>) => AsyncGenerator<AgentEvent, any, any>;
export declare const monitorStream: (stream: AsyncGenerator<AgentEvent>, monitor: (event: AgentEvent) => void) => AsyncGenerator<AgentEvent>;
export declare const logStream: (prefix?: string) => (event: AgentEvent) => void;
export declare const metricsMonitor: () => {
monitor: (event: AgentEvent) => void;
getMetrics: () => {
duration: number;
eventsPerSecond: number;
eventCount: number;
eventsByType: Record<AgentEventType, number>;
errors: number;
startTime: number;
firstEventTime: number | null;
lastEventTime: number | null;
};
};
export declare const withStreamErrorHandling: (stream: AsyncGenerator<AgentEvent>, errorHandler?: (error: Error) => AgentEvent | null) => AsyncGenerator<AgentEvent>;
export declare const retryStream: (streamFactory: () => AsyncGenerator<AgentEvent>, maxRetries?: number, delayMs?: number) => AsyncGenerator<AgentEvent>;
export interface BidirectionalStream {
send: (message: Content) => Promise<void>;
receive: () => AsyncGenerator<AgentEvent>;
close: () => void;
}
export declare const createBidirectionalStream: () => BidirectionalStream;
export declare const streamToArray: <T>(stream: AsyncGenerator<T>) => Promise<T[]>;
export declare const takeFromStream: <T>(stream: AsyncGenerator<T>, count: number) => AsyncGenerator<T>;
export declare const skipFromStream: <T>(stream: AsyncGenerator<T>, count: number) => AsyncGenerator<T>;
//# sourceMappingURL=index.d.ts.map