@@ -163,8 +163,44 @@ def _load_agent(self, file_path: Optional[str]):
163163 return Agent (name = "assistant" , instructions = "You are a helpful assistant." )
164164
165165
166- def handle_bot_command (args ) -> None :
167- """Handle bot CLI command."""
166+ def handle_bot_command (args ) -> int :
167+ """Handle bot CLI command.
168+
169+ Args:
170+ args: Either a list of command-line arguments (from main.py unknown_args)
171+ or an argparse.Namespace object (from legacy add_bot_parser).
172+
173+ Returns:
174+ Exit code (0 for success, 1 for error)
175+ """
176+ import argparse
177+
178+ # If args is a list, parse it using argparse
179+ if isinstance (args , list ):
180+ parser = argparse .ArgumentParser (prog = "praisonai bot" )
181+ subparsers = parser .add_subparsers (dest = "platform" , help = "Bot platform" )
182+
183+ # Telegram
184+ telegram_parser = subparsers .add_parser ("telegram" , help = "Start a Telegram bot" )
185+ telegram_parser .add_argument ("--token" , help = "Telegram bot token" )
186+ telegram_parser .add_argument ("--agent" , help = "Path to agent configuration file" )
187+
188+ # Discord
189+ discord_parser = subparsers .add_parser ("discord" , help = "Start a Discord bot" )
190+ discord_parser .add_argument ("--token" , help = "Discord bot token" )
191+ discord_parser .add_argument ("--agent" , help = "Path to agent configuration file" )
192+
193+ # Slack
194+ slack_parser = subparsers .add_parser ("slack" , help = "Start a Slack bot" )
195+ slack_parser .add_argument ("--token" , help = "Slack bot token" )
196+ slack_parser .add_argument ("--app-token" , dest = "app_token" , help = "Slack app token for Socket Mode" )
197+ slack_parser .add_argument ("--agent" , help = "Path to agent configuration file" )
198+
199+ try :
200+ args = parser .parse_args (args )
201+ except SystemExit :
202+ return 1
203+
168204 handler = BotHandler ()
169205
170206 platform = getattr (args , "platform" , None )
@@ -174,20 +210,29 @@ def handle_bot_command(args) -> None:
174210 token = getattr (args , "token" , None ),
175211 agent_file = getattr (args , "agent" , None ),
176212 )
213+ return 0
177214 elif platform == "discord" :
178215 handler .start_discord (
179216 token = getattr (args , "token" , None ),
180217 agent_file = getattr (args , "agent" , None ),
181218 )
219+ return 0
182220 elif platform == "slack" :
183221 handler .start_slack (
184222 token = getattr (args , "token" , None ),
185223 app_token = getattr (args , "app_token" , None ),
186224 agent_file = getattr (args , "agent" , None ),
187225 )
226+ return 0
188227 else :
189228 print ("Available platforms: telegram, discord, slack" )
190229 print ("Usage: praisonai bot <platform> [options]" )
230+ print ("" )
231+ print ("Examples:" )
232+ print (" praisonai bot telegram --token $TELEGRAM_BOT_TOKEN" )
233+ print (" praisonai bot discord --token $DISCORD_BOT_TOKEN" )
234+ print (" praisonai bot slack --token $SLACK_BOT_TOKEN" )
235+ return 1
191236
192237
193238def add_bot_parser (subparsers ) -> None :
0 commit comments