# zCode CLI X - Architecture Overview ## πŸ—οΈ System Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ zCode CLI X β”‚ β”‚ Agentic Coder with Z.AI + Telegram Integration β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚ CLI β”‚ β”‚ Bot β”‚ β”‚ Agent β”‚ β”‚ Mode β”‚ β”‚ Mode β”‚ β”‚ System β”‚ β””β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚ Tools β”‚ β”‚ Skills β”‚ β”‚ Agents β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Bash β”‚ β”‚ Code β”‚ β”‚ Coder β”‚ β”‚ File β”‚ β”‚ Review β”‚ β”‚ Architectβ”‚ β”‚ Web β”‚ β”‚ Bug Fix β”‚ β”‚ DevOps β”‚ β”‚ Git β”‚ β”‚ Refactor β”‚ β”‚ β”‚ β””β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚ Z.AI β”‚ β”‚ Telegram β”‚ β”‚ File β”‚ β”‚ API β”‚ β”‚ API β”‚ β”‚ System β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ GLM-5.1β”‚ β”‚ Webhook β”‚ β”‚ Express β”‚ β”‚ Coding β”‚ β”‚ WS β”‚ β”‚ Node.js β”‚ β”‚ β”‚ β”‚ Bot β”‚ β”‚ File I/O β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## πŸ“¦ Core Components ### 1. CLI Entry Point (`bin/zcode.js`) - Command-line interface - Options: `--dev`, `--no-bot`, `--no-cli` - Version check and help ### 2. Orchestrator (`src/zcode.js`) Initializes all components in order: 1. Environment validation 2. Configuration loading 3. API initialization 4. Tools loading 5. Skills loading 6. Agent loading 7. Bot initialization (optional) ### 3. Z.AI API Adapter (`src/api/index.js`) - REST API client using Axios - Streaming support - Error handling - Model management ### 4. Telegram Bot (`src/bot/index.js`) - Express server for webhooks - WebSocket for real-time updates - Message processing - Callback handling ### 5. Tools System (`src/tools/`) - **BashTool**: Shell command execution - **FileEditTool**: File operations with diff-aware editing - **WebSearchTool**: Web search via DuckDuckGo API - **GitTool**: Git operations (status, log, branch) ### 6. Skills System (`src/skills/index.js`) - Load from JSON files - Built-in skills: code_review, bug_fix, refactor, documentation, testing - Categories: development, documentation, testing ### 7. Agents System (`src/agents/index.js`) - **AgentOrchestrator**: Coordinates agent execution - **Agents**: - Code Reviewer: Bug detection, security review - System Architect: Design patterns, architecture - DevOps Engineer: Deployment, CI/CD ### 8. Utilities (`src/utils/`) - **Logger**: Winston-based logging - **Env Check**: Environment variable validation ## πŸ”„ Message Flow ``` User (Telegram) β†’ Webhook β†’ Bot β†’ Agent Processing ↓ Tools Execution ↓ Skills Application ↓ Response Generation ↓ User (Telegram) ``` ## πŸ› οΈ Tool Capabilities ### BashTool - Execute shell commands - Output capture - Error handling - Timeout support ### FileEditTool - Read files - Write files - Edit files (diff-aware) - Git diff integration ### WebSearchTool - Search web - Get abstracts - Related topics - No API key required ### GitTool - Status - Log - Branch info ## 🧠 Agent Capabilities ### Code Reviewer - Bug detection - Security review - Performance analysis - Code style ### System Architect - Architecture design - Pattern selection - Documentation - Scalability ### DevOps Engineer - Deployment - CI/CD pipelines - Infrastructure - Monitoring ## πŸ“Š Data Flow ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Configuration β”‚ β”‚ (.env, config) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ API Client β”‚ β”‚ (Z.AI Adapter) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Agent System β”‚ β”‚ (Orchestrator)β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Tools β”‚ β”‚ (Bash, File, β”‚ β”‚ Web, Git) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Skills β”‚ β”‚ (Code Review, β”‚ β”‚ Bug Fix, etc) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Response Gen β”‚ β”‚ (Z.AI Model) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Telegram Bot β”‚ β”‚ (Send back) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## πŸ” Security - API key in .env file (not committed) - Environment variable validation - No hardcoded credentials - Input sanitization ## πŸš€ Deployment ### Development ```bash node bin/zcode.js --dev ``` ### Production ```bash # systemd service sudo systemctl start zcode # Or manual node bin/zcode.js --bot ``` ### Docker (Future) ```dockerfile FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["node", "bin/zcode.js", "--bot"] ``` ## πŸ“ˆ Scalability - WebSocket for real-time updates - Queue-based message processing - Agent concurrency control - File-based logging ## πŸ”„ Extensibility - Easy to add new tools - Plugin system for skills - Agent registry - Modular architecture --- Built with ❀️ by zCode CLI X