import { Router } from 'express';
import { getOrchestratorCommands, executeOrchestratorCommand, sendOrchestratorMessage, sendOrchestratorEnter, setupOrchestrator, stopOrchestrator, getOrchestratorHealth, getOrchestratorStatus, assignTaskToOrchestrator, updateOrchestratorRuntime } from './orchestrator.controller.js';
/**
 * Creates orchestrator router with all orchestrator-related endpoints
 * @param context - API context with services
 * @returns Express router configured with orchestrator routes
 */
export function createOrchestratorRouter(context) {
    const router = Router();
    // Orchestrator management
    router.post('/setup', setupOrchestrator.bind(context));
    router.post('/stop', stopOrchestrator.bind(context));
    router.get('/health', getOrchestratorHealth.bind(context));
    router.get('/status', getOrchestratorStatus.bind(context));
    // Command and message handling
    router.get('/commands', getOrchestratorCommands.bind(context));
    router.post('/commands/execute', executeOrchestratorCommand.bind(context));
    router.post('/messages', sendOrchestratorMessage.bind(context));
    router.post('/messages/enter', sendOrchestratorEnter.bind(context));
    // Task assignment
    router.post('/projects/:projectId/tasks', assignTaskToOrchestrator.bind(context));
    // Runtime management
    router.put('/runtime', updateOrchestratorRuntime.bind(context));
    return router;
}
//# sourceMappingURL=orchestrator.routes.js.map