UNPKG

agency-x

Version:

This project is a Claude-compatible, LLM-agnostic sub-agent framework that simulates a complete SaaS product team. It is delivered as a reusable, developer-ready NPM package.

45 lines (35 loc) 1.46 kB
import { createContext, getContext, saveContext, updateContext, loadContext } from '../utils/contextStore'; import { orchestratorLogger as logger } from '../utils/logger'; import { narrator, setVoiceEnabled } from '../utils/voice'; import * as protocols from '../protocols'; type ProtocolName = keyof typeof protocols; interface OrchestratorOptions { feature: string; protocol?: ProtocolName; voice?: boolean; resume?: string; } export const runOrchestrator = async (options: OrchestratorOptions) => { const { feature, protocol = 'fullRoundtrip', voice = false, resume } = options; setVoiceEnabled(voice); if (resume) { await loadContext(resume); logger.info(`Resuming orchestration for specId: ${resume}`); narrator.speak(`Resuming orchestration for specId: ${resume}`); } else { createContext(feature); logger.info(`Starting orchestration for feature: \"${feature}\"`); narrator.speak(`Starting orchestration for feature: ${feature}`); } const selectedProtocol = protocols[protocol]; if (!selectedProtocol) { throw new Error(`Unknown protocol: ${protocol}`); } await selectedProtocol(); const context = getContext(); // ... (keep the existing finalBundle logic) const savedPath = await saveContext(); logger.success(`Orchestration complete. Context saved to ${savedPath}`); narrator.speak('All agents have completed their tasks. The final bundle is ready.'); return getContext(); };