import { eventBus } from '@/lib/event-bus' import { queryPendingAssignments } from './adapter' import type { FrameworkAdapter, AgentRegistration, HeartbeatPayload, TaskReport, Assignment } from './adapter' export class GenericAdapter implements FrameworkAdapter { readonly framework = 'generic' async register(agent: AgentRegistration): Promise { eventBus.broadcast('agent.created', { id: agent.agentId, name: agent.name, framework: agent.framework || this.framework, status: 'online', ...(agent.metadata ?? {}), }) } async heartbeat(payload: HeartbeatPayload): Promise { eventBus.broadcast('agent.status_changed', { id: payload.agentId, status: payload.status, metrics: payload.metrics ?? {}, framework: this.framework, }) } async reportTask(report: TaskReport): Promise { eventBus.broadcast('task.updated', { id: report.taskId, agentId: report.agentId, progress: report.progress, status: report.status, output: report.output, framework: this.framework, }) } async getAssignments(agentId: string): Promise { return queryPendingAssignments(agentId) } async disconnect(agentId: string): Promise { eventBus.broadcast('agent.status_changed', { id: agentId, status: 'offline', framework: this.framework, }) } }