/** * HTTP Route Registration Orchestrator. * * Registers all domain-specific route handlers on a Fastify instance. * Each route file mirrors the corresponding IPC handler. */ import { createLogger } from '@shared/utils/logger'; import { registerConfigRoutes } from './config';import { registerEventRoutes } from './events';import { registerNotificationRoutes } from './notifications';import { registerProjectRoutes } from './projects';import { registerSearchRoutes } from './search';import { registerSessionRoutes } from './sessions';import { registerSshRoutes } from './ssh';import { registerSubagentRoutes } from './subagents';import { registerUpdaterRoutes } from './updater';import { registerUtilityRoutes } from './utility';import { registerValidationRoutes } from './validation'; import type { ChunkBuilder, DataCache, ProjectScanner, SessionParser, SubagentResolver, UpdaterService,} from '../services';import type { SshConnectionManager } from '../services/infrastructure/SshConnectionManager';import type { FastifyInstance } from 'fastify'; const logger = createLogger('HTTP:routes'); export interface HttpServices { projectScanner: ProjectScanner; sessionParser: SessionParser; subagentResolver: SubagentResolver; chunkBuilder: ChunkBuilder; dataCache: DataCache; updaterService: UpdaterService; sshConnectionManager: SshConnectionManager;} export function registerHttpRoutes( app: FastifyInstance, services: HttpServices, sshModeSwitchCallback: (mode: 'local' | 'ssh') => Promise<void>): void { registerProjectRoutes(app, services); registerSessionRoutes(app, services); registerSearchRoutes(app, services); registerSubagentRoutes(app, services); registerNotificationRoutes(app); registerConfigRoutes(app); registerValidationRoutes(app); registerUtilityRoutes(app); registerSshRoutes(app, services.sshConnectionManager, sshModeSwitchCallback); registerUpdaterRoutes(app, services); registerEventRoutes(app); logger.info('All HTTP routes registered');}
/**
* HTTP Route Registration Orchestrator.
*
* Registers all domain-specific route handlers on a Fastify instance.
* Each route file mirrors the corresponding IPC handler.
*/
import { createLogger } from '@shared/utils/logger';
import { registerConfigRoutes } from './config';
import { registerEventRoutes } from './events';
import { registerNotificationRoutes } from './notifications';
import { registerProjectRoutes } from './projects';
import { registerSearchRoutes } from './search';
import { registerSessionRoutes } from './sessions';
import { registerSshRoutes } from './ssh';
import { registerSubagentRoutes } from './subagents';
import { registerUpdaterRoutes } from './updater';
import { registerUtilityRoutes } from './utility';
import { registerValidationRoutes } from './validation';
import type {
ChunkBuilder,
DataCache,
ProjectScanner,
SessionParser,
SubagentResolver,
UpdaterService,
} from '../services';
import type { SshConnectionManager } from '../services/infrastructure/SshConnectionManager';
import type { FastifyInstance } from 'fastify';
const logger = createLogger('HTTP:routes');
export interface HttpServices {
projectScanner: ProjectScanner;
sessionParser: SessionParser;
subagentResolver: SubagentResolver;
chunkBuilder: ChunkBuilder;
dataCache: DataCache;
updaterService: UpdaterService;
sshConnectionManager: SshConnectionManager;
}
export function registerHttpRoutes(
app: FastifyInstance,
services: HttpServices,
sshModeSwitchCallback: (mode: 'local' | 'ssh') => Promise<void>
): void {
registerProjectRoutes(app, services);
registerSessionRoutes(app, services);
registerSearchRoutes(app, services);
registerSubagentRoutes(app, services);
registerNotificationRoutes(app);
registerConfigRoutes(app);
registerValidationRoutes(app);
registerUtilityRoutes(app);
registerSshRoutes(app, services.sshConnectionManager, sshModeSwitchCallback);
registerUpdaterRoutes(app, services);
registerEventRoutes(app);
logger.info('All HTTP routes registered');
}