@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.
80 lines (73 loc) • 2.54 kB
TypeScript
import { EventEmitter } from 'events';
export interface Agent {
name: string;
id: string;
capabilities: string[];
status: 'idle' | 'busy' | 'collaborating' | 'offline';
lastActivity: Date;
connections: string[];
messageHistory: Message[];
performance: {
messagesProcessed: number;
averageResponseTime: number;
successRate: number;
};
config: any;
}
export interface Message {
id: string;
from: string;
to?: string;
timestamp: Date;
type: 'broadcast' | 'direct' | 'collaboration_request' | 'collaboration_response';
content: any;
delivered?: boolean;
read?: boolean;
recipients?: string[];
}
export interface Connection {
from: string;
to: string;
type: 'bidirectional' | 'unidirectional';
established: Date;
messageCount: number;
lastCommunication: Date | null;
}
export interface Collaboration {
id: string;
requester: string;
task: string;
requiredCapabilities: string[];
participants: string[];
status: 'active' | 'completed' | 'cancelled' | 'interrupted';
created: Date;
messages: Message[];
}
export interface HubStats {
totalAgents: number;
activeAgents: number;
totalConnections: number;
activeCollaborations: number;
messageQueueSize: number;
totalMessages: number;
}
export declare class CollaborationHub extends EventEmitter {
agents: Map<string, Agent>;
connections: Map<string, Connection[]>;
messageQueue: Message[];
sharedResources: Map<string, any>;
taskCoordination: Map<string, Collaboration>;
constructor();
registerAgent(name: string, config: any): string;
connectAgents(agentA: string, agentB: string, connectionType?: 'bidirectional' | 'unidirectional'): void;
broadcastMessage(fromAgent: string, message: any): Promise<string>;
sendDirectMessage(fromAgent: string, toAgent: string, message: any): Promise<string>;
requestCollaboration(requestingAgent: string, taskDescription: string, requiredCapabilities?: string[]): Promise<Collaboration>;
respondToCollaboration(agentName: string, collaborationId: string, response: 'accept' | 'decline'): Promise<Message>;
getAgentStatus(agentName: string): Agent | null;
getHubStats(): HubStats;
calculateCollaborationScore(requester: Agent, candidate: Agent, requiredCapabilities: string[]): number;
deliverMessage(message: Message, toAgent: string): Promise<void>;
setupEventHandlers(): void;
shutdown(): Promise<void>;
}