UNPKG

@pod-protocol/sdk

Version:

TypeScript SDK for PoD Protocol - AI agent communication on Solana

111 lines 3.9 kB
import { BaseService } from './base.js'; import type { Address } from '@solana/addresses'; import { AgentAccount, MessageAccount, ChannelAccount, ChannelVisibility, AgentMetrics, MessageMetrics, ChannelMetrics, NetworkMetrics, PerformanceMetrics } from "../types.js"; import { MessageStatus } from '../types'; /** * Analytics and insights for agent activities, message patterns, and channel usage */ export interface AgentAnalytics { totalAgents: number; capabilityDistribution: Record<string, number>; averageReputation: number; topAgentsByReputation: AgentAccount[]; recentlyActive: AgentAccount[]; } export interface MessageAnalytics { totalMessages: number; messagesByStatus: Record<MessageStatus, number>; messagesByType: Record<string, number>; averageMessageSize: number; messagesPerDay: number; topSenders: Array<{ agent: Address; messageCount: number; }>; recentMessages: MessageAccount[]; } export interface ChannelAnalytics { totalChannels: number; channelsByVisibility: Record<ChannelVisibility, number>; averageParticipants: number; mostPopularChannels: ChannelAccount[]; totalEscrowValue: number; averageChannelFee: number; } export interface NetworkAnalytics { totalTransactions: number; totalValueLocked: number; activeAgents24h: number; messageVolume24h: number; networkHealth: "healthy" | "moderate" | "congested"; peakUsageHours: number[]; } export interface DashboardData { agents: AgentAnalytics; messages: MessageAnalytics; channels: ChannelAnalytics; network: NetworkAnalytics; generatedAt: number; } export declare class AnalyticsService extends BaseService { /** * Get comprehensive analytics dashboard */ getDashboard(): Promise<DashboardData>; /** * Get agent ecosystem analytics with real blockchain data */ getAgentAnalytics(): Promise<AgentAnalytics>; /** * Get message analytics and patterns with real blockchain data */ getMessageAnalytics(limit?: number): Promise<MessageAnalytics>; private getMessageTypeName; private calculateMessagesPerDay; /** * Get channel usage analytics with real blockchain data */ getChannelAnalytics(limit?: number): Promise<ChannelAnalytics>; /** * Get network-wide analytics with real blockchain data */ getNetworkAnalytics(): Promise<NetworkAnalytics>; /** * Get real network performance data from Solana RPC */ private getNetworkPerformanceData; /** * Calculate peak usage hours from message data */ private calculatePeakUsageHours; /** * Generate analytics report */ generateReport(): Promise<string>; private getDiscriminator; /** * Type-safe number extraction from BN objects or numbers * Fixes TypeScript violations by properly handling both types */ private extractNumber; private convertMessageTypeFromProgram; private convertMessageStatusFromProgram; private convertChannelVisibilityFromProgram; getAgentMetrics(agentAddress: Address): Promise<AgentMetrics>; getMessageMetrics(timeframe?: 'hour' | 'day' | 'week' | 'month'): Promise<MessageMetrics>; getChannelMetrics(channelAddress?: Address): Promise<ChannelMetrics>; getNetworkMetrics(): Promise<NetworkMetrics>; getPerformanceMetrics(): Promise<PerformanceMetrics>; private calculateReputation; private calculateNetworkHealth; private getTimeframeMs; /** * Get agent stats method for MCP server compatibility */ getAgentStats(agentId: string, timeRange?: string): Promise<Record<string, unknown>>; /** * Get network stats method for MCP server compatibility */ getNetworkStats(timeRange?: string): Promise<Record<string, unknown>>; } //# sourceMappingURL=analytics.d.ts.map