INNER CODE UNIT · TypeScript
executeSwitch
Kong/volcano-agent-sdk · src/patterns.ts:45
export async function executeSwitch<T>(
selector: (history: StepResult[]) => T,
cases: Record<string, (agent: AgentBuilder) => AgentBuilder> & { default?: (agent: AgentBuilder) => AgentBuilder },
history: StepResult[],
createSubAgent: () => AgentBuilder
): Promise<StepResult[]> {
const value = selector(history);
const key = String(value);
const caseBuilder = cases[key] || cases.default;
if (!caseBuilder) {
throw new Error(`No matching case for value: ${key} and no default case provided`);
}
const subAgent = caseBuilder(createSubAgent());
return await subAgent.run();
}