@xynehq/jaf
Version:
Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools
53 lines • 3.07 kB
TypeScript
/**
* JAF ADK Layer - Session Management
*
* Functional session management with pluggable providers
*/
import { Session, SessionContext, SessionProvider, SessionMetadata, Content, ValidationResult, createSessionError } from '../types';
export declare const generateSessionId: () => string;
export declare const createSession: (appName: string, userId: string, sessionId?: string, metadata?: Partial<SessionMetadata>) => Session;
export declare const createInMemorySessionProvider: () => SessionProvider;
export { createRedisSessionProvider, type RedisConfig } from './redis-provider.js';
interface MockRedisConfig {
host: string;
port: number;
password?: string;
database?: number;
keyPrefix?: string;
}
export declare const createMockRedisSessionProvider: (config: MockRedisConfig) => SessionProvider;
export { createPostgresSessionProvider, type PostgresConfig } from './postgres-provider.js';
export declare const addMessageToSession: (session: Session, message: Content) => Session;
export declare const addArtifactToSession: (session: Session, key: string, value: unknown) => Session;
export declare const removeArtifactFromSession: (session: Session, key: string) => Session;
export declare const updateSessionMetadata: (session: Session, metadata: Partial<SessionMetadata>) => Session;
export declare const clearSessionMessages: (session: Session) => Session;
export declare const validateSession: (session: Session) => ValidationResult<Session>;
export declare const validateSessionContext: (context: SessionContext) => ValidationResult<SessionContext>;
export declare const getOrCreateSession: (provider: SessionProvider, context: SessionContext) => Promise<Session>;
export declare const getSessionStats: (session: Session) => {
id: string;
appName: string;
userId: string;
messageCount: number;
userMessages: number;
modelMessages: number;
systemMessages: number;
artifactCount: number;
totalTextLength: number;
created: Date;
lastAccessed: Date | undefined;
tags: string[] | undefined;
};
export declare const cloneSession: (session: Session, newId?: string) => Session;
export declare const mergeSessionArtifacts: (session: Session, artifacts: Record<string, unknown>) => Session;
export declare const getLastUserMessage: (session: Session) => Content | null;
export declare const getLastModelMessage: (session: Session) => Content | null;
export declare const getMessagesByRole: (session: Session, role: Content["role"]) => Content[];
export declare const hasArtifact: (session: Session, key: string) => boolean;
export declare const getArtifact: (session: Session, key: string) => unknown | null;
export declare const getArtifactKeys: (session: Session) => string[];
export { createSessionError };
export declare const withSessionErrorHandling: <T extends unknown[], R>(fn: (...args: T) => Promise<R>, sessionId?: string) => (...args: T) => Promise<R>;
export declare const createMemoryProviderBridge: (memoryProvider: any) => SessionProvider;
//# sourceMappingURL=index.d.ts.map