Spaces:
Sleeping
Sleeping
| import { eventBus } from '@/lib/event-bus' | |
| import { queryPendingAssignments } from './adapter' | |
| import type { FrameworkAdapter, AgentRegistration, HeartbeatPayload, TaskReport, Assignment } from './adapter' | |
| export class LangGraphAdapter implements FrameworkAdapter { | |
| readonly framework = 'langgraph' | |
| async register(agent: AgentRegistration): Promise<void> { | |
| eventBus.broadcast('agent.created', { | |
| id: agent.agentId, | |
| name: agent.name, | |
| 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, | |
| }) | |
| } | |
| } | |