Replaces ui-server with console in default features, adds comprehensive quick start documentation, implements automatic database migrations at startup, and ensures critical services (PostgreSQL and MinIO) are started automatically. Key changes: - Console UI now enable
224 lines
6.5 KiB
TOML
224 lines
6.5 KiB
TOML
[package]
|
|
name = "botserver"
|
|
version = "6.1.0"
|
|
edition = "2021"
|
|
keywords = ["chatbot", "ai", "llm", "automation", "bot-framework"]
|
|
categories = ["web-programming", "api-bindings", "development-tools"]
|
|
authors = [
|
|
"Pragmatismo.com.br ",
|
|
"General Bots Community ",
|
|
"Alan Perdomo",
|
|
"Ana Paula Gil",
|
|
"Arenas.io",
|
|
"Atylla L",
|
|
"Christopher de Castilho",
|
|
"Dario Junior",
|
|
"David Lerner",
|
|
"Experimentation Garage",
|
|
"Flavio Andrade",
|
|
"Heraldo Almeida",
|
|
"Joao Parana",
|
|
"Jonathas C",
|
|
"J Ramos",
|
|
"Lucas Picanco",
|
|
"Marcos Velasco",
|
|
"Matheus 39x",
|
|
"Oerlabs Henrique",
|
|
"Othon Lima",
|
|
"PH Nascimento",
|
|
"Phpussente",
|
|
"Robson Dantas",
|
|
"Rodrigo Rodriguez ",
|
|
"Sarah Lourenco",
|
|
"Thi Patriota",
|
|
"Webgus",
|
|
"Zuilho Se",
|
|
]
|
|
description = "General Bots Server - Open-source bot platform by Pragmatismo.com.br"
|
|
license = "AGPL-3.0"
|
|
repository = "https://github.com/GeneralBots/BotServer"
|
|
|
|
[features]
|
|
# ===== DEFAULT FEATURE SET =====
|
|
default = ["ui-server", "console", "chat", "automation", "tasks", "drive", "llm", "redis-cache", "progress-bars", "directory"]
|
|
|
|
# ===== UI FEATURES =====
|
|
desktop = ["dep:tauri", "dep:tauri-plugin-dialog", "dep:tauri-plugin-opener", "ui-server"]
|
|
ui-server = []
|
|
console = ["dep:crossterm", "dep:ratatui", "monitoring"]
|
|
|
|
# ===== CORE INTEGRATIONS =====
|
|
vectordb = ["dep:qdrant-client"]
|
|
llm = []
|
|
nvidia = []
|
|
|
|
# ===== COMMUNICATION CHANNELS =====
|
|
email = ["dep:imap", "dep:lettre", "dep:mailparse", "dep:native-tls"]
|
|
whatsapp = []
|
|
instagram = []
|
|
msteams = []
|
|
|
|
# ===== PRODUCTIVITY FEATURES =====
|
|
chat = []
|
|
drive = ["dep:aws-config", "dep:aws-sdk-s3", "dep:pdf-extract", "dep:zip", "dep:downloader", "dep:mime_guess"]
|
|
tasks = ["dep:cron"]
|
|
calendar = []
|
|
meet = ["dep:livekit"]
|
|
mail = ["email"]
|
|
|
|
# ===== ENTERPRISE FEATURES =====
|
|
compliance = ["dep:csv"]
|
|
attendance = []
|
|
directory = []
|
|
weba = []
|
|
|
|
# ===== OPTIONAL INFRASTRUCTURE =====
|
|
redis-cache = ["dep:redis"]
|
|
monitoring = ["dep:sysinfo"]
|
|
automation = ["dep:rhai"]
|
|
grpc = ["dep:tonic"]
|
|
progress-bars = ["dep:indicatif"]
|
|
|
|
# ===== META FEATURES (BUNDLES) =====
|
|
full = [
|
|
"ui-server", "desktop", "console",
|
|
"vectordb", "llm", "nvidia",
|
|
"email", "whatsapp", "instagram", "msteams",
|
|
"chat", "drive", "tasks", "calendar", "meet", "mail",
|
|
"compliance", "attendance", "directory", "weba",
|
|
"redis-cache", "monitoring", "automation", "grpc", "progress-bars"
|
|
]
|
|
|
|
communications = ["email", "whatsapp", "instagram", "msteams", "chat", "redis-cache"]
|
|
productivity = ["chat", "drive", "tasks", "calendar", "meet", "mail", "redis-cache"]
|
|
enterprise = ["compliance", "attendance", "directory", "llm", "vectordb", "monitoring"]
|
|
minimal = ["ui-server", "chat"]
|
|
lightweight = ["ui-server", "chat", "drive", "tasks"]
|
|
|
|
[dependencies]
|
|
# === CORE RUNTIME (Always Required) ===
|
|
aes-gcm = "0.10"
|
|
anyhow = "1.0"
|
|
argon2 = "0.5"
|
|
async-lock = "2.8.0"
|
|
async-stream = "0.3"
|
|
async-trait = "0.1"
|
|
axum = { version = "0.8.7", features = ["ws", "multipart", "macros"] }
|
|
base64 = "0.22"
|
|
bytes = "1.8"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
color-eyre = "0.6.5"
|
|
diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2"] }
|
|
diesel_migrations = "2.1.0"
|
|
dotenvy = "0.15"
|
|
env_logger = "0.11"
|
|
futures = "0.3"
|
|
futures-util = "0.3"
|
|
hex = "0.4"
|
|
hmac = "0.12.1"
|
|
hyper = { version = "1.8.1", features = ["full"] }
|
|
log = "0.4"
|
|
num-format = "0.4"
|
|
once_cell = "1.18.0"
|
|
rand = "0.9.2"
|
|
regex = "1.11"
|
|
reqwest = { version = "0.12", features = ["json", "stream", "multipart"] }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
sha2 = "0.10.9"
|
|
tokio = { version = "1.41", features = ["full"] }
|
|
tokio-stream = "0.1"
|
|
tower = "0.5"
|
|
tower-http = { version = "0.6", features = ["cors", "fs", "trace"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["fmt"] }
|
|
urlencoding = "2.1"
|
|
uuid = { version = "1.11", features = ["serde", "v4"] }
|
|
zitadel = { version = "5.5.1", features = ["api", "credentials"] }
|
|
|
|
# === FEATURE-SPECIFIC DEPENDENCIES (Optional) ===
|
|
|
|
# Desktop UI (desktop feature)
|
|
tauri = { version = "2", features = ["unstable"], optional = true }
|
|
tauri-plugin-dialog = { version = "2", optional = true }
|
|
tauri-plugin-opener = { version = "2", optional = true }
|
|
|
|
# Email Integration (email feature)
|
|
imap = { version = "3.0.0-alpha.15", optional = true }
|
|
lettre = { version = "0.11", features = ["smtp-transport", "builder", "tokio1", "tokio1-native-tls"], optional = true }
|
|
mailparse = { version = "0.15", optional = true }
|
|
native-tls = { version = "0.2", optional = true }
|
|
|
|
# Video Meetings (meet feature)
|
|
livekit = { version = "0.7", optional = true }
|
|
|
|
# Vector Database (vectordb feature)
|
|
qdrant-client = { version = "1.12", optional = true }
|
|
|
|
# File Storage & Drive (drive feature)
|
|
aws-config = { version = "1.8.8", optional = true }
|
|
aws-sdk-s3 = { version = "1.109.0", features = ["behavior-version-latest"], optional = true }
|
|
pdf-extract = { version = "0.10.0", optional = true }
|
|
zip = { version = "2.2", optional = true }
|
|
downloader = { version = "0.2", optional = true }
|
|
mime_guess = { version = "2.0", optional = true }
|
|
|
|
# Task Management (tasks feature)
|
|
cron = { version = "0.15.0", optional = true }
|
|
|
|
# Automation & Scripting (automation feature)
|
|
rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time", optional = true }
|
|
|
|
# Compliance & Reporting (compliance feature)
|
|
csv = { version = "1.3", optional = true }
|
|
|
|
# Console/TUI (console feature)
|
|
crossterm = { version = "0.29.0", optional = true }
|
|
ratatui = { version = "0.29.0", optional = true }
|
|
|
|
# Caching/Sessions (redis-cache feature)
|
|
redis = { version = "0.27", features = ["tokio-comp"], optional = true }
|
|
|
|
# System Monitoring (monitoring feature)
|
|
sysinfo = { version = "0.37.2", optional = true }
|
|
|
|
# Networking/gRPC (grpc feature)
|
|
tonic = { version = "0.14.2", features = ["transport"], optional = true }
|
|
|
|
# UI Enhancement (progress-bars feature)
|
|
indicatif = { version = "0.18.0", optional = true }
|
|
smartstring = "1.0.1"
|
|
scopeguard = "1.2.0"
|
|
|
|
[dev-dependencies]
|
|
mockito = "1.7.0"
|
|
tempfile = "3"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
# === SECURITY AND CODE QUALITY CONFIGURATION ===
|
|
[lints.rust]
|
|
unused_imports = "warn"
|
|
unused_variables = "warn"
|
|
unused_mut = "warn"
|
|
unsafe_code = "deny"
|
|
missing_debug_implementations = "warn"
|
|
|
|
[lints.clippy]
|
|
all = "warn"
|
|
pedantic = "warn"
|
|
nursery = "warn"
|
|
cargo = "warn"
|
|
unwrap_used = "warn"
|
|
expect_used = "warn"
|
|
panic = "warn"
|
|
todo = "warn"
|
|
|
|
[profile.release]
|
|
lto = true
|
|
opt-level = "z"
|
|
strip = true
|
|
panic = "abort"
|
|
codegen-units = 1
|
|
overflow-checks = true
|