LemonChannels.Adapters.WhatsApp.Transport.CommandRouter (lemon_channels v0.1.0)

View Source

Command and message-routing decision tree for the WhatsApp transport shell.

Simpler than Telegram's router: no media groups, no file commands, no trigger mode, no bot username handling.

Summary

Types

callbacks()

@type callbacks() :: %{
  handle_model_command: (map(), map() -> map()),
  handle_new_session: (map(), map(), binary() | nil -> map()),
  handle_thinking_command: (map(), map() -> map()),
  maybe_cancel_by_reply: (map(), map() -> any()),
  maybe_mark_fork_when_busy: (map(), map() -> map()),
  maybe_mark_new_session_pending: (map(), map() -> map()),
  maybe_transcribe_voice: (map(), map() -> map()),
  should_ignore_for_mention_gate?: (map(), map(), binary() -> boolean()),
  submit_inbound_now: (map(), map() -> map())
}

Functions

handle_inbound_message(state, inbound, callbacks)

@spec handle_inbound_message(map(), map(), callbacks()) :: map()