UNPKG

@agentdao/core

Version:

Core functionality, skills, and ready-made UI components for AgentDAO - Web3 subscriptions, content generation, social media, help support, live chat, RSS fetching, web search, and agent pricing integration

95 lines (94 loc) 3.11 kB
export interface AnalyticsEvent { event_type: string; event_name: string; agent_id?: string; skill_name?: string; user_id?: string; metadata?: Record<string, any>; timestamp?: string; } export interface AnalyticsConfig { enabled: boolean; endpoint?: string; apiKey?: string; batchSize?: number; flushInterval?: number; rateLimit?: number; } export declare class AnalyticsService { private static instance; private config; private eventQueue; private processingQueue; private rateLimitMap; private client; private static IMPORTANT_EVENTS; private constructor(); static getInstance(config?: AnalyticsConfig): AnalyticsService; /** * Track an important event */ trackEvent(event: AnalyticsEvent): Promise<void>; /** * Track skill usage */ trackSkillUsage(skillName: string, agentId?: string, metadata?: Record<string, any>): Promise<void>; /** * Track API calls */ trackApiCall(endpoint: string, success: boolean, duration?: number, metadata?: Record<string, any>): Promise<void>; /** * Track errors */ trackError(error: Error, context: string, agentId?: string, metadata?: Record<string, any>): Promise<void>; /** * Track performance metrics */ trackPerformance(metric: string, value: number, unit: string, metadata?: Record<string, any>): Promise<void>; /** * Track monetization events */ trackMonetization(event: string, amount?: number, currency?: string, metadata?: Record<string, any>): Promise<void>; /** * Check rate limiting */ private isRateLimited; /** * Batch process queued events */ private flushQueue; /** * Send events to custom endpoint */ private sendToEndpoint; /** * Send events via AgentBridge */ private sendViaAgentBridge; /** * Get analytics summary */ getAnalyticsSummary(timeRange?: string): Promise<any>; /** * Enable/disable analytics */ setEnabled(enabled: boolean): void; /** * Update configuration */ updateConfig(newConfig: Partial<AnalyticsConfig>): void; /** * Get current queue size */ getQueueSize(): number; /** * Force flush queue */ forceFlush(): Promise<void>; } export declare const trackEvent: (event: AnalyticsEvent) => Promise<void>; export declare const trackSkillUsage: (skillName: string, agentId?: string, metadata?: Record<string, any>) => Promise<void>; export declare const trackApiCall: (endpoint: string, success: boolean, duration?: number, metadata?: Record<string, any>) => Promise<void>; export declare const trackError: (error: Error, context: string, agentId?: string, metadata?: Record<string, any>) => Promise<void>; export declare const trackPerformance: (metric: string, value: number, unit: string, metadata?: Record<string, any>) => Promise<void>; export declare const trackMonetization: (event: string, amount?: number, currency?: string, metadata?: Record<string, any>) => Promise<void>;