From 4e3542e35609d71946d2ab21d5a367997ec2c436 Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Fri, 23 Jan 2026 13:18:12 -0300 Subject: [PATCH] feat: add apps manifest for app launcher integration - Created comprehensive apps-manifest.json mapping Cargo features to UI - Organized apps into categories: Communication, Productivity, Documents, etc. - Includes app metadata: name, description, icon, dependencies - Defines bundles: minimal, lightweight, full, communications, etc. - Documents core dependencies and their reasons - Ready for botui app launcher integration --- apps-manifest.json | 468 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 468 insertions(+) create mode 100644 apps-manifest.json diff --git a/apps-manifest.json b/apps-manifest.json new file mode 100644 index 000000000..8d3b536c4 --- /dev/null +++ b/apps-manifest.json @@ -0,0 +1,468 @@ +{ + "version": "6.1.0", + "description": "Available apps and features for GeneralBots", + "categories": { + "communication": { + "name": "Communication", + "icon": "💬", + "apps": [ + { + "id": "chat", + "name": "Chat", + "description": "Real-time messaging and conversations", + "feature": "chat", + "icon": "💬", + "enabled_by_default": true, + "dependencies": [] + }, + { + "id": "people", + "name": "People", + "description": "Contact management and CRM", + "feature": "people", + "icon": "👥", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "mail", + "name": "Mail", + "description": "Email integration (SMTP/IMAP)", + "feature": "mail", + "icon": "📧", + "enabled_by_default": false, + "dependencies": ["mail_core", "drive"] + }, + { + "id": "meet", + "name": "Meet", + "description": "Video conferencing with LiveKit", + "feature": "meet", + "icon": "📹", + "enabled_by_default": false, + "dependencies": ["realtime_core"] + }, + { + "id": "social", + "name": "Social", + "description": "Social media integration", + "feature": "social", + "icon": "🌐", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "whatsapp", + "name": "WhatsApp", + "description": "WhatsApp Business API", + "feature": "whatsapp", + "icon": "📱", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "telegram", + "name": "Telegram", + "description": "Telegram Bot API", + "feature": "telegram", + "icon": "✈️", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "instagram", + "name": "Instagram", + "description": "Instagram messaging", + "feature": "instagram", + "icon": "📷", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "msteams", + "name": "MS Teams", + "description": "Microsoft Teams integration", + "feature": "msteams", + "icon": "👔", + "enabled_by_default": false, + "dependencies": [] + } + ] + }, + "productivity": { + "name": "Productivity", + "icon": "⚡", + "apps": [ + { + "id": "tasks", + "name": "Tasks", + "description": "Task management with scheduling", + "feature": "tasks", + "icon": "✅", + "enabled_by_default": true, + "dependencies": ["automation", "drive", "monitoring"] + }, + { + "id": "calendar", + "name": "Calendar", + "description": "Calendar and event management", + "feature": "calendar", + "icon": "📅", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "project", + "name": "Project", + "description": "Project management", + "feature": "project", + "icon": "📊", + "enabled_by_default": false, + "dependencies": ["quick-xml"] + }, + { + "id": "goals", + "name": "Goals", + "description": "Goal tracking and OKRs", + "feature": "goals", + "icon": "🎯", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "workspaces", + "name": "Workspaces", + "description": "Team workspaces", + "feature": "workspaces", + "icon": "🏢", + "enabled_by_default": false, + "dependencies": ["workspace"] + }, + { + "id": "tickets", + "name": "Tickets", + "description": "Support ticket system", + "feature": "tickets", + "icon": "🎫", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "billing", + "name": "Billing", + "description": "Invoicing and payments", + "feature": "billing", + "icon": "💰", + "enabled_by_default": false, + "dependencies": [] + } + ] + }, + "documents": { + "name": "Documents", + "icon": "📄", + "apps": [ + { + "id": "drive", + "name": "Drive", + "description": "Cloud file storage (S3)", + "feature": "drive", + "icon": "💾", + "enabled_by_default": true, + "dependencies": ["storage_core", "pdf"] + }, + { + "id": "docs", + "name": "Docs", + "description": "Document editor (DOCX)", + "feature": "docs", + "icon": "📝", + "enabled_by_default": false, + "dependencies": ["docx-rs", "ooxmlsdk"] + }, + { + "id": "sheet", + "name": "Sheet", + "description": "Spreadsheet editor", + "feature": "sheet", + "icon": "📊", + "enabled_by_default": false, + "dependencies": ["calamine", "spreadsheet-ods"] + }, + { + "id": "slides", + "name": "Slides", + "description": "Presentation editor", + "feature": "slides", + "icon": "🎞️", + "enabled_by_default": false, + "dependencies": ["ooxmlsdk"] + }, + { + "id": "paper", + "name": "Paper", + "description": "Note-taking with PDF support", + "feature": "paper", + "icon": "📋", + "enabled_by_default": false, + "dependencies": ["docs", "pdf"] + } + ] + }, + "media": { + "name": "Media", + "icon": "🎬", + "apps": [ + { + "id": "video", + "name": "Video", + "description": "Video management", + "feature": "video", + "icon": "🎥", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "player", + "name": "Player", + "description": "Media player", + "feature": "player", + "icon": "▶️", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "canvas", + "name": "Canvas", + "description": "Drawing and design", + "feature": "canvas", + "icon": "🎨", + "enabled_by_default": false, + "dependencies": [] + } + ] + }, + "learning": { + "name": "Learning & Research", + "icon": "📚", + "apps": [ + { + "id": "learn", + "name": "Learn", + "description": "Learning management", + "feature": "learn", + "icon": "🎓", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "research", + "name": "Research", + "description": "Research tools with AI", + "feature": "research", + "icon": "🔬", + "enabled_by_default": false, + "dependencies": ["llm", "vectordb"] + }, + { + "id": "sources", + "name": "Sources", + "description": "Source management", + "feature": "sources", + "icon": "📖", + "enabled_by_default": false, + "dependencies": [] + } + ] + }, + "analytics": { + "name": "Analytics", + "icon": "📈", + "apps": [ + { + "id": "analytics", + "name": "Analytics", + "description": "Data analytics", + "feature": "analytics", + "icon": "📊", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "dashboards", + "name": "Dashboards", + "description": "Custom dashboards", + "feature": "dashboards", + "icon": "📉", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "monitoring", + "name": "Monitoring", + "description": "System monitoring", + "feature": "monitoring", + "icon": "🔍", + "enabled_by_default": false, + "dependencies": ["sysinfo"] + } + ] + }, + "development": { + "name": "Development", + "icon": "⚙️", + "apps": [ + { + "id": "automation", + "name": "Automation", + "description": "Scripting with Rhai (.gbot files)", + "feature": "automation", + "icon": "🤖", + "enabled_by_default": true, + "core_dependency": true, + "dependencies": ["automation_core"] + }, + { + "id": "designer", + "name": "Designer", + "description": "UI/UX designer", + "feature": "designer", + "icon": "🎨", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "editor", + "name": "Editor", + "description": "Code editor", + "feature": "editor", + "icon": "💻", + "enabled_by_default": false, + "dependencies": [] + } + ] + }, + "admin": { + "name": "Administration", + "icon": "🔐", + "apps": [ + { + "id": "attendant", + "name": "Attendant", + "description": "Human attendant interface", + "feature": "attendant", + "icon": "👤", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "security", + "name": "Security", + "description": "Security settings", + "feature": "security", + "icon": "🔒", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "settings", + "name": "Settings", + "description": "System settings", + "feature": "settings", + "icon": "⚙️", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "directory", + "name": "Directory", + "description": "User directory (Zitadel)", + "feature": "directory", + "icon": "📇", + "enabled_by_default": true, + "dependencies": [] + } + ] + }, + "core": { + "name": "Core Infrastructure", + "icon": "🏗️", + "apps": [ + { + "id": "cache", + "name": "Cache", + "description": "Redis caching", + "feature": "cache", + "icon": "⚡", + "enabled_by_default": true, + "core_dependency": true, + "dependencies": ["cache_core"] + }, + { + "id": "llm", + "name": "LLM", + "description": "Large Language Models", + "feature": "llm", + "icon": "🧠", + "enabled_by_default": false, + "dependencies": [] + }, + { + "id": "vectordb", + "name": "Vector DB", + "description": "Qdrant vector database", + "feature": "vectordb", + "icon": "🗄️", + "enabled_by_default": false, + "dependencies": ["qdrant-client"] + } + ] + } + }, + "bundles": { + "minimal": { + "name": "Minimal", + "description": "Essential infrastructure only", + "features": ["chat", "automation", "drive", "cache"] + }, + "lightweight": { + "name": "Lightweight", + "description": "Basic productivity suite", + "features": ["chat", "drive", "tasks", "people"] + }, + "full": { + "name": "Full Suite", + "description": "Complete feature set", + "features": ["chat", "people", "mail", "tasks", "calendar", "drive", "docs", "llm", "cache", "compliance"] + }, + "communications": { + "name": "Communications", + "description": "All communication apps", + "features": ["chat", "people", "mail", "meet", "social", "whatsapp", "telegram", "instagram", "msteams", "cache"] + }, + "productivity": { + "name": "Productivity", + "description": "Productivity suite", + "features": ["calendar", "tasks", "project", "goals", "workspaces", "cache"] + }, + "documents": { + "name": "Documents", + "description": "Document suite", + "features": ["paper", "docs", "sheet", "slides", "drive"] + } + }, + "core_dependencies": { + "automation": { + "reason": "Required for .gbot script execution (100+ files depend on it)", + "removable": false + }, + "drive": { + "reason": "S3 storage used in 80+ places throughout codebase", + "removable": false + }, + "cache": { + "reason": "Redis integrated into session management", + "removable": false + } + } +}