@@ -14,6 +14,8 @@ import { createDiscordAdapter } from "./discord.js";
1414import { createSlackAdapter } from "./slack.js" ;
1515import { webAdapter } from "./web.js" ;
1616import { createTwitterAdapter } from "./twitter.js" ;
17+ import { registry } from "../providers/index.js" ;
18+ import { getProvider , getCurrentModel } from "../sessions/session-service.js" ;
1719// import { createWhatsAppAdapter } from "./whatsapp.js"; // Now using whatsapp-baileys.ts
1820
1921// eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -22,22 +24,25 @@ export async function initializeChannels(_db?: any, _config?: any): Promise<void
2224 channelRegistry . register ( webAdapter ) ;
2325 await webAdapter . connect ( ) ;
2426
25- // Get AI provider for channels
26- let aiProvider : any = null ;
27- let currentModel = "claude-sonnet-4-20250514" ;
28-
29- try {
30- const { createAnthropicProvider } = await import ( "../providers/anthropic.js" ) ;
31- aiProvider = createAnthropicProvider ( ) ;
32- } catch ( err ) {
33- console . log ( "[Channels] No AI provider available for Telegram/Discord" ) ;
27+ // Get AI provider for channels - use the same registry as the dashboard
28+ // This respects whichever provider the user has enabled (DeepSeek, Anthropic, etc.)
29+ let aiProvider : any = getProvider ( ) ;
30+ if ( ! aiProvider ) {
31+ // Fallback: try first available from registry
32+ const providers = registry . listProviders ( ) ;
33+ if ( providers . length > 0 ) {
34+ aiProvider = registry . getProvider ( providers [ 0 ] . name ) ;
35+ }
36+ if ( ! aiProvider ) {
37+ console . log ( "[Channels] No AI provider available for Telegram/Discord" ) ;
38+ }
3439 }
3540
3641 // Register Telegram if configured
3742 const telegram = createTelegramAdapter ( ) ;
3843 if ( telegram ) {
3944 if ( aiProvider ) {
40- telegram . setAIProvider ( aiProvider , currentModel ) ;
45+ telegram . setAIProvider ( aiProvider , aiProvider . name || "deepseek-chat" ) ;
4146 }
4247 channelRegistry . register ( telegram ) ;
4348 try {
@@ -52,7 +57,7 @@ export async function initializeChannels(_db?: any, _config?: any): Promise<void
5257 const discord = createDiscordAdapter ( ) ;
5358 if ( discord ) {
5459 if ( aiProvider ) {
55- discord . setAIProvider ( aiProvider , currentModel ) ;
60+ discord . setAIProvider ( aiProvider , aiProvider . name || "deepseek-chat" ) ;
5661 }
5762 channelRegistry . register ( discord ) ;
5863 try {
@@ -78,7 +83,7 @@ export async function initializeChannels(_db?: any, _config?: any): Promise<void
7883 const twitter = createTwitterAdapter ( ) ;
7984 if ( twitter ) {
8085 if ( aiProvider ) {
81- twitter . setAIProvider ( aiProvider , currentModel ) ;
86+ twitter . setAIProvider ( aiProvider , aiProvider . name || "deepseek-chat" ) ;
8287 }
8388 channelRegistry . register ( twitter ) ;
8489 try {
@@ -97,7 +102,6 @@ export async function initializeChannels(_db?: any, _config?: any): Promise<void
97102 const { join } = await import ( "path" ) ;
98103 const { homedir } = await import ( "os" ) ;
99104 const { markMessageProcessed } = await import ( "../db/message-dedupe.js" ) ;
100- const { createAnthropicProvider } = await import ( "../providers/anthropic.js" ) ;
101105 const { toolRegistry } = await import ( "../tools/index.js" ) ;
102106 const { skillRegistry } = await import ( "../skills/base.js" ) ;
103107 const { getSessionContext, handleSlashCommand, recordUserMessage, recordAssistantMessage, finalizeExchange } = await import ( "../sessions/session-manager.js" ) ;
@@ -117,10 +121,6 @@ export async function initializeChannels(_db?: any, _config?: any): Promise<void
117121 const ownerNumber = ( process . env . WHATSAPP_OWNER_NUMBER || "" ) . replace ( / [ ^ 0 - 9 ] / g, "" ) ;
118122 console . log ( `[WhatsApp] Owner number configured: ${ ownerNumber || "(not set)" } ` ) ;
119123
120- // Initialize AI provider
121- const aiProvider = createAnthropicProvider ( ) ;
122- const currentModel = "claude-sonnet-4-20250514" ;
123-
124124 await initWhatsApp ( {
125125 printQR : false ,
126126 onMessage : async ( msg ) => {
@@ -186,8 +186,10 @@ export async function initializeChannels(_db?: any, _config?: any): Promise<void
186186 // Mark as processed BEFORE handling to prevent race conditions
187187 markMessageProcessed ( messageId , "inbound" , fromRaw ) ;
188188
189- // Process with AI if provider is available
190- if ( aiProvider ) {
189+ // Process with AI using the active provider from registry
190+ const waProvider = getProvider ( ) as any ;
191+ const waModel = getCurrentModel ( ) ;
192+ if ( waProvider ) {
191193 console . log ( "[WhatsApp] ↳ Processing with AI..." ) ;
192194 try {
193195 // Build tools list
@@ -325,8 +327,8 @@ Current time: ${new Date().toLocaleString()}`;
325327 while ( iterations < maxIterations ) {
326328 iterations ++ ;
327329
328- const response = await aiProvider . complete ( {
329- model : currentModel ,
330+ const response = await waProvider . complete ( {
331+ model : waModel ,
330332 messages,
331333 systemPrompt : systemPromptWithMemory ,
332334 tools,
0 commit comments