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 commit 'd21c464c038210a433179514689f24b6d722dbef'

+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 + 237 292 let main_cmd = 238 293 let open Cmdliner in 239 294 let doc = "Poe - Zulip bot for monorepo changes with Claude integration" in