A Zulip bot agent to sit in our Black Sun. Ever evolving
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

merge

-55
-55
bin/main.ml
··· 234 234 const loop $ Fmt_cli.style_renderer () $ Logs_cli.level () 235 235 $ requests_verbose_arg $ config_file $ bot_name $ interval) 236 236 237 - let loop_cmd = 238 - let open Cmdliner in 239 - let config_file = 240 - Arg.( 241 - value 242 - & opt (some string) None 243 - & info [ "c"; "config" ] ~docv:"FILE" 244 - ~doc:"Path to poe.toml configuration file.") 245 - in 246 - let bot_name = 247 - Arg.( 248 - value 249 - & opt string "poe" 250 - & info [ "n"; "name" ] ~docv:"NAME" 251 - ~doc:"Bot name for Zulip configuration lookup.") 252 - in 253 - let interval = 254 - Arg.( 255 - value 256 - & opt int 3600 257 - & info [ "i"; "interval" ] ~docv:"SECONDS" 258 - ~doc:"Interval in seconds between change checks (default: 3600).") 259 - in 260 - let loop style_renderer level config_file bot_name interval = 261 - setup_logging style_renderer level; 262 - Eio_main.run @@ fun env -> 263 - Eio.Switch.run @@ fun sw -> 264 - let fs = Eio.Stdenv.fs env in 265 - 266 - (* Load poe config: explicit path > XDG > current dir > defaults *) 267 - let poe_config = 268 - match config_file with 269 - | Some path -> Poe.Config.load ~fs path 270 - | None -> ( 271 - match Poe.Config.load_xdg_opt ~fs with 272 - | Some c -> c 273 - | None -> ( 274 - match Poe.Config.load_opt ~fs "poe.toml" with 275 - | Some c -> c 276 - | None -> Poe.Config.default)) 277 - in 278 - 279 - let zulip_config = Zulip_bot.Config.load_or_env ~xdg_app:"poe" ~fs bot_name in 280 - Logs.info (fun m -> 281 - m "Starting loop, broadcasting to %s/%s every %d seconds" 282 - poe_config.channel poe_config.topic interval); 283 - Poe.Loop.run ~sw ~env ~config:poe_config ~zulip_config ~interval 284 - in 285 - let doc = "Run polling loop to check for and broadcast changes" in 286 - let info = Cmd.info "loop" ~doc in 287 - Cmd.v info 288 - Term.( 289 - const loop $ Fmt_cli.style_renderer () $ Logs_cli.level () 290 - $ config_file $ bot_name $ interval) 291 - 292 237 let main_cmd = 293 238 let open Cmdliner in 294 239 let doc = "Poe - Zulip bot for monorepo changes with Claude integration" in