2025-10-06 10:30:17 -03:00
|
|
|
[package]
|
2025-10-06 14:55:04 -03:00
|
|
|
name = "botserver"
|
2025-11-21 23:26:43 -03:00
|
|
|
version = "6.1.0"
|
2025-10-06 10:30:17 -03:00
|
|
|
edition = "2021"
|
2026-01-19 15:43:45 -03:00
|
|
|
resolver = "2"
|
2025-10-06 10:30:17 -03:00
|
|
|
|
2025-12-03 19:59:27 -03:00
|
|
|
[dependencies.botlib]
|
2026-01-23 09:37:42 -03:00
|
|
|
workspace = true
|
2026-01-19 15:43:45 -03:00
|
|
|
features = ["database", "i18n"]
|
2025-12-03 19:59:27 -03:00
|
|
|
|
2025-10-06 10:30:17 -03:00
|
|
|
[features]
|
2026-01-18 19:53:34 -03:00
|
|
|
# ===== SINGLE DEFAULT FEATURE SET =====
|
2026-01-23 13:14:20 -03:00
|
|
|
# Note: automation (Rhai scripting) is required for .gbot script execution
|
|
|
|
|
default = ["chat", "automation", "drive", "tasks", "cache", "directory"]
|
|
|
|
|
|
|
|
|
|
# ===== CORE CAPABILITIES (Internal Bundles) =====
|
|
|
|
|
storage_core = ["dep:aws-config", "dep:aws-sdk-s3", "dep:aws-smithy-async"]
|
|
|
|
|
automation_core = ["dep:rhai", "dep:cron"]
|
|
|
|
|
cache_core = ["dep:redis"]
|
|
|
|
|
mail_core = ["dep:lettre", "dep:mailparse", "dep:imap", "dep:native-tls"]
|
|
|
|
|
realtime_core = ["dep:livekit"]
|
|
|
|
|
pdf_core = ["dep:pdf-extract"]
|
2025-11-22 01:27:29 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# ===== COMMUNICATION APPS =====
|
2026-01-19 15:43:45 -03:00
|
|
|
chat = []
|
2026-01-16 11:29:22 -03:00
|
|
|
people = []
|
2026-01-23 13:14:20 -03:00
|
|
|
mail = ["mail_core"]
|
|
|
|
|
meet = ["realtime_core"]
|
2026-01-16 11:29:22 -03:00
|
|
|
social = []
|
2025-11-22 22:54:45 -03:00
|
|
|
whatsapp = []
|
2026-01-06 22:56:35 -03:00
|
|
|
telegram = []
|
2025-11-22 22:54:45 -03:00
|
|
|
instagram = []
|
|
|
|
|
msteams = []
|
2026-01-16 11:29:22 -03:00
|
|
|
communications = ["chat", "people", "mail", "meet", "social", "whatsapp", "telegram", "instagram", "msteams", "cache"]
|
2025-10-16 16:49:23 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# ===== PRODUCTIVITY APPS =====
|
2025-11-28 09:27:29 -03:00
|
|
|
calendar = []
|
2026-01-23 13:14:20 -03:00
|
|
|
# Tasks requires automation (scripts) and drive (attachments)
|
|
|
|
|
tasks = ["automation", "drive", "monitoring"]
|
|
|
|
|
project = ["quick-xml"]
|
2026-01-16 11:29:22 -03:00
|
|
|
goals = []
|
|
|
|
|
workspace = []
|
2026-01-22 19:45:18 -03:00
|
|
|
workspaces = ["workspace"]
|
|
|
|
|
tickets = []
|
|
|
|
|
billing = []
|
|
|
|
|
productivity = ["calendar", "tasks", "project", "goals", "workspaces", "cache"]
|
2026-01-16 11:29:22 -03:00
|
|
|
|
|
|
|
|
# ===== DOCUMENT APPS =====
|
2026-01-23 13:14:20 -03:00
|
|
|
paper = ["docs", "pdf"]
|
2026-01-16 11:29:22 -03:00
|
|
|
docs = ["docx-rs", "ooxmlsdk"]
|
2026-01-19 15:43:45 -03:00
|
|
|
sheet = ["calamine", "spreadsheet-ods"]
|
2026-01-16 11:29:22 -03:00
|
|
|
slides = ["ooxmlsdk"]
|
2026-01-23 13:14:20 -03:00
|
|
|
drive = ["storage_core", "pdf"]
|
2026-01-16 11:29:22 -03:00
|
|
|
documents = ["paper", "docs", "sheet", "slides", "drive"]
|
|
|
|
|
|
|
|
|
|
# ===== MEDIA APPS =====
|
|
|
|
|
video = []
|
|
|
|
|
player = []
|
|
|
|
|
canvas = []
|
|
|
|
|
media = ["video", "player", "canvas"]
|
|
|
|
|
|
|
|
|
|
# ===== LEARNING & RESEARCH APPS =====
|
Add video module, RBAC, security features, billing, contacts, dashboards, learn, social, and multiple new modules
Major additions:
- Video editing engine with AI features (transcription, captions, TTS, scene detection)
- RBAC middleware and organization management
- Security enhancements (MFA, passkey, DLP, encryption, audit)
- Billing and subscription management
- Contacts management
- Dashboards module
- Learn/LMS module
- Social features
- Compliance (SOC2, SOP middleware, vulnerability scanner)
- New migrations for RBAC, learn, and video tables
2026-01-08 13:16:17 -03:00
|
|
|
learn = []
|
2026-01-16 11:29:22 -03:00
|
|
|
research = ["llm", "vectordb"]
|
|
|
|
|
sources = []
|
|
|
|
|
learning = ["learn", "research", "sources"]
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# ===== ANALYTICS APPS =====
|
|
|
|
|
analytics = []
|
|
|
|
|
dashboards = []
|
|
|
|
|
monitoring = ["dep:sysinfo"]
|
|
|
|
|
analytics_suite = ["analytics", "dashboards", "monitoring"]
|
|
|
|
|
|
|
|
|
|
# ===== DEVELOPMENT TOOLS =====
|
|
|
|
|
designer = []
|
|
|
|
|
editor = []
|
2026-01-23 13:14:20 -03:00
|
|
|
automation = ["automation_core"]
|
2026-01-16 11:29:22 -03:00
|
|
|
development = ["designer", "editor", "automation"]
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# ===== ADMIN APPS =====
|
|
|
|
|
attendant = []
|
|
|
|
|
security = []
|
|
|
|
|
settings = []
|
|
|
|
|
admin = ["attendant", "security", "settings"]
|
|
|
|
|
|
2026-01-23 13:14:20 -03:00
|
|
|
# ===== COMPATIBILITY ALIASES =====
|
|
|
|
|
# These ensure old feature names still work or map correctly
|
|
|
|
|
pdf = ["pdf_core"]
|
|
|
|
|
cache = ["cache_core"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# ===== CORE TECHNOLOGIES =====
|
|
|
|
|
llm = []
|
|
|
|
|
vectordb = ["dep:qdrant-client"]
|
|
|
|
|
nvidia = []
|
|
|
|
|
compliance = ["dep:csv"]
|
|
|
|
|
timeseries = []
|
|
|
|
|
weba = []
|
|
|
|
|
directory = []
|
2025-11-22 22:54:45 -03:00
|
|
|
progress-bars = ["dep:indicatif"]
|
2026-01-19 15:43:45 -03:00
|
|
|
grpc = []
|
Fix tasks UI, WebSocket progress, memory monitoring, and app generator
Tasks UI fixes:
- Fix task list to query auto_tasks table instead of tasks table
- Fix task detail endpoint to use UUID binding for auto_tasks query
- Add proper filter handling: complete, active, awaiting, paused, blocked
- Add TaskStats fields: awaiting, paused, blocked, time_saved
- Add /api/tasks/time-saved endpoint
- Add count-all to stats HTML response
App generator improvements:
- Add AgentActivity struct for detailed terminal-style progress
- Add emit_activity method for rich progress events
- Add detailed logging for LLM calls with timing
- Track files_written, tables_synced, bytes_generated
Memory and performance:
- Add memory_monitor module for tracking RSS and thread activity
- Skip 0-byte files in drive monitor and document processor
- Change DRIVE_MONITOR checking logs from info to trace
- Remove unused profile_section macro
WebSocket progress:
- Ensure TaskProgressEvent includes activity field
- Add with_activity builder method
2025-12-30 22:42:32 -03:00
|
|
|
jemalloc = ["dep:tikv-jemallocator", "dep:tikv-jemalloc-ctl"]
|
2026-01-16 11:29:22 -03:00
|
|
|
console = ["dep:crossterm", "dep:ratatui", "monitoring"]
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# ===== BUNDLE FEATURES =====
|
2025-11-22 22:54:45 -03:00
|
|
|
full = [
|
2026-01-18 19:53:34 -03:00
|
|
|
"chat", "people", "mail",
|
|
|
|
|
"tasks", "calendar",
|
|
|
|
|
"drive", "docs",
|
|
|
|
|
"llm", "cache", "compliance"
|
2025-11-22 22:54:45 -03:00
|
|
|
]
|
|
|
|
|
|
2026-01-23 13:14:20 -03:00
|
|
|
# Minimal build includes core infrastructure: automation (Rhai), drive (S3), cache (Redis)
|
|
|
|
|
# These are deeply integrated and used throughout the codebase
|
|
|
|
|
minimal = ["chat", "automation", "drive", "cache"]
|
2026-01-16 11:29:22 -03:00
|
|
|
lightweight = ["chat", "drive", "tasks", "people"]
|
2025-11-22 01:27:29 -03:00
|
|
|
|
2025-10-06 10:30:17 -03:00
|
|
|
[dependencies]
|
2026-01-23 09:37:42 -03:00
|
|
|
diesel_migrations = { workspace = true }
|
|
|
|
|
bigdecimal = { workspace = true }
|
|
|
|
|
|
2026-01-19 15:43:45 -03:00
|
|
|
# === CORE RUNTIME ===
|
2026-01-23 09:37:42 -03:00
|
|
|
aes-gcm = { workspace = true }
|
|
|
|
|
anyhow = { workspace = true }
|
|
|
|
|
argon2 = { workspace = true }
|
|
|
|
|
async-lock = { workspace = true }
|
|
|
|
|
async-stream = { workspace = true }
|
|
|
|
|
async-trait = { workspace = true }
|
|
|
|
|
axum = { workspace = true }
|
|
|
|
|
axum-server = { workspace = true }
|
|
|
|
|
base64 = { workspace = true }
|
|
|
|
|
bytes = { workspace = true }
|
|
|
|
|
chrono = { workspace = true, features = ["clock", "std"] }
|
|
|
|
|
color-eyre = { workspace = true }
|
2026-01-23 13:14:20 -03:00
|
|
|
diesel = { workspace = true, features = ["postgres", "uuid", "chrono", "serde_json", "r2d2", "numeric", "32-column-tables"] }
|
2026-01-23 09:37:42 -03:00
|
|
|
dirs = { workspace = true }
|
|
|
|
|
dotenvy = { workspace = true }
|
|
|
|
|
env_logger = { workspace = true }
|
|
|
|
|
futures = { workspace = true }
|
|
|
|
|
futures-util = { workspace = true }
|
|
|
|
|
tokio-util = { workspace = true, features = ["codec"] }
|
|
|
|
|
hex = { workspace = true }
|
|
|
|
|
hmac = { workspace = true }
|
|
|
|
|
hyper = { workspace = true, features = ["client", "server", "http1", "http2"] }
|
|
|
|
|
hyper-rustls = { workspace = true, features = ["http2"] }
|
|
|
|
|
log = { workspace = true }
|
|
|
|
|
num-format = { workspace = true }
|
|
|
|
|
once_cell = { workspace = true }
|
|
|
|
|
rand = { workspace = true }
|
|
|
|
|
regex = { workspace = true }
|
|
|
|
|
reqwest = { workspace = true, features = ["rustls-tls", "multipart", "stream", "json"] }
|
|
|
|
|
serde = { workspace = true, features = ["derive", "std"] }
|
|
|
|
|
serde_json = { workspace = true }
|
|
|
|
|
toml = { workspace = true }
|
|
|
|
|
sha2 = { workspace = true }
|
|
|
|
|
sha1 = { workspace = true }
|
|
|
|
|
tokio = { workspace = true, features = ["full", "process"] }
|
|
|
|
|
tokio-stream = { workspace = true }
|
|
|
|
|
tower = { workspace = true }
|
|
|
|
|
tower-http = { workspace = true, features = ["cors", "fs", "trace"] }
|
|
|
|
|
tracing = { workspace = true }
|
|
|
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
|
urlencoding = { workspace = true }
|
|
|
|
|
uuid = { workspace = true, features = ["v4", "v5"] }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2025-11-29 16:29:28 -03:00
|
|
|
# === TLS/SECURITY DEPENDENCIES ===
|
2026-01-23 09:37:42 -03:00
|
|
|
rustls = { workspace = true, features = ["ring", "std", "tls12"] }
|
|
|
|
|
tokio-rustls = { workspace = true }
|
|
|
|
|
rcgen = { workspace = true, features = ["crypto", "ring", "pem"] }
|
|
|
|
|
x509-parser = { workspace = true }
|
|
|
|
|
rustls-native-certs = { workspace = true }
|
|
|
|
|
webpki-roots = { workspace = true }
|
|
|
|
|
ring = { workspace = true }
|
|
|
|
|
ciborium = { workspace = true }
|
|
|
|
|
time = { workspace = true, features = ["formatting"] }
|
|
|
|
|
jsonwebtoken = { workspace = true }
|
|
|
|
|
tower-cookies = { workspace = true }
|
2025-11-29 16:29:28 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# === APP-SPECIFIC DEPENDENCIES ===
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2026-01-19 15:43:45 -03:00
|
|
|
# mail Integration (mail feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
imap = { workspace = true, optional = true }
|
|
|
|
|
lettre = { workspace = true, optional = true }
|
|
|
|
|
mailparse = { workspace = true, optional = true }
|
|
|
|
|
native-tls = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Video Meetings (meet feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
livekit = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Vector Database (vectordb feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
qdrant-client = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2026-01-19 15:43:45 -03:00
|
|
|
# Document Processing
|
2026-01-23 09:37:42 -03:00
|
|
|
docx-rs = { workspace = true, optional = true }
|
|
|
|
|
ooxmlsdk = { workspace = true, optional = true }
|
|
|
|
|
calamine = { workspace = true, optional = true }
|
|
|
|
|
spreadsheet-ods = { workspace = true, optional = true }
|
2026-01-16 11:29:22 -03:00
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
# File Storage & Drive (drive feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
aws-config = { workspace = true, features = ["behavior-version-latest", "rt-tokio", "rustls"], optional = true }
|
|
|
|
|
aws-sdk-s3 = { workspace = true, features = ["rt-tokio", "rustls"], optional = true }
|
|
|
|
|
aws-smithy-async = { workspace = true, optional = true }
|
|
|
|
|
pdf-extract = { workspace = true, optional = true }
|
|
|
|
|
quick-xml = { workspace = true, optional = true }
|
|
|
|
|
flate2 = { workspace = true }
|
|
|
|
|
zip = { workspace = true }
|
|
|
|
|
tar = { workspace = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Task Management (tasks feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
cron = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Automation & Scripting (automation feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
rhai = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Compliance & Reporting (compliance feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
csv = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Console/TUI (console feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
crossterm = { workspace = true, optional = true }
|
|
|
|
|
ratatui = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2026-01-16 11:29:22 -03:00
|
|
|
# QR Code Generation
|
2026-01-23 09:37:42 -03:00
|
|
|
png = { workspace = true }
|
|
|
|
|
qrcode = { workspace = true }
|
2025-11-30 22:33:54 -03:00
|
|
|
|
|
|
|
|
# Error handling
|
2026-01-23 09:37:42 -03:00
|
|
|
thiserror = { workspace = true }
|
2025-11-30 22:33:54 -03:00
|
|
|
|
2025-12-05 12:09:02 -03:00
|
|
|
# Caching/Sessions (cache feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
redis = { workspace = true, features = ["tokio-comp"], optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# System Monitoring (monitoring feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
sysinfo = { workspace = true, optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Networking/gRPC (grpc feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
tonic = { workspace = true, features = ["transport"], optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# UI Enhancement (progress-bars feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
indicatif = { workspace = true, optional = true }
|
|
|
|
|
smartstring = { workspace = true }
|
Fix tasks UI, WebSocket progress, memory monitoring, and app generator
Tasks UI fixes:
- Fix task list to query auto_tasks table instead of tasks table
- Fix task detail endpoint to use UUID binding for auto_tasks query
- Add proper filter handling: complete, active, awaiting, paused, blocked
- Add TaskStats fields: awaiting, paused, blocked, time_saved
- Add /api/tasks/time-saved endpoint
- Add count-all to stats HTML response
App generator improvements:
- Add AgentActivity struct for detailed terminal-style progress
- Add emit_activity method for rich progress events
- Add detailed logging for LLM calls with timing
- Track files_written, tables_synced, bytes_generated
Memory and performance:
- Add memory_monitor module for tracking RSS and thread activity
- Skip 0-byte files in drive monitor and document processor
- Change DRIVE_MONITOR checking logs from info to trace
- Remove unused profile_section macro
WebSocket progress:
- Ensure TaskProgressEvent includes activity field
- Add with_activity builder method
2025-12-30 22:42:32 -03:00
|
|
|
|
|
|
|
|
# Memory allocator (jemalloc feature)
|
2026-01-23 09:37:42 -03:00
|
|
|
tikv-jemallocator = { workspace = true, optional = true }
|
|
|
|
|
tikv-jemalloc-ctl = { workspace = true, optional = true }
|
|
|
|
|
scopeguard = { workspace = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
2025-12-03 22:23:30 -03:00
|
|
|
# Vault secrets management
|
2026-01-23 09:37:42 -03:00
|
|
|
vaultrs = { workspace = true }
|
2025-12-03 22:23:30 -03:00
|
|
|
|
|
|
|
|
# Calendar standards (RFC 5545)
|
2026-01-23 09:37:42 -03:00
|
|
|
icalendar = { workspace = true }
|
2025-12-03 22:23:30 -03:00
|
|
|
|
|
|
|
|
# Layered configuration
|
2026-01-23 09:37:42 -03:00
|
|
|
figment = { workspace = true, features = ["toml"] }
|
2025-12-03 22:23:30 -03:00
|
|
|
|
|
|
|
|
# Rate limiting
|
2026-01-23 09:37:42 -03:00
|
|
|
governor = { workspace = true }
|
2025-12-03 22:23:30 -03:00
|
|
|
|
Bootstrap started! 6.1.0
- Add rss and scraper dependencies for web data keywords
- Add SMS keyword with priority support (low, normal, high, urgent)
- Add web_data keywords: RSS, SCRAPE, SCRAPE_ALL, SCRAPE_TABLE, SCRAPE_LINKS, SCRAPE_IMAGES
- Add ai_tools keywords: TRANSLATE, OCR, SENTIMENT, CLASSIFY
- Improve LLM server health check with better diagnostics and increased timeout
- Fix compilation errors and warnings
- Register SMS keywords in BASIC engine
2025-12-10 18:22:02 -03:00
|
|
|
# RSS feed parsing
|
2026-01-23 09:37:42 -03:00
|
|
|
rss = { workspace = true }
|
Bootstrap started! 6.1.0
- Add rss and scraper dependencies for web data keywords
- Add SMS keyword with priority support (low, normal, high, urgent)
- Add web_data keywords: RSS, SCRAPE, SCRAPE_ALL, SCRAPE_TABLE, SCRAPE_LINKS, SCRAPE_IMAGES
- Add ai_tools keywords: TRANSLATE, OCR, SENTIMENT, CLASSIFY
- Improve LLM server health check with better diagnostics and increased timeout
- Fix compilation errors and warnings
- Register SMS keywords in BASIC engine
2025-12-10 18:22:02 -03:00
|
|
|
|
|
|
|
|
# HTML parsing/web scraping
|
2026-01-23 09:37:42 -03:00
|
|
|
scraper = { workspace = true }
|
|
|
|
|
walkdir = { workspace = true }
|
2026-01-10 09:41:12 -03:00
|
|
|
|
2026-01-18 19:53:34 -03:00
|
|
|
# Embedded static files
|
2026-01-23 09:37:42 -03:00
|
|
|
rust-embed = { workspace = true }
|
|
|
|
|
mime_guess = { workspace = true }
|
|
|
|
|
hyper-util = { workspace = true, features = ["client-legacy"] }
|
|
|
|
|
http-body-util = { workspace = true }
|
Bootstrap started! 6.1.0
- Add rss and scraper dependencies for web data keywords
- Add SMS keyword with priority support (low, normal, high, urgent)
- Add web_data keywords: RSS, SCRAPE, SCRAPE_ALL, SCRAPE_TABLE, SCRAPE_LINKS, SCRAPE_IMAGES
- Add ai_tools keywords: TRANSLATE, OCR, SENTIMENT, CLASSIFY
- Improve LLM server health check with better diagnostics and increased timeout
- Fix compilation errors and warnings
- Register SMS keywords in BASIC engine
2025-12-10 18:22:02 -03:00
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
[dev-dependencies]
|
2026-01-23 09:37:42 -03:00
|
|
|
mockito = { workspace = true }
|
|
|
|
|
tempfile = { workspace = true }
|
|
|
|
|
bigdecimal = { workspace = true }
|
2025-10-26 00:02:19 -03:00
|
|
|
|
2026-01-23 09:37:42 -03:00
|
|
|
[lints]
|
|
|
|
|
workspace = true
|