(*--------------------------------------------------------------------------- Copyright (c) 2026 Anil Madhavapeddy . All rights reserved. SPDX-License-Identifier: ISC ---------------------------------------------------------------------------*) (** Poe bot message handler. *) val src : Logs.Src.t (** Log source for the handler. *) type 'a env = { sw : Eio.Switch.t; process_mgr : 'a Eio.Process.mgr; clock : float Eio.Time.clock_ty Eio.Resource.t; fs : Eio.Fs.dir_ty Eio.Path.t; } (** Environment required for the handler. *) val make_handler : _ env -> Config.t -> Zulip_bot.Bot.handler (** [make_handler env config] creates a bot handler with the given environment and configuration. The handler responds to: - "help" or "?" - Shows help message - "status" - Shows current configuration - "broadcast", "post changes", "post", "changes" - Broadcasts daily changes - Any other message - Passed to Claude for interpretation *) val ask_claude : _ env -> string -> string (** [ask_claude env prompt] sends a prompt to Claude and returns the response. *)