| 4 | import { TaskClassification, TaskClassificationResponse } from "./classificationSchema"; |
| 5 | |
| 6 | export interface AgentRouter<T extends object> { |
| 7 | _taskTypes: TaskClassification[]; |
| 8 | _agentMap: { [name: string]: Agent<T> }; |
| 9 | _taskClassifier: TypeChatJsonTranslator<TaskClassificationResponse> |
| 10 | _handlerUnknownTask: MessageHandler<T>; |
| 11 | registerAgent(name: string, agent: Agent<T>): Promise<void> |
| 12 | routeRequest(request: string): Promise<void> |
| 13 | } |
| 14 | |
| 15 | export function createAgentRouter<T extends object>(model: TypeChatLanguageModel, schema: string, typeName: string): AgentRouter<T> { |
| 16 | const validator = createTypeScriptJsonValidator<TaskClassificationResponse>(schema, typeName) |