UNPKG

claude-flow-tbowman01

Version:

Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)

512 lines 13.1 kB
/** * Core type definitions for Claude-Flow */ export interface LoggingConfig { level: 'debug' | 'info' | 'warn' | 'error'; format: 'text' | 'json'; destination: 'console' | 'file' | 'both'; file?: { path: string; maxSize: number; maxFiles: number; }; enableTimestamps?: boolean; enableContext?: boolean; } export interface OrchestratorMetrics { uptime: number; totalAgents: number; activeAgents: number; totalTasks: number; completedTasks: number; failedTasks: number; queuedTasks: number; avgTaskDuration: number; memoryUsage: { rss: number; heapUsed: number; heapTotal: number; external: number; arrayBuffers: number; }; cpuUsage: { user: number; system: number; }; timestamp: Date; } export interface AgentProfile { id: string; name: string; type: 'coordinator' | 'researcher' | 'implementer' | 'analyst' | 'custom'; capabilities: string[]; systemPrompt: string; maxConcurrentTasks: number; priority: number; environment?: Record<string, string>; workingDirectory?: string; shell?: string; metadata?: Record<string, unknown>; } export interface AgentSession { id: string; agentId: string; terminalId: string; startTime: Date; endTime?: Date; status: 'active' | 'idle' | 'terminated' | 'error'; lastActivity: Date; memoryBankId: string; } export interface Task { id: string; type: string; description: string; priority: number; dependencies: string[]; assignedAgent?: string; status: TaskStatus; input: Record<string, unknown>; output?: Record<string, unknown>; error?: Error; createdAt: Date; startedAt?: Date; completedAt?: Date; metadata?: Record<string, unknown>; } export type TaskStatus = 'pending' | 'queued' | 'assigned' | 'running' | 'completed' | 'failed' | 'cancelled'; export interface MemoryEntry { id: string; agentId: string; sessionId: string; type: 'observation' | 'insight' | 'decision' | 'artifact' | 'error'; content: string; context: Record<string, unknown>; timestamp: Date; tags: string[]; version: number; parentId?: string; metadata?: Record<string, unknown>; } export interface MemoryQuery { agentId?: string; sessionId?: string; type?: MemoryEntry['type']; tags?: string[]; startTime?: Date; endTime?: Date; search?: string; limit?: number; offset?: number; namespace?: string; } export declare enum SystemEvents { AGENT_SPAWNED = "agent:spawned", AGENT_TERMINATED = "agent:terminated", AGENT_ERROR = "agent:error", AGENT_IDLE = "agent:idle", AGENT_ACTIVE = "agent:active", TASK_CREATED = "task:created", TASK_ASSIGNED = "task:assigned", TASK_STARTED = "task:started", TASK_COMPLETED = "task:completed", TASK_FAILED = "task:failed", TASK_CANCELLED = "task:cancelled", MEMORY_CREATED = "memory:created", MEMORY_UPDATED = "memory:updated", MEMORY_DELETED = "memory:deleted", MEMORY_SYNCED = "memory:synced", SYSTEM_READY = "system:ready", SYSTEM_SHUTDOWN = "system:shutdown", SYSTEM_ERROR = "system:error", SYSTEM_HEALTHCHECK = "system:healthcheck", RESOURCE_ACQUIRED = "resource:acquired", RESOURCE_RELEASED = "resource:released", DEADLOCK_DETECTED = "deadlock:detected", MESSAGE_SENT = "message:sent", MESSAGE_RECEIVED = "message:received" } export interface EventMap extends Record<string, unknown> { [SystemEvents.AGENT_SPAWNED]: { agentId: string; profile: AgentProfile; sessionId: string; }; [SystemEvents.AGENT_TERMINATED]: { agentId: string; reason: string; }; [SystemEvents.AGENT_ERROR]: { agentId: string; error: Error; }; [SystemEvents.AGENT_IDLE]: { agentId: string; }; [SystemEvents.AGENT_ACTIVE]: { agentId: string; taskId: string; }; [SystemEvents.TASK_CREATED]: { task: Task; }; [SystemEvents.TASK_ASSIGNED]: { taskId: string; agentId: string; }; [SystemEvents.TASK_STARTED]: { taskId: string; agentId: string; }; [SystemEvents.TASK_COMPLETED]: { taskId: string; result: unknown; }; [SystemEvents.TASK_FAILED]: { taskId: string; error: Error; }; [SystemEvents.TASK_CANCELLED]: { taskId: string; reason: string; }; [SystemEvents.MEMORY_CREATED]: { entry: MemoryEntry; }; [SystemEvents.MEMORY_UPDATED]: { entry: MemoryEntry; previousVersion: number; }; [SystemEvents.MEMORY_DELETED]: { entryId: string; }; [SystemEvents.MEMORY_SYNCED]: { entries: MemoryEntry[]; }; [SystemEvents.SYSTEM_READY]: { timestamp: Date; }; [SystemEvents.SYSTEM_SHUTDOWN]: { reason: string; }; [SystemEvents.SYSTEM_ERROR]: { error: Error; component: string; }; [SystemEvents.SYSTEM_HEALTHCHECK]: { status: HealthStatus; }; [SystemEvents.RESOURCE_ACQUIRED]: { resourceId: string; agentId: string; }; [SystemEvents.RESOURCE_RELEASED]: { resourceId: string; agentId: string; }; [SystemEvents.DEADLOCK_DETECTED]: { agents: string[]; resources: string[]; }; [SystemEvents.MESSAGE_SENT]: { from: string; to: string; message: Message; }; [SystemEvents.MESSAGE_RECEIVED]: { from: string; to: string; message: Message; }; 'metrics:collected': OrchestratorMetrics; } export interface Config { orchestrator: OrchestratorConfig; terminal: TerminalConfig; memory: MemoryConfig; coordination: CoordinationConfig; mcp: MCPConfig; logging: LoggingConfig; credentials?: CredentialsConfig; security?: SecurityConfig; } export interface OrchestratorConfig { maxConcurrentAgents: number; taskQueueSize: number; healthCheckInterval: number; shutdownTimeout: number; maintenanceInterval?: number; metricsInterval?: number; persistSessions?: boolean; dataDir?: string; sessionRetentionMs?: number; taskHistoryRetentionMs?: number; taskMaxRetries?: number; } export interface TerminalConfig { type: 'vscode' | 'native' | 'auto'; poolSize: number; recycleAfter: number; healthCheckInterval: number; commandTimeout: number; } export interface MemoryConfig { backend: 'sqlite' | 'markdown' | 'hybrid'; cacheSizeMB: number; syncInterval: number; conflictResolution: 'last-write' | 'crdt' | 'manual'; retentionDays: number; sqlitePath?: string; markdownDir?: string; } export interface CoordinationConfig { maxRetries: number; retryDelay: number; deadlockDetection: boolean; resourceTimeout: number; messageTimeout: number; } export interface MCPConfig { transport: 'stdio' | 'http' | 'websocket'; host?: string; port?: number; tlsEnabled?: boolean; authToken?: string; auth?: MCPAuthConfig; loadBalancer?: MCPLoadBalancerConfig; sessionTimeout?: number; maxSessions?: number; enableMetrics?: boolean; corsEnabled?: boolean; corsOrigins?: string[]; } export interface LoggingConfig { level: 'debug' | 'info' | 'warn' | 'error'; format: 'json' | 'text'; destination: 'console' | 'file' | 'both'; filePath?: string; maxFileSize?: number; maxFiles?: number; } export interface HealthStatus { status: 'healthy' | 'degraded' | 'unhealthy'; components: Record<string, ComponentHealth>; timestamp: Date; } export interface ComponentHealth { name: string; status: 'healthy' | 'degraded' | 'unhealthy'; lastCheck: Date; error?: string; metrics?: Record<string, number>; } export interface Message { id: string; type: string; payload: unknown; timestamp: Date; priority: number; expiry?: Date; } export interface Resource { id: string; type: string; owner?: string; locked: boolean; lockedBy?: string; lockedAt?: Date; metadata?: Record<string, unknown>; } export interface MCPProtocolVersion { major: number; minor: number; patch: number; } export interface MCPCapabilities { logging?: { level?: 'debug' | 'info' | 'warn' | 'error'; }; prompts?: { listChanged?: boolean; }; resources?: { listChanged?: boolean; subscribe?: boolean; }; tools?: { listChanged?: boolean; }; sampling?: Record<string, unknown>; } export interface MCPInitializeParams { protocolVersion: MCPProtocolVersion; capabilities: MCPCapabilities; clientInfo: { name: string; version: string; }; } export interface MCPInitializeResult { protocolVersion: MCPProtocolVersion; capabilities: MCPCapabilities; serverInfo: { name: string; version: string; }; instructions?: string; } export interface MCPTool { name: string; description: string; inputSchema: Record<string, unknown>; handler: (input: unknown, context?: MCPContext) => Promise<unknown>; } export interface MCPPrompt { name: string; description?: string; arguments?: Array<{ name: string; description?: string; required?: boolean; }>; } export interface MCPResource { uri: string; name: string; description?: string; mimeType?: string; } export interface MCPRequest { jsonrpc: '2.0'; id: string | number; method: string; params?: unknown; } export interface MCPResponse { jsonrpc: '2.0'; id: string | number; result?: unknown; error?: MCPError; } export interface MCPNotification { jsonrpc: '2.0'; method: string; params?: unknown; } export interface MCPError { code: number; message: string; data?: unknown; } export interface MCPToolCall { name: string; arguments?: Record<string, unknown>; } export interface MCPToolResult { content: Array<{ type: 'text' | 'image' | 'resource'; text?: string; data?: string; mimeType?: string; }>; isError?: boolean; } export interface MCPLogEntry { level: 'debug' | 'info' | 'warn' | 'error'; data?: unknown; logger?: string; } export interface MCPSession { id: string; clientInfo: { name: string; version: string; }; protocolVersion: MCPProtocolVersion; capabilities: MCPCapabilities; isInitialized: boolean; createdAt: Date; lastActivity: Date; transport: 'stdio' | 'http' | 'websocket'; authenticated: boolean; authData?: { token?: string; user?: string; permissions?: string[]; }; } export interface MCPAuthConfig { enabled: boolean; method: 'token' | 'basic' | 'oauth'; tokens?: string[]; users?: Array<{ username: string; password: string; permissions: string[]; roles?: string[]; }>; jwtSecret?: string; sessionTimeout?: number; } export interface MCPLoadBalancerConfig { enabled: boolean; strategy: 'round-robin' | 'least-connections' | 'weighted'; maxRequestsPerSecond: number; healthCheckInterval: number; circuitBreakerThreshold: number; } export interface MCPMetrics { totalRequests: number; successfulRequests: number; failedRequests: number; averageResponseTime: number; activeSessions: number; toolInvocations: Record<string, number>; errors: Record<string, number>; lastReset: Date; } export interface ILogger { debug(message: string, meta?: unknown): void; info(message: string, meta?: unknown): void; warn(message: string, meta?: unknown): void; error(message: string, error?: unknown): void; configure(config: LoggingConfig): Promise<void>; } export interface IEventBus { emit(event: string, data?: unknown): void; on(event: string, handler: (data: unknown) => void): void; off(event: string, handler: (data: unknown) => void): void; once(event: string, handler: (data: unknown) => void): void; } export interface Terminal { id: string; pid?: number; type: 'vscode' | 'native'; status: 'active' | 'idle' | 'dead'; } export interface TerminalCommand { command: string; args?: string[]; env?: Record<string, string>; cwd?: string; timeout?: number; } export interface MCPContext { sessionId: string; agentId?: string; logger: ILogger; } export interface CredentialsConfig { apiKey?: string; token?: string; password?: string; secret?: string; [key: string]: string | undefined; } export interface SecurityConfig { encryptionEnabled: boolean; auditLogging: boolean; maskSensitiveValues: boolean; allowEnvironmentOverrides: boolean; } //# sourceMappingURL=types.d.ts.map