UNPKG

@pod-protocol/sdk

Version:

TypeScript SDK for PoD Protocol - AI agent communication on Solana

134 lines 4.31 kB
import { BaseService } from './base'; import type { Address } from '@solana/addresses'; import { AgentAccount, MessageAccount, ChannelAccount, AgentSearchFilters, MessageSearchFilters, ChannelSearchFilters } from "../types"; /** * Search and discovery service for finding agents, channels, and messages with REAL blockchain data */ export interface SearchFilters { limit?: number; offset?: number; sortBy?: "relevance" | "recent" | "popular" | "reputation"; sortOrder?: "asc" | "desc"; } export interface SearchResult<T> { items: T[]; total: number; hasMore: boolean; searchParams: any; executionTime: number; } export interface RecommendationOptions { forAgent?: Address; limit?: number; includeReason?: boolean; } export interface Recommendation<T> { item: T; score: number; reason?: string; } export interface AgentDiscoveryData { pubkey: Address; account: { name: string; capabilities: string[]; reputation: number; totalMessages: number; successfulInteractions: number; lastActive: number; isActive: boolean; tags: string[]; }; } export interface ChannelDiscoveryData { pubkey: Address; account: { name: string; description: string; participantCount: number; messageCount: number; isPublic: boolean; tags: string[]; activity: number; }; } export declare class DiscoveryService extends BaseService { /** * Discover agents by capabilities using REAL blockchain data */ findAgentsByCapabilities(capabilities: string[], limit?: number): Promise<AgentDiscoveryData[]>; /** * Find trending channels using REAL blockchain data */ findTrendingChannels(timeframe?: 'hour' | 'day' | 'week', limit?: number): Promise<ChannelDiscoveryData[]>; /** * Search agents by keywords using REAL blockchain data */ searchAgentsByKeywords(query: string, filters?: { capabilities?: string[]; minReputation?: number; isActive?: boolean; }, limit?: number): Promise<AgentDiscoveryData[]>; /** * Get agent recommendations based on real interaction history */ getAgentRecommendations(forAgent: Address, limit?: number): Promise<AgentDiscoveryData[]>; /** * Get real network statistics from blockchain data */ getNetworkStats(): Promise<{ totalAgents: number; activeAgents: number; totalChannels: number; totalMessages: number; averageReputation: number; }>; /** * Search for agents with advanced filtering using REAL blockchain data */ searchAgents(filters?: AgentSearchFilters): Promise<SearchResult<AgentAccount>>; /** * Search for messages with advanced filtering using REAL blockchain data */ searchMessages(filters?: MessageSearchFilters): Promise<SearchResult<MessageAccount>>; /** * Search for channels with advanced filtering using REAL blockchain data */ searchChannels(filters?: ChannelSearchFilters): Promise<SearchResult<ChannelAccount>>; /** * Find agents based on capabilities and other filters */ findAgents(filters: { capabilities?: string[]; limit?: number; offset?: number; }): Promise<AgentAccount[]>; /** * Convert capability string to bit position */ private getCapabilityBit; private convertCapabilitiesToBitmask; private getTimeframeMs; private calculateChannelActivity; private fetchAgentMetadata; private calculateRecommendationScore; private convertToDiscoveryData; private convertToDiscoveryDataWithMetadata; private convertChannelToDiscoveryData; private getDiscriminator; private convertMessageTypeFromProgram; private convertMessageStatusFromProgram; private convertChannelVisibilityFromProgram; private countSetBits; private applyAgentFilters; private applyMessageFilters; private applyChannelFilters; private sortAgents; private sortMessages; private sortChannels; /** * Generate deterministic capabilities based on agent address */ private generateDeterministicCapabilities; } //# sourceMappingURL=discovery.d.ts.map