From 406141cd7d491c78bd4850c3cc4ab7939a555f77 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Thu, 27 Feb 2025 07:46:16 +0200 Subject: [PATCH] fmt --- src/agent/instantiation.rs | 2 +- src/agent/manager.rs | 4 +- src/agent/mod.rs | 4 +- src/agent/provider/anthropic/controller.rs | 6 +- src/agent/provider/anthropic/mod.rs | 2 +- src/agent/provider/controller.rs | 2 +- src/agent/provider/entity/agent_provider.rs | 25 ++----- src/agent/provider/openai/controller.rs | 10 +-- src/agent/provider/openai/mod.rs | 2 +- .../provider/openai_compat/controller.rs | 8 +- src/agent/provider/openai_compat/mod.rs | 2 +- src/agent/utils.rs | 2 +- src/bot/implementation.rs | 4 +- src/bot/load_config.rs | 2 +- src/bot/messaging.rs | 8 +- src/bot/reacting.rs | 14 ++-- src/bot/rooms.rs | 8 +- src/controller/access/dispatching.rs | 2 +- src/controller/access/help.rs | 2 +- src/controller/access/mod.rs | 2 +- .../access/room_local_agent_managers.rs | 2 +- src/controller/access/users.rs | 2 +- src/controller/agent/create/mod.rs | 6 +- src/controller/agent/delete/mod.rs | 4 +- src/controller/agent/details/mod.rs | 2 +- src/controller/agent/help/mod.rs | 2 +- src/controller/agent/list/mod.rs | 2 +- src/controller/agent/mod.rs | 4 +- src/controller/cfg/common/generic_setting.rs | 2 +- src/controller/cfg/dispatching/mod.rs | 2 +- .../cfg/dispatching/speech_to_text.rs | 2 +- .../cfg/dispatching/text_generation.rs | 2 +- .../cfg/dispatching/text_to_speech.rs | 2 +- .../cfg/global_config/generic_setting.rs | 4 +- src/controller/cfg/global_config/handler.rs | 5 +- src/controller/cfg/help.rs | 5 +- .../cfg/room_config/generic_setting.rs | 4 +- src/controller/cfg/room_config/handler.rs | 3 +- src/controller/cfg/status.rs | 9 ++- src/controller/chat_completion/mod.rs | 12 +-- src/controller/determination/mod.rs | 4 +- src/controller/determination/tests.rs | 3 +- src/controller/dispatching.rs | 2 +- src/controller/help/mod.rs | 2 +- src/controller/image/generation.rs | 4 +- src/controller/image/prompt.rs | 74 ++++++++++--------- src/controller/join/mod.rs | 6 +- src/controller/provider/mod.rs | 2 +- src/controller/reaction/mod.rs | 2 +- src/controller/reaction/text_to_speech.rs | 10 ++- src/controller/usage/mod.rs | 2 +- src/controller/utils/agent.rs | 5 +- src/controller/utils/mod.rs | 2 +- src/controller/utils/text_to_speech.rs | 5 +- src/conversation/llm/tests.rs | 4 +- src/conversation/llm/tokenization.rs | 2 +- .../matrix/room_display_name_fetcher.rs | 2 +- src/conversation/matrix/room_event_fetcher.rs | 2 +- src/conversation/matrix/utils/mod.rs | 12 +-- src/conversation/matrix_llm_bridge.rs | 8 +- src/entity/cfg/config.rs | 4 +- src/entity/message_context.rs | 6 +- src/entity/room_config_context.rs | 7 +- src/entity/roomconfig/entity/mod.rs | 15 +++- src/lib.rs | 2 +- src/main.rs | 4 +- src/strings/cfg.rs | 13 +++- src/strings/help/access.rs | 16 +++- src/strings/help/agent.rs | 16 +++- src/strings/help/cfg.rs | 20 +++-- src/strings/introduction.rs | 20 +++-- src/strings/speech_to_text.rs | 5 +- 72 files changed, 259 insertions(+), 209 deletions(-) diff --git a/src/agent/instantiation.rs b/src/agent/instantiation.rs index 9608bf0..537395a 100644 --- a/src/agent/instantiation.rs +++ b/src/agent/instantiation.rs @@ -1,6 +1,6 @@ use super::{ - provider::{self, ControllerType}, AgentDefinition, AgentProvider, PublicIdentifier, + provider::{self, ControllerType}, }; // Dead-code is allowed. We do not use these enum struct payloads directly, diff --git a/src/agent/manager.rs b/src/agent/manager.rs index 0f5dec7..da30fdb 100644 --- a/src/agent/manager.rs +++ b/src/agent/manager.rs @@ -1,7 +1,7 @@ -use super::instantiation; -use super::instantiation::AgentInstance; use super::AgentDefinition; use super::PublicIdentifier; +use super::instantiation; +use super::instantiation::AgentInstance; use crate::entity::RoomConfigContext; #[derive(Debug)] diff --git a/src/agent/mod.rs b/src/agent/mod.rs index 64381d0..732d09f 100644 --- a/src/agent/mod.rs +++ b/src/agent/mod.rs @@ -11,11 +11,11 @@ pub use manager::Manager; pub use definition::AgentDefinition; -pub use instantiation::create_from_provider_and_yaml_value_config; -pub use instantiation::default_config_for_provider; pub use instantiation::AgentInstance; pub use instantiation::Error as AgentInstantiationError; pub use instantiation::Result as AgentInstantiationResult; +pub use instantiation::create_from_provider_and_yaml_value_config; +pub use instantiation::default_config_for_provider; pub use provider::{AgentProvider, AgentProviderInfo, ControllerTrait}; pub use purpose::AgentPurpose; diff --git a/src/agent/provider/anthropic/controller.rs b/src/agent/provider/anthropic/controller.rs index 93d0a55..3856382 100644 --- a/src/agent/provider/anthropic/controller.rs +++ b/src/agent/provider/anthropic/controller.rs @@ -9,15 +9,15 @@ use anthropic_rs::{ }; use super::super::ControllerTrait; +use crate::agent::AgentPurpose; use crate::agent::provider::entity::{ ImageGenerationResult, PingResult, TextGenerationParams, TextGenerationResult, TextToSpeechParams, TextToSpeechResult, }; use crate::agent::provider::{ImageGenerationParams, SpeechToTextParams, SpeechToTextResult}; -use crate::agent::AgentPurpose; use crate::conversation::llm::{ - shorten_messages_list_to_context_size, Author as LLMAuthor, Conversation as LLMConversation, - Message as LLMMessage, + Author as LLMAuthor, Conversation as LLMConversation, Message as LLMMessage, + shorten_messages_list_to_context_size, }; use crate::strings; diff --git a/src/agent/provider/anthropic/mod.rs b/src/agent/provider/anthropic/mod.rs index 53504c4..59d4ee7 100644 --- a/src/agent/provider/anthropic/mod.rs +++ b/src/agent/provider/anthropic/mod.rs @@ -7,8 +7,8 @@ pub use controller::Controller; use super::super::AgentInstantiationError; use super::super::AgentInstantiationResult; -use super::controller::ControllerType; use super::ConfigTrait; +use super::controller::ControllerType; pub fn create_controller_from_yaml_value_config( agent_id: &str, diff --git a/src/agent/provider/controller.rs b/src/agent/provider/controller.rs index 8081fd5..18b2772 100644 --- a/src/agent/provider/controller.rs +++ b/src/agent/provider/controller.rs @@ -1,11 +1,11 @@ use crate::{agent::AgentPurpose, conversation::llm::Conversation}; use super::{ + ImageGenerationParams, SpeechToTextParams, SpeechToTextResult, entity::{ ImageGenerationResult, PingResult, TextGenerationParams, TextGenerationResult, TextToSpeechParams, TextToSpeechResult, }, - ImageGenerationParams, SpeechToTextParams, SpeechToTextResult, }; pub trait ControllerTrait { diff --git a/src/agent/provider/entity/agent_provider.rs b/src/agent/provider/entity/agent_provider.rs index 9cb0284..477444b 100644 --- a/src/agent/provider/entity/agent_provider.rs +++ b/src/agent/provider/entity/agent_provider.rs @@ -67,9 +67,7 @@ impl AgentProvider { wiki_url: Some("https://en.wikipedia.org/wiki/Anthropic"), sign_up_url: Some("https://console.anthropic.com/"), models_list_url: Some("https://docs.anthropic.com/en/docs/about-claude/models"), - supported_purposes: vec![ - AgentPurpose::TextGeneration, - ], + supported_purposes: vec![AgentPurpose::TextGeneration], }, Self::Groq => AgentProviderInfo { id: Self::Groq.to_static_str(), @@ -79,10 +77,7 @@ impl AgentProvider { wiki_url: Some("https://en.wikipedia.org/wiki/Groq"), sign_up_url: Some("https://console.groq.com/login"), models_list_url: Some("https://console.groq.com/docs/models"), - supported_purposes: vec![ - AgentPurpose::TextGeneration, - AgentPurpose::SpeechToText, - ], + supported_purposes: vec![AgentPurpose::TextGeneration, AgentPurpose::SpeechToText], }, Self::LocalAI => AgentProviderInfo { id: Self::LocalAI.to_static_str(), @@ -106,9 +101,7 @@ impl AgentProvider { wiki_url: Some("https://en.wikipedia.org/wiki/Mistral_AI"), sign_up_url: Some("https://auth.mistral.ai/ui/registration"), models_list_url: Some("https://docs.mistral.ai/getting-started/models/"), - supported_purposes: vec![ - AgentPurpose::TextGeneration, - ], + supported_purposes: vec![AgentPurpose::TextGeneration], }, Self::Ollama => AgentProviderInfo { id: Self::Ollama.to_static_str(), @@ -118,9 +111,7 @@ impl AgentProvider { wiki_url: None, sign_up_url: None, models_list_url: Some("https://ollama.com/library"), - supported_purposes: vec![ - AgentPurpose::TextGeneration, - ], + supported_purposes: vec![AgentPurpose::TextGeneration], }, Self::OpenAI => AgentProviderInfo { id: Self::OpenAI.to_static_str(), @@ -160,9 +151,7 @@ impl AgentProvider { wiki_url: None, sign_up_url: Some("https://openrouter.ai/"), models_list_url: Some("https://openrouter.ai/models"), - supported_purposes: vec![ - AgentPurpose::TextGeneration, - ], + supported_purposes: vec![AgentPurpose::TextGeneration], }, Self::TogetherAI => AgentProviderInfo { id: Self::TogetherAI.to_static_str(), @@ -172,9 +161,7 @@ impl AgentProvider { wiki_url: None, sign_up_url: Some("https://api.together.ai/signup"), models_list_url: Some("https://api.together.xyz/models"), - supported_purposes: vec![ - AgentPurpose::TextGeneration, - ], + supported_purposes: vec![AgentPurpose::TextGeneration], }, } } diff --git a/src/agent/provider/openai/controller.rs b/src/agent/provider/openai/controller.rs index 5331af8..8be9dc9 100644 --- a/src/agent/provider/openai/controller.rs +++ b/src/agent/provider/openai/controller.rs @@ -1,36 +1,36 @@ use std::ops::Deref; use async_openai::{ + Client as OpenAIClient, config::OpenAIConfig, types::{ ChatCompletionRequestMessage, CreateChatCompletionRequestArgs, CreateImageRequestArgs, CreateSpeechRequestArgs, CreateTranscriptionRequestArgs, }, - Client as OpenAIClient, }; use super::super::ControllerTrait; use crate::{ agent::{ + AgentPurpose, provider::{ entity::{ImageGenerationResult, PingResult, TextToSpeechParams, TextToSpeechResult}, openai::utils::convert_string_to_enum, }, - AgentPurpose, }, strings, }; use crate::{ agent::{ provider::{ - entity::{TextGenerationParams, TextGenerationResult}, ImageGenerationParams, SpeechToTextParams, SpeechToTextResult, + entity::{TextGenerationParams, TextGenerationResult}, }, utils::base64_decode, }, conversation::llm::{ - shorten_messages_list_to_context_size, Author as LLMAuthor, - Conversation as LLMConversation, Message as LLMMessage, + Author as LLMAuthor, Conversation as LLMConversation, Message as LLMMessage, + shorten_messages_list_to_context_size, }, }; diff --git a/src/agent/provider/openai/mod.rs b/src/agent/provider/openai/mod.rs index a61f213..4d42a61 100644 --- a/src/agent/provider/openai/mod.rs +++ b/src/agent/provider/openai/mod.rs @@ -13,8 +13,8 @@ pub(super) use config::TextToSpeechConfig; use super::super::AgentInstantiationError; use super::super::AgentInstantiationResult; -use super::controller::ControllerType; use super::ConfigTrait; +use super::controller::ControllerType; pub fn create_controller_from_yaml_value_config( agent_id: &str, diff --git a/src/agent/provider/openai_compat/controller.rs b/src/agent/provider/openai_compat/controller.rs index 9cd7f8f..760ee68 100644 --- a/src/agent/provider/openai_compat/controller.rs +++ b/src/agent/provider/openai_compat/controller.rs @@ -7,20 +7,20 @@ use super::super::ControllerTrait; use crate::agent::utils::base64_decode; use crate::{ agent::provider::{ - entity::{TextGenerationParams, TextGenerationResult}, ImageGenerationParams, SpeechToTextParams, SpeechToTextResult, + entity::{TextGenerationParams, TextGenerationResult}, }, conversation::llm::{ - shorten_messages_list_to_context_size, Author as LLMAuthor, - Conversation as LLMConversation, Message as LLMMessage, + Author as LLMAuthor, Conversation as LLMConversation, Message as LLMMessage, + shorten_messages_list_to_context_size, }, }; use crate::{ agent::{ + AgentPurpose, provider::entity::{ ImageGenerationResult, PingResult, TextToSpeechParams, TextToSpeechResult, }, - AgentPurpose, }, strings, }; diff --git a/src/agent/provider/openai_compat/mod.rs b/src/agent/provider/openai_compat/mod.rs index 85b1061..7c7eaf6 100644 --- a/src/agent/provider/openai_compat/mod.rs +++ b/src/agent/provider/openai_compat/mod.rs @@ -21,8 +21,8 @@ pub use controller::Controller; use super::super::AgentInstantiationError; use super::super::AgentInstantiationResult; -use super::controller::ControllerType; use super::ConfigTrait; +use super::controller::ControllerType; pub fn create_controller_from_yaml_value_config( agent_id: &str, diff --git a/src/agent/utils.rs b/src/agent/utils.rs index a97029a..980eb48 100644 --- a/src/agent/utils.rs +++ b/src/agent/utils.rs @@ -1,4 +1,4 @@ -use base64::{engine::general_purpose::STANDARD, Engine as _}; +use base64::{Engine as _, engine::general_purpose::STANDARD}; use crate::{ agent::{ diff --git a/src/bot/implementation.rs b/src/bot/implementation.rs index fdae986..ba2bc6b 100644 --- a/src/bot/implementation.rs +++ b/src/bot/implementation.rs @@ -1,11 +1,11 @@ use std::sync::Arc; use std::{future::Future, pin::Pin}; +use mxlink::matrix_sdk::Room; use mxlink::matrix_sdk::media::{MediaFormat, MediaRequestParameters}; use mxlink::matrix_sdk::ruma::{ - events::room::MediaSource, MilliSecondsSinceUnixEpoch, OwnedUserId, + MilliSecondsSinceUnixEpoch, OwnedUserId, events::room::MediaSource, }; -use mxlink::matrix_sdk::Room; use mxlink::{ InitConfig, LoginConfig, LoginCredentials, LoginEncryption, MatrixLink, PersistenceConfig, diff --git a/src/bot/load_config.rs b/src/bot/load_config.rs index 6ece90f..c69e372 100644 --- a/src/bot/load_config.rs +++ b/src/bot/load_config.rs @@ -5,7 +5,7 @@ use anyhow::anyhow; use crate::agent::AgentPurpose; -pub use crate::entity::cfg::{defaults as cfg_defaults, env as cfg_env, Config}; +pub use crate::entity::cfg::{Config, defaults as cfg_defaults, env as cfg_env}; pub fn load() -> anyhow::Result { let config_file_path = env::var(cfg_env::BAIBOT_CONFIG_FILE_PATH) diff --git a/src/bot/messaging.rs b/src/bot/messaging.rs index 167c23a..ed83ef0 100644 --- a/src/bot/messaging.rs +++ b/src/bot/messaging.rs @@ -1,9 +1,9 @@ use mxlink::matrix_sdk::{ - ruma::{ - api::client::receipt::create_receipt::v3::ReceiptType, - events::room::message::OriginalSyncRoomMessageEvent, OwnedEventId, - }, Room, + ruma::{ + OwnedEventId, api::client::receipt::create_receipt::v3::ReceiptType, + events::room::message::OriginalSyncRoomMessageEvent, + }, }; use mxlink::{CallbackError, MessageResponseType}; diff --git a/src/bot/reacting.rs b/src/bot/reacting.rs index 72626df..435e572 100644 --- a/src/bot/reacting.rs +++ b/src/bot/reacting.rs @@ -1,12 +1,12 @@ use mxlink::matrix_sdk::{ - ruma::{ - events::{ - room::message::Relation, AnySyncMessageLikeEvent, AnySyncTimelineEvent, - SyncMessageLikeEvent, - }, - OwnedEventId, OwnedUserId, - }, Room, + ruma::{ + OwnedEventId, OwnedUserId, + events::{ + AnySyncMessageLikeEvent, AnySyncTimelineEvent, SyncMessageLikeEvent, + room::message::Relation, + }, + }, }; use mxlink::CallbackError; diff --git a/src/bot/rooms.rs b/src/bot/rooms.rs index 811b72c..724965a 100644 --- a/src/bot/rooms.rs +++ b/src/bot/rooms.rs @@ -1,9 +1,9 @@ use mxlink::{ - matrix_sdk::{ - ruma::events::{room::member::StrippedRoomMemberEvent, AnySyncTimelineEvent}, - Room, - }, InvitationDecision, + matrix_sdk::{ + Room, + ruma::events::{AnySyncTimelineEvent, room::member::StrippedRoomMemberEvent}, + }, }; use mxlink::CallbackError; diff --git a/src/controller/access/dispatching.rs b/src/controller/access/dispatching.rs index 53ac82d..97ebfd3 100644 --- a/src/controller/access/dispatching.rs +++ b/src/controller/access/dispatching.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; use super::AccessControllerType; diff --git a/src/controller/access/help.rs b/src/controller/access/help.rs index bdc760b..63e6402 100644 --- a/src/controller/access/help.rs +++ b/src/controller/access/help.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; pub async fn handle(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { let mut message = String::new(); diff --git a/src/controller/access/mod.rs b/src/controller/access/mod.rs index f829769..f8c5779 100644 --- a/src/controller/access/mod.rs +++ b/src/controller/access/mod.rs @@ -4,5 +4,5 @@ pub mod help; mod room_local_agent_managers; mod users; -pub use determination::{determine_controller, AccessControllerType}; +pub use determination::{AccessControllerType, determine_controller}; pub use dispatching::dispatch_controller; diff --git a/src/controller/access/room_local_agent_managers.rs b/src/controller/access/room_local_agent_managers.rs index 7487578..a415888 100644 --- a/src/controller/access/room_local_agent_managers.rs +++ b/src/controller/access/room_local_agent_managers.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; pub async fn handle_get(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { let message = match &message_context diff --git a/src/controller/access/users.rs b/src/controller/access/users.rs index 2961dbf..fab8e14 100644 --- a/src/controller/access/users.rs +++ b/src/controller/access/users.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; pub async fn handle_get(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { let message = match &message_context.global_config().access.user_patterns { diff --git a/src/controller/agent/create/mod.rs b/src/controller/agent/create/mod.rs index d02e148..fee1135 100644 --- a/src/controller/agent/create/mod.rs +++ b/src/controller/agent/create/mod.rs @@ -3,15 +3,15 @@ mod tests; use mxlink::MessageResponseType; -use crate::agent::provider::{ControllerTrait, PingResult}; use crate::agent::PublicIdentifier; -use crate::agent::{create_from_provider_and_yaml_value_config, AgentDefinition}; +use crate::agent::provider::{ControllerTrait, PingResult}; +use crate::agent::{AgentDefinition, create_from_provider_and_yaml_value_config}; use crate::agent::{AgentInstance, AgentProvider}; use crate::controller::utils::get_text_body_or_complain; use crate::entity::globalconfig::GlobalConfigurationManager; use crate::entity::roomconfig::RoomConfigurationManager; use crate::strings; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; struct ParsedAgentConfig { agent: AgentInstance, diff --git a/src/controller/agent/delete/mod.rs b/src/controller/agent/delete/mod.rs index 2c15a57..c094700 100644 --- a/src/controller/agent/delete/mod.rs +++ b/src/controller/agent/delete/mod.rs @@ -1,9 +1,9 @@ use mxlink::MessageResponseType; use crate::entity::{ - globalconfig::GlobalConfigurationManager, roomconfig::RoomConfigurationManager, MessageContext, + MessageContext, globalconfig::GlobalConfigurationManager, roomconfig::RoomConfigurationManager, }; -use crate::{agent::PublicIdentifier, strings, Bot}; +use crate::{Bot, agent::PublicIdentifier, strings}; pub async fn handle( bot: &Bot, diff --git a/src/controller/agent/details/mod.rs b/src/controller/agent/details/mod.rs index fddf8cf..d47a0fe 100644 --- a/src/controller/agent/details/mod.rs +++ b/src/controller/agent/details/mod.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{agent::PublicIdentifier, entity::MessageContext, strings, Bot}; +use crate::{Bot, agent::PublicIdentifier, entity::MessageContext, strings}; pub async fn handle( bot: &Bot, diff --git a/src/controller/agent/help/mod.rs b/src/controller/agent/help/mod.rs index 80de04a..53ec06e 100644 --- a/src/controller/agent/help/mod.rs +++ b/src/controller/agent/help/mod.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; pub async fn handle(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { // Anyone can access this help command, because certain subcommands ("list") diff --git a/src/controller/agent/list/mod.rs b/src/controller/agent/list/mod.rs index a7f8f97..d375dd5 100644 --- a/src/controller/agent/list/mod.rs +++ b/src/controller/agent/list/mod.rs @@ -2,7 +2,7 @@ use mxlink::MessageResponseType; use crate::agent::AgentPurpose; use crate::strings; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; pub async fn handle(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { let agents = bot diff --git a/src/controller/agent/mod.rs b/src/controller/agent/mod.rs index 6c53a4f..d487c04 100644 --- a/src/controller/agent/mod.rs +++ b/src/controller/agent/mod.rs @@ -1,4 +1,4 @@ -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; pub mod create; pub mod delete; @@ -7,7 +7,7 @@ pub mod determination; pub mod help; pub mod list; -pub use determination::{determine_controller, AgentControllerType}; +pub use determination::{AgentControllerType, determine_controller}; pub async fn dispatch_controller( handler: &AgentControllerType, diff --git a/src/controller/cfg/common/generic_setting.rs b/src/controller/cfg/common/generic_setting.rs index ffebe6d..6805089 100644 --- a/src/controller/cfg/common/generic_setting.rs +++ b/src/controller/cfg/common/generic_setting.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; pub async fn handle_get( bot: &Bot, diff --git a/src/controller/cfg/dispatching/mod.rs b/src/controller/cfg/dispatching/mod.rs index c38b584..3c5ca50 100644 --- a/src/controller/cfg/dispatching/mod.rs +++ b/src/controller/cfg/dispatching/mod.rs @@ -1,5 +1,5 @@ use crate::strings; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; use mxlink::MessageResponseType; use super::controller_type::{ diff --git a/src/controller/cfg/dispatching/speech_to_text.rs b/src/controller/cfg/dispatching/speech_to_text.rs index e1f90ec..eee7f51 100644 --- a/src/controller/cfg/dispatching/speech_to_text.rs +++ b/src/controller/cfg/dispatching/speech_to_text.rs @@ -2,7 +2,7 @@ use crate::entity::roomconfig::{ RoomSettings, SpeechToTextFlowType, SpeechToTextMessageTypeForNonThreadedOnlyTranscribedMessages, }; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; use super::super::controller_type::{ ConfigSpeechToTextSettingRelatedControllerType, SettingsStorageSource, diff --git a/src/controller/cfg/dispatching/text_generation.rs b/src/controller/cfg/dispatching/text_generation.rs index 64ed659..fae3523 100644 --- a/src/controller/cfg/dispatching/text_generation.rs +++ b/src/controller/cfg/dispatching/text_generation.rs @@ -1,7 +1,7 @@ use crate::entity::roomconfig::{ RoomSettings, TextGenerationAutoUsage, TextGenerationPrefixRequirementType, }; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; use super::super::controller_type::{ ConfigTextGenerationSettingRelatedControllerType, SettingsStorageSource, diff --git a/src/controller/cfg/dispatching/text_to_speech.rs b/src/controller/cfg/dispatching/text_to_speech.rs index 9a28e6b..1bf311f 100644 --- a/src/controller/cfg/dispatching/text_to_speech.rs +++ b/src/controller/cfg/dispatching/text_to_speech.rs @@ -1,7 +1,7 @@ use crate::entity::roomconfig::{ RoomSettings, TextToSpeechBotMessagesFlowType, TextToSpeechUserMessagesFlowType, }; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; use super::super::controller_type::{ ConfigTextToSpeechSettingRelatedControllerType, SettingsStorageSource, diff --git a/src/controller/cfg/global_config/generic_setting.rs b/src/controller/cfg/global_config/generic_setting.rs index 90b255a..5a3f915 100644 --- a/src/controller/cfg/global_config/generic_setting.rs +++ b/src/controller/cfg/global_config/generic_setting.rs @@ -1,7 +1,7 @@ use mxlink::MessageResponseType; -use crate::entity::{roomconfig::RoomSettings, MessageContext}; -use crate::{strings, Bot}; +use crate::entity::{MessageContext, roomconfig::RoomSettings}; +use crate::{Bot, strings}; pub async fn handle_set( bot: &Bot, diff --git a/src/controller/cfg/global_config/handler.rs b/src/controller/cfg/global_config/handler.rs index e5b08dd..aaa7188 100644 --- a/src/controller/cfg/global_config/handler.rs +++ b/src/controller/cfg/global_config/handler.rs @@ -1,9 +1,10 @@ use mxlink::MessageResponseType; use crate::{ + Bot, agent::{AgentPurpose, PublicIdentifier}, - entity::{globalconfig::GlobalConfigurationManager, MessageContext}, - strings, Bot, + entity::{MessageContext, globalconfig::GlobalConfigurationManager}, + strings, }; pub async fn handle_get( diff --git a/src/controller/cfg/help.rs b/src/controller/cfg/help.rs index 2097df1..bcc8205 100644 --- a/src/controller/cfg/help.rs +++ b/src/controller/cfg/help.rs @@ -1,15 +1,16 @@ use mxlink::MessageResponseType; use crate::{ + Bot, entity::{ + MessageContext, roomconfig::{ SpeechToTextFlowType, SpeechToTextMessageTypeForNonThreadedOnlyTranscribedMessages, TextGenerationAutoUsage, TextGenerationPrefixRequirementType, TextToSpeechBotMessagesFlowType, TextToSpeechUserMessagesFlowType, }, - MessageContext, }, - strings, Bot, + strings, }; pub async fn handle(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { diff --git a/src/controller/cfg/room_config/generic_setting.rs b/src/controller/cfg/room_config/generic_setting.rs index a9e49b3..047b4f6 100644 --- a/src/controller/cfg/room_config/generic_setting.rs +++ b/src/controller/cfg/room_config/generic_setting.rs @@ -1,7 +1,7 @@ use mxlink::MessageResponseType; -use crate::entity::{roomconfig::RoomSettings, MessageContext}; -use crate::{strings, Bot}; +use crate::entity::{MessageContext, roomconfig::RoomSettings}; +use crate::{Bot, strings}; pub async fn handle_set( bot: &Bot, diff --git a/src/controller/cfg/room_config/handler.rs b/src/controller/cfg/room_config/handler.rs index ab869ed..6fbb8b0 100644 --- a/src/controller/cfg/room_config/handler.rs +++ b/src/controller/cfg/room_config/handler.rs @@ -1,9 +1,10 @@ use mxlink::MessageResponseType; use crate::{ + Bot, agent::{AgentPurpose, PublicIdentifier}, entity::MessageContext, - strings, Bot, + strings, }; use crate::entity::roomconfig::RoomConfigurationManager; diff --git a/src/controller/cfg/status.rs b/src/controller/cfg/status.rs index 933891e..1a49fe1 100644 --- a/src/controller/cfg/status.rs +++ b/src/controller/cfg/status.rs @@ -1,15 +1,16 @@ use mxlink::MessageResponseType; use crate::{ + Bot, agent::{ - utils::get_effective_agent_for_purpose, AgentInstance, AgentPurpose, ControllerTrait, - Manager as AgentManager, PublicIdentifier, + AgentInstance, AgentPurpose, ControllerTrait, Manager as AgentManager, PublicIdentifier, + utils::get_effective_agent_for_purpose, }, entity::{ - roomconfig::{RoomConfig, RoomSettingsHandler}, MessageContext, RoomConfigContext, + roomconfig::{RoomConfig, RoomSettingsHandler}, }, - strings, Bot, + strings, }; pub async fn handle(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { diff --git a/src/controller/chat_completion/mod.rs b/src/controller/chat_completion/mod.rs index cfbf51e..1844d6d 100644 --- a/src/controller/chat_completion/mod.rs +++ b/src/controller/chat_completion/mod.rs @@ -1,31 +1,31 @@ -use mxlink::matrix_sdk::ruma::events::room::message::AudioMessageEventContent; use mxlink::matrix_sdk::ruma::OwnedEventId; +use mxlink::matrix_sdk::ruma::events::room::message::AudioMessageEventContent; use mxlink::{MatrixLink, MessageResponseType}; use tracing::Instrument; -use crate::agent::provider::{ - SpeechToTextParams, TextGenerationParams, TextGenerationPromptVariables, -}; use crate::agent::AgentInstance; use crate::agent::AgentPurpose; use crate::agent::ControllerTrait; +use crate::agent::provider::{ + SpeechToTextParams, TextGenerationParams, TextGenerationPromptVariables, +}; use crate::controller::utils::agent::get_effective_agent_for_purpose_or_complain; use crate::conversation::matrix::MatrixMessageProcessingParams; +use crate::entity::MessagePayload; use crate::entity::roomconfig::{ SpeechToTextFlowType, SpeechToTextMessageTypeForNonThreadedOnlyTranscribedMessages, TextToSpeechBotMessagesFlowType, TextToSpeechUserMessagesFlowType, }; -use crate::entity::MessagePayload; use crate::strings; use crate::utils::text_to_speech::create_transcribed_message_text; use crate::{ + Bot, conversation::{ create_llm_conversation_for_matrix_reply_chain, create_llm_conversation_for_matrix_thread, matrix::create_list_of_bot_user_prefixes_to_strip, }, entity::MessageContext, - Bot, }; #[derive(Debug, PartialEq)] diff --git a/src/controller/determination/mod.rs b/src/controller/determination/mod.rs index 7fdd117..9c1d6de 100644 --- a/src/controller/determination/mod.rs +++ b/src/controller/determination/mod.rs @@ -4,8 +4,8 @@ mod tests; use super::chat_completion::ChatCompletionControllerType; use crate::{ entity::{ - roomconfig::TextGenerationPrefixRequirementType, InteractionTrigger, MessageContext, - MessagePayload, + InteractionTrigger, MessageContext, MessagePayload, + roomconfig::TextGenerationPrefixRequirementType, }, strings, }; diff --git a/src/controller/determination/tests.rs b/src/controller/determination/tests.rs index a8d15da..ccd5ed7 100644 --- a/src/controller/determination/tests.rs +++ b/src/controller/determination/tests.rs @@ -142,8 +142,7 @@ fn determine_text_controller() { // This test case is the same as the one above, just with a different prefix requirement setting. // We expect the same result. TestCase { - name: - "Regular message with bot mention triggers completion (command prefix requirement)", + name: "Regular message with bot mention triggers completion (command prefix requirement)", input: "Regular text goes here", is_mentioning_bot: true, room_text_generation_prefix_requirement_type: diff --git a/src/controller/dispatching.rs b/src/controller/dispatching.rs index e73c362..ed60ad1 100644 --- a/src/controller/dispatching.rs +++ b/src/controller/dispatching.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; use super::ControllerType; diff --git a/src/controller/help/mod.rs b/src/controller/help/mod.rs index f07bd46..37a5424 100644 --- a/src/controller/help/mod.rs +++ b/src/controller/help/mod.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; pub async fn handle(bot: &Bot, message_context: &MessageContext) -> anyhow::Result<()> { let sender_can_manage_global_config = message_context.sender_can_manage_global_config(); diff --git a/src/controller/image/generation.rs b/src/controller/image/generation.rs index 6a3a47f..a14a0b0 100644 --- a/src/controller/image/generation.rs +++ b/src/controller/image/generation.rs @@ -2,15 +2,15 @@ use mxlink::{MatrixLink, MessageResponseType}; use tracing::Instrument; -use crate::agent::provider::ImageGenerationParams; use crate::agent::AgentPurpose; use crate::agent::ControllerTrait; +use crate::agent::provider::ImageGenerationParams; use crate::controller::utils::agent::get_effective_agent_for_purpose_or_complain; use crate::controller::utils::mime::get_file_extension; use crate::conversation::create_llm_conversation_for_matrix_thread; use crate::conversation::matrix::MatrixMessageProcessingParams; use crate::strings; -use crate::{entity::MessageContext, Bot}; +use crate::{Bot, entity::MessageContext}; // We may make this configurable (per room, etc.) in the future, but for now it's hardcoded. const STICKER_SIZE: &str = "256x256"; diff --git a/src/controller/image/prompt.rs b/src/controller/image/prompt.rs index b78520c..4e5bfc1 100644 --- a/src/controller/image/prompt.rs +++ b/src/controller/image/prompt.rs @@ -68,46 +68,50 @@ mod tests { // Multiple complex user messages dispersed with assistant messages TestCase { original_prompt: "Generate a picture of an elephant", - messages: vec![Message { - author: Author::User, - message_text: "Must be blue".to_owned(), - timestamp, - }, - Message { - author: Author::Assistant, - message_text: "Whatever".to_owned(), - timestamp, - }, - Message { - author: Author::User, - message_text: "Must be 3-legged.\nMust be flying.".to_owned(), - timestamp, - }], + messages: vec![ + Message { + author: Author::User, + message_text: "Must be blue".to_owned(), + timestamp, + }, + Message { + author: Author::Assistant, + message_text: "Whatever".to_owned(), + timestamp, + }, + Message { + author: Author::User, + message_text: "Must be 3-legged.\nMust be flying.".to_owned(), + timestamp, + }, + ], expected_prompt: "Generate a picture of an elephant\nOther criteria:\n- Must be blue\n- Must be 3-legged.. Must be flying.", }, // "Again" is ignored. TestCase { original_prompt: "Generate a picture of a grizzly bear", - messages: vec![Message { - author: Author::User, - message_text: "Must be blue".to_owned(), - timestamp, - }, - Message { - author: Author::Assistant, - message_text: "Whatever".to_owned(), - timestamp, - }, - Message { - author: Author::User, - message_text: "Again".to_owned(), - timestamp, - }, - Message { - author: Author::User, - message_text: "again".to_owned(), - timestamp, - }], + messages: vec![ + Message { + author: Author::User, + message_text: "Must be blue".to_owned(), + timestamp, + }, + Message { + author: Author::Assistant, + message_text: "Whatever".to_owned(), + timestamp, + }, + Message { + author: Author::User, + message_text: "Again".to_owned(), + timestamp, + }, + Message { + author: Author::User, + message_text: "again".to_owned(), + timestamp, + }, + ], expected_prompt: "Generate a picture of a grizzly bear\nOther criteria:\n- Must be blue", }, ]; diff --git a/src/controller/join/mod.rs b/src/controller/join/mod.rs index bd19e75..03ea9c2 100644 --- a/src/controller/join/mod.rs +++ b/src/controller/join/mod.rs @@ -1,7 +1,7 @@ use mxlink::MessageResponseType; use crate::entity::RoomConfigContext; -use crate::{strings, Bot}; +use crate::{Bot, strings}; pub async fn handle( bot: &Bot, @@ -9,7 +9,9 @@ pub async fn handle( room_config_context: &RoomConfigContext, ) -> anyhow::Result<()> { if !bot.post_join_self_introduction_enabled() { - tracing::debug!("Post-join self-introduction is disabled - not sending introduction message"); + tracing::debug!( + "Post-join self-introduction is disabled - not sending introduction message" + ); return Ok(()); } diff --git a/src/controller/provider/mod.rs b/src/controller/provider/mod.rs index 5393a8e..81a3915 100644 --- a/src/controller/provider/mod.rs +++ b/src/controller/provider/mod.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{agent::AgentProvider, entity::MessageContext, strings, Bot}; +use crate::{Bot, agent::AgentProvider, entity::MessageContext, strings}; use super::ControllerType; diff --git a/src/controller/reaction/mod.rs b/src/controller/reaction/mod.rs index f355eba..c1441d5 100644 --- a/src/controller/reaction/mod.rs +++ b/src/controller/reaction/mod.rs @@ -3,9 +3,9 @@ use std::ops::Deref; use mxlink::MatrixLink; use crate::{ + Bot, agent::AgentPurpose, entity::{MessageContext, MessagePayload}, - Bot, }; mod text_to_speech; diff --git a/src/controller/reaction/text_to_speech.rs b/src/controller/reaction/text_to_speech.rs index b9c3205..d3e54f4 100644 --- a/src/controller/reaction/text_to_speech.rs +++ b/src/controller/reaction/text_to_speech.rs @@ -1,7 +1,7 @@ use mxlink::{MatrixLink, MessageResponseType}; use mxlink::matrix_sdk::ruma::{ - events::room::message::TextMessageEventContent, OwnedEventId, OwnedUserId, + OwnedEventId, OwnedUserId, events::room::message::TextMessageEventContent, }; use crate::entity::roomconfig::{ @@ -9,8 +9,8 @@ use crate::entity::roomconfig::{ }; use crate::{ - agent::AgentPurpose, controller::utils::agent::get_effective_agent_for_purpose_or_complain, - entity::MessageContext, Bot, + Bot, agent::AgentPurpose, + controller::utils::agent::get_effective_agent_for_purpose_or_complain, entity::MessageContext, }; pub(super) async fn handle( @@ -34,7 +34,9 @@ pub(super) async fn handle( reacted_to_event_sender_id, matrix_link.user_id(), ) { - tracing::debug!("Ignoring request for on-demand text-to-speech (via reaction) due to room configuration"); + tracing::debug!( + "Ignoring request for on-demand text-to-speech (via reaction) due to room configuration" + ); return Ok(()); } diff --git a/src/controller/usage/mod.rs b/src/controller/usage/mod.rs index 2ac178d..36427a4 100644 --- a/src/controller/usage/mod.rs +++ b/src/controller/usage/mod.rs @@ -1,6 +1,6 @@ use mxlink::MessageResponseType; -use crate::{entity::MessageContext, strings, Bot}; +use crate::{Bot, entity::MessageContext, strings}; use super::ControllerType; diff --git a/src/controller/utils/agent.rs b/src/controller/utils/agent.rs index 99c5fa6..33d1e56 100644 --- a/src/controller/utils/agent.rs +++ b/src/controller/utils/agent.rs @@ -1,12 +1,13 @@ use mxlink::MessageResponseType; use crate::{ + Bot, agent::{ - utils::{get_effective_agent_for_purpose, AgentForPurposeDeterminationError}, AgentInstance, AgentPurpose, + utils::{AgentForPurposeDeterminationError, get_effective_agent_for_purpose}, }, entity::MessageContext, - strings, Bot, + strings, }; pub async fn get_effective_agent_for_purpose_or_complain<'a>( diff --git a/src/controller/utils/mod.rs b/src/controller/utils/mod.rs index 9ab3166..6b35a9d 100644 --- a/src/controller/utils/mod.rs +++ b/src/controller/utils/mod.rs @@ -1,8 +1,8 @@ use mxlink::MessageResponseType; use crate::{ - entity::{MessageContext, MessagePayload}, Bot, + entity::{MessageContext, MessagePayload}, }; pub mod agent; diff --git a/src/controller/utils/text_to_speech.rs b/src/controller/utils/text_to_speech.rs index 9f50110..9b6091e 100644 --- a/src/controller/utils/text_to_speech.rs +++ b/src/controller/utils/text_to_speech.rs @@ -5,9 +5,10 @@ use tracing::Instrument; use crate::controller::utils::mime::get_file_extension; use crate::{ - agent::{provider::TextToSpeechParams, AgentInstance, AgentPurpose, ControllerTrait}, + Bot, + agent::{AgentInstance, AgentPurpose, ControllerTrait, provider::TextToSpeechParams}, entity::MessageContext, - strings, Bot, + strings, }; pub async fn generate_and_send_tts_for_message( diff --git a/src/conversation/llm/tests.rs b/src/conversation/llm/tests.rs index 79a8338..7428557 100644 --- a/src/conversation/llm/tests.rs +++ b/src/conversation/llm/tests.rs @@ -25,8 +25,8 @@ fn test_messages_by_the_bot_are_identified_correctly() { } #[test] -fn test_notice_messages_by_bot_with_speech_to_text_prefix_are_cleaned_up_and_considered_sent_by_user( -) { +fn test_notice_messages_by_bot_with_speech_to_text_prefix_are_cleaned_up_and_considered_sent_by_user() + { let bot_user_id = OwnedUserId::try_from("@bot:example.com").expect("Failed to parse bot user ID"); diff --git a/src/conversation/llm/tokenization.rs b/src/conversation/llm/tokenization.rs index a2c0847..0d70806 100644 --- a/src/conversation/llm/tokenization.rs +++ b/src/conversation/llm/tokenization.rs @@ -1,6 +1,6 @@ +use tiktoken_rs::CoreBPE; use tiktoken_rs::get_bpe_from_tokenizer; use tiktoken_rs::tokenizer; -use tiktoken_rs::CoreBPE; use super::{Author, Message}; diff --git a/src/conversation/matrix/room_display_name_fetcher.rs b/src/conversation/matrix/room_display_name_fetcher.rs index b13bf02..51c29d9 100644 --- a/src/conversation/matrix/room_display_name_fetcher.rs +++ b/src/conversation/matrix/room_display_name_fetcher.rs @@ -1,5 +1,5 @@ -use mxlink::matrix_sdk::ruma::OwnedRoomId; use mxlink::matrix_sdk::Room; +use mxlink::matrix_sdk::ruma::OwnedRoomId; use mxlink::MatrixLink; use quick_cache::sync::Cache; diff --git a/src/conversation/matrix/room_event_fetcher.rs b/src/conversation/matrix/room_event_fetcher.rs index 2c7a941..14b33d0 100644 --- a/src/conversation/matrix/room_event_fetcher.rs +++ b/src/conversation/matrix/room_event_fetcher.rs @@ -1,6 +1,6 @@ +use mxlink::matrix_sdk::Room; use mxlink::matrix_sdk::deserialized_responses::TimelineEvent; use mxlink::matrix_sdk::ruma::OwnedEventId; -use mxlink::matrix_sdk::Room; use quick_cache::sync::Cache; diff --git a/src/conversation/matrix/utils/mod.rs b/src/conversation/matrix/utils/mod.rs index 1adc7fa..576a04b 100644 --- a/src/conversation/matrix/utils/mod.rs +++ b/src/conversation/matrix/utils/mod.rs @@ -5,17 +5,17 @@ use std::sync::Arc; use mxlink::matrix_sdk::ruma::{OwnedEventId, OwnedUserId}; use mxlink::matrix_sdk::{ + Room, deserialized_responses::TimelineEvent, ruma::events::{ - relation::Thread, - room::message::{ - sanitize::remove_plain_reply_fallback, MessageType, OriginalSyncRoomMessageEvent, - Relation, RoomMessageEventContent, - }, AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnySyncTimelineEvent, SyncMessageLikeEvent, + relation::Thread, + room::message::{ + MessageType, OriginalSyncRoomMessageEvent, Relation, RoomMessageEventContent, + sanitize::remove_plain_reply_fallback, + }, }, - Room, }; use mxlink::{MatrixLink, ThreadGetMessagesParams, ThreadInfo}; diff --git a/src/conversation/matrix_llm_bridge.rs b/src/conversation/matrix_llm_bridge.rs index 522bd2f..e042043 100644 --- a/src/conversation/matrix_llm_bridge.rs +++ b/src/conversation/matrix_llm_bridge.rs @@ -1,14 +1,14 @@ use std::sync::Arc; -use mxlink::matrix_sdk::ruma::OwnedEventId; use mxlink::MatrixLink; +use mxlink::matrix_sdk::ruma::OwnedEventId; use crate::conversation::matrix::MatrixMessage; -use super::llm::{convert_matrix_message_to_llm_message, Conversation, Message}; +use super::llm::{Conversation, Message, convert_matrix_message_to_llm_message}; use super::matrix::{ - get_matrix_messages_in_reply_chain, get_matrix_messages_in_thread, process_matrix_messages, - MatrixMessageProcessingParams, RoomEventFetcher, + MatrixMessageProcessingParams, RoomEventFetcher, get_matrix_messages_in_reply_chain, + get_matrix_messages_in_thread, process_matrix_messages, }; pub async fn create_llm_conversation_for_matrix_thread( diff --git a/src/entity/cfg/config.rs b/src/entity/cfg/config.rs index 1f899e5..875e3ac 100644 --- a/src/entity/cfg/config.rs +++ b/src/entity/cfg/config.rs @@ -247,7 +247,6 @@ impl PersistenceConfig { } } - #[derive(Debug, Serialize, Deserialize)] pub struct ConfigRoom { #[serde(default = "super::defaults::room_post_join_self_introduction_enabled")] @@ -263,7 +262,8 @@ impl ConfigRoom { impl Default for ConfigRoom { fn default() -> Self { Self { - post_join_self_introduction_enabled: super::defaults::room_post_join_self_introduction_enabled(), + post_join_self_introduction_enabled: + super::defaults::room_post_join_self_introduction_enabled(), } } } diff --git a/src/entity/message_context.rs b/src/entity/message_context.rs index cb58a67..0294138 100644 --- a/src/entity/message_context.rs +++ b/src/entity/message_context.rs @@ -1,11 +1,11 @@ -use mxlink::matrix_sdk::ruma::{OwnedEventId, OwnedUserId, RoomId}; use mxlink::matrix_sdk::Room; +use mxlink::matrix_sdk::ruma::{OwnedEventId, OwnedUserId, RoomId}; use mxlink::ThreadInfo; use super::{ - globalconfig::GlobalConfig, roomconfig::RoomConfig, MessagePayload, RoomConfigContext, - TriggerEventInfo, + MessagePayload, RoomConfigContext, TriggerEventInfo, globalconfig::GlobalConfig, + roomconfig::RoomConfig, }; #[derive(Debug)] diff --git a/src/entity/room_config_context.rs b/src/entity/room_config_context.rs index a545827..768ad85 100644 --- a/src/entity/room_config_context.rs +++ b/src/entity/room_config_context.rs @@ -4,10 +4,9 @@ use super::globalconfig::GlobalConfig; use super::roomconfig::RoomConfig; use crate::entity::roomconfig::{ - defaults as roomconfig_defaults, SpeechToTextFlowType, - SpeechToTextMessageTypeForNonThreadedOnlyTranscribedMessages, TextGenerationAutoUsage, - TextGenerationPrefixRequirementType, TextToSpeechBotMessagesFlowType, - TextToSpeechUserMessagesFlowType, + SpeechToTextFlowType, SpeechToTextMessageTypeForNonThreadedOnlyTranscribedMessages, + TextGenerationAutoUsage, TextGenerationPrefixRequirementType, TextToSpeechBotMessagesFlowType, + TextToSpeechUserMessagesFlowType, defaults as roomconfig_defaults, }; #[derive(Debug)] diff --git a/src/entity/roomconfig/entity/mod.rs b/src/entity/roomconfig/entity/mod.rs index 543e6a0..e7a4390 100644 --- a/src/entity/roomconfig/entity/mod.rs +++ b/src/entity/roomconfig/entity/mod.rs @@ -46,7 +46,9 @@ impl RoomConfigTrait for RoomConfig {} impl RoomConfig { pub async fn with_room(mut self, room: Room) -> Self { - tracing::trace!("Determining room members count to decide on a suitable text-generation/prefix-requirement-type default"); + tracing::trace!( + "Determining room members count to decide on a suitable text-generation/prefix-requirement-type default" + ); let members = room.members(RoomMemberships::ACTIVE).await; @@ -60,12 +62,19 @@ impl RoomConfig { text_generation::TextGenerationPrefixRequirementType::No }; - tracing::info!(?members_count, ?prefix_requirement_type, "Determined text-generation/prefix-requirement-type based on room members count"); + tracing::info!( + ?members_count, + ?prefix_requirement_type, + "Determined text-generation/prefix-requirement-type based on room members count" + ); prefix_requirement_type } Err(err) => { - tracing::error!(?err, "Failed to get members of room - will default text-generation/prefix-requirement-type to No"); + tracing::error!( + ?err, + "Failed to get members of room - will default text-generation/prefix-requirement-type to No" + ); text_generation::TextGenerationPrefixRequirementType::No } }; diff --git a/src/lib.rs b/src/lib.rs index 46ccd88..644760e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,5 +6,5 @@ mod entity; mod strings; mod utils; -pub use bot::{load_config, Bot}; +pub use bot::{Bot, load_config}; pub use entity::cfg::Config; diff --git a/src/main.rs b/src/main.rs index 0a1f253..b9ba6f3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ -use tracing_subscriber::fmt::format::FmtSpan; use tracing_subscriber::EnvFilter; +use tracing_subscriber::fmt::format::FmtSpan; -use baibot::{load_config, Bot, Config}; +use baibot::{Bot, Config, load_config}; #[tokio::main] async fn main() -> anyhow::Result<()> { diff --git a/src/strings/cfg.rs b/src/strings/cfg.rs index ff26d93..cc9bbf3 100644 --- a/src/strings/cfg.rs +++ b/src/strings/cfg.rs @@ -1,7 +1,7 @@ use crate::{ agent::{ - utils::AgentForPurposeDeterminationInfoConfigurationSource, AgentInstance, AgentPurpose, - PublicIdentifier, + AgentInstance, AgentPurpose, PublicIdentifier, + utils::AgentForPurposeDeterminationInfoConfigurationSource, }, entity::roomconfig::{ SpeechToTextFlowType, SpeechToTextMessageTypeForNonThreadedOnlyTranscribedMessages, @@ -45,7 +45,9 @@ pub fn configuration_getter_used_with_extra_text( getter_name: &str, remaining_text: &str, ) -> String { - format!("You're invoking a getter command (`{getter_name}`), but passing additional text (`{remaining_text}`) as if you're invoking a setter.\n\nPerhaps you meant to invoke `set-{getter_name}`?") + format!( + "You're invoking a getter command (`{getter_name}`), but passing additional text (`{remaining_text}`) as if you're invoking a setter.\n\nPerhaps you meant to invoke `set-{getter_name}`?" + ) } pub fn configuration_value_unrecognized(value: &str) -> String { @@ -53,7 +55,10 @@ pub fn configuration_value_unrecognized(value: &str) -> String { } pub fn configuration_value_not_f32(value: &str) -> String { - format!("The value `{}` could not be converted to a [floating point number](https://en.wikipedia.org/wiki/Floating-point_arithmetic).", value) + format!( + "The value `{}` could not be converted to a [floating point number](https://en.wikipedia.org/wiki/Floating-point_arithmetic).", + value + ) } pub fn status_room_config_handlers_heading() -> &'static str { diff --git a/src/strings/help/access.rs b/src/strings/help/access.rs index 9010ced..d6c99b1 100644 --- a/src/strings/help/access.rs +++ b/src/strings/help/access.rs @@ -32,7 +32,9 @@ pub fn users_command_get(command_prefix: &str) -> String { } pub fn users_command_set(command_prefix: &str) -> String { - format!("- **Set** the list of allowed users: `{command_prefix} access set-users SPACE_SEPARATED_PATTERNS`") + format!( + "- **Set** the list of allowed users: `{command_prefix} access set-users SPACE_SEPARATED_PATTERNS`" + ) } pub fn example_user_patterns(own_server_name: &str) -> String { @@ -64,7 +66,9 @@ pub fn room_local_agent_managers_heading() -> String { } pub fn room_local_agent_managers_intro(command_prefix: &str) -> String { - format!("Room-local agent managers are users privileged to **create their own agents** (see `{command_prefix} agent`) in rooms.") + format!( + "Room-local agent managers are users privileged to **create their own agents** (see `{command_prefix} agent`) in rooms." + ) } pub fn room_local_agent_managers_security_warning() -> String { @@ -72,9 +76,13 @@ pub fn room_local_agent_managers_security_warning() -> String { } pub fn room_local_agent_managers_command_get(command_prefix: &str) -> String { - format!("- **Show** the currently allowed users: `{command_prefix} access room-local-agent-managers`") + format!( + "- **Show** the currently allowed users: `{command_prefix} access room-local-agent-managers`" + ) } pub fn room_local_agent_managers_command_set(command_prefix: &str) -> String { - format!("- **Set** the list of allowed users: `{command_prefix} access set-room-local-agent-managers SPACE_SEPARATED_PATTERNS`") + format!( + "- **Set** the list of allowed users: `{command_prefix} access set-room-local-agent-managers SPACE_SEPARATED_PATTERNS`" + ) } diff --git a/src/strings/help/agent.rs b/src/strings/help/agent.rs index b22a14e..8685c27 100644 --- a/src/strings/help/agent.rs +++ b/src/strings/help/agent.rs @@ -3,7 +3,9 @@ pub fn heading() -> String { } pub fn intro(command_prefix: &str) -> String { - format!("An agent is an instantiation and configuration of some **☁️ provider** (see `{command_prefix} provider`).") + format!( + "An agent is an instantiation and configuration of some **☁️ provider** (see `{command_prefix} provider`)." + ) } pub fn intro_handler_relation(command_prefix: &str) -> String { @@ -25,7 +27,9 @@ pub fn list_agents(command_prefix: &str) -> String { } pub fn show_agent_details(command_prefix: &str) -> String { - format!("- **Show** full details for a given agent: `{command_prefix} agent details FULL_AGENT_IDENTIFIER`") + format!( + "- **Show** full details for a given agent: `{command_prefix} agent details FULL_AGENT_IDENTIFIER`" + ) } pub fn create_agent_intro() -> &'static str { @@ -33,11 +37,15 @@ pub fn create_agent_intro() -> &'static str { } pub fn create_agent_room_local(command_prefix: &str) -> String { - format!("\t- (Accessible in **this room only**) `{command_prefix} agent create-room-local PROVIDER_ID AGENT_ID`") + format!( + "\t- (Accessible in **this room only**) `{command_prefix} agent create-room-local PROVIDER_ID AGENT_ID`" + ) } pub fn create_agent_global(command_prefix: &str) -> String { - format!("\t- (Accessible in **all rooms**) `{command_prefix} agent create-global PROVIDER_ID AGENT_ID`") + format!( + "\t- (Accessible in **all rooms**) `{command_prefix} agent create-global PROVIDER_ID AGENT_ID`" + ) } pub fn create_agent_example(command_prefix: &str) -> String { diff --git a/src/strings/help/cfg.rs b/src/strings/help/cfg.rs index fedd63e..882b54b 100644 --- a/src/strings/help/cfg.rs +++ b/src/strings/help/cfg.rs @@ -23,7 +23,9 @@ pub fn status_heading() -> String { } pub fn status_intro(command_prefix: &str) -> String { - format!("To **show a summary** of the configuration affecting the current room: `{command_prefix} config status`") + format!( + "To **show a summary** of the configuration affecting the current room: `{command_prefix} config status`" + ) } pub fn handlers_heading() -> String { @@ -57,15 +59,21 @@ pub fn handlers_intro_purposes() -> String { } pub fn handlers_show(command_prefix: &str) -> String { - format!("**Show** the currently configured agent for the given purpose: `{command_prefix} config CONFIG_TYPE handler PURPOSE`") + format!( + "**Show** the currently configured agent for the given purpose: `{command_prefix} config CONFIG_TYPE handler PURPOSE`" + ) } pub fn handlers_set(command_prefix: &str) -> String { - format!("**Set** the agent to be used for the given purpose: `{command_prefix} config CONFIG_TYPE set-handler PURPOSE AGENT_ID`") + format!( + "**Set** the agent to be used for the given purpose: `{command_prefix} config CONFIG_TYPE set-handler PURPOSE AGENT_ID`" + ) } pub fn handlers_unset(command_prefix: &str) -> String { - format!("**Unset** the agent to be used for the given purpose: `{command_prefix} config CONFIG_TYPE set-handler PURPOSE`") + format!( + "**Unset** the agent to be used for the given purpose: `{command_prefix} config CONFIG_TYPE set-handler PURPOSE`" + ) } pub fn text_generation_heading() -> String { @@ -99,7 +107,9 @@ pub fn text_generation_prefix_requirement_type_intro() -> String { } pub fn text_generation_prefix_requirement_type_outro(bot_username: &str) -> String { - format!("Regardless of the setting, the bot will always respond to **direct mentions** (e.g. `@{bot_username}`).") + format!( + "Regardless of the setting, the bot will always respond to **direct mentions** (e.g. `@{bot_username}`)." + ) } pub fn text_generation_auto_usage_heading() -> &'static str { diff --git a/src/strings/introduction.rs b/src/strings/introduction.rs index 06eef0c..ffed08c 100644 --- a/src/strings/introduction.rs +++ b/src/strings/introduction.rs @@ -1,15 +1,17 @@ -use crate::agent::utils::get_effective_agent_for_purpose; use crate::agent::utils::AgentForPurposeDeterminationError; +use crate::agent::utils::get_effective_agent_for_purpose; use crate::agent::{AgentPurpose, Manager as AgentManager}; -use crate::entity::roomconfig::TextGenerationPrefixRequirementType; use crate::entity::RoomConfigContext; +use crate::entity::roomconfig::TextGenerationPrefixRequirementType; fn hello() -> &'static str { "Hello! 👋" } pub fn its_me(name: &str) -> String { - let mut message = format!("I'm {name} - a bot exposing the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) ([Large Language Models](https://en.wikipedia.org/wiki/Large_language_model)) to you. 🤖"); + let mut message = format!( + "I'm {name} - a bot exposing the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) ([Large Language Models](https://en.wikipedia.org/wiki/Large_language_model)) to you. 🤖" + ); if name == crate::entity::cfg::defaults::name() { message.push('\n'); @@ -179,7 +181,9 @@ fn send_a_text_message( "**Send a text message** in this room (e.g. `Hello!`) and see me reply.".to_owned() } TextGenerationPrefixRequirementType::CommandPrefix => { - format!("In this room, I'm configured to require the command prefix (`{command_prefix}`) for text messages. **Send a prefixed text message** (e.g. `{command_prefix} Hello!`) and see me reply.") + format!( + "In this room, I'm configured to require the command prefix (`{command_prefix}`) for text messages. **Send a prefixed text message** (e.g. `{command_prefix} Hello!`) and see me reply." + ) } } } @@ -191,9 +195,13 @@ fn learn_more_from_usage_or_help(command_prefix: &str) -> String { } pub fn create_one_or_more_agents(command_prefix: &str) -> String { - format!("**Create one or more agents** in this room or globally. The provider help message will show you **🗲 Quick start** commands, but you may also send a `{command_prefix} agent` command to see the guide.") + format!( + "**Create one or more agents** in this room or globally. The provider help message will show you **🗲 Quick start** commands, but you may also send a `{command_prefix} agent` command to see the guide." + ) } pub fn set_new_agent_as_handler(command_prefix: &str) -> String { - format!("**Set the new agent as a handler** for a given use-purpose like text-generation, image-generation, etc. The agent-creation wizard will tell you how, but you may also send a `{command_prefix} config` command to see the guide (in the 🤖 *Handler Agents* section).") + format!( + "**Set the new agent as a handler** for a given use-purpose like text-generation, image-generation, etc. The agent-creation wizard will tell you how, but you may also send a `{command_prefix} config` command to see the guide (in the 🤖 *Handler Agents* section)." + ) } diff --git a/src/strings/speech_to_text.rs b/src/strings/speech_to_text.rs index e055734..a8ba78f 100644 --- a/src/strings/speech_to_text.rs +++ b/src/strings/speech_to_text.rs @@ -7,5 +7,8 @@ pub fn redaction_reason_failed() -> &'static str { } pub fn language_code_invalid(value: &str) -> String { - format!("The value `{}` is not a valid 2-letter language code as per [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes).", value) + format!( + "The value `{}` is not a valid 2-letter language code as per [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes).", + value + ) }