{"record":{"id":"c2339498e25f201b","repo":"rohitg00/ai-engineering-from-scratch","slug":"coordinator-agents-must-not-be-empty","errorCode":null,"errorMessage":"Coordinator: agents must not be empty","messagePattern":"Coordinator: agents must not be empty","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/coordinator.ts","lineNumber":17,"sourceCode":"import { Agent, CoderAgent, PlannerAgent, ReviewerAgent } from \"./agent.js\";\nimport type { Message, Role, RunResult, WorkspaceFile } from \"./types.js\";\nimport { SharedWorkspace } from \"./workspace.js\";\n\nexport class Coordinator {\n  private readonly agents: Agent[];\n  private readonly workspace = new SharedWorkspace();\n  private rotationIndex = 0;\n\n  constructor(agents?: Agent[]) {\n    const resolved = agents ?? [\n      new PlannerAgent(),\n      new CoderAgent(),\n      new ReviewerAgent(),\n    ];\n    if (resolved.length === 0) {\n      throw new Error(\"Coordinator: agents must not be empty\");\n    }\n    this.agents = resolved;\n  }\n\n  private routeTo(agent: Agent, msg: Message): boolean {\n    return msg.to === \"broadcast\" || msg.to === agent.role;\n  }\n\n  rotation(): Role[] {\n    const start = this.rotationIndex % this.agents.length;\n    return this.agents\n      .map((a, i) => this.agents[(start + i) % this.agents.length]!.role);\n  }\n\n  run(initialMessage: Message, maxTurns = 12): RunResult {\n    let pending: Message | null = initialMessage;\n    this.workspace.appendMessage(initialMessage);\n    let turn = 0;","sourceCodeStart":1,"sourceCodeEnd":35,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/coordinator.ts#L1-L35","documentation":"Error \"Coordinator: agents must not be empty\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/coordinator.ts:17 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}