nyk
feat(refactor): ready for manual QA after main sync (#274)
b6ecafa unverified
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<void> {
eventBus.broadcast('agent.created', {
id: agent.agentId,
name: agent.name,
framework: agent.framework || this.framework,
status: 'online',
...(agent.metadata ?? {}),
})
}
async heartbeat(payload: HeartbeatPayload): Promise<void> {
eventBus.broadcast('agent.status_changed', {
id: payload.agentId,
status: payload.status,
metrics: payload.metrics ?? {},
framework: this.framework,
})
}
async reportTask(report: TaskReport): Promise<void> {
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<Assignment[]> {
return queryPendingAssignments(agentId)
}
async disconnect(agentId: string): Promise<void> {
eventBus.broadcast('agent.status_changed', {
id: agentId,
status: 'offline',
framework: this.framework,
})
}
}