()
| 912 | } |
| 913 | |
| 914 | private setupRoutes(): void { |
| 915 | // Authentication routes (only if configured) |
| 916 | if (AUTH_ENABLED) { |
| 917 | this.setupAuthRoutes(); |
| 918 | logger.info('Authentication enabled'); |
| 919 | } else { |
| 920 | logger.warn('Authentication disabled - WORKOS environment variables not configured'); |
| 921 | } |
| 922 | |
| 923 | // Mount admin routes |
| 924 | const { pageRouter, apiRouter } = createAdminRouter(); |
| 925 | this.app.use('/admin', pageRouter); // Page routes: /admin/* |
| 926 | this.app.use('/api/admin', apiRouter); // API routes: /api/admin/accounts, etc. |
| 927 | |
| 928 | // Mount admin insights routes (member insights, goals, outreach) |
| 929 | const { pageRouter: insightsPageRouter, apiRouter: insightsApiRouter } = createAdminInsightsRouter(); |
| 930 | this.app.use('/admin', insightsPageRouter); // Page routes: /admin/insights, /admin/insight-types, etc. |
| 931 | this.app.use('/api/admin', insightsApiRouter); // API routes: /api/admin/insights, /api/admin/insight-types, etc. |
| 932 | |
| 933 | // Mount Addie admin routes |
| 934 | const { pageRouter: addiePageRouter, apiRouter: addieApiRouter } = createAddieAdminRouter(); |
| 935 | this.app.use('/admin/addie', addiePageRouter); // Page routes: /admin/addie |
| 936 | this.app.use('/api/admin/addie', addieApiRouter); // API routes: /api/admin/addie/* |
| 937 | |
| 938 | |
| 939 | // Mount Addie chat routes (public chat interface) |
| 940 | const { pageRouter: chatPageRouter, apiRouter: chatApiRouter } = createAddieChatRouter(); |
| 941 | this.app.use('/chat', chatPageRouter); // Page routes: /chat |
| 942 | this.app.use('/api/addie/chat', chatApiRouter); // API routes: /api/addie/chat |
| 943 | |
| 944 | // Mount Tavus video routes (Addie video chat + OpenAI-compatible LLM endpoint) |
| 945 | const { pageRouter: videoPageRouter, apiRouter: videoApiRouter, llmRouter: videoLlmRouter } = createTavusRouter(); |
| 946 | this.app.use('/video', videoPageRouter); // Page routes: /video |
| 947 | this.app.use('/api/addie/video', videoApiRouter); // API routes: /api/addie/video/session |
| 948 | this.app.use('/api/addie/v1', videoLlmRouter); // LLM routes: /api/addie/v1/chat/completions |
| 949 | |
| 950 | // Mount SI (Sponsored Intelligence) chat routes |
| 951 | const { apiRouter: siChatApiRouter } = createSiChatRoutes(); |
| 952 | this.app.use('/api/si', siChatApiRouter); // API routes: /api/si/sessions/* |
| 953 | |
| 954 | // Mount Agent OAuth routes |
| 955 | const agentOAuthRouter = createAgentOAuthRouter(); |
| 956 | this.app.use('/api/oauth/agent', agentOAuthRouter); // OAuth routes: /api/oauth/agent/start, /api/oauth/agent/callback |
| 957 | |
| 958 | // Mount Slack routes (public webhook endpoints) |
| 959 | // All Slack routes under /api/slack/ for consistency |
| 960 | const { aaobotRouter, addieRouter: slackAddieRouter } = createSlackRouter(); |
| 961 | this.app.use('/api/slack/aaobot', aaobotRouter); // AAO bot: /api/slack/aaobot/commands, /api/slack/aaobot/events |
| 962 | this.app.use('/api/slack/addie', slackAddieRouter); // Addie bot: /api/slack/addie/events (Bolt SDK) |
| 963 | |
| 964 | // Mount admin Slack, Email, Feeds, and Notification Channels routes |
| 965 | const adminSlackRouter = createAdminSlackRouter(); |
| 966 | this.app.use('/api/admin/slack', adminSlackRouter); // Admin Slack: /api/admin/slack/* |
| 967 | const adminEmailRouter = createAdminEmailRouter(); |
| 968 | this.app.use('/api/admin/email', adminEmailRouter); // Admin Email: /api/admin/email/* |
| 969 | const adminFeedsRouter = createAdminFeedsRouter(); |
| 970 | this.app.use('/api/admin/feeds', adminFeedsRouter); // Admin Feeds: /api/admin/feeds/* |
| 971 | const adminNotificationChannelsRouter = createAdminNotificationChannelsRouter(); |
no test coverage detected