UNPKG

@polybiouslabs/polybious

Version:

Polybius is a next-generation intelligent agent framework built for adaptability across diverse domains. It merges contextual awareness, multi-agent collaboration, and predictive reasoning to deliver dynamic, self-optimizing performance.

271 lines (270 loc) 6.73 kB
export interface PersonalityConfig { name: string; systemPrompt: string; communicationStyle: { temperature: number; maxTokens: number; tweetTypes?: TweetTypeConfig[]; adaptivePersonality?: boolean; emotionalRange?: EmotionalRange; learningRate?: number; }; contentFilters: { bannedTerms: string[]; customFilters?: ((content: string) => boolean)[]; sentimentThreshold?: number; toxicityThreshold?: number; }; capabilities?: { functionCalling: boolean; multiModal: boolean; webSearch: boolean; imageGeneration: boolean; voiceSynthesis: boolean; dataAnalysis: boolean; }; tools?: ToolConfig[]; } export interface EmotionalRange { creativity: number; enthusiasm: number; analytical: number; empathy: number; humor: number; } export interface ToolConfig { name: string; description: string; parameters: { type: 'object'; properties: Record<string, any>; required: string[]; }; handler: string; enabled: boolean; rateLimited?: { maxCalls: number; timeWindow: number; }; } export interface TweetTypeConfig { type: 'short' | 'medium' | 'long' | 'cryptic'; probability: number; maxCharacters: number; instruction: string; } export interface PlatformConfig { type: 'twitter' | 'discord' | 'telegram'; enabled: boolean; credentials: { [key: string]: string; }; settings: { [key: string]: any; }; } export interface ScheduleConfig { enabled: boolean; minInterval: number; maxInterval: number; timezone?: string; quietHours?: { start: string; end: string; }; } export interface AgentConfig { name: string; personality: PersonalityConfig; platforms: PlatformConfig[]; scheduling: ScheduleConfig; monitoring: { apiPort: number; enableMetrics: boolean; logLevel: 'error' | 'warn' | 'info' | 'debug'; enableDashboard?: boolean; webhooks?: WebhookConfig[]; }; analytics?: AnalyticsConfig; learning?: LearningConfig; multiAgent?: MultiAgentConfig; contentPipeline?: ContentPipelineConfig; } export interface WebhookConfig { name: string; url: string; events: string[]; headers?: Record<string, string>; enabled: boolean; } export interface AnalyticsConfig { enabled: boolean; sentimentAnalysis: boolean; trendDetection: boolean; engagementTracking: boolean; audienceInsights: boolean; performanceOptimization: boolean; dataRetention: number; exportFormats: ('json' | 'csv' | 'pdf')[]; } export interface LearningConfig { enabled: boolean; adaptivePersonality: boolean; contentOptimization: boolean; engagementLearning: boolean; audienceAdaptation: boolean; feedbackIntegration: boolean; memoryDepth: number; learningRate: number; } export interface MultiAgentConfig { enabled: boolean; coordination: 'hierarchical' | 'democratic' | 'swarm'; communication: { protocol: 'http' | 'websocket' | 'redis'; encryption: boolean; heartbeatInterval: number; }; roles: AgentRole[]; sharedMemory: boolean; } export interface AgentRole { name: string; description: string; permissions: string[]; priority: number; } export interface ContentPipelineConfig { enabled: boolean; stages: PipelineStage[]; parallelProcessing: boolean; caching: { enabled: boolean; ttl: number; strategy: 'lru' | 'fifo' | 'ttl'; }; qualityGates: QualityGate[]; } export interface PipelineStage { name: string; type: 'generation' | 'enhancement' | 'validation' | 'optimization'; handler: string; config: Record<string, any>; enabled: boolean; timeout: number; } export interface QualityGate { name: string; metric: string; threshold: number; action: 'reject' | 'flag' | 'enhance'; } export interface AgentStatus { name: string; status: 'running' | 'stopped' | 'error' | 'learning' | 'coordinating'; lastPost: Date | null; nextPost: Date | null; totalPosts: number; uptime: number; errors: AgentError[]; performance: PerformanceMetrics; learning: LearningStatus; capabilities: string[]; } export interface PerformanceMetrics { engagement: { likes: number; shares: number; comments: number; reach: number; impressions: number; }; content: { avgResponseTime: number; contentQualityScore: number; sentimentScore: number; toxicityScore: number; }; system: { memoryUsage: number; cpuUsage: number; apiLatency: number; errorRate: number; }; } export interface LearningStatus { totalInteractions: number; learningProgress: number; adaptationScore: number; memoryUtilization: number; recentInsights: string[]; } export interface AgentError { timestamp: Date; message: string; stack?: string; context?: any; severity: 'low' | 'medium' | 'high' | 'critical'; resolved: boolean; } export interface Content { id: string; type: 'text' | 'image' | 'video' | 'audio' | 'multimodal'; data: string | Buffer; metadata: ContentMetadata; generated: Date; published?: Date; performance?: ContentPerformance; } export interface ContentMetadata { platform: string; format: string; size?: number; duration?: number; resolution?: string; tags: string[]; sentiment: number; toxicity: number; qualityScore: number; topics: string[]; } export interface ContentPerformance { views: number; likes: number; shares: number; comments: number; saves: number; clickThrough: number; engagement: number; reach: number; sentiment: number; } export interface ToolExecution { id: string; toolName: string; parameters: Record<string, any>; result: any; timestamp: Date; duration: number; success: boolean; error?: string; } export interface ToolRegistry { [key: string]: { config: ToolConfig; handler: ToolHandler; usage: ToolUsageStats; }; } export interface ToolHandler { execute: (params: Record<string, any>) => Promise<any>; validate?: (params: Record<string, any>) => boolean; transform?: (result: any) => any; } export interface ToolUsageStats { totalCalls: number; successRate: number; avgDuration: number; lastUsed: Date; errorCount: number; }