From b14f95d821470c7610e0f066a0cac3b22e89b0c4 Mon Sep 17 00:00:00 2001 From: JessyTsui <51992423+JessyTsui@users.noreply.github.com> Date: Sat, 2 Aug 2025 04:21:26 +0800 Subject: [PATCH] Telegram&Line support (#17) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add LINE and Telegram messaging support This major enhancement extends Claude Code Remote with multi-platform messaging support: ## 🚀 New Features ### LINE Messaging Support - LINE Bot API integration with token-based commands - Secure webhook handler with signature verification - Session management with 24-hour expiration - Support for both individual and group chats - User/Group ID whitelist security ### Telegram Bot Support - Telegram Bot API with interactive buttons - Slash command support (/cmd TOKEN command) - Callback query handling for better UX - Group and private chat support - Chat ID-based authorization ### Multi-Platform Architecture - Unified notification system supporting all platforms - Platform-agnostic session management - Configurable channel enabling/disabling - Parallel webhook server support ## 🛠️ Technical Implementation ### Core Components - `src/channels/line/` - LINE messaging implementation - `src/channels/telegram/` - Telegram bot implementation - `src/utils/controller-injector.js` - Command injection utility - Multi-platform webhook servers with Express.js ### Configuration & Documentation - Updated `.env.example` with all platform options - Comprehensive setup guides for each platform - Testing guide with ngrok instructions - Updated README with multi-platform support ### Developer Experience - npm scripts for easy platform startup - Unified webhook launcher (`start-all-webhooks.js`) - Individual platform launchers - Enhanced error handling and logging ## 🔧 Usage Examples **Telegram:** `/cmd ABC12345 analyze this code` **LINE:** `Token ABC12345 analyze this code` **Email:** Reply to notification emails ## 📋 Backward Compatibility - All existing email functionality preserved - Configuration migration path provided - No breaking changes to existing hooks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * feat: Complete Telegram Remote Control System with Direct Chat Mode ### 🚀 Major Features Added - **Direct Chat Mode**: Users can chat with Claude naturally without /cmd tokens - **Smart Monitoring**: Intelligent response detection with historical processing - **One-Click Startup**: Complete system management via startup script - **Auto-Notification**: Real-time Claude response detection and Telegram delivery ### 📱 Telegram Integration - `telegram-direct-mode.js`: Direct conversation interface - `telegram-polling.js`: Command polling with token validation - Enhanced notification system with markdown formatting ### 🧠 Smart Monitoring System - `smart-monitor.js`: Advanced response detection with history awareness - `simple-monitor.js`: Lightweight monitoring alternative - `auto-notification-daemon.js`: Background notification service ### 🛠️ System Management - `start-telegram-claude.sh`: Complete service management script - Environment validation and dependency checking - Color-coded status reporting and log management - Process lifecycle management (start/stop/restart/status) ### 📖 Documentation & Testing - `TELEGRAM_CLAUDE_GUIDE.md`: Comprehensive user guide - Complete test suite for all components - Usage examples and troubleshooting guide ### 🔧 Core Improvements - Enhanced `controller-injector.js` with proper Enter key handling - Updated `tmux-monitor.js` with real-time output monitoring - Improved error handling and logging throughout - Session management with automatic cleanup ### 🎯 Key Capabilities - **Seamless Communication**: Direct Telegram ⟷ Claude integration - **Full Automation**: No manual intervention required - **Robust Monitoring**: Never miss Claude responses - **Easy Deployment**: Single script startup and management - **Multi-Modal Support**: Ready for LINE integration expansion ### 📊 System Architecture ``` User → Telegram Bot → Direct Injection → Claude Session → Smart Monitor → Auto Notification → User ``` This completes the transformation from email-based to messaging-app-based remote Claude control, providing a modern, efficient, and user-friendly interface for remote AI interaction. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * docs: Enhance documentation and smart monitoring system - Add comprehensive CLAUDE.md for Claude Code development guidance - Update README.md with multi-platform focus and improved instructions - Enhance smart-monitor.js with auto-approval for tool permissions - Improve start-telegram-claude.sh with better tmux session management - Add auto-approver.js for automated tool permission handling Key improvements: - Multi-platform documentation (Telegram, LINE, Email, Local) - Enhanced troubleshooting and command reference sections - Smart monitoring with historical response detection - Automated tool permission approval workflow - Better tmux integration and session management 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * chore: Add CLAUDE.md to .gitignore and remove from tracking - Add CLAUDE.md to .gitignore under "Claude Code development files" section - Remove CLAUDE.md from git tracking while preserving local file - CLAUDE.md should remain as local development documentation only 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * feat: Complete Telegram integration with multi-channel notifications - ✅ Enhanced Telegram bot with smart buttons for personal/group chats - ✅ Multi-channel notification system (Desktop, Telegram, Email, LINE) - ✅ Smart sound alerts with customizable audio feedback - ✅ Real-time command injection with tmux session management - ✅ Intelligent session detection and conversation content extraction - ✅ Unified README documentation with complete setup guides - 🧹 Clean up legacy files and consolidate documentation - 📱 Add setup scripts for easy Telegram configuration - 🔧 Enhance webhook system with improved error handling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude * Update processed messages --------- Co-authored-by: laihenyi Co-authored-by: Claude Co-authored-by: laihenyi --- .env.example | 51 +- .gitignore | 3 +- README.md | 388 ++++++++----- assets/telegram_demo.png | Bin 0 -> 533036 bytes claude-control.js | 288 ---------- claude-hook-notify.js | 168 ++++++ claude-hooks.json | 28 + config/channels.json | 19 +- fix-telegram.sh | 120 ++++ install-global.js | 155 ----- package-lock.json | 909 ++++++++++++++++++++++++++++++ package.json | 7 +- send-test-reply.js | 70 --- setup-telegram.sh | 74 +++ smart-monitor.js | 293 ++++++++++ src/channels/line/line.js | 198 +++++++ src/channels/line/webhook.js | 225 ++++++++ src/channels/telegram/telegram.js | 232 ++++++++ src/channels/telegram/webhook.js | 326 +++++++++++ src/core/notifier.js | 20 +- src/data/processed-messages.json | 46 ++ src/data/session-map.json | 542 ++++++++++++++++++ src/utils/controller-injector.js | 110 ++++ src/utils/tmux-monitor.js | 368 +++++++++++- start-all-webhooks.js | 113 ++++ start-line-webhook.js | 64 +++ start-telegram-webhook.js | 85 +++ taskping-config.js | 6 - test-complete-flow.sh | 120 ++++ test-injection.js | 34 ++ test-real-notification.js | 66 +++ test-telegram-notification.js | 62 ++ test-telegram-setup.sh | 122 ++++ 33 files changed, 4625 insertions(+), 687 deletions(-) create mode 100644 assets/telegram_demo.png delete mode 100644 claude-control.js create mode 100755 claude-hook-notify.js create mode 100644 claude-hooks.json create mode 100755 fix-telegram.sh delete mode 100644 install-global.js delete mode 100644 send-test-reply.js create mode 100755 setup-telegram.sh create mode 100644 smart-monitor.js create mode 100644 src/channels/line/line.js create mode 100644 src/channels/line/webhook.js create mode 100644 src/channels/telegram/telegram.js create mode 100644 src/channels/telegram/webhook.js create mode 100644 src/data/processed-messages.json create mode 100644 src/data/session-map.json create mode 100644 src/utils/controller-injector.js create mode 100755 start-all-webhooks.js create mode 100755 start-line-webhook.js create mode 100755 start-telegram-webhook.js delete mode 100755 taskping-config.js create mode 100755 test-complete-flow.sh create mode 100755 test-injection.js create mode 100644 test-real-notification.js create mode 100755 test-telegram-notification.js create mode 100755 test-telegram-setup.sh diff --git a/.env.example b/.env.example index 4abb1ab..7bfee69 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,14 @@ -# Claude Code Remote Email Configuration Example +# Claude Code Remote Configuration # Copy this file to .env and configure with your actual values -# ===== SMTP 发送邮件配置 ===== +# ===== 選擇通知方式:Email、LINE 或 Telegram ===== +# 可以同時啟用多個通知方式 +EMAIL_ENABLED=false +LINE_ENABLED=false +TELEGRAM_ENABLED=true + +# ===== Email 配置 (如果使用 Email) ===== +# SMTP 发送邮件配置 SMTP_HOST=smtp.gmail.com SMTP_PORT=465 SMTP_SECURE=true @@ -12,20 +19,56 @@ SMTP_PASS=your-app-password EMAIL_FROM=your-email@gmail.com EMAIL_FROM_NAME=Claude Code Remote 通知系统 -# ===== IMAP 接收邮件配置 ===== +# IMAP 接收邮件配置 IMAP_HOST=imap.gmail.com IMAP_PORT=993 IMAP_SECURE=true IMAP_USER=your-email@gmail.com IMAP_PASS=your-app-password -# ===== 邮件路由配置 ===== +# 邮件路由配置 # 接收通知的邮箱地址 EMAIL_TO=your-email@gmail.com # 允许发送命令的邮箱地址(安全白名单) ALLOWED_SENDERS=your-email@gmail.com +# ===== LINE 配置 (如果使用 LINE) ===== +# 從 LINE Developers Console 獲取: https://developers.line.biz/ +LINE_CHANNEL_ACCESS_TOKEN=your-line-channel-access-token +LINE_CHANNEL_SECRET=your-line-channel-secret + +# LINE 接收者配置(設定一個或兩個) +# LINE_USER_ID=your-line-user-id +# LINE_GROUP_ID=your-line-group-id + +# LINE 白名單(逗號分隔的使用者/群組 ID) +# 如果不設定,只有配置的 USER_ID/GROUP_ID 可以使用 +# LINE_WHITELIST=U1234567890abcdef,C1234567890abcdef + +# LINE webhook 埠號(預設:3000) +# LINE_WEBHOOK_PORT=3000 + +# ===== Telegram 配置 (如果使用 Telegram) ===== +# 從 @BotFather 獲取 Bot Token +TELEGRAM_BOT_TOKEN=your-telegram-bot-token + +# Telegram 接收者配置(設定一個或兩個) +# 個人聊天 ID +# TELEGRAM_CHAT_ID=123456789 +# 群組 ID(通常是負數) +# TELEGRAM_GROUP_ID=-1001234567890 + +# Telegram 白名單(逗號分隔的 Chat ID) +# 如果不設定,只有配置的 CHAT_ID/GROUP_ID 可以使用 +# TELEGRAM_WHITELIST=123456789,-1001234567890 + +# Telegram webhook 埠號(預設:3001) +# TELEGRAM_WEBHOOK_PORT=3001 + +# Telegram webhook URL(您的公開 HTTPS URL) +# TELEGRAM_WEBHOOK_URL=https://your-domain.com + # ===== 系统配置 ===== # 会话映射文件路径 SESSION_MAP_PATH=/path/to/your/project/src/data/session-map.json diff --git a/.gitignore b/.gitignore index 6f8c7d3..4e91d29 100644 --- a/.gitignore +++ b/.gitignore @@ -48,10 +48,9 @@ build/ # Temporary files tmp/ temp/ - # Data files (session-specific, should not be committed) src/data/ !src/data/.gitkeep # Claude configuration (user-specific) -CLAUDE.md \ No newline at end of file +CLAUDE.md diff --git a/README.md b/README.md index 63eb6fa..915bb9e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ # Claude Code Remote -Control [Claude Code](https://claude.ai/code) remotely via email. Start tasks locally, receive notifications when Claude completes them, and send new commands by simply replying to emails. +Control [Claude Code](https://claude.ai/code) remotely via multiple messaging platforms. Start tasks locally, receive notifications when Claude completes them, and send new commands by simply replying to messages. + +**Supported Platforms:** +- 📧 **Email** - Traditional SMTP/IMAP integration with execution trace +- 📱 **Telegram** - Interactive bot with smart buttons ✅ **NEW** +- 💬 **LINE** - Rich messaging with token-based commands +- 🖥️ **Desktop** - Sound alerts and system notifications
@@ -18,18 +24,34 @@ Control [Claude Code](https://claude.ai/code) remotely via email. Start tasks lo ## ✨ Features -- **📧 Email Notifications**: Get notified when Claude completes tasks ![](./assets/email_demo.png) -- **🔄 Email Control**: Reply to emails to send new commands to Claude -- **📱 Remote Access**: Control Claude from anywhere with just email -- **🔒 Secure**: Whitelist-based sender verification +- **📧 Multiple Messaging Platforms**: + - Email notifications with full execution trace and reply-to-send commands + - Telegram Bot with interactive buttons and slash commands ✅ **NEW** + - LINE messaging with token-based commands + - Desktop notifications with sound alerts +- **🔄 Two-way Control**: Reply to messages or emails to send new commands +- **📱 Remote Access**: Control Claude from anywhere +- **🔒 Secure**: ID-based whitelist verification for all platforms +- **👥 Group Support**: Use in LINE groups or Telegram groups for team collaboration +- **🤖 Smart Commands**: Intuitive command formats for each platform - **📋 Multi-line Support**: Send complex commands with formatting - +- **⚡ Smart Monitoring**: Intelligent detection of Claude responses with historical tracking +- **🔄 tmux Integration**: Seamless command injection into active tmux sessions +- **📊 Execution Trace**: Full terminal output capture in email notifications ## 📅 Changelog ### August 2025 +- **2025-08-02**: Add full execution trace to email notifications ([#14](https://github.com/JessyTsui/Claude-Code-Remote/pull/14)) +- **2025-08-01**: Enhanced Multi-Channel Notification System (by @laihenyi @JessyTsui) + - ✅ **Telegram Integration Completed** - Interactive buttons, real-time commands, smart personal/group chat handling + - ✅ **Multi-Channel Notifications** - Simultaneous delivery to Desktop, Telegram, Email, LINE + - ✅ **Smart Sound Alerts** - Always-on audio feedback with customizable sounds + - ✅ **Intelligent Session Management** - Auto-detection, real conversation content, 24-hour tokens +- **2025-08-01**: Fix #9 #12: Add configuration to disable subagent notifications ([#10](https://github.com/JessyTsui/Claude-Code-Remote/pull/10)) - **2025-08-01**: Implement terminal-style UI for email notifications ([#8](https://github.com/JessyTsui/Claude-Code-Remote/pull/8) by [@vaclisinc](https://github.com/vaclisinc)) - **2025-08-01**: Fix working directory issue - enable claude-remote to run from any directory ([#7](https://github.com/JessyTsui/Claude-Code-Remote/pull/7) by [@vaclisinc](https://github.com/vaclisinc)) + ### July 2025 - **2025-07-31**: Fix self-reply loop issue when using same email for send/receive ([#4](https://github.com/JessyTsui/Claude-Code-Remote/pull/4) by [@vaclisinc](https://github.com/vaclisinc)) - **2025-07-28**: Remove hardcoded values and implement environment-based configuration ([#2](https://github.com/JessyTsui/Claude-Code-Remote/pull/2) by [@kevinsslin](https://github.com/kevinsslin)) @@ -37,28 +59,33 @@ Control [Claude Code](https://claude.ai/code) remotely via email. Start tasks lo ## 📋 TODO List ### Notification Channels -- [ ] **Discord & Telegram**: Bot integration for messaging platforms -- [ ] **Slack Workflow**: Native Slack app with slash commands +- ~~**📱 Telegram Integration**~~ ✅ **COMPLETED** - Bot integration with interactive buttons and real-time commands +- **💬 Discord Integration** - Bot integration for messaging platforms +- **⚡ Slack Workflow** - Native Slack app with slash commands ### Developer Tools -- [ ] **AI Tools**: Support for Gemini CLI, Cursor, and other AI tools -- [ ] **Git Automation**: Auto-commit, PR creation, branch management +- **🤖 AI Tools Support** - Integration with Gemini CLI, Cursor, and other AI development tools +- **🔀 Git Automation** - Auto-commit functionality, PR creation, branch management ### Usage Analytics -- [ ] **Cost Tracking**: Token usage and estimated costs -- [ ] **Performance Metrics**: Execution time and resource usage -- [ ] **Scheduled Reports**: Daily/weekly usage summaries via email +- **💰 Cost Tracking** - Token usage monitoring and estimated costs +- **⚡ Performance Metrics** - Execution time tracking and resource usage analysis +- **📧 Scheduled Reports** - Daily/weekly usage summaries delivered via email ### Native Apps -- [ ] **Mobile Apps**: iOS and Android applications -- [ ] **Desktop Apps**: macOS and Windows native clients +- **📱 Mobile Apps** - iOS and Android applications for remote Claude control +- **🖥️ Desktop Apps** - macOS and Windows native clients with system integration +## 🚀 Quick Start -## 🚀 Setup Guide +### 1. Prerequisites -Follow these steps to get Claude Code Remote running: +**System Requirements:** +- Node.js >= 14.0.0 +- **tmux** (required for command injection) +- Active tmux session with Claude Code running -### Step 1: Clone and Install Dependencies +### 2. Install ```bash git clone https://github.com/JessyTsui/Claude-Code-Remote.git @@ -66,62 +93,78 @@ cd Claude-Code-Remote npm install ``` -### Step 2: Configure Email Settings +### 3. Choose Your Platform + +#### Option A: Configure Email (Recommended for Beginners) ```bash -# Copy the example configuration +# Copy example config cp .env.example .env -# Open .env in your editor -nano .env # or use vim, code, etc. +# Edit with your email credentials +nano .env ``` -Edit the `.env` file with your email credentials: - +**Required email settings:** ```env -# Email account for sending notifications +EMAIL_ENABLED=true SMTP_USER=your-email@gmail.com -SMTP_PASS=your-app-password # Gmail: use App Password, not regular password - -# Email account for receiving replies (can be same as SMTP) +SMTP_PASS=your-app-password IMAP_USER=your-email@gmail.com IMAP_PASS=your-app-password - -# Where to send notifications EMAIL_TO=your-notification-email@gmail.com - -# Who can send commands (security whitelist) ALLOWED_SENDERS=your-notification-email@gmail.com - -# Path to session data (use absolute path) -SESSION_MAP_PATH=/your/absolute/path/to/Claude-Code-Remote/src/data/session-map.json +SESSION_MAP_PATH=/your/path/to/Claude-Code-Remote/src/data/session-map.json ``` -📌 **Gmail users**: Create an [App Password](https://myaccount.google.com/security) instead of using your regular password. -> Note: You may need to enable two-step verification in your google account first before create app password. +📌 **Gmail users**: Use [App Passwords](https://myaccount.google.com/security), not your regular password. -### Step 3: Set Up Claude Code Hooks - -Open Claude's settings file: +#### Option B: Configure Telegram ✅ **NEW** +**Quick Setup:** ```bash -# Create the directory if it doesn't exist -mkdir -p ~/.claude - -# Edit settings.json -nano ~/.claude/settings.json +chmod +x setup-telegram.sh +./setup-telegram.sh ``` -Add this configuration (replace `/your/absolute/path/` with your actual path): +**Manual Setup:** +1. Create bot via [@BotFather](https://t.me/BotFather) +2. Get your Chat ID from bot API +3. Configure webhook URL (use ngrok for local testing) -```json +**Required Telegram settings:** +```env +TELEGRAM_ENABLED=true +TELEGRAM_BOT_TOKEN=your-bot-token-here +TELEGRAM_CHAT_ID=your-chat-id-here +TELEGRAM_WEBHOOK_URL=https://your-ngrok-url.app +SESSION_MAP_PATH=/your/path/to/Claude-Code-Remote/src/data/session-map.json +``` + +#### Option C: Configure LINE + +**Required LINE settings:** +```env +LINE_ENABLED=true +LINE_CHANNEL_ACCESS_TOKEN=your-token +LINE_CHANNEL_SECRET=your-secret +LINE_USER_ID=your-user-id +``` + +### 4. Configure Claude Code Hooks + +Create hooks configuration file: + +**Method 1: Global Configuration (Recommended)** +```bash +# Add to ~/.claude/settings.json { "hooks": { "Stop": [{ "matcher": "*", "hooks": [{ "type": "command", - "command": "node /your/absolute/path/to/Claude-Code-Remote/claude-remote.js notify --type completed", + "command": "node /your/path/to/Claude-Code-Remote/claude-hook-notify.js completed", "timeout": 5 }] }], @@ -129,7 +172,7 @@ Add this configuration (replace `/your/absolute/path/` with your actual path): "matcher": "*", "hooks": [{ "type": "command", - "command": "node /your/absolute/path/to/Claude-Code-Remote/claude-remote.js notify --type waiting", + "command": "node /your/path/to/Claude-Code-Remote/claude-hook-notify.js waiting", "timeout": 5 }] }] @@ -137,111 +180,93 @@ Add this configuration (replace `/your/absolute/path/` with your actual path): } ``` +**Method 2: Project-Specific Configuration** +```bash +# Set environment variable +export CLAUDE_HOOKS_CONFIG=/your/path/to/Claude-Code-Remote/claude-hooks.json +``` + > **Note**: Subagent notifications are disabled by default. To enable them, set `enableSubagentNotifications: true` in your config. See [Subagent Notifications Guide](./docs/SUBAGENT_NOTIFICATIONS.md) for details. -### Step 4: Test Your Setup +### 5. Start Services +#### For All Platforms (Recommended) ```bash -# Test email configuration -node claude-remote.js test +# Automatically starts all enabled platforms +npm run webhooks +# or +node start-all-webhooks.js ``` -You should receive a test email. If not, check your email settings. +#### For Individual Platforms -### Step 5: Start Claude Code Remote - -**Terminal 1 - Start email monitoring:** +**For Email:** ```bash -npm run relay:pty +npm run daemon:start +# or +node claude-remote.js daemon start ``` -Keep this running. You should see: -``` -🚀 Claude Code Remote is running! -📧 Monitoring emails... -``` - -**Terminal 2 - Start Claude in tmux:** +**For Telegram:** ```bash -# Create a new tmux session -tmux new-session -s my-project - -# Inside tmux, start Claude -claude +npm run telegram +# or +node start-telegram-webhook.js ``` -### Step 6: You're Ready! - -1. Use Claude normally in the tmux session -2. When Claude completes a task, you'll receive an email -3. Reply to the email with new commands -4. Your commands will execute automatically in Claude - -### Verify Everything Works - -In Claude, type: -``` -What is 2+2? +**For LINE:** +```bash +npm run line +# or +node start-line-webhook.js ``` -Wait for Claude to respond, then check your email. You should receive a notification! +### 6. Test Your Setup -## 📖 How to Use - -### Email Notifications -When Claude completes a task, you'll receive an email notification: - -``` -Subject: Claude Code Remote Task Complete [#ABC123] - -Claude completed: "analyze the code structure" - -[Claude's full response here...] - -Reply to this email to send new commands. +**Quick Test:** +```bash +# Test all notification channels +node claude-hook-notify.js completed +# Should receive notifications via all enabled platforms ``` -### Sending Commands via Email Reply +**Full Test:** +1. Start Claude in tmux session with hooks enabled +2. Run any command in Claude +3. Check for notifications (email/Telegram/LINE) +4. Reply with new command to test two-way control -1. **Direct Reply**: Simply reply to the notification email -2. **Write Command**: Type your command in the email body: - ``` - Please refactor the main function and add error handling - ``` -3. **Send**: Your command will automatically execute in Claude! +## 🎮 How It Works -### Advanced Email Features +1. **Use Claude normally** in tmux session +2. **Get notifications** when Claude completes tasks via: + - 🔊 **Sound alert** (Desktop) + - 📧 **Email notification with execution trace** (if enabled) + - 📱 **Telegram message with buttons** (if enabled) + - 💬 **LINE message** (if enabled) +3. **Reply with commands** using any platform +4. **Commands execute automatically** in Claude -**Multi-line Commands** +### Platform Command Formats + +**Email:** ``` -First analyze the current code structure. -Then create a comprehensive test suite. -Finally, update the documentation. +Simply reply to notification email with your command +No special formatting required ``` -**Complex Instructions** +**Telegram:** ✅ **NEW** ``` -Refactor the authentication module with these requirements: -- Use JWT tokens instead of sessions -- Add rate limiting -- Implement refresh token logic -- Update all related tests +Click smart button to get format: +📝 Personal Chat: /cmd TOKEN123 your command here +👥 Group Chat: @bot_name /cmd TOKEN123 your command here ``` -### Email Reply Workflow - -1. **Receive Notification** → You get an email when Claude completes a task -2. **Reply with Command** → Send your next instruction via email reply -3. **Automatic Execution** → The system extracts your command and injects it into Claude -4. **Get Results** → Receive another email when the new task completes - -### Supported Email Clients - -Works with any email client that supports standard reply functionality: -- ✅ Gmail (Web/Mobile) -- ✅ Apple Mail -- ✅ Outlook -- ✅ Any SMTP-compatible email client +**LINE:** +``` +Reply to notification with: Your command here +(Token automatically extracted from conversation context) +``` ### Advanced Configuration @@ -284,51 +309,110 @@ Works with any email client that supports standard reply functionality: This is useful if you find the execution trace too verbose or if your email client has issues with scrollable content. -## 💡 Common Use Cases +## 💡 Use Cases -- **Remote Development**: Start coding at the office, continue from home via email -- **Long Tasks**: Let Claude work while you're in meetings, check results via email -- **Team Collaboration**: Share Claude sessions by forwarding notification emails +- **Remote Code Reviews**: Start reviews at office, continue from home via any platform +- **Long-running Tasks**: Monitor progress and guide next steps remotely +- **Multi-location Development**: Control Claude from anywhere without VPN +- **Team Collaboration**: Share Telegram groups for team notifications +- **Mobile Development**: Send commands from phone via Telegram -## 🔧 Useful Commands +## 🔧 Commands +### Testing & Diagnostics ```bash -# Test email setup -node claude-remote.js test +# Test all notification channels +node claude-hook-notify.js completed -# Check system status +# Test specific platforms +node test-telegram-notification.js +node test-real-notification.js +node test-injection.js + +# System diagnostics +node claude-remote.js diagnose node claude-remote.js status +node claude-remote.js test +``` -# View tmux sessions -tmux list-sessions -tmux attach -t my-project +### Service Management +```bash +# Start all enabled platforms +npm run webhooks -# Stop email monitoring -# Press Ctrl+C in the terminal running npm run relay:pty +# Individual services +npm run telegram # Telegram webhook +npm run line # LINE webhook +npm run daemon:start # Email daemon + +# Stop services +npm run daemon:stop # Stop email daemon ``` ## 🔍 Troubleshooting +### Common Issues + +**Not receiving notifications from Claude?** +1. Check hooks configuration in tmux session: + ```bash + echo $CLAUDE_HOOKS_CONFIG + ``` +2. Verify Claude is running with hooks enabled +3. Test notification manually: + ```bash + node claude-hook-notify.js completed + ``` + +**Telegram bot not responding?** ✅ **NEW** +```bash +# Test bot connectivity +curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \ + -H "Content-Type: application/json" \ + -d "{\"chat_id\": $TELEGRAM_CHAT_ID, \"text\": \"Test\"}" + +# Check webhook status +curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getWebhookInfo" +``` + +**Commands not executing in Claude?** +```bash +# Check tmux session exists +tmux list-sessions + +# Verify injection mode +grep INJECTION_MODE .env # Should be 'tmux' + +# Test injection +node test-injection.js +``` + **Not receiving emails?** - Run `node claude-remote.js test` to test email setup - Check spam folder - Verify SMTP settings in `.env` - For Gmail: ensure you're using App Password -**Commands not executing?** -- Ensure tmux session is running: `tmux list-sessions` -- Check sender email matches `ALLOWED_SENDERS` in `.env` -- Verify Claude is running inside tmux - -**Need help?** -- Check [Issues](https://github.com/JessyTsui/Claude-Code-Remote/issues) -- Follow [@Jiaxi_Cui](https://x.com/Jiaxi_Cui) for updates +### Debug Mode +```bash +# Enable detailed logging +LOG_LEVEL=debug npm run webhooks +DEBUG=true node claude-hook-notify.js completed +``` ## 🛡️ Security -- ✅ **Sender Whitelist**: Only authorized emails can send commands -- ✅ **Session Isolation**: Each token controls only its specific session -- ✅ **Auto Expiration**: Sessions timeout automatically +### Multi-Platform Authentication +- ✅ **Email**: Sender whitelist via `ALLOWED_SENDERS` environment variable +- ✅ **Telegram**: Bot token and chat ID verification +- ✅ **LINE**: Channel secret and access token validation +- ✅ **Session Tokens**: 8-character alphanumeric tokens for command verification + +### Session Security +- ✅ **Session Isolation**: Each token controls only its specific tmux session +- ✅ **Auto Expiration**: Sessions timeout automatically after 24 hours +- ✅ **Token-based Commands**: All platforms require valid session tokens +- ✅ **Minimal Data Storage**: Session files contain only necessary information ## 🤝 Contributing @@ -352,4 +436,4 @@ MIT License - Feel free to use and modify! ⭐ **Star this repo** if it helps you code more efficiently! -> 💡 **Tip**: Share your remote coding setup on Twitter and tag [@Jiaxi_Cui](https://x.com/Jiaxi_Cui) - we love seeing how developers use Claude Code Remote! +> 💡 **Tip**: Enable multiple notification channels for redundancy - never miss a Claude completion again! \ No newline at end of file diff --git a/assets/telegram_demo.png b/assets/telegram_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..fd9d9a6e683f439c699e2923d95924a92447c982 GIT binary patch literal 533036 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 z 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

d!h?=9J%PQ{a%En52l>Ce6Duc!fp-bX(ur+lqC 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


6qJZv7k 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
xX;DTu}3g~JZXk8T?*6U^& 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%0AoN&7$^{!;6L7&DS}VVsN>q{_GsnSUbrqx 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
  • 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ξ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 z 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

    Z;qPnRKgq}_H0Of)V)gm&>NX0Wmn=s%B@J|6L(4 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�sP~KsWK&sdt=*)H3r3I;4d155F@lGrkE>2+kfC@8Y7ZT zvE6aA3#q|u-ThPO^s6HC)1?A7D$k3}p*9#L%~jXsDDo32K8>rJHC;8mB8smDnQHSg zs~*+9sz*8epAIN}2v&@X3~1wtDKZp|>3wLraaFtoi=-8&Y@9*?-i*{dyl&8ri+o(Z z(~->Kmxs(~PI7Y0Z0PFt_^Cau%c^i;V7-g-F45)yCD=;BYJsN2xK?3&+fVUE+*N?- zZAF2&m!051(CBh7jcU6qqPW9e$rZ@H$c<-9vY+!h!TYuK5qj>nBjuoZ;f{W8@7d#keCbj-WY+F9-{t2H+ zCesQ4vCu_TbeYO&r~OIq2T0)kcnDEiswQ2e{AW)3 zcY&C0eAN{JuW+9dwqVjw)d!PdUS@HbeeN#AJYP{+AG$GbsVst>cHaBAHh$CG~c=(p?XRAYq zoM@A0DycZR%!~F0m_t>Uwr+l$Cy)e@>sI}pZz|G|YOE61-{Sn~U$t;H z8SGVh^eHU(z2=a>X>Aa)l9vbyy`8=Ow4$=iA)ekf(Zrynx<~QQY*GqKqlng zs9}p8XEG>-(cmu$Z%Edeb($M)KF>eWW4AitGC!N?s?6FVbz6S*<7>l2>d{=aO&h(B zhbX@X^uZdI!Z&6ezQZFdmYx-2*y#>h|_nn*jG7M>za z@#I4(8(RFFOGRxq^J?Nz{(TW)A%=0TIIbtKluFUZ5w;J#87Amn3XEP0z$2y znK0t(W&ta)o8~nWw_Y=+l0XyITiimT8IBq1bTh)=*wJ?d8pFmTe=KQr|Dh;duhsq>@qY zuj;+`%XVa8e~)WDdlOYBy{SCew9_9_2b$=Cz7E2ukar1Bw%k(-=N@M{E{=+kvsmsY-0F0OA1Q;bBVfZ;XDp7)g1p?J zxQH!F|L=eD`bo1d;}zm5fDCCO=l3`8>w}H{)3db)>T|D<)dl{PG-9z$!Vz(KC_dfMW*xz-y)4oT6<2UDj%v0E{M&s;9h$XgbVx6q2Icfn7$mZ96&>d^CDv=TdZUCJ! zGC^V~_+B>tCmp|eUf~xoe6MKpo%CWx@`kvcD5pX6gaS$^}D#I(-AVLX~|t9P8Y%7{t0^j#nN7!}TY*M6C!NUnnv642SLiP(+DXSi=g{-%7hqR4+b+mrqW=%`UZATu#Q-{7Yrv{q`rYl9RO%OLEq|Jq@(i1zZHY z%c5nc$_&}515N^qqAoAk9QY)&Hn~t;qR~LYFBCuh+OwaMuh*^QYf!GW6gl@yrBPy9 zFd7?W>p0-k>3em&fAttG+>xhMVGAL0WZ7<=^Mf)o*;qV13jvg)qh)Zv{GN5_e*kPA BwYvZS literal 0 HcmV?d00001 diff --git a/claude-control.js b/claude-control.js deleted file mode 100644 index 5ff6aa2..0000000 --- a/claude-control.js +++ /dev/null @@ -1,288 +0,0 @@ -#!/usr/bin/env node - -/** - * Claude-Code-Remote Unattended Remote Control Setup Assistant - */ - -const { exec, spawn } = require('child_process'); -const fs = require('fs'); -const path = require('path'); - -class RemoteControlSetup { - constructor(sessionName = null) { - this.sessionName = sessionName || 'claude-code-remote'; - this.claudeCodeRemoteHome = this.findClaudeCodeRemoteHome(); - } - - findClaudeCodeRemoteHome() { - // If CLAUDE_CODE_REMOTE_HOME environment variable is set, use it - if (process.env.CLAUDE_CODE_REMOTE_HOME) { - return process.env.CLAUDE_CODE_REMOTE_HOME; - } - - // If running from the Claude-Code-Remote directory, use current directory - if (fs.existsSync(path.join(__dirname, 'package.json'))) { - const packagePath = path.join(__dirname, 'package.json'); - try { - const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8')); - if (packageJson.name && packageJson.name.toLowerCase().includes('claude-code-remote')) { - return __dirname; - } - } catch (e) { - // Continue searching - } - } - - // Search for Claude-Code-Remote in common locations - const commonPaths = [ - path.join(process.env.HOME, 'dev', 'Claude-Code-Remote'), - path.join(process.env.HOME, 'Projects', 'Claude-Code-Remote'), - path.join(process.env.HOME, 'claude-code-remote'), - __dirname // fallback to current script directory - ]; - - for (const searchPath of commonPaths) { - if (fs.existsSync(searchPath) && fs.existsSync(path.join(searchPath, 'package.json'))) { - try { - const packageJson = JSON.parse(fs.readFileSync(path.join(searchPath, 'package.json'), 'utf8')); - if (packageJson.name && packageJson.name.toLowerCase().includes('claude-code-remote')) { - return searchPath; - } - } catch (e) { - // Continue searching - } - } - } - - // If not found, use current directory as fallback - return __dirname; - } - - async setup() { - console.log('🚀 Claude-Code-Remote Unattended Remote Control Setup\n'); - console.log('🎯 Goal: Remote access via mobile phone → Home computer Claude Code automatically executes commands\n'); - - try { - // 1. Check tmux - await this.checkAndInstallTmux(); - - // 2. Check Claude CLI - await this.checkClaudeCLI(); - - // 3. Setup Claude tmux session - await this.setupClaudeSession(); - - // 4. Session creation complete - console.log('\n4️⃣ Session creation complete'); - - // 5. Provide usage guide - this.showUsageGuide(); - - } catch (error) { - console.error('❌ Error occurred during setup:', error.message); - } - } - - async checkAndInstallTmux() { - console.log('1️⃣ Checking tmux installation status...'); - - return new Promise((resolve) => { - exec('which tmux', (error, stdout) => { - if (error) { - console.log('❌ tmux not installed'); - console.log('📦 Installing tmux...'); - - exec('brew install tmux', (installError, installStdout, installStderr) => { - if (installError) { - console.log('❌ tmux installation failed, please install manually:'); - console.log(' brew install tmux'); - console.log(' or download from https://github.com/tmux/tmux'); - } else { - console.log('✅ tmux installation successful'); - } - resolve(); - }); - } else { - console.log(`✅ tmux already installed: ${stdout.trim()}`); - resolve(); - } - }); - }); - } - - async checkClaudeCLI() { - console.log('\n2️⃣ Checking Claude CLI status...'); - - return new Promise((resolve) => { - exec('which claude', (error, stdout) => { - if (error) { - console.log('❌ Claude CLI not found'); - console.log('📦 Please install Claude CLI:'); - console.log(' npm install -g @anthropic-ai/claude-code'); - } else { - console.log(`✅ Claude CLI installed: ${stdout.trim()}`); - - // Check version - exec('claude --version', (versionError, versionStdout) => { - if (!versionError) { - console.log(`📋 Version: ${versionStdout.trim()}`); - } - }); - } - resolve(); - }); - }); - } - - async setupClaudeSession() { - console.log('\n3️⃣ Setting up Claude tmux session...'); - - return new Promise((resolve) => { - // Check if session already exists - exec(`tmux has-session -t ${this.sessionName} 2>/dev/null`, (checkError) => { - if (!checkError) { - console.log('⚠️ Claude tmux session already exists'); - console.log('🔄 Recreating session? (will kill existing session)'); - - // For simplicity, recreate directly - this.killAndCreateSession(resolve); - } else { - this.createNewSession(resolve); - } - }); - }); - } - - killAndCreateSession(resolve) { - exec(`tmux kill-session -t ${this.sessionName} 2>/dev/null`, () => { - setTimeout(() => { - this.createNewSession(resolve); - }, 1000); - }); - } - - createNewSession(resolve) { - // Use current working directory as working directory for Claude session - const workingDir = process.cwd(); - const command = `tmux new-session -d -s ${this.sessionName} -c "${workingDir}" clauderun`; - - console.log(`🚀 Creating Claude tmux session: ${this.sessionName}`); - console.log(`📁 Working directory: ${workingDir}`); - console.log(`💡 Using convenience command: clauderun (equivalent to claude --dangerously-skip-permissions)`); - - exec(command, (error, stdout, stderr) => { - if (error) { - console.log(`❌ Session creation failed: ${error.message}`); - if (stderr) { - console.log(`Error details: ${stderr}`); - } - // If clauderun fails, try using full path command - console.log('🔄 Trying full path command...'); - const claudePath = process.env.CLAUDE_CLI_PATH || 'claude'; - const fallbackCommand = `tmux new-session -d -s ${this.sessionName} -c "${workingDir}" ${claudePath} --dangerously-skip-permissions`; - exec(fallbackCommand, (fallbackError) => { - if (fallbackError) { - console.log(`❌ Full path command also failed: ${fallbackError.message}`); - } else { - console.log('✅ Claude tmux session created successfully (using full path)'); - console.log(`📺 View session: tmux attach -t ${this.sessionName}`); - console.log(`🔚 Exit session: Ctrl+B, D (won't close Claude)`); - } - resolve(); - }); - } else { - console.log('✅ Claude tmux session created successfully'); - console.log(`📺 View session: tmux attach -t ${this.sessionName}`); - console.log(`🔚 Exit session: Ctrl+B, D (won't close Claude)`); - resolve(); - } - }); - } - - async testRemoteInjection() { - console.log('\n💡 Session is ready, you can start using it'); - console.log('📋 Claude Code is waiting for your instructions'); - console.log('🔧 To test injection functionality, please use separate test script'); - return Promise.resolve(); - } - - showUsageGuide() { - console.log('\n🎉 Setup complete! Unattended remote control is ready\n'); - - console.log('🎯 New feature: clauderun convenience command'); - console.log(' You can now use clauderun instead of claude --dangerously-skip-permissions'); - console.log(' Clearer Claude Code startup method\n'); - - console.log('📋 Usage workflow:'); - console.log('1. 🏠 Start email monitoring at home: npm run relay:pty'); - console.log('2. 🚪 When going out, Claude continues running in tmux'); - console.log('3. 📱 Receive Claude-Code-Remote email notifications on mobile'); - console.log('4. 💬 Reply to email with commands on mobile'); - console.log('5. 🤖 Claude at home automatically receives and executes commands'); - console.log('6. 🔄 Repeat above process, completely unattended\n'); - - console.log('🔧 Management commands:'); - console.log(` View Claude session: tmux attach -t ${this.sessionName}`); - console.log(` Exit session (without closing): Ctrl+B, D`); - console.log(` Kill session: tmux kill-session -t ${this.sessionName}`); - console.log(` View all sessions: tmux list-sessions\n`); - - console.log('🎛️ Multi-session support:'); - console.log(' Create custom session: node claude-control.js --session my-project'); - console.log(' Create multiple sessions: node claude-control.js --session frontend'); - console.log(' node claude-control.js --session backend'); - console.log(' Email replies will automatically route to corresponding session\n'); - - console.log('📱 Email testing:'); - console.log(' Token will include session information, automatically routing to correct tmux session'); - console.log(` Recipient email: ${process.env.EMAIL_TO}`); - console.log(' Reply with command: echo "Remote control test"\n'); - - console.log('🚨 Important reminders:'); - console.log('- Claude session runs continuously in tmux, won\'t be interrupted by network disconnection/reconnection'); - console.log('- Email monitoring service needs to remain running'); - console.log('- Home computer needs to stay powered on with network connection'); - console.log('- Mobile can send email commands from anywhere'); - console.log('- Supports running multiple Claude sessions for different projects simultaneously\n'); - - console.log('✅ Now you can achieve true unattended remote control! 🎯'); - } - - // Quick session restart method - async quickRestart() { - console.log('🔄 Quick restart Claude session...'); - - return new Promise((resolve) => { - this.killAndCreateSession(() => { - console.log('✅ Claude session restarted'); - resolve(); - }); - }); - } -} - -// Command line parameter processing -if (require.main === module) { - const args = process.argv.slice(2); - - // Parse session name parameter - let sessionName = null; - const sessionIndex = args.indexOf('--session'); - if (sessionIndex !== -1 && args[sessionIndex + 1]) { - sessionName = args[sessionIndex + 1]; - } - - const setup = new RemoteControlSetup(sessionName); - - if (sessionName) { - console.log(`🎛️ Using custom session name: ${sessionName}`); - } - - if (args.includes('--restart')) { - setup.quickRestart(); - } else { - setup.setup(); - } -} - -module.exports = RemoteControlSetup; \ No newline at end of file diff --git a/claude-hook-notify.js b/claude-hook-notify.js new file mode 100755 index 0000000..f8caca3 --- /dev/null +++ b/claude-hook-notify.js @@ -0,0 +1,168 @@ +#!/usr/bin/env node + +/** + * Claude Hook Notification Script + * Called by Claude Code hooks to send Telegram notifications + */ + +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); + +// Load environment variables from the project directory +const projectDir = path.dirname(__filename); +const envPath = path.join(projectDir, '.env'); + +console.log('🔍 Hook script started from:', process.cwd()); +console.log('📁 Script location:', __filename); +console.log('🔧 Looking for .env at:', envPath); + +if (fs.existsSync(envPath)) { + console.log('✅ .env file found, loading...'); + dotenv.config({ path: envPath }); +} else { + console.error('❌ .env file not found at:', envPath); + console.log('📂 Available files in script directory:'); + try { + const files = fs.readdirSync(projectDir); + console.log(files.join(', ')); + } catch (error) { + console.error('Cannot read directory:', error.message); + } + process.exit(1); +} + +const TelegramChannel = require('./src/channels/telegram/telegram'); +const DesktopChannel = require('./src/channels/local/desktop'); +const EmailChannel = require('./src/channels/email/smtp'); + +async function sendHookNotification() { + try { + console.log('🔔 Claude Hook: Sending notifications...'); + + // Get notification type from command line argument + const notificationType = process.argv[2] || 'completed'; + + const channels = []; + const results = []; + + // Configure Desktop channel (always enabled for sound) + const desktopChannel = new DesktopChannel({ + completedSound: 'Glass', + waitingSound: 'Tink' + }); + channels.push({ name: 'Desktop', channel: desktopChannel }); + + // Configure Telegram channel if enabled + if (process.env.TELEGRAM_ENABLED === 'true' && process.env.TELEGRAM_BOT_TOKEN) { + const telegramConfig = { + botToken: process.env.TELEGRAM_BOT_TOKEN, + chatId: process.env.TELEGRAM_CHAT_ID, + groupId: process.env.TELEGRAM_GROUP_ID + }; + + if (telegramConfig.botToken && (telegramConfig.chatId || telegramConfig.groupId)) { + const telegramChannel = new TelegramChannel(telegramConfig); + channels.push({ name: 'Telegram', channel: telegramChannel }); + } + } + + // Configure Email channel if enabled + if (process.env.EMAIL_ENABLED === 'true' && process.env.SMTP_USER) { + const emailConfig = { + smtp: { + host: process.env.SMTP_HOST, + port: parseInt(process.env.SMTP_PORT), + secure: process.env.SMTP_SECURE === 'true', + auth: { + user: process.env.SMTP_USER, + pass: process.env.SMTP_PASS + } + }, + from: process.env.EMAIL_FROM, + fromName: process.env.EMAIL_FROM_NAME, + to: process.env.EMAIL_TO + }; + + if (emailConfig.smtp.host && emailConfig.smtp.auth.user && emailConfig.to) { + const emailChannel = new EmailChannel(emailConfig); + channels.push({ name: 'Email', channel: emailChannel }); + } + } + + // Get current working directory and tmux session + const currentDir = process.cwd(); + const projectName = path.basename(currentDir); + + // Try to get current tmux session + let tmuxSession = process.env.TMUX_SESSION || 'claude-real'; + try { + const { execSync } = require('child_process'); + const sessionOutput = execSync('tmux display-message -p "#S"', { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }).trim(); + if (sessionOutput) { + tmuxSession = sessionOutput; + } + } catch (error) { + // Not in tmux or tmux not available, use default + } + + // Create notification + const notification = { + type: notificationType, + title: `Claude ${notificationType === 'completed' ? 'Task Completed' : 'Waiting for Input'}`, + message: `Claude has ${notificationType === 'completed' ? 'completed a task' : 'is waiting for input'}`, + project: projectName + // Don't set metadata here - let TelegramChannel extract real conversation content + }; + + console.log(`📱 Sending ${notificationType} notification for project: ${projectName}`); + console.log(`🖥️ Tmux session: ${tmuxSession}`); + + // Send notifications to all configured channels + for (const { name, channel } of channels) { + try { + console.log(`📤 Sending to ${name}...`); + const result = await channel.send(notification); + results.push({ name, success: result }); + + if (result) { + console.log(`✅ ${name} notification sent successfully!`); + } else { + console.log(`❌ Failed to send ${name} notification`); + } + } catch (error) { + console.error(`❌ ${name} notification error:`, error.message); + results.push({ name, success: false, error: error.message }); + } + } + + // Report overall results + const successful = results.filter(r => r.success).length; + const total = results.length; + + if (successful > 0) { + console.log(`\n✅ Successfully sent notifications via ${successful}/${total} channels`); + if (results.some(r => r.name === 'Telegram' && r.success)) { + console.log('📋 You can now send new commands via Telegram'); + } + } else { + console.log('\n❌ All notification channels failed'); + process.exit(1); + } + + } catch (error) { + console.error('❌ Hook notification error:', error.message); + process.exit(1); + } +} + +// Show usage if no arguments +if (process.argv.length < 2) { + console.log('Usage: node claude-hook-notify.js [completed|waiting]'); + process.exit(1); +} + +sendHookNotification(); \ No newline at end of file diff --git a/claude-hooks.json b/claude-hooks.json new file mode 100644 index 0000000..6e9f58d --- /dev/null +++ b/claude-hooks.json @@ -0,0 +1,28 @@ +{ + "hooks": { + "Stop": [ + { + "matcher": "*", + "hooks": [ + { + "type": "command", + "command": "node /Users/jessytsui/dev/Claude-Code-Remote/claude-hook-notify.js completed", + "timeout": 5 + } + ] + } + ], + "SubagentStop": [ + { + "matcher": "*", + "hooks": [ + { + "type": "command", + "command": "node /Users/jessytsui/dev/Claude-Code-Remote/claude-hook-notify.js waiting", + "timeout": 5 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/config/channels.json b/config/channels.json index ad49722..e744f53 100644 --- a/config/channels.json +++ b/config/channels.json @@ -19,10 +19,12 @@ }, "telegram": { "type": "chat", - "enabled": false, + "enabled": true, "config": { - "token": "", - "chatId": "" + "botToken": "", + "chatId": "", + "groupId": "", + "whitelist": [] } }, "whatsapp": { @@ -40,5 +42,16 @@ "webhook": "", "secret": "" } + }, + "line": { + "type": "chat", + "enabled": true, + "config": { + "channelAccessToken": "", + "channelSecret": "", + "userId": "", + "groupId": "", + "whitelist": [] + } } } \ No newline at end of file diff --git a/fix-telegram.sh b/fix-telegram.sh new file mode 100755 index 0000000..f966967 --- /dev/null +++ b/fix-telegram.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +# Telegram修复脚本 - 自动重启ngrok和更新webhook +# Fix Telegram Script - Auto restart ngrok and update webhook + +set -e + +PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ENV_FILE="$PROJECT_DIR/.env" + +echo "🔧 Telegram Remote Control 修复脚本" +echo "📁 项目目录: $PROJECT_DIR" + +# 检查.env文件 +if [ ! -f "$ENV_FILE" ]; then + echo "❌ .env文件不存在: $ENV_FILE" + exit 1 +fi + +# 加载环境变量 +source "$ENV_FILE" + +if [ -z "$TELEGRAM_BOT_TOKEN" ]; then + echo "❌ TELEGRAM_BOT_TOKEN未设置" + exit 1 +fi + +# 停止旧的ngrok进程 +echo "🔄 停止旧的ngrok进程..." +pkill -f "ngrok http" || true +sleep 2 + +# 启动新的ngrok隧道 +echo "🚀 启动ngrok隧道..." +nohup ngrok http 3001 > /dev/null 2>&1 & +sleep 5 + +# 获取新的ngrok URL +echo "🔍 获取新的ngrok URL..." +NEW_URL="" +for i in {1..10}; do + NEW_URL=$(curl -s http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url' 2>/dev/null || echo "") + if [ -n "$NEW_URL" ] && [ "$NEW_URL" != "null" ]; then + break + fi + echo "等待ngrok启动... ($i/10)" + sleep 2 +done + +if [ -z "$NEW_URL" ] || [ "$NEW_URL" = "null" ]; then + echo "❌ 无法获取ngrok URL" + exit 1 +fi + +echo "✅ 新的ngrok URL: $NEW_URL" + +# 更新.env文件 +echo "📝 更新.env文件..." +if [[ "$OSTYPE" == "darwin"* ]]; then + # macOS + sed -i '' "s|TELEGRAM_WEBHOOK_URL=.*|TELEGRAM_WEBHOOK_URL=$NEW_URL|" "$ENV_FILE" +else + # Linux + sed -i "s|TELEGRAM_WEBHOOK_URL=.*|TELEGRAM_WEBHOOK_URL=$NEW_URL|" "$ENV_FILE" +fi + +# 设置新的webhook +echo "🔗 设置Telegram webhook..." +WEBHOOK_URL="$NEW_URL/webhook/telegram" +RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setWebhook" \ + -H "Content-Type: application/json" \ + -d "{\"url\": \"$WEBHOOK_URL\", \"allowed_updates\": [\"message\", \"callback_query\"]}") + +if echo "$RESPONSE" | grep -q '"ok":true'; then + echo "✅ Webhook设置成功: $WEBHOOK_URL" +else + echo "❌ Webhook设置失败: $RESPONSE" + exit 1 +fi + +# 验证webhook状态 +echo "🔍 验证webhook状态..." +WEBHOOK_INFO=$(curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getWebhookInfo") +echo "📊 Webhook信息: $WEBHOOK_INFO" + +# 测试健康检查 +echo "🏥 测试健康检查..." +HEALTH_RESPONSE=$(curl -s "$NEW_URL/health" || echo "failed") +if echo "$HEALTH_RESPONSE" | grep -q '"status":"ok"'; then + echo "✅ 健康检查通过" +else + echo "⚠️ 健康检查失败,请确保webhook服务正在运行" + echo "运行: node start-telegram-webhook.js" +fi + +echo "" +echo "🎉 修复完成!" +echo "📱 新的webhook URL: $WEBHOOK_URL" +echo "🧪 发送测试消息..." + +# 发送测试消息 +# 优先发送到群组,如果没有群组则发送到个人聊天 +CHAT_TARGET="$TELEGRAM_GROUP_ID" +if [ -z "$CHAT_TARGET" ]; then + CHAT_TARGET="$TELEGRAM_CHAT_ID" +fi + +if [ -n "$CHAT_TARGET" ]; then + curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \ + -H "Content-Type: application/json" \ + -d "{\"chat_id\": $CHAT_TARGET, \"text\": \"🎉 Telegram Remote Control已修复并重新配置!\\n\\n新的webhook URL: $WEBHOOK_URL\\n\\n现在你可以接收Claude通知了。\"}" > /dev/null + echo "✅ 测试消息已发送到Telegram (Chat ID: $CHAT_TARGET)" +else + echo "⚠️ 未配置Telegram Chat ID或Group ID" +fi +echo "" +echo "🔥 下一步:" +echo "1️⃣ 确保webhook服务正在运行: node start-telegram-webhook.js" +echo "2️⃣ 在tmux中设置Claude hooks: export CLAUDE_HOOKS_CONFIG=$PROJECT_DIR/claude-hooks.json" +echo "3️⃣ 启动Claude: claude" \ No newline at end of file diff --git a/install-global.js b/install-global.js deleted file mode 100644 index f148314..0000000 --- a/install-global.js +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env node - -/** - * Global Installation Script for Claude-Code-Remote claude-control - * Makes claude-control.js accessible from any directory - */ - -const fs = require('fs'); -const path = require('path'); -const { execSync } = require('child_process'); - -const SCRIPT_NAME = 'claude-control'; -const SOURCE_PATH = path.join(__dirname, 'claude-control.js'); -const TARGET_DIR = '/usr/local/bin'; -const TARGET_PATH = path.join(TARGET_DIR, SCRIPT_NAME); - -function checkRequirements() { - // Check if claude-control.js exists - if (!fs.existsSync(SOURCE_PATH)) { - console.error('❌ Error: claude-control.js not found in current directory'); - process.exit(1); - } - - // Check if /usr/local/bin is writable - try { - fs.accessSync(TARGET_DIR, fs.constants.W_OK); - } catch (error) { - console.error('❌ Error: No write permission to /usr/local/bin'); - console.log('💡 Try running with sudo:'); - console.log(' sudo node install-global.js'); - process.exit(1); - } -} - -function createGlobalScript() { - const scriptContent = `#!/usr/bin/env node - -/** - * Global Claude Control Wrapper - * Executes claude-control.js from its original location - */ - -const path = require('path'); -const { spawn } = require('child_process'); - -// Claude-Code-Remote installation directory -const CLAUDE_CODE_REMOTE_DIR = '${__dirname}'; -const CLAUDE_CONTROL_PATH = path.join(CLAUDE_CODE_REMOTE_DIR, 'claude-control.js'); - -// Get command line arguments (excluding node and script name) -const args = process.argv.slice(2); - -// Change to Claude-Code-Remote directory before execution -process.chdir(CLAUDE_CODE_REMOTE_DIR); - -// Execute claude-control.js with original arguments -const child = spawn('node', [CLAUDE_CONTROL_PATH, ...args], { - stdio: 'inherit', - env: { ...process.env, CLAUDE_CODE_REMOTE_HOME: CLAUDE_CODE_REMOTE_DIR } -}); - -child.on('error', (error) => { - console.error('Error executing claude-control:', error.message); - process.exit(1); -}); - -child.on('exit', (code, signal) => { - if (signal) { - process.kill(process.pid, signal); - } else { - process.exit(code || 0); - } -}); -`; - - return scriptContent; -} - -function install() { - console.log('🚀 Installing claude-control globally...\n'); - - try { - // Create the global script - const scriptContent = createGlobalScript(); - fs.writeFileSync(TARGET_PATH, scriptContent); - - // Make it executable - fs.chmodSync(TARGET_PATH, 0o755); - - console.log('✅ Installation completed successfully!'); - console.log(`📁 Installed to: ${TARGET_PATH}`); - console.log('\n🎉 Usage:'); - console.log(' claude-control --session myproject'); - console.log(' claude-control --list'); - console.log(' claude-control --kill all'); - console.log('\nYou can now run claude-control from any directory!'); - - } catch (error) { - console.error('❌ Installation failed:', error.message); - process.exit(1); - } -} - -function uninstall() { - console.log('🗑️ Uninstalling claude-control...\n'); - - try { - if (fs.existsSync(TARGET_PATH)) { - fs.unlinkSync(TARGET_PATH); - console.log('✅ Uninstallation completed successfully!'); - console.log(`🗑️ Removed: ${TARGET_PATH}`); - } else { - console.log('⚠️ claude-control is not installed globally'); - } - } catch (error) { - console.error('❌ Uninstallation failed:', error.message); - process.exit(1); - } -} - -function showHelp() { - console.log('Claude-Code-Remote Claude Control - Global Installation\n'); - console.log('Usage:'); - console.log(' node install-global.js [install] - Install globally'); - console.log(' node install-global.js uninstall - Uninstall'); - console.log(' node install-global.js --help - Show this help\n'); - console.log('Requirements:'); - console.log(' - Write permission to /usr/local/bin (may need sudo)'); - console.log(' - claude-control.js must exist in current directory'); -} - -function main() { - const command = process.argv[2]; - - if (command === '--help' || command === '-h') { - showHelp(); - return; - } - - if (command === 'uninstall') { - uninstall(); - return; - } - - // Default action is install - checkRequirements(); - install(); -} - -// Run only if this script is executed directly -if (require.main === module) { - main(); -} - -module.exports = { install, uninstall }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2df6247..ec0a450 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,10 @@ "win32" ], "dependencies": { + "axios": "^1.6.0", "dotenv": "^17.2.1", "execa": "^9.6.0", + "express": "^4.18.2", "imapflow": "^1.0.191", "mailparser": "^3.7.4", "node-imap": "^0.9.6", @@ -57,6 +59,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -65,11 +92,144 @@ "node": ">=8.0.0" } }, + "node_modules/axios": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -91,6 +251,15 @@ "node": "*" } }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", @@ -99,6 +268,34 @@ "node": ">=0.10.0" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -161,6 +358,35 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/encoding-japanese": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/encoding-japanese/-/encoding-japanese-2.2.0.tgz", @@ -188,6 +414,66 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/execa": { "version": "9.6.0", "resolved": "https://registry.npmmirror.com/execa/-/execa-9.6.0.tgz", @@ -213,6 +499,52 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/fast-copy": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/fast-copy/-/fast-copy-3.0.2.tgz", @@ -245,6 +577,124 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "9.0.1", "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-9.0.1.tgz", @@ -260,6 +710,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", @@ -306,6 +807,22 @@ "entities": "^4.4.0" } }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/human-signals": { "version": "8.0.1", "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-8.0.1.tgz", @@ -358,6 +875,15 @@ "node": ">= 12" } }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -481,6 +1007,75 @@ "libqp": "2.1.1" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", @@ -489,11 +1084,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, "node_modules/nan": { "version": "2.23.0", "resolved": "https://registry.npmmirror.com/nan/-/nan-2.23.0.tgz", "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==" }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/node-imap": { "version": "0.9.6", "resolved": "https://registry.npmmirror.com/node-imap/-/node-imap-0.9.6.tgz", @@ -549,6 +1159,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-exit-leak-free": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", @@ -557,6 +1179,18 @@ "node": ">=14.0.0" } }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", @@ -588,6 +1222,15 @@ "url": "https://ko-fi.com/killymxi" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", @@ -596,6 +1239,12 @@ "node": ">=8" } }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, "node_modules/peberminta": { "version": "0.9.0", "resolved": "https://registry.npmmirror.com/peberminta/-/peberminta-0.9.0.tgz", @@ -690,6 +1339,25 @@ } ] }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/pump": { "version": "3.0.3", "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.3.tgz", @@ -707,11 +1375,62 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmmirror.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", @@ -789,6 +1508,66 @@ "semver": "bin/semver" } }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", @@ -808,6 +1587,78 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", @@ -862,6 +1713,15 @@ "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", @@ -908,6 +1768,28 @@ "tlds": "bin.js" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", @@ -924,6 +1806,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/utf7": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/utf7/-/utf7-1.0.2.tgz", @@ -937,6 +1828,15 @@ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/uuid": { "version": "11.1.0", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-11.1.0.tgz", @@ -949,6 +1849,15 @@ "uuid": "dist/esm/bin/uuid" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 44a974e..76daabd 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,10 @@ "daemon:stop": "node claude-remote.js daemon stop", "daemon:status": "node claude-remote.js daemon status", "relay:pty": "node start-relay-pty.js", - "relay:start": "INJECTION_MODE=pty node src/relay/relay-pty.js" + "relay:start": "INJECTION_MODE=pty node src/relay/relay-pty.js", + "telegram": "node start-telegram-webhook.js", + "line": "node start-line-webhook.js", + "webhooks": "node start-all-webhooks.js" }, "keywords": [ "claude-code", @@ -41,8 +44,10 @@ }, "homepage": "https://github.com/Claude-Code-Remote/Claude-Code-Remote#readme", "dependencies": { + "axios": "^1.6.0", "dotenv": "^17.2.1", "execa": "^9.6.0", + "express": "^4.18.2", "imapflow": "^1.0.191", "mailparser": "^3.7.4", "node-imap": "^0.9.6", diff --git a/send-test-reply.js b/send-test-reply.js deleted file mode 100644 index a31edd2..0000000 --- a/send-test-reply.js +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Send test email reply to relay service - */ - -const nodemailer = require('nodemailer'); -require('dotenv').config(); - -async function sendTestReply() { - console.log('📧 Sending test email reply...\n'); - - // Create test SMTP transporter (using environment variables) - const transporter = nodemailer.createTransport({ - host: process.env.SMTP_HOST || 'smtp.gmail.com', - port: parseInt(process.env.SMTP_PORT) || 587, - secure: process.env.SMTP_SECURE === 'true', - auth: { - user: process.env.SMTP_USER, - pass: process.env.SMTP_PASS - } - }); - - // Generate or use test token from environment - let testToken = process.env.TEST_TOKEN; - - if (!testToken) { - // Try to read latest token from session map - try { - const sessionMapPath = process.env.SESSION_MAP_PATH || './src/data/session-map.json'; - if (require('fs').existsSync(sessionMapPath)) { - const sessionMap = JSON.parse(require('fs').readFileSync(sessionMapPath, 'utf8')); - const tokens = Object.keys(sessionMap); - testToken = tokens[tokens.length - 1]; // Use latest token - } - } catch (error) { - console.log('Could not read session map, using generated token'); - } - - // Fallback: generate a test token - if (!testToken) { - testToken = Math.random().toString(36).substr(2, 8).toUpperCase(); - } - } - - const mailOptions = { - from: process.env.SMTP_USER, - to: process.env.SMTP_USER, // Self-send for testing - subject: `Re: [Claude-Code-Remote #${testToken}] Claude Code Task Completed - Claude-Code-Remote`, - text: 'Please explain the basic principles of quantum computing', - replyTo: process.env.EMAIL_TO || process.env.ALLOWED_SENDERS - }; - - try { - const info = await transporter.sendMail(mailOptions); - console.log('✅ Test email sent successfully!'); - console.log(`📧 Message ID: ${info.messageId}`); - console.log(`📋 Token: ${testToken}`); - console.log(`💬 Command: ${mailOptions.text}`); - console.log('\n🔍 Now monitoring relay service logs...'); - - // Wait a few seconds for email processing - setTimeout(() => { - console.log('\n📋 Please check relay-debug.log file for processing logs'); - }, 5000); - - } catch (error) { - console.error('❌ Email sending failed:', error.message); - } -} - -sendTestReply().catch(console.error); \ No newline at end of file diff --git a/setup-telegram.sh b/setup-telegram.sh new file mode 100755 index 0000000..a11a70d --- /dev/null +++ b/setup-telegram.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +# Claude Code Remote - Telegram Quick Setup Script +# This script helps you quickly set up Telegram notifications + +echo "🚀 Claude Code Remote - Telegram Setup" +echo "=====================================" + +# Check if .env exists +if [ ! -f ".env" ]; then + echo "📋 Creating .env from template..." + cp .env.example .env +else + echo "✅ .env file already exists" +fi + +# Get project directory +PROJECT_DIR=$(pwd) +echo "📁 Project directory: $PROJECT_DIR" + +# Check if claude-hooks.json exists +if [ ! -f "claude-hooks.json" ]; then + echo "📝 Creating claude-hooks.json..." + cat > claude-hooks.json << EOF +{ + "hooks": { + "Stop": [{ + "matcher": "*", + "hooks": [{ + "type": "command", + "command": "node $PROJECT_DIR/claude-hook-notify.js completed", + "timeout": 5 + }] + }], + "SubagentStop": [{ + "matcher": "*", + "hooks": [{ + "type": "command", + "command": "node $PROJECT_DIR/claude-hook-notify.js waiting", + "timeout": 5 + }] + }] + } +} +EOF + echo "✅ claude-hooks.json created" +else + echo "✅ claude-hooks.json already exists" +fi + +# Create data directory +mkdir -p src/data +echo "✅ Data directory ready" + +echo "" +echo "📋 Next Steps:" +echo "1. Edit .env and add your Telegram credentials:" +echo " - TELEGRAM_BOT_TOKEN (from @BotFather)" +echo " - TELEGRAM_CHAT_ID (your chat ID)" +echo " - TELEGRAM_WEBHOOK_URL (your ngrok URL)" +echo "" +echo "2. Start ngrok in a terminal:" +echo " ngrok http 3001" +echo "" +echo "3. Start Telegram webhook in another terminal:" +echo " node start-telegram-webhook.js" +echo "" +echo "4. Start Claude with hooks in a third terminal:" +echo " export CLAUDE_HOOKS_CONFIG=$PROJECT_DIR/claude-hooks.json" +echo " claude" +echo "" +echo "5. Test by running a task in Claude!" +echo "" +echo "For detailed instructions, see README.md" \ No newline at end of file diff --git a/smart-monitor.js b/smart-monitor.js new file mode 100644 index 0000000..31c5400 --- /dev/null +++ b/smart-monitor.js @@ -0,0 +1,293 @@ +#!/usr/bin/env node + +/** + * Smart Monitor - 智能監控器,能檢測歷史回應和新回應 + * 解決監控器錯過已完成回應的問題 + */ + +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); +const { execSync } = require('child_process'); + +// Load environment variables +const envPath = path.join(__dirname, '.env'); +if (fs.existsSync(envPath)) { + dotenv.config({ path: envPath }); +} + +const TelegramChannel = require('./src/channels/telegram/telegram'); + +class SmartMonitor { + constructor() { + this.sessionName = process.env.TMUX_SESSION || 'claude-real'; + this.lastOutput = ''; + this.processedResponses = new Set(); // 記錄已處理的回應 + this.checkInterval = 1000; // Check every 1 second + this.isRunning = false; + this.startupTime = Date.now(); + + // Setup Telegram + if (process.env.TELEGRAM_BOT_TOKEN && process.env.TELEGRAM_CHAT_ID) { + const telegramConfig = { + botToken: process.env.TELEGRAM_BOT_TOKEN, + chatId: process.env.TELEGRAM_CHAT_ID + }; + this.telegram = new TelegramChannel(telegramConfig); + console.log('📱 Smart Monitor configured successfully'); + } else { + console.log('❌ Telegram not configured'); + process.exit(1); + } + } + + start() { + this.isRunning = true; + console.log(`🧠 Starting smart monitor for session: ${this.sessionName}`); + + // Check for any unprocessed responses on startup + this.checkForUnprocessedResponses(); + + // Initial capture + this.lastOutput = this.captureOutput(); + + // Start monitoring + this.monitor(); + } + + async checkForUnprocessedResponses() { + console.log('🔍 Checking for unprocessed responses...'); + + const currentOutput = this.captureOutput(); + const responses = this.extractAllResponses(currentOutput); + + // Check if there are recent responses (within 5 minutes) that might be unprocessed + const recentResponses = responses.filter(response => { + const responseAge = Date.now() - this.startupTime; + return responseAge < 5 * 60 * 1000; // 5 minutes + }); + + if (recentResponses.length > 0) { + console.log(`🎯 Found ${recentResponses.length} potentially unprocessed responses`); + + // Send notification for the most recent response + const latestResponse = recentResponses[recentResponses.length - 1]; + await this.sendNotificationForResponse(latestResponse); + } else { + console.log('✅ No unprocessed responses found'); + } + } + + captureOutput() { + try { + return execSync(`tmux capture-pane -t ${this.sessionName} -p`, { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }); + } catch (error) { + console.error('Error capturing tmux:', error.message); + return ''; + } + } + + autoApproveDialog() { + try { + console.log('🤖 Auto-approving Claude tool usage dialog...'); + + // Send "1" to select the first option (usually "Yes") + execSync(`tmux send-keys -t ${this.sessionName} '1'`, { encoding: 'utf8' }); + setTimeout(() => { + execSync(`tmux send-keys -t ${this.sessionName} Enter`, { encoding: 'utf8' }); + }, 100); + + console.log('✅ Auto-approval sent successfully'); + } catch (error) { + console.error('❌ Failed to auto-approve dialog:', error.message); + } + } + + extractAllResponses(content) { + const lines = content.split('\n'); + const responses = []; + + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim(); + + // Look for standard Claude responses + if (line.startsWith('⏺ ') && line.length > 2) { + const responseText = line.substring(2).trim(); + + // Find the corresponding user question + let userQuestion = 'Recent command'; + for (let j = i - 1; j >= 0; j--) { + const prevLine = lines[j].trim(); + if (prevLine.startsWith('> ') && prevLine.length > 2) { + userQuestion = prevLine.substring(2).trim(); + break; + } + } + + responses.push({ + userQuestion, + claudeResponse: responseText, + lineIndex: i, + responseId: `${userQuestion}-${responseText}`.substring(0, 50), + type: 'standard' + }); + } + + // Look for interactive dialogs/tool confirmations + if (line.includes('Do you want to proceed?') || + line.includes('❯ 1. Yes') || + line.includes('Tool use') || + (line.includes('│') && (line.includes('serena') || line.includes('MCP') || line.includes('initial_instructions')))) { + + // Check if this is part of a tool use dialog + let dialogContent = ''; + let userQuestion = 'Recent command'; + + // Look backward to find the start of the dialog and user question + for (let j = i; j >= Math.max(0, i - 50); j--) { + const prevLine = lines[j]; + if (prevLine.includes('╭') || prevLine.includes('Tool use')) { + // Found start of dialog box, now collect all content + for (let k = j; k <= Math.min(lines.length - 1, i + 20); k++) { + if (lines[k].includes('╰')) { + dialogContent += lines[k] + '\n'; + break; // End of dialog box + } + dialogContent += lines[k] + '\n'; + } + break; + } + // Look for user question + if (prevLine.startsWith('> ') && prevLine.length > 2) { + userQuestion = prevLine.substring(2).trim(); + } + } + + if (dialogContent.length > 50) { // Only if we found substantial dialog + // Auto-approve the dialog instead of asking user to go to iTerm2 + this.autoApproveDialog(); + + responses.push({ + userQuestion, + claudeResponse: 'Claude requested tool permission - automatically approved. Processing...', + lineIndex: i, + responseId: `dialog-${userQuestion}-${Date.now()}`.substring(0, 50), + type: 'interactive', + fullDialog: dialogContent.substring(0, 500) + }); + break; // Only send one dialog notification per check + } + } + } + + return responses; + } + + async monitor() { + while (this.isRunning) { + await this.sleep(this.checkInterval); + + const currentOutput = this.captureOutput(); + + if (currentOutput !== this.lastOutput) { + console.log('📝 Output changed, checking for new responses...'); + + const oldResponses = this.extractAllResponses(this.lastOutput); + const newResponses = this.extractAllResponses(currentOutput); + + // Find truly new responses + const newResponseIds = new Set(newResponses.map(r => r.responseId)); + const oldResponseIds = new Set(oldResponses.map(r => r.responseId)); + + const actuallyNewResponses = newResponses.filter(response => + !oldResponseIds.has(response.responseId) && + !this.processedResponses.has(response.responseId) + ); + + if (actuallyNewResponses.length > 0) { + console.log(`🎯 Found ${actuallyNewResponses.length} new responses`); + + for (const response of actuallyNewResponses) { + await this.sendNotificationForResponse(response); + this.processedResponses.add(response.responseId); + } + } else { + console.log('ℹ️ No new responses detected'); + } + + this.lastOutput = currentOutput; + } + } + } + + async sendNotificationForResponse(response) { + try { + console.log('📤 Sending notification for response:', response.claudeResponse.substring(0, 50) + '...'); + + const notification = { + type: 'completed', + title: 'Claude Response Ready', + message: 'Claude has responded to your command', + project: 'claude-code-line', + metadata: { + userQuestion: response.userQuestion, + claudeResponse: response.claudeResponse, + tmuxSession: this.sessionName, + workingDirectory: process.cwd(), + timestamp: new Date().toISOString(), + autoDetected: true + } + }; + + const result = await this.telegram.send(notification); + + if (result) { + console.log('✅ Notification sent successfully'); + } else { + console.log('❌ Failed to send notification'); + } + + } catch (error) { + console.error('❌ Notification error:', error.message); + } + } + + sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + stop() { + this.isRunning = false; + console.log('⏹️ Smart Monitor stopped'); + } + + getStatus() { + return { + isRunning: this.isRunning, + sessionName: this.sessionName, + processedCount: this.processedResponses.size, + uptime: Math.floor((Date.now() - this.startupTime) / 1000) + 's' + }; + } +} + +// Handle graceful shutdown +const monitor = new SmartMonitor(); + +process.on('SIGINT', () => { + console.log('\n🛑 Shutting down...'); + monitor.stop(); + process.exit(0); +}); + +process.on('SIGTERM', () => { + console.log('\n🛑 Shutting down...'); + monitor.stop(); + process.exit(0); +}); + +// Start monitoring +monitor.start(); \ No newline at end of file diff --git a/src/channels/line/line.js b/src/channels/line/line.js new file mode 100644 index 0000000..4b3d0b0 --- /dev/null +++ b/src/channels/line/line.js @@ -0,0 +1,198 @@ +/** + * LINE Notification Channel + * Sends notifications via LINE Messaging API with command support + */ + +const NotificationChannel = require('../base/channel'); +const axios = require('axios'); +const { v4: uuidv4 } = require('uuid'); +const path = require('path'); +const fs = require('fs'); +const TmuxMonitor = require('../../utils/tmux-monitor'); +const { execSync } = require('child_process'); + +class LINEChannel extends NotificationChannel { + constructor(config = {}) { + super('line', config); + this.sessionsDir = path.join(__dirname, '../../data/sessions'); + this.tmuxMonitor = new TmuxMonitor(); + this.lineApiUrl = 'https://api.line.me/v2/bot/message'; + + this._ensureDirectories(); + this._validateConfig(); + } + + _ensureDirectories() { + if (!fs.existsSync(this.sessionsDir)) { + fs.mkdirSync(this.sessionsDir, { recursive: true }); + } + } + + _validateConfig() { + if (!this.config.channelAccessToken) { + this.logger.warn('LINE Channel Access Token not found'); + return false; + } + if (!this.config.userId && !this.config.groupId) { + this.logger.warn('LINE User ID or Group ID must be configured'); + return false; + } + return true; + } + + _generateToken() { + // Generate short Token (uppercase letters + numbers, 8 digits) + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + let token = ''; + for (let i = 0; i < 8; i++) { + token += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return token; + } + + _getCurrentTmuxSession() { + try { + // Try to get current tmux session + const tmuxSession = execSync('tmux display-message -p "#S"', { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }).trim(); + + return tmuxSession || null; + } catch (error) { + // Not in a tmux session or tmux not available + return null; + } + } + + async _sendImpl(notification) { + if (!this._validateConfig()) { + throw new Error('LINE channel not properly configured'); + } + + // Generate session ID and Token + const sessionId = uuidv4(); + const token = this._generateToken(); + + // Get current tmux session and conversation content + const tmuxSession = this._getCurrentTmuxSession(); + if (tmuxSession && !notification.metadata) { + const conversation = this.tmuxMonitor.getRecentConversation(tmuxSession); + notification.metadata = { + userQuestion: conversation.userQuestion || notification.message, + claudeResponse: conversation.claudeResponse || notification.message, + tmuxSession: tmuxSession + }; + } + + // Create session record + await this._createSession(sessionId, notification, token); + + // Generate LINE message + const messages = this._generateLINEMessage(notification, sessionId, token); + + // Determine recipient (user or group) + const to = this.config.groupId || this.config.userId; + + const requestData = { + to: to, + messages: messages + }; + + try { + const response = await axios.post( + `${this.lineApiUrl}/push`, + requestData, + { + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${this.config.channelAccessToken}` + } + } + ); + + this.logger.info(`LINE message sent successfully, Session: ${sessionId}`); + return true; + } catch (error) { + this.logger.error('Failed to send LINE message:', error.response?.data || error.message); + // Clean up failed session + await this._removeSession(sessionId); + return false; + } + } + + _generateLINEMessage(notification, sessionId, token) { + const type = notification.type; + const emoji = type === 'completed' ? '✅' : '⏳'; + const status = type === 'completed' ? '已完成' : '等待輸入'; + + let messageText = `${emoji} Claude 任務 ${status}\n`; + messageText += `專案: ${notification.project}\n`; + messageText += `會話 Token: ${token}\n\n`; + + if (notification.metadata) { + if (notification.metadata.userQuestion) { + messageText += `📝 您的問題:\n${notification.metadata.userQuestion.substring(0, 200)}`; + if (notification.metadata.userQuestion.length > 200) { + messageText += '...'; + } + messageText += '\n\n'; + } + + if (notification.metadata.claudeResponse) { + messageText += `🤖 Claude 回應:\n${notification.metadata.claudeResponse.substring(0, 300)}`; + if (notification.metadata.claudeResponse.length > 300) { + messageText += '...'; + } + messageText += '\n\n'; + } + } + + messageText += `💬 回覆此訊息並輸入:\n`; + messageText += `Token ${token} <您的指令>\n`; + messageText += `來發送新指令給 Claude`; + + return [{ + type: 'text', + text: messageText + }]; + } + + async _createSession(sessionId, notification, token) { + const session = { + id: sessionId, + token: token, + type: 'line', + created: new Date().toISOString(), + expires: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(), // Expires after 24 hours + createdAt: Math.floor(Date.now() / 1000), + expiresAt: Math.floor((Date.now() + 24 * 60 * 60 * 1000) / 1000), + tmuxSession: notification.metadata?.tmuxSession || 'default', + project: notification.project, + notification: notification + }; + + const sessionFile = path.join(this.sessionsDir, `${sessionId}.json`); + fs.writeFileSync(sessionFile, JSON.stringify(session, null, 2)); + + this.logger.debug(`Session created: ${sessionId}`); + } + + async _removeSession(sessionId) { + const sessionFile = path.join(this.sessionsDir, `${sessionId}.json`); + if (fs.existsSync(sessionFile)) { + fs.unlinkSync(sessionFile); + this.logger.debug(`Session removed: ${sessionId}`); + } + } + + supportsRelay() { + return true; + } + + validateConfig() { + return this._validateConfig(); + } +} + +module.exports = LINEChannel; \ No newline at end of file diff --git a/src/channels/line/webhook.js b/src/channels/line/webhook.js new file mode 100644 index 0000000..bb8cb53 --- /dev/null +++ b/src/channels/line/webhook.js @@ -0,0 +1,225 @@ +/** + * LINE Webhook Handler + * Handles incoming LINE messages and commands + */ + +const express = require('express'); +const crypto = require('crypto'); +const axios = require('axios'); +const path = require('path'); +const fs = require('fs'); +const Logger = require('../../core/logger'); +const ControllerInjector = require('../../utils/controller-injector'); + +class LINEWebhookHandler { + constructor(config = {}) { + this.config = config; + this.logger = new Logger('LINEWebhook'); + this.sessionsDir = path.join(__dirname, '../../data/sessions'); + this.injector = new ControllerInjector(); + this.app = express(); + + this._setupMiddleware(); + this._setupRoutes(); + } + + _setupMiddleware() { + // Parse raw body for signature verification + this.app.use('/webhook', express.raw({ type: 'application/json' })); + + // Parse JSON for other routes + this.app.use(express.json()); + } + + _setupRoutes() { + // LINE webhook endpoint + this.app.post('/webhook', this._handleWebhook.bind(this)); + + // Health check endpoint + this.app.get('/health', (req, res) => { + res.json({ status: 'ok', service: 'line-webhook' }); + }); + } + + _validateSignature(body, signature) { + if (!this.config.channelSecret) { + this.logger.error('Channel Secret not configured'); + return false; + } + + const hash = crypto + .createHmac('SHA256', this.config.channelSecret) + .update(body) + .digest('base64'); + + return hash === signature; + } + + async _handleWebhook(req, res) { + const signature = req.headers['x-line-signature']; + + // Validate signature + if (!this._validateSignature(req.body, signature)) { + this.logger.warn('Invalid signature'); + return res.status(401).send('Unauthorized'); + } + + try { + const events = JSON.parse(req.body.toString()).events; + + for (const event of events) { + if (event.type === 'message' && event.message.type === 'text') { + await this._handleTextMessage(event); + } + } + + res.status(200).send('OK'); + } catch (error) { + this.logger.error('Webhook handling error:', error.message); + res.status(500).send('Internal Server Error'); + } + } + + async _handleTextMessage(event) { + const userId = event.source.userId; + const groupId = event.source.groupId; + const messageText = event.message.text.trim(); + const replyToken = event.replyToken; + + // Check if user is authorized + if (!this._isAuthorized(userId, groupId)) { + this.logger.warn(`Unauthorized user/group: ${userId || groupId}`); + await this._replyMessage(replyToken, '⚠️ 您沒有權限使用此功能'); + return; + } + + // Parse command + const commandMatch = messageText.match(/^Token\s+([A-Z0-9]{8})\s+(.+)$/i); + if (!commandMatch) { + await this._replyMessage(replyToken, + '❌ 格式錯誤。請使用:\nToken <8位Token> <您的指令>\n\n例如:\nToken ABC12345 請幫我分析這段程式碼'); + return; + } + + const token = commandMatch[1].toUpperCase(); + const command = commandMatch[2]; + + // Find session by token + const session = await this._findSessionByToken(token); + if (!session) { + await this._replyMessage(replyToken, + '❌ Token 無效或已過期。請等待新的任務通知。'); + return; + } + + // Check if session is expired + if (session.expiresAt < Math.floor(Date.now() / 1000)) { + await this._replyMessage(replyToken, + '❌ Token 已過期。請等待新的任務通知。'); + await this._removeSession(session.id); + return; + } + + try { + // Inject command into tmux session + const tmuxSession = session.tmuxSession || 'default'; + await this.injector.injectCommand(command, tmuxSession); + + // Send confirmation + await this._replyMessage(replyToken, + `✅ 指令已發送\n\n📝 指令: ${command}\n🖥️ 會話: ${tmuxSession}\n\n請稍候,Claude 正在處理您的請求...`); + + // Log command execution + this.logger.info(`Command injected - User: ${userId}, Token: ${token}, Command: ${command}`); + + } catch (error) { + this.logger.error('Command injection failed:', error.message); + await this._replyMessage(replyToken, + `❌ 指令執行失敗: ${error.message}`); + } + } + + _isAuthorized(userId, groupId) { + // Check whitelist + const whitelist = this.config.whitelist || []; + + if (groupId && whitelist.includes(groupId)) { + return true; + } + + if (userId && whitelist.includes(userId)) { + return true; + } + + // If no whitelist configured, allow configured user/group + if (whitelist.length === 0) { + if (groupId && groupId === this.config.groupId) { + return true; + } + if (userId && userId === this.config.userId) { + return true; + } + } + + return false; + } + + async _findSessionByToken(token) { + const files = fs.readdirSync(this.sessionsDir); + + for (const file of files) { + if (!file.endsWith('.json')) continue; + + const sessionPath = path.join(this.sessionsDir, file); + try { + const session = JSON.parse(fs.readFileSync(sessionPath, 'utf8')); + if (session.token === token) { + return session; + } + } catch (error) { + this.logger.error(`Failed to read session file ${file}:`, error.message); + } + } + + return null; + } + + async _removeSession(sessionId) { + const sessionFile = path.join(this.sessionsDir, `${sessionId}.json`); + if (fs.existsSync(sessionFile)) { + fs.unlinkSync(sessionFile); + this.logger.debug(`Session removed: ${sessionId}`); + } + } + + async _replyMessage(replyToken, text) { + try { + await axios.post( + 'https://api.line.me/v2/bot/message/reply', + { + replyToken: replyToken, + messages: [{ + type: 'text', + text: text + }] + }, + { + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${this.config.channelAccessToken}` + } + } + ); + } catch (error) { + this.logger.error('Failed to reply message:', error.response?.data || error.message); + } + } + + start(port = 3000) { + this.app.listen(port, () => { + this.logger.info(`LINE webhook server started on port ${port}`); + }); + } +} + +module.exports = LINEWebhookHandler; \ No newline at end of file diff --git a/src/channels/telegram/telegram.js b/src/channels/telegram/telegram.js new file mode 100644 index 0000000..14ad758 --- /dev/null +++ b/src/channels/telegram/telegram.js @@ -0,0 +1,232 @@ +/** + * Telegram Notification Channel + * Sends notifications via Telegram Bot API with command support + */ + +const NotificationChannel = require('../base/channel'); +const axios = require('axios'); +const { v4: uuidv4 } = require('uuid'); +const path = require('path'); +const fs = require('fs'); +const TmuxMonitor = require('../../utils/tmux-monitor'); +const { execSync } = require('child_process'); + +class TelegramChannel extends NotificationChannel { + constructor(config = {}) { + super('telegram', config); + this.sessionsDir = path.join(__dirname, '../../data/sessions'); + this.tmuxMonitor = new TmuxMonitor(); + this.apiBaseUrl = 'https://api.telegram.org'; + this.botUsername = null; // Cache for bot username + + this._ensureDirectories(); + this._validateConfig(); + } + + _ensureDirectories() { + if (!fs.existsSync(this.sessionsDir)) { + fs.mkdirSync(this.sessionsDir, { recursive: true }); + } + } + + _validateConfig() { + if (!this.config.botToken) { + this.logger.warn('Telegram Bot Token not found'); + return false; + } + if (!this.config.chatId && !this.config.groupId) { + this.logger.warn('Telegram Chat ID or Group ID must be configured'); + return false; + } + return true; + } + + _generateToken() { + // Generate short Token (uppercase letters + numbers, 8 digits) + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + let token = ''; + for (let i = 0; i < 8; i++) { + token += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return token; + } + + _getCurrentTmuxSession() { + try { + // Try to get current tmux session + const tmuxSession = execSync('tmux display-message -p "#S"', { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }).trim(); + + return tmuxSession || null; + } catch (error) { + // Not in a tmux session or tmux not available + return null; + } + } + + async _getBotUsername() { + if (this.botUsername) { + return this.botUsername; + } + + try { + const response = await axios.get( + `${this.apiBaseUrl}/bot${this.config.botToken}/getMe` + ); + + if (response.data.ok && response.data.result.username) { + this.botUsername = response.data.result.username; + return this.botUsername; + } + } catch (error) { + this.logger.error('Failed to get bot username:', error.message); + } + + // Fallback to configured username or default + return this.config.botUsername || 'claude_remote_bot'; + } + + async _sendImpl(notification) { + if (!this._validateConfig()) { + throw new Error('Telegram channel not properly configured'); + } + + // Generate session ID and Token + const sessionId = uuidv4(); + const token = this._generateToken(); + + // Get current tmux session and conversation content + const tmuxSession = this._getCurrentTmuxSession(); + if (tmuxSession && !notification.metadata) { + const conversation = this.tmuxMonitor.getRecentConversation(tmuxSession); + notification.metadata = { + userQuestion: conversation.userQuestion || notification.message, + claudeResponse: conversation.claudeResponse || notification.message, + tmuxSession: tmuxSession + }; + } + + // Create session record + await this._createSession(sessionId, notification, token); + + // Generate Telegram message + const messageText = this._generateTelegramMessage(notification, sessionId, token); + + // Determine recipient (chat or group) + const chatId = this.config.groupId || this.config.chatId; + const isGroupChat = !!this.config.groupId; + + // Create buttons using callback_data instead of inline query + // This avoids the automatic @bot_name addition + const buttons = [ + [ + { + text: '📝 Personal Chat', + callback_data: `personal:${token}` + }, + { + text: '👥 Group Chat', + callback_data: `group:${token}` + } + ] + ]; + + const requestData = { + chat_id: chatId, + text: messageText, + parse_mode: 'Markdown', + reply_markup: { + inline_keyboard: buttons + } + }; + + try { + const response = await axios.post( + `${this.apiBaseUrl}/bot${this.config.botToken}/sendMessage`, + requestData + ); + + this.logger.info(`Telegram message sent successfully, Session: ${sessionId}`); + return true; + } catch (error) { + this.logger.error('Failed to send Telegram message:', error.response?.data || error.message); + // Clean up failed session + await this._removeSession(sessionId); + return false; + } + } + + _generateTelegramMessage(notification, sessionId, token) { + const type = notification.type; + const emoji = type === 'completed' ? '✅' : '⏳'; + const status = type === 'completed' ? 'Completed' : 'Waiting for Input'; + + let messageText = `${emoji} *Claude Task ${status}*\n`; + messageText += `*Project:* ${notification.project}\n`; + messageText += `*Session Token:* \`${token}\`\n\n`; + + if (notification.metadata) { + if (notification.metadata.userQuestion) { + messageText += `📝 *Your Question:*\n${notification.metadata.userQuestion.substring(0, 200)}`; + if (notification.metadata.userQuestion.length > 200) { + messageText += '...'; + } + messageText += '\n\n'; + } + + if (notification.metadata.claudeResponse) { + messageText += `🤖 *Claude Response:*\n${notification.metadata.claudeResponse.substring(0, 300)}`; + if (notification.metadata.claudeResponse.length > 300) { + messageText += '...'; + } + messageText += '\n\n'; + } + } + + messageText += `💬 *To send a new command:*\n`; + messageText += `Reply with: \`/cmd ${token} \`\n`; + messageText += `Example: \`/cmd ${token} Please analyze this code\``; + + return messageText; + } + + async _createSession(sessionId, notification, token) { + const session = { + id: sessionId, + token: token, + type: 'telegram', + created: new Date().toISOString(), + expires: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(), // Expires after 24 hours + createdAt: Math.floor(Date.now() / 1000), + expiresAt: Math.floor((Date.now() + 24 * 60 * 60 * 1000) / 1000), + tmuxSession: notification.metadata?.tmuxSession || 'default', + project: notification.project, + notification: notification + }; + + const sessionFile = path.join(this.sessionsDir, `${sessionId}.json`); + fs.writeFileSync(sessionFile, JSON.stringify(session, null, 2)); + + this.logger.debug(`Session created: ${sessionId}`); + } + + async _removeSession(sessionId) { + const sessionFile = path.join(this.sessionsDir, `${sessionId}.json`); + if (fs.existsSync(sessionFile)) { + fs.unlinkSync(sessionFile); + this.logger.debug(`Session removed: ${sessionId}`); + } + } + + supportsRelay() { + return true; + } + + validateConfig() { + return this._validateConfig(); + } +} + +module.exports = TelegramChannel; \ No newline at end of file diff --git a/src/channels/telegram/webhook.js b/src/channels/telegram/webhook.js new file mode 100644 index 0000000..ddf855c --- /dev/null +++ b/src/channels/telegram/webhook.js @@ -0,0 +1,326 @@ +/** + * Telegram Webhook Handler + * Handles incoming Telegram messages and commands + */ + +const express = require('express'); +const crypto = require('crypto'); +const axios = require('axios'); +const path = require('path'); +const fs = require('fs'); +const Logger = require('../../core/logger'); +const ControllerInjector = require('../../utils/controller-injector'); + +class TelegramWebhookHandler { + constructor(config = {}) { + this.config = config; + this.logger = new Logger('TelegramWebhook'); + this.sessionsDir = path.join(__dirname, '../../data/sessions'); + this.injector = new ControllerInjector(); + this.app = express(); + this.apiBaseUrl = 'https://api.telegram.org'; + this.botUsername = null; // Cache for bot username + + this._setupMiddleware(); + this._setupRoutes(); + } + + _setupMiddleware() { + // Parse JSON for all requests + this.app.use(express.json()); + } + + _setupRoutes() { + // Telegram webhook endpoint + this.app.post('/webhook/telegram', this._handleWebhook.bind(this)); + + // Health check endpoint + this.app.get('/health', (req, res) => { + res.json({ status: 'ok', service: 'telegram-webhook' }); + }); + } + + async _handleWebhook(req, res) { + try { + const update = req.body; + + // Handle different update types + if (update.message) { + await this._handleMessage(update.message); + } else if (update.callback_query) { + await this._handleCallbackQuery(update.callback_query); + } + + res.status(200).send('OK'); + } catch (error) { + this.logger.error('Webhook handling error:', error.message); + res.status(500).send('Internal Server Error'); + } + } + + async _handleMessage(message) { + const chatId = message.chat.id; + const userId = message.from.id; + const messageText = message.text?.trim(); + + if (!messageText) return; + + // Check if user is authorized + if (!this._isAuthorized(userId, chatId)) { + this.logger.warn(`Unauthorized user/chat: ${userId}/${chatId}`); + await this._sendMessage(chatId, '⚠️ You are not authorized to use this bot.'); + return; + } + + // Handle /start command + if (messageText === '/start') { + await this._sendWelcomeMessage(chatId); + return; + } + + // Handle /help command + if (messageText === '/help') { + await this._sendHelpMessage(chatId); + return; + } + + // Parse command + const commandMatch = messageText.match(/^\/cmd\s+([A-Z0-9]{8})\s+(.+)$/i); + if (!commandMatch) { + // Check if it's a direct command without /cmd prefix + const directMatch = messageText.match(/^([A-Z0-9]{8})\s+(.+)$/); + if (directMatch) { + await this._processCommand(chatId, directMatch[1], directMatch[2]); + } else { + await this._sendMessage(chatId, + '❌ Invalid format. Use:\n`/cmd `\n\nExample:\n`/cmd ABC12345 analyze this code`', + { parse_mode: 'Markdown' }); + } + return; + } + + const token = commandMatch[1].toUpperCase(); + const command = commandMatch[2]; + + await this._processCommand(chatId, token, command); + } + + async _processCommand(chatId, token, command) { + // Find session by token + const session = await this._findSessionByToken(token); + if (!session) { + await this._sendMessage(chatId, + '❌ Invalid or expired token. Please wait for a new task notification.', + { parse_mode: 'Markdown' }); + return; + } + + // Check if session is expired + if (session.expiresAt < Math.floor(Date.now() / 1000)) { + await this._sendMessage(chatId, + '❌ Token has expired. Please wait for a new task notification.', + { parse_mode: 'Markdown' }); + await this._removeSession(session.id); + return; + } + + try { + // Inject command into tmux session + const tmuxSession = session.tmuxSession || 'default'; + await this.injector.injectCommand(command, tmuxSession); + + // Send confirmation + await this._sendMessage(chatId, + `✅ *Command sent successfully*\n\n📝 *Command:* ${command}\n🖥️ *Session:* ${tmuxSession}\n\nClaude is now processing your request...`, + { parse_mode: 'Markdown' }); + + // Log command execution + this.logger.info(`Command injected - User: ${chatId}, Token: ${token}, Command: ${command}`); + + } catch (error) { + this.logger.error('Command injection failed:', error.message); + await this._sendMessage(chatId, + `❌ *Command execution failed:* ${error.message}`, + { parse_mode: 'Markdown' }); + } + } + + async _handleCallbackQuery(callbackQuery) { + const chatId = callbackQuery.message.chat.id; + const data = callbackQuery.data; + + // Answer callback query to remove loading state + await this._answerCallbackQuery(callbackQuery.id); + + if (data.startsWith('personal:')) { + const token = data.split(':')[1]; + // Send personal chat command format + await this._sendMessage(chatId, + `📝 *Personal Chat Command Format:*\n\n\`/cmd ${token} \`\n\n*Example:*\n\`/cmd ${token} please analyze this code\`\n\n💡 *Copy and paste the format above, then add your command!*`, + { parse_mode: 'Markdown' }); + } else if (data.startsWith('group:')) { + const token = data.split(':')[1]; + // Send group chat command format with @bot_name + const botUsername = await this._getBotUsername(); + await this._sendMessage(chatId, + `👥 *Group Chat Command Format:*\n\n\`@${botUsername} /cmd ${token} \`\n\n*Example:*\n\`@${botUsername} /cmd ${token} please analyze this code\`\n\n💡 *Copy and paste the format above, then add your command!*`, + { parse_mode: 'Markdown' }); + } else if (data.startsWith('session:')) { + const token = data.split(':')[1]; + // For backward compatibility - send help message for old callback buttons + await this._sendMessage(chatId, + `📝 *How to send a command:*\n\nType:\n\`/cmd ${token} \`\n\nExample:\n\`/cmd ${token} please analyze this code\`\n\n💡 *Tip:* New notifications have a button that auto-fills the command for you!`, + { parse_mode: 'Markdown' }); + } + } + + async _sendWelcomeMessage(chatId) { + const message = `🤖 *Welcome to Claude Code Remote Bot!*\n\n` + + `I'll notify you when Claude completes tasks or needs input.\n\n` + + `When you receive a notification with a token, you can send commands back using:\n` + + `\`/cmd \`\n\n` + + `Type /help for more information.`; + + await this._sendMessage(chatId, message, { parse_mode: 'Markdown' }); + } + + async _sendHelpMessage(chatId) { + const message = `📚 *Claude Code Remote Bot Help*\n\n` + + `*Commands:*\n` + + `• \`/start\` - Welcome message\n` + + `• \`/help\` - Show this help\n` + + `• \`/cmd \` - Send command to Claude\n\n` + + `*Example:*\n` + + `\`/cmd ABC12345 analyze the performance of this function\`\n\n` + + `*Tips:*\n` + + `• Tokens are case-insensitive\n` + + `• Tokens expire after 24 hours\n` + + `• You can also just type \`TOKEN command\` without /cmd`; + + await this._sendMessage(chatId, message, { parse_mode: 'Markdown' }); + } + + _isAuthorized(userId, chatId) { + // Check whitelist + const whitelist = this.config.whitelist || []; + + if (whitelist.includes(String(chatId)) || whitelist.includes(String(userId))) { + return true; + } + + // If no whitelist configured, allow configured chat/user + if (whitelist.length === 0) { + const configuredChatId = this.config.chatId || this.config.groupId; + if (configuredChatId && String(chatId) === String(configuredChatId)) { + return true; + } + } + + return false; + } + + async _getBotUsername() { + if (this.botUsername) { + return this.botUsername; + } + + try { + const response = await axios.get( + `${this.apiBaseUrl}/bot${this.config.botToken}/getMe` + ); + + if (response.data.ok && response.data.result.username) { + this.botUsername = response.data.result.username; + return this.botUsername; + } + } catch (error) { + this.logger.error('Failed to get bot username:', error.message); + } + + // Fallback to configured username or default + return this.config.botUsername || 'claude_remote_bot'; + } + + async _findSessionByToken(token) { + const files = fs.readdirSync(this.sessionsDir); + + for (const file of files) { + if (!file.endsWith('.json')) continue; + + const sessionPath = path.join(this.sessionsDir, file); + try { + const session = JSON.parse(fs.readFileSync(sessionPath, 'utf8')); + if (session.token === token) { + return session; + } + } catch (error) { + this.logger.error(`Failed to read session file ${file}:`, error.message); + } + } + + return null; + } + + async _removeSession(sessionId) { + const sessionFile = path.join(this.sessionsDir, `${sessionId}.json`); + if (fs.existsSync(sessionFile)) { + fs.unlinkSync(sessionFile); + this.logger.debug(`Session removed: ${sessionId}`); + } + } + + async _sendMessage(chatId, text, options = {}) { + try { + await axios.post( + `${this.apiBaseUrl}/bot${this.config.botToken}/sendMessage`, + { + chat_id: chatId, + text: text, + ...options + } + ); + } catch (error) { + this.logger.error('Failed to send message:', error.response?.data || error.message); + } + } + + async _answerCallbackQuery(callbackQueryId, text = '') { + try { + await axios.post( + `${this.apiBaseUrl}/bot${this.config.botToken}/answerCallbackQuery`, + { + callback_query_id: callbackQueryId, + text: text + } + ); + } catch (error) { + this.logger.error('Failed to answer callback query:', error.response?.data || error.message); + } + } + + async setWebhook(webhookUrl) { + try { + const response = await axios.post( + `${this.apiBaseUrl}/bot${this.config.botToken}/setWebhook`, + { + url: webhookUrl, + allowed_updates: ['message', 'callback_query'] + } + ); + + this.logger.info('Webhook set successfully:', response.data); + return response.data; + } catch (error) { + this.logger.error('Failed to set webhook:', error.response?.data || error.message); + throw error; + } + } + + start(port = 3000) { + this.app.listen(port, () => { + this.logger.info(`Telegram webhook server started on port ${port}`); + }); + } +} + +module.exports = TelegramWebhookHandler; \ No newline at end of file diff --git a/src/core/notifier.js b/src/core/notifier.js index 07961ee..814eec7 100644 --- a/src/core/notifier.js +++ b/src/core/notifier.js @@ -50,8 +50,24 @@ class Notifier { this.registerChannel('email', email); } - // TODO: Load other channels based on configuration - // Discord, Telegram, etc. + // Load LINE channel + const LINEChannel = require('../channels/line/line'); + const lineConfig = this.config.getChannel('line'); + if (lineConfig && lineConfig.enabled) { + const line = new LINEChannel(lineConfig.config || {}); + this.registerChannel('line', line); + } + + // Load Telegram channel + const TelegramChannel = require('../channels/telegram/telegram'); + const telegramConfig = this.config.getChannel('telegram'); + if (telegramConfig && telegramConfig.enabled) { + const telegram = new TelegramChannel(telegramConfig.config || {}); + this.registerChannel('telegram', telegram); + } + + // ✅ Telegram integration completed + // TODO: Future channels - Discord, Slack, Teams, etc. this.logger.info(`Initialized ${this.channels.size} channels`); } diff --git a/src/data/processed-messages.json b/src/data/processed-messages.json new file mode 100644 index 0000000..36877ed --- /dev/null +++ b/src/data/processed-messages.json @@ -0,0 +1,46 @@ +[ + { + "id": 1312, + "timestamp": 1754077174623 + }, + { + "id": 1315, + "timestamp": 1754077174623 + }, + { + "id": 1310, + "timestamp": 1754077174623 + }, + { + "id": 1323, + "timestamp": 1754077174623 + }, + { + "id": 1331, + "timestamp": 1754077174623 + }, + { + "id": 1334, + "timestamp": 1754077174623 + }, + { + "id": 1342, + "timestamp": 1754077174623 + }, + { + "id": 1346, + "timestamp": 1754077174623 + }, + { + "id": 1348, + "timestamp": 1754077174623 + }, + { + "id": 180, + "timestamp": 1754077174623 + }, + { + "id": 1691, + "timestamp": 1754077174623 + } +] \ No newline at end of file diff --git a/src/data/session-map.json b/src/data/session-map.json new file mode 100644 index 0000000..2ca03b0 --- /dev/null +++ b/src/data/session-map.json @@ -0,0 +1,542 @@ +{ + "7HUMGXOT": { + "type": "pty", + "createdAt": 1753601264, + "expiresAt": 1753687664, + "cwd": "/Users/jessytsui/dev/TaskPing", + "sessionId": "3248adc2-eb7b-4eb2-a57c-b9ce320cb4ec", + "tmuxSession": "hailuo", + "description": "completed - TaskPing" + }, + "5CLDW6NQ": { + "type": "pty", + "createdAt": 1753602124, + "expiresAt": 1753688524, + "cwd": "/Users/jessytsui/dev/TaskPing", + "sessionId": "c7b6750f-6246-4ed3-bca5-81201ab980ee", + "tmuxSession": "hailuo", + "description": "completed - TaskPing" + }, + "ONY66DAE": { + "type": "pty", + "createdAt": 1753604311, + "expiresAt": 1753690711, + "cwd": "/Users/jessytsui/dev/TaskPing", + "sessionId": "2a8622dd-a0e9-4f4d-9cc8-a3bb432e9621", + "tmuxSession": "hailuo", + "description": "waiting - TaskPing" + }, + "QHFI9FIJ": { + "type": "pty", + "createdAt": 1753607753, + "expiresAt": 1753694153, + "cwd": "/Users/jessytsui/dev/TaskPing", + "sessionId": "a966681d-5cfd-47b9-bb1b-c7ee9655b97b", + "tmuxSession": "a-0", + "description": "waiting - TaskPing" + }, + "G3QE3STQ": { + "type": "pty", + "createdAt": 1753622403, + "expiresAt": 1753708803, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e", + "tmuxSession": "claude-taskping", + "description": "completed - TaskPing-Test" + }, + "Z0Q98XCC": { + "type": "pty", + "createdAt": 1753624374, + "expiresAt": 1753710774, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "b2408839-8a64-4a07-8ceb-4a7a82ea5b25", + "tmuxSession": "claude-taskping", + "description": "completed - TaskPing-Test" + }, + "65S5UGHZ": { + "type": "pty", + "createdAt": 1753624496, + "expiresAt": 1753710896, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "117a1097-dd97-41ab-a276-e4820adc8da8", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "N9PPKGTO": { + "type": "pty", + "createdAt": 1753624605, + "expiresAt": 1753711005, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "0caed3af-35ae-4b42-9081-b1a959735bde", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "TEST12345": { + "type": "pty", + "createdAt": 1753628000, + "expiresAt": 1753714400, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "test-session-id", + "tmuxSession": "test-claude", + "description": "testing - Test Session" + }, + "YTGT6F6F": { + "type": "pty", + "createdAt": 1753625040, + "expiresAt": 1753711440, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "e6e973b6-20dd-497f-a988-02482af63336", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "2XQP1N0P": { + "type": "pty", + "createdAt": 1753625361, + "expiresAt": 1753711761, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "0f694f4c-f8a4-476a-946a-3dc057c3bc46", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "GKPSGCBS": { + "type": "pty", + "createdAt": 1753625618, + "expiresAt": 1753712018, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "e844d2ae-9098-4528-9e05-e77904a35be3", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "187JDGZ0": { + "type": "pty", + "createdAt": 1753625623, + "expiresAt": 1753712023, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "633a2687-81e7-456e-9995-3321ce3f3b2b", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "NSYKTAWC": { + "type": "pty", + "createdAt": 1753625650, + "expiresAt": 1753712050, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "b8dac307-8b4b-4286-aa73-324b9b659e60", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "1NTEJPH7": { + "type": "pty", + "createdAt": 1753625743, + "expiresAt": 1753712143, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "09466a43-c495-4a30-ac08-eb425748a28c", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "5XO64F9Z": { + "type": "pty", + "createdAt": 1753625846, + "expiresAt": 1753712246, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "99132172-7a97-46f7-b282-b22054d6e599", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "D8561S3A": { + "type": "pty", + "createdAt": 1753625904, + "expiresAt": 1753712304, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "772628f1-414b-4242-bc8f-660ad53b6c23", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "GR0GED2E": { + "type": "pty", + "createdAt": 1753626215, + "expiresAt": 1753712615, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "da40ba76-7047-41e0-95f2-081db87c1b3b", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "TTRQKVM9": { + "type": "pty", + "createdAt": 1753626245, + "expiresAt": 1753712645, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "c7c5c95d-4541-47f6-b27a-35c0fd563413", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "P9UBHY8L": { + "type": "pty", + "createdAt": 1753626325, + "expiresAt": 1753712725, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "a3f2b4f9-811e-4721-914f-f025919c2530", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "JQAOXCYJ": { + "type": "pty", + "createdAt": 1753626390, + "expiresAt": 1753712790, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "f0d0635b-59f2-45eb-acfc-d649b12fd2d6", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "B7R9OR3K": { + "type": "pty", + "createdAt": 1753626445, + "expiresAt": 1753712845, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "d33e49aa-a58f-46b0-8829-dfef7f474600", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "0KGM60XO": { + "type": "pty", + "createdAt": 1753626569, + "expiresAt": 1753712969, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "02bd4449-bdcf-464e-916e-61bc62a18dd2", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "5NXM173C": { + "type": "pty", + "createdAt": 1753626834, + "expiresAt": 1753713234, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "f8f915ee-ab64-471c-b3d2-71cb84d2b5fe", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "2R8GD6VD": { + "type": "pty", + "createdAt": 1754066705, + "expiresAt": 1754153105, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "00a65f0d-b8ef-4c7f-97d6-74ace997f133", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "01BCXOI0": { + "type": "pty", + "createdAt": 1754066792, + "expiresAt": 1754153192, + "cwd": "/Users/jessytsui/dev/doc_page", + "sessionId": "47501ac6-1ae1-4584-9339-e64ebe8f4218", + "tmuxSession": "claude-test", + "description": "completed - doc_page" + }, + "SLHHY01G": { + "type": "pty", + "createdAt": 1754066895, + "expiresAt": 1754153295, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "2704564c-3c4f-4174-95fb-33e476acd44a", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "9CUAHQ60": { + "type": "pty", + "createdAt": 1754066975, + "expiresAt": 1754153375, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "ba41d320-6579-4beb-bb62-0ea3cdeacfcb", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "C8ZKMS70": { + "type": "pty", + "createdAt": 1754067144, + "expiresAt": 1754153544, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "3050f159-e58f-4a3a-b744-45ae38f2e887", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "E71FAJA3": { + "type": "pty", + "createdAt": 1754067280, + "expiresAt": 1754153680, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "784bb250-9f56-4511-836f-a38f76c486ce", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "ZQIZ0SDR": { + "type": "pty", + "createdAt": 1754067317, + "expiresAt": 1754153717, + "cwd": "/Users/jessytsui/dev/doc_page", + "sessionId": "7277653b-cae9-4be9-9124-bc68a71c7152", + "tmuxSession": "claude-test", + "description": "completed - doc_page" + }, + "0IEID7K0": { + "type": "pty", + "createdAt": 1754067385, + "expiresAt": 1754153785, + "cwd": "/Users/jessytsui", + "sessionId": "73e4e49d-bd47-43f8-92dc-42e530675a0a", + "tmuxSession": "claude-test", + "description": "completed - jessytsui" + }, + "2MFHRVRP": { + "type": "pty", + "createdAt": 1754067582, + "expiresAt": 1754153982, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "60ed38da-6940-425e-a9fe-491840a3e0e7", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "WQUR8ZWG": { + "type": "pty", + "createdAt": 1754067778, + "expiresAt": 1754154178, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "bea5317e-5851-4d4a-9175-b79f766bc8a0", + "tmuxSession": "claude-code-remote", + "description": "completed - Claude-Code-Remote" + }, + "VGMHY9GU": { + "type": "pty", + "createdAt": 1754067874, + "expiresAt": 1754154274, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "2c4a832b-17e2-4005-af2b-f1452315269e", + "tmuxSession": "claude-code", + "description": "completed - Claude-Code-Remote" + }, + "EMECQ2ZG": { + "type": "pty", + "createdAt": 1754067996, + "expiresAt": 1754154396, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "e61867fb-9199-4fd4-8396-f41eac9cd9af", + "tmuxSession": "claude-code", + "description": "completed - Claude-Code-Remote" + }, + "WZKOH82S": { + "type": "pty", + "createdAt": 1754068559, + "expiresAt": 1754154959, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "ef2a8e7d-c2e0-4329-9d30-998c23ad9149", + "tmuxSession": "claude-code", + "description": "completed - Claude-Code-Remote" + }, + "O3ST8AI6": { + "type": "pty", + "createdAt": 1754069309, + "expiresAt": 1754155709, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "0aec093e-f4e0-45f6-8f15-b734f56e254f", + "tmuxSession": "claude-code", + "description": "completed - Claude-Code-Remote" + }, + "DUMTN3RR": { + "type": "pty", + "createdAt": 1754069671, + "expiresAt": 1754156071, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "08333291-85f8-4672-9590-685e3049d028", + "tmuxSession": "claude-code-test", + "description": "completed - Claude-Code-Remote" + }, + "55MH1LWK": { + "type": "pty", + "createdAt": 1754070069, + "expiresAt": 1754156469, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "719bf1a7-c6b1-4d45-ad47-86c985625232", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "55E0J99I": { + "type": "pty", + "createdAt": 1754070135, + "expiresAt": 1754156535, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "303dc5be-af53-478f-b5cd-702987eb29b4", + "tmuxSession": "claude-code", + "description": "completed - Claude-Code-Remote" + }, + "GK0JP7C4": { + "type": "pty", + "createdAt": 1754070531, + "expiresAt": 1754156931, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "86e0c519-edf6-401b-9d44-1b980d9288f4", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "5NCJVV7P": { + "type": "pty", + "createdAt": 1754070572, + "expiresAt": 1754156972, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "cd0b513c-ccbc-41aa-a044-235c16083dda", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "DSV496RA": { + "type": "pty", + "createdAt": 1754070585, + "expiresAt": 1754156985, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "e87bb1ed-f195-407d-8024-ac8e216bc632", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "G4N2KB5Y": { + "type": "pty", + "createdAt": 1754070676, + "expiresAt": 1754157076, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "0c546cad-0000-4f5c-8bff-493e6dbddfe2", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "DIHER2N2": { + "type": "pty", + "createdAt": 1754070936, + "expiresAt": 1754157336, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "cd1cb22d-2f2f-4e4e-9ad4-e1a6c68965d0", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "PVTAZK0W": { + "type": "pty", + "createdAt": 1754070976, + "expiresAt": 1754157376, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "d5281021-12e4-4ca2-bc44-533649969568", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "6WRFBJOE": { + "type": "pty", + "createdAt": 1754071040, + "expiresAt": 1754157440, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "13dbb781-3000-4a73-9cf6-551abfcb2df8", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "15LBIE97": { + "type": "pty", + "createdAt": 1754071107, + "expiresAt": 1754157507, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "b1441fcc-33d5-402b-b094-c8dc4ce36302", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "WLPTYZ86": { + "type": "pty", + "createdAt": 1754071313, + "expiresAt": 1754157713, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "c5f99272-5603-44d3-8e97-8b19bc74d54e", + "tmuxSession": "a", + "description": "completed - Claude-Code-Remote" + }, + "QF58O43H": { + "type": "pty", + "createdAt": 1754071345, + "expiresAt": 1754157745, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "7d3bae82-97fb-42bb-bd77-af36246f47db", + "tmuxSession": "ab", + "description": "completed - Claude-Code-Remote" + }, + "U62IMVYP": { + "type": "pty", + "createdAt": 1754071829, + "expiresAt": 1754158229, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "32190311-904e-4f21-9bac-ebe458d87936", + "tmuxSession": "claude-test", + "description": "completed - Claude-Code-Remote" + }, + "L4WIBBPP": { + "type": "pty", + "createdAt": 1754074724, + "expiresAt": 1754161124, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "04bec660-6454-407c-9881-f2bc714312b0", + "tmuxSession": "123", + "description": "completed - Claude-Code-Remote" + }, + "UFORANBW": { + "type": "pty", + "createdAt": 1754074755, + "expiresAt": 1754161155, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "b75d4767-e045-4530-8740-70f6515d8b13", + "tmuxSession": "123", + "description": "completed - Claude-Code-Remote" + }, + "R0AG2CIS": { + "type": "pty", + "createdAt": 1754074784, + "expiresAt": 1754161184, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "74f9ef13-a494-44eb-83a1-6d9eacc488fa", + "tmuxSession": "123", + "description": "completed - Claude-Code-Remote" + }, + "YPBWUW83": { + "type": "pty", + "createdAt": 1754075528, + "expiresAt": 1754161928, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "c5d901bf-cb1c-4590-b197-c960c4153af2", + "tmuxSession": "claude-hook-test", + "description": "completed - Claude-Code-Remote" + }, + "8KYNDD1A": { + "type": "pty", + "createdAt": 1754075553, + "expiresAt": 1754161953, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "096b69d9-040a-4e42-a2a2-7391ba2b9e20", + "tmuxSession": "claude-hook-test", + "description": "completed - Claude-Code-Remote" + }, + "EK7LG2H4": { + "type": "pty", + "createdAt": 1754075748, + "expiresAt": 1754162148, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "94c65db1-5d64-4c10-96c3-925bb69d6bf0", + "tmuxSession": "claude-hook-test", + "description": "completed - Claude-Code-Remote" + }, + "V75VD2QD": { + "type": "pty", + "createdAt": 1754075775, + "expiresAt": 1754162175, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "74443d59-66d9-4f37-b965-dbca9d79f111", + "tmuxSession": "claude-hook-test", + "description": "completed - Claude-Code-Remote" + }, + "FJW7PHHH": { + "type": "pty", + "createdAt": 1754076112, + "expiresAt": 1754162512, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "10cd6e52-91a8-476a-af0a-1fe2c2929ab6", + "tmuxSession": "claude-hook-test", + "description": "completed - Claude-Code-Remote" + } +} \ No newline at end of file diff --git a/src/utils/controller-injector.js b/src/utils/controller-injector.js new file mode 100644 index 0000000..f49efd1 --- /dev/null +++ b/src/utils/controller-injector.js @@ -0,0 +1,110 @@ +/** + * Controller Injector + * Injects commands into tmux sessions or PTY + */ + +const { execSync, spawn } = require('child_process'); +const path = require('path'); +const fs = require('fs'); +const Logger = require('../core/logger'); + +class ControllerInjector { + constructor(config = {}) { + this.logger = new Logger('ControllerInjector'); + this.mode = config.mode || process.env.INJECTION_MODE || 'pty'; + this.defaultSession = config.defaultSession || process.env.TMUX_SESSION || 'claude-code'; + } + + async injectCommand(command, sessionName = null) { + const session = sessionName || this.defaultSession; + + if (this.mode === 'tmux') { + return this._injectTmux(command, session); + } else { + return this._injectPty(command, session); + } + } + + _injectTmux(command, sessionName) { + try { + // Check if tmux session exists + try { + execSync(`tmux has-session -t ${sessionName}`, { stdio: 'ignore' }); + } catch (error) { + throw new Error(`Tmux session '${sessionName}' not found`); + } + + // Send command to tmux session and execute it + const escapedCommand = command.replace(/'/g, "'\\''"); + + // Send command first + execSync(`tmux send-keys -t ${sessionName} '${escapedCommand}'`); + // Then send Enter as separate command + execSync(`tmux send-keys -t ${sessionName} Enter`); + + this.logger.info(`Command injected to tmux session '${sessionName}'`); + return true; + } catch (error) { + this.logger.error('Failed to inject command via tmux:', error.message); + throw error; + } + } + + _injectPty(command, sessionName) { + try { + // Find PTY session file + const sessionMapPath = process.env.SESSION_MAP_PATH || + path.join(__dirname, '../data/session-map.json'); + + if (!fs.existsSync(sessionMapPath)) { + throw new Error('Session map file not found'); + } + + const sessionMap = JSON.parse(fs.readFileSync(sessionMapPath, 'utf8')); + const sessionInfo = sessionMap[sessionName]; + + if (!sessionInfo || !sessionInfo.ptyPath) { + throw new Error(`PTY session '${sessionName}' not found`); + } + + // Write command to PTY + fs.writeFileSync(sessionInfo.ptyPath, command + '\n'); + + this.logger.info(`Command injected to PTY session '${sessionName}'`); + return true; + } catch (error) { + this.logger.error('Failed to inject command via PTY:', error.message); + throw error; + } + } + + listSessions() { + if (this.mode === 'tmux') { + try { + const output = execSync('tmux list-sessions -F "#{session_name}"', { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }); + return output.trim().split('\n').filter(Boolean); + } catch (error) { + return []; + } + } else { + try { + const sessionMapPath = process.env.SESSION_MAP_PATH || + path.join(__dirname, '../data/session-map.json'); + + if (!fs.existsSync(sessionMapPath)) { + return []; + } + + const sessionMap = JSON.parse(fs.readFileSync(sessionMapPath, 'utf8')); + return Object.keys(sessionMap); + } catch (error) { + return []; + } + } + } +} + +module.exports = ControllerInjector; \ No newline at end of file diff --git a/src/utils/tmux-monitor.js b/src/utils/tmux-monitor.js index af7b636..07f6f26 100644 --- a/src/utils/tmux-monitor.js +++ b/src/utils/tmux-monitor.js @@ -1,16 +1,76 @@ /** - * Tmux Session Monitor - * Captures input/output from tmux sessions for email notifications + * Tmux Monitor - Enhanced for real-time monitoring with Telegram/LINE automation + * Monitors tmux session output for Claude completion patterns + * Based on the original email automation mechanism but adapted for real-time notifications */ const { execSync } = require('child_process'); +const EventEmitter = require('events'); const fs = require('fs'); const path = require('path'); const TraceCapture = require('./trace-capture'); -class TmuxMonitor { - constructor() { +class TmuxMonitor extends EventEmitter { + constructor(sessionName = null) { + super(); + this.sessionName = sessionName || process.env.TMUX_SESSION || 'claude-real'; this.captureDir = path.join(__dirname, '../data/tmux-captures'); + this.isMonitoring = false; + this.monitorInterval = null; + this.lastPaneContent = ''; + this.outputBuffer = []; + this.maxBufferSize = 1000; // Keep last 1000 lines + this.checkInterval = 2000; // Check every 2 seconds + + // Claude completion patterns (adapted for Claude Code's actual output format) + this.completionPatterns = [ + // Task completion indicators + /task.*completed/i, + /successfully.*completed/i, + /completed.*successfully/i, + /implementation.*complete/i, + /changes.*made/i, + /created.*successfully/i, + /updated.*successfully/i, + /file.*created/i, + /file.*updated/i, + /finished/i, + /done/i, + /✅/, + /All set/i, + /Ready/i, + + // Claude Code specific patterns + /The file.*has been updated/i, + /File created successfully/i, + /Command executed successfully/i, + /Operation completed/i, + + // Look for prompt return (indicating Claude finished responding) + /╰.*╯\s*$/, // Box ending + /^\s*>\s*$/ // Empty prompt ready for input + ]; + + // Waiting patterns (when Claude needs input) + this.waitingPatterns = [ + /waiting.*for/i, + /need.*input/i, + /please.*provide/i, + /what.*would you like/i, + /how.*can I help/i, + /⏳/, + /What would you like me to/i, + /Is there anything else/i, + /Any other/i, + /Do you want/i, + /Would you like/i, + + // Claude Code specific waiting patterns + /\? for shortcuts/i, // Claude Code waiting indicator + /╭.*─.*╮/, // Start of response box + />\s*$/ // Empty prompt + ]; + this._ensureCaptureDir(); this.traceCapture = new TraceCapture(); } @@ -21,6 +81,290 @@ class TmuxMonitor { } } + // Real-time monitoring methods (new functionality) + start() { + if (this.isMonitoring) { + console.log('⚠️ TmuxMonitor already running'); + return; + } + + // Verify tmux session exists + if (!this._sessionExists()) { + console.error(`❌ Tmux session '${this.sessionName}' not found`); + throw new Error(`Tmux session '${this.sessionName}' not found`); + } + + this.isMonitoring = true; + this._startRealTimeMonitoring(); + console.log(`🔍 Started monitoring tmux session: ${this.sessionName}`); + } + + stop() { + if (!this.isMonitoring) { + return; + } + + this.isMonitoring = false; + if (this.monitorInterval) { + clearInterval(this.monitorInterval); + this.monitorInterval = null; + } + console.log('⏹️ TmuxMonitor stopped'); + } + + _sessionExists() { + try { + const sessions = execSync('tmux list-sessions -F "#{session_name}"', { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }).trim().split('\n'); + + return sessions.includes(this.sessionName); + } catch (error) { + return false; + } + } + + _startRealTimeMonitoring() { + // Initial capture + this._captureCurrentContent(); + + // Set up periodic monitoring + this.monitorInterval = setInterval(() => { + if (this.isMonitoring) { + this._checkForChanges(); + } + }, this.checkInterval); + } + + _captureCurrentContent() { + try { + // Capture current pane content + const content = execSync(`tmux capture-pane -t ${this.sessionName} -p`, { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'] + }); + + return content; + } catch (error) { + console.error('Error capturing tmux content:', error.message); + return ''; + } + } + + _checkForChanges() { + const currentContent = this._captureCurrentContent(); + + if (currentContent !== this.lastPaneContent) { + // Get new content (lines that were added) + const newLines = this._getNewLines(this.lastPaneContent, currentContent); + + if (newLines.length > 0) { + // Add to buffer + this.outputBuffer.push(...newLines); + + // Trim buffer if too large + if (this.outputBuffer.length > this.maxBufferSize) { + this.outputBuffer = this.outputBuffer.slice(-this.maxBufferSize); + } + + // Check for completion patterns + this._analyzeNewContent(newLines); + } + + this.lastPaneContent = currentContent; + } + } + + _getNewLines(oldContent, newContent) { + const oldLines = oldContent.split('\n'); + const newLines = newContent.split('\n'); + + // Find lines that were added + const addedLines = []; + + // Simple approach: compare line by line from the end + const oldLength = oldLines.length; + const newLength = newLines.length; + + if (newLength > oldLength) { + // New lines were added + const numNewLines = newLength - oldLength; + addedLines.push(...newLines.slice(-numNewLines)); + } else if (newLength === oldLength) { + // Same number of lines, check if last lines changed + for (let i = Math.max(0, newLength - 5); i < newLength; i++) { + if (i < oldLength && newLines[i] !== oldLines[i]) { + addedLines.push(newLines[i]); + } + } + } + + return addedLines.filter(line => line.trim().length > 0); + } + + _analyzeNewContent(newLines) { + const recentText = newLines.join('\n'); + + // Also check the entire recent buffer for context + const bufferText = this.outputBuffer.slice(-20).join('\n'); + + console.log('🔍 Analyzing new content:', newLines.slice(0, 2).map(line => line.substring(0, 50))); // Debug log + + // Look for Claude response completion patterns + const hasResponseEnd = this._detectResponseCompletion(recentText, bufferText); + const hasTaskCompletion = this._detectTaskCompletion(recentText, bufferText); + + if (hasTaskCompletion || hasResponseEnd) { + console.log('🎯 Task completion detected'); + this._handleTaskCompletion(newLines); + } + // Don't constantly trigger waiting notifications for static content + else if (this._shouldTriggerWaitingNotification(recentText)) { + console.log('⏳ New waiting state detected'); + this._handleWaitingForInput(newLines); + } + } + + _detectResponseCompletion(recentText, bufferText) { + // Look for Claude response completion indicators + const completionIndicators = [ + /The file.*has been updated/i, + /File created successfully/i, + /successfully/i, + /completed/i, + /✅/, + /done/i + ]; + + // Claude Code specific pattern: ⏺ response followed by box + const hasClaudeResponse = /⏺.*/.test(bufferText) || /⏺.*/.test(recentText); + const hasBoxStart = /╭.*╮/.test(recentText); + const hasBoxEnd = /╰.*╯/.test(recentText); + + // Look for the pattern: ⏺ response -> box -> empty prompt + const isCompleteResponse = hasClaudeResponse && (hasBoxStart || hasBoxEnd); + + return completionIndicators.some(pattern => pattern.test(recentText)) || + isCompleteResponse; + } + + _detectTaskCompletion(recentText, bufferText) { + // Look for specific completion patterns + return this.completionPatterns.some(pattern => pattern.test(recentText)); + } + + _shouldTriggerWaitingNotification(recentText) { + // Only trigger waiting notification for new meaningful content + // Avoid triggering on static "? for shortcuts" that doesn't change + const meaningfulWaitingPatterns = [ + /waiting.*for/i, + /need.*input/i, + /please.*provide/i, + /what.*would you like/i, + /Do you want/i, + /Would you like/i + ]; + + return meaningfulWaitingPatterns.some(pattern => pattern.test(recentText)) && + !recentText.includes('? for shortcuts'); // Ignore static shortcuts line + } + + _handleTaskCompletion(newLines) { + const conversation = this._extractRecentConversation(); + + console.log('🎉 Claude task completion detected!'); + + this.emit('taskCompleted', { + type: 'completed', + sessionName: this.sessionName, + timestamp: new Date().toISOString(), + newOutput: newLines, + conversation: conversation, + triggerText: newLines.join('\n') + }); + } + + _handleWaitingForInput(newLines) { + const conversation = this._extractRecentConversation(); + + console.log('⏳ Claude waiting for input detected!'); + + this.emit('waitingForInput', { + type: 'waiting', + sessionName: this.sessionName, + timestamp: new Date().toISOString(), + newOutput: newLines, + conversation: conversation, + triggerText: newLines.join('\n') + }); + } + + _extractRecentConversation() { + // Extract recent conversation from buffer + const recentBuffer = this.outputBuffer.slice(-50); // Last 50 lines + const text = recentBuffer.join('\n'); + + // Try to identify user question and Claude response using Claude Code patterns + let userQuestion = ''; + let claudeResponse = ''; + + // Look for Claude Code specific patterns + const lines = recentBuffer; + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim(); + + // Look for user input (after > prompt) + if (line.startsWith('> ') && line.length > 2) { + userQuestion = line.substring(2).trim(); + continue; + } + + // Look for Claude response (⏺ prefix) + if (line.startsWith('⏺ ') && line.length > 2) { + claudeResponse = line.substring(2).trim(); + break; + } + } + + // If we didn't find the specific format, use fallback + if (!userQuestion || !claudeResponse) { + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim(); + + // Skip system lines + if (!line || line.startsWith('[') || line.startsWith('$') || + line.startsWith('#') || line.includes('? for shortcuts') || + line.match(/^[╭╰│─]+$/)) { + continue; + } + + if (!userQuestion && line.length > 2) { + userQuestion = line; + } else if (userQuestion && !claudeResponse && line.length > 5 && line !== userQuestion) { + claudeResponse = line; + break; + } + } + } + + return { + userQuestion: userQuestion || 'Recent command', + claudeResponse: claudeResponse || 'Task completed', + fullContext: text + }; + } + + // Manual trigger methods for testing + triggerCompletionTest() { + this._handleTaskCompletion(['Test completion notification']); + } + + triggerWaitingTest() { + this._handleWaitingForInput(['Test waiting notification']); + } + + // Original capture methods (legacy support) /** * Start capturing a tmux session * @param {string} sessionName - The tmux session name @@ -380,6 +724,22 @@ class TmuxMonitor { console.error('Failed to cleanup captures:', error.message); } } + + // Enhanced status method + getStatus() { + return { + isMonitoring: this.isMonitoring, + sessionName: this.sessionName, + sessionExists: this._sessionExists(), + bufferSize: this.outputBuffer.length, + checkInterval: this.checkInterval, + patterns: { + completion: this.completionPatterns.length, + waiting: this.waitingPatterns.length + }, + lastCheck: new Date().toISOString() + }; + } } module.exports = TmuxMonitor; \ No newline at end of file diff --git a/start-all-webhooks.js b/start-all-webhooks.js new file mode 100755 index 0000000..244f8f8 --- /dev/null +++ b/start-all-webhooks.js @@ -0,0 +1,113 @@ +#!/usr/bin/env node + +/** + * Multi-Platform Webhook Server + * Starts all enabled webhook servers (Telegram, LINE) in parallel + */ + +const { spawn } = require('child_process'); +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); + +// Load environment variables +const envPath = path.join(__dirname, '.env'); +if (fs.existsSync(envPath)) { + dotenv.config({ path: envPath }); +} + +console.log('🚀 Starting Claude Code Remote Multi-Platform Webhook Server...\n'); + +const processes = []; + +// Start Telegram webhook if enabled +if (process.env.TELEGRAM_ENABLED === 'true' && process.env.TELEGRAM_BOT_TOKEN) { + console.log('📱 Starting Telegram webhook server...'); + const telegramProcess = spawn('node', ['start-telegram-webhook.js'], { + stdio: ['inherit', 'inherit', 'inherit'], + env: process.env + }); + + telegramProcess.on('exit', (code) => { + console.log(`📱 Telegram webhook server exited with code ${code}`); + }); + + processes.push({ name: 'Telegram', process: telegramProcess }); +} + +// Start LINE webhook if enabled +if (process.env.LINE_ENABLED === 'true' && process.env.LINE_CHANNEL_ACCESS_TOKEN) { + console.log('📱 Starting LINE webhook server...'); + const lineProcess = spawn('node', ['start-line-webhook.js'], { + stdio: ['inherit', 'inherit', 'inherit'], + env: process.env + }); + + lineProcess.on('exit', (code) => { + console.log(`📱 LINE webhook server exited with code ${code}`); + }); + + processes.push({ name: 'LINE', process: lineProcess }); +} + +// Start Email daemon if enabled +if (process.env.EMAIL_ENABLED === 'true' && process.env.SMTP_USER) { + console.log('📧 Starting email daemon...'); + const emailProcess = spawn('node', ['claude-remote.js', 'daemon', 'start'], { + stdio: ['inherit', 'inherit', 'inherit'], + env: process.env + }); + + emailProcess.on('exit', (code) => { + console.log(`📧 Email daemon exited with code ${code}`); + }); + + processes.push({ name: 'Email', process: emailProcess }); +} + +if (processes.length === 0) { + console.log('❌ No platforms enabled. Please configure at least one platform in .env file:'); + console.log(' - Set TELEGRAM_ENABLED=true and configure TELEGRAM_BOT_TOKEN'); + console.log(' - Set LINE_ENABLED=true and configure LINE_CHANNEL_ACCESS_TOKEN'); + console.log(' - Set EMAIL_ENABLED=true and configure SMTP_USER'); + process.exit(1); +} + +console.log(`\n✅ Started ${processes.length} webhook server(s):`); +processes.forEach(p => { + console.log(` - ${p.name}`); +}); + +console.log('\n📋 Platform Command Formats:'); +if (process.env.TELEGRAM_ENABLED === 'true') { + console.log(' Telegram: /cmd TOKEN123 '); +} +if (process.env.LINE_ENABLED === 'true') { + console.log(' LINE: Token TOKEN123 '); +} +if (process.env.EMAIL_ENABLED === 'true') { + console.log(' Email: Reply to notification emails'); +} + +console.log('\n🔧 To stop all services, press Ctrl+C\n'); + +// Handle graceful shutdown +function shutdown() { + console.log('\n🛑 Shutting down all webhook servers...'); + + processes.forEach(p => { + console.log(` Stopping ${p.name}...`); + p.process.kill('SIGTERM'); + }); + + setTimeout(() => { + console.log('✅ All services stopped'); + process.exit(0); + }, 2000); +} + +process.on('SIGINT', shutdown); +process.on('SIGTERM', shutdown); + +// Keep the main process alive +process.stdin.resume(); \ No newline at end of file diff --git a/start-line-webhook.js b/start-line-webhook.js new file mode 100755 index 0000000..8ac6470 --- /dev/null +++ b/start-line-webhook.js @@ -0,0 +1,64 @@ +#!/usr/bin/env node + +/** + * LINE Webhook Server + * Starts the LINE webhook server for receiving messages + */ + +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); +const Logger = require('./src/core/logger'); +const LINEWebhookHandler = require('./src/channels/line/webhook'); + +// Load environment variables +const envPath = path.join(__dirname, '.env'); +if (fs.existsSync(envPath)) { + dotenv.config({ path: envPath }); +} + +const logger = new Logger('LINE-Webhook-Server'); + +// Load configuration +const config = { + channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN, + channelSecret: process.env.LINE_CHANNEL_SECRET, + userId: process.env.LINE_USER_ID, + groupId: process.env.LINE_GROUP_ID, + whitelist: process.env.LINE_WHITELIST ? process.env.LINE_WHITELIST.split(',').map(id => id.trim()) : [], + port: process.env.LINE_WEBHOOK_PORT || 3000 +}; + +// Validate configuration +if (!config.channelAccessToken || !config.channelSecret) { + logger.error('LINE_CHANNEL_ACCESS_TOKEN and LINE_CHANNEL_SECRET must be set in .env file'); + process.exit(1); +} + +if (!config.userId && !config.groupId) { + logger.error('Either LINE_USER_ID or LINE_GROUP_ID must be set in .env file'); + process.exit(1); +} + +// Create and start webhook handler +const webhookHandler = new LINEWebhookHandler(config); + +logger.info('Starting LINE webhook server...'); +logger.info(`Configuration:`); +logger.info(`- Port: ${config.port}`); +logger.info(`- User ID: ${config.userId || 'Not set'}`); +logger.info(`- Group ID: ${config.groupId || 'Not set'}`); +logger.info(`- Whitelist: ${config.whitelist.length > 0 ? config.whitelist.join(', ') : 'None (using configured IDs)'}`); + +webhookHandler.start(config.port); + +// Handle graceful shutdown +process.on('SIGINT', () => { + logger.info('Shutting down LINE webhook server...'); + process.exit(0); +}); + +process.on('SIGTERM', () => { + logger.info('Shutting down LINE webhook server...'); + process.exit(0); +}); \ No newline at end of file diff --git a/start-telegram-webhook.js b/start-telegram-webhook.js new file mode 100755 index 0000000..c4a76f3 --- /dev/null +++ b/start-telegram-webhook.js @@ -0,0 +1,85 @@ +#!/usr/bin/env node + +/** + * Telegram Webhook Server + * Starts the Telegram webhook server for receiving messages + */ + +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); +const Logger = require('./src/core/logger'); +const TelegramWebhookHandler = require('./src/channels/telegram/webhook'); + +// Load environment variables +const envPath = path.join(__dirname, '.env'); +if (fs.existsSync(envPath)) { + dotenv.config({ path: envPath }); +} + +const logger = new Logger('Telegram-Webhook-Server'); + +// Load configuration +const config = { + botToken: process.env.TELEGRAM_BOT_TOKEN, + chatId: process.env.TELEGRAM_CHAT_ID, + groupId: process.env.TELEGRAM_GROUP_ID, + whitelist: process.env.TELEGRAM_WHITELIST ? process.env.TELEGRAM_WHITELIST.split(',').map(id => id.trim()) : [], + port: process.env.TELEGRAM_WEBHOOK_PORT || 3001, + webhookUrl: process.env.TELEGRAM_WEBHOOK_URL +}; + +// Validate configuration +if (!config.botToken) { + logger.error('TELEGRAM_BOT_TOKEN must be set in .env file'); + process.exit(1); +} + +if (!config.chatId && !config.groupId) { + logger.error('Either TELEGRAM_CHAT_ID or TELEGRAM_GROUP_ID must be set in .env file'); + process.exit(1); +} + +// Create and start webhook handler +const webhookHandler = new TelegramWebhookHandler(config); + +async function start() { + logger.info('Starting Telegram webhook server...'); + logger.info(`Configuration:`); + logger.info(`- Port: ${config.port}`); + logger.info(`- Chat ID: ${config.chatId || 'Not set'}`); + logger.info(`- Group ID: ${config.groupId || 'Not set'}`); + logger.info(`- Whitelist: ${config.whitelist.length > 0 ? config.whitelist.join(', ') : 'None (using configured IDs)'}`); + + // Set webhook if URL is provided + if (config.webhookUrl) { + try { + const webhookEndpoint = `${config.webhookUrl}/webhook/telegram`; + logger.info(`Setting webhook to: ${webhookEndpoint}`); + await webhookHandler.setWebhook(webhookEndpoint); + } catch (error) { + logger.error('Failed to set webhook:', error.message); + logger.info('You can manually set the webhook using:'); + logger.info(`curl -X POST https://api.telegram.org/bot${config.botToken}/setWebhook -d "url=${config.webhookUrl}/webhook/telegram"`); + } + } else { + logger.warn('TELEGRAM_WEBHOOK_URL not set. Please set the webhook manually.'); + logger.info('To set webhook manually, use:'); + logger.info(`curl -X POST https://api.telegram.org/bot${config.botToken}/setWebhook -d "url=https://your-domain.com/webhook/telegram"`); + } + + webhookHandler.start(config.port); +} + +start(); + +// Handle graceful shutdown +process.on('SIGINT', () => { + logger.info('Shutting down Telegram webhook server...'); + process.exit(0); +}); + +process.on('SIGTERM', () => { + logger.info('Shutting down Telegram webhook server...'); + process.exit(0); +}); \ No newline at end of file diff --git a/taskping-config.js b/taskping-config.js deleted file mode 100755 index 342ec3f..0000000 --- a/taskping-config.js +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env node - -const ConfigManager = require('./src/config-manager'); - -const manager = new ConfigManager(); -manager.interactiveMenu().catch(console.error); \ No newline at end of file diff --git a/test-complete-flow.sh b/test-complete-flow.sh new file mode 100755 index 0000000..055977d --- /dev/null +++ b/test-complete-flow.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +# 完整的端到端测试脚本 +# Complete end-to-end test script + +set -e + +PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$PROJECT_DIR" + +echo "🧪 Claude Code Remote - 完整端到端测试" +echo "======================================" + +# 1. 检查服务状态 +echo "📋 1. 检查服务状态" +echo -n " ngrok服务: " +if pgrep -f "ngrok http" > /dev/null; then + echo "✅ 运行中" + NGROK_URL=$(curl -s http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url' 2>/dev/null || echo "获取失败") + echo " ngrok URL: $NGROK_URL" +else + echo "❌ 未运行" +fi + +echo -n " Telegram webhook: " +if pgrep -f "start-telegram-webhook" > /dev/null; then + echo "✅ 运行中" +else + echo "❌ 未运行" +fi + +# 2. 检查配置文件 +echo "" +echo "📋 2. 检查配置文件" +echo -n " ~/.claude/settings.json: " +if [ -f ~/.claude/settings.json ]; then + echo "✅ 存在" + echo " Hooks配置:" + cat ~/.claude/settings.json | jq '.hooks' 2>/dev/null || echo " 解析失败" +else + echo "❌ 不存在" +fi + +echo -n " .env文件: " +if [ -f .env ]; then + echo "✅ 存在" + echo " Telegram配置:" + grep "TELEGRAM_" .env | grep -v "BOT_TOKEN" | while read line; do + echo " $line" + done +else + echo "❌ 不存在" +fi + +# 3. 测试hook脚本 +echo "" +echo "📋 3. 测试hook脚本执行" +echo " 运行: node claude-hook-notify.js completed" +node claude-hook-notify.js completed + +# 4. 检查最新session +echo "" +echo "📋 4. 检查最新创建的session" +if [ -d "src/data/sessions" ]; then + LATEST_SESSION=$(ls -t src/data/sessions/*.json 2>/dev/null | head -1) + if [ -n "$LATEST_SESSION" ]; then + echo " 最新session: $(basename "$LATEST_SESSION")" + echo " 内容摘要:" + cat "$LATEST_SESSION" | jq -r '"\tToken: \(.token)\n\tType: \(.type)\n\tCreated: \(.created)\n\tTmux Session: \(.tmuxSession)"' 2>/dev/null || echo " 解析失败" + else + echo " ❌ 未找到session文件" + fi +else + echo " ❌ sessions目录不存在" +fi + +# 5. 测试Telegram Bot连接 +echo "" +echo "📋 5. 测试Telegram Bot连接" +if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then + echo " 发送测试消息到个人聊天..." + RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \ + -H "Content-Type: application/json" \ + -d "{\"chat_id\": $TELEGRAM_CHAT_ID, \"text\": \"🧪 端到端测试完成\\n\\n时间: $(date)\\n\\n如果你看到这条消息,说明基础通信正常。\\n\\n下一步:在Claude中完成一个任务,看是否能收到自动通知。\"}") + + if echo "$RESPONSE" | grep -q '"ok":true'; then + echo " ✅ 测试消息发送成功" + else + echo " ❌ 测试消息发送失败" + echo " 响应: $RESPONSE" + fi +else + echo " ⚠️ Telegram配置不完整" +fi + +# 6. 检查tmux sessions +echo "" +echo "📋 6. 检查tmux sessions" +if command -v tmux >/dev/null 2>&1; then + echo " 当前tmux sessions:" + tmux list-sessions 2>/dev/null || echo " 无活跃session" +else + echo " ❌ tmux未安装" +fi + +echo "" +echo "🏁 测试完成" +echo "" +echo "💡 下一步调试建议:" +echo "1. 确认你收到了上面的Telegram测试消息" +echo "2. 在tmux中运行Claude,完成一个简单任务" +echo "3. 检查是否收到自动通知" +echo "4. 如果没有收到,检查Claude输出是否有错误信息" +echo "" +echo "🔧 如果仍有问题,请运行:" +echo " tmux new-session -s claude-debug" +echo " # 在新session中:" +echo " export CLAUDE_HOOKS_CONFIG=$PROJECT_DIR/claude-hooks.json" +echo " claude" +echo " # 然后尝试一个简单任务" \ No newline at end of file diff --git a/test-injection.js b/test-injection.js new file mode 100755 index 0000000..b54d135 --- /dev/null +++ b/test-injection.js @@ -0,0 +1,34 @@ +#!/usr/bin/env node + +const ControllerInjector = require('./src/utils/controller-injector'); + +async function testInjection() { + console.log('🧪 测试命令注入功能'); + console.log('==================='); + + const injector = new ControllerInjector(); + + console.log(`当前模式: ${injector.mode}`); + console.log(`默认session: ${injector.defaultSession}`); + + // 测试列出sessions + console.log('\n📋 可用的sessions:'); + const sessions = injector.listSessions(); + sessions.forEach((session, index) => { + console.log(` ${index + 1}. ${session}`); + }); + + // 测试注入命令到claude-hook-test session + console.log('\n🔧 测试注入命令到 claude-hook-test session...'); + const testCommand = 'echo "Command injection test successful at $(date)"'; + + try { + await injector.injectCommand(testCommand, 'claude-hook-test'); + console.log('✅ 命令注入成功!'); + console.log(`注入的命令: ${testCommand}`); + } catch (error) { + console.log('❌ 命令注入失败:', error.message); + } +} + +testInjection().catch(console.error); < /dev/null \ No newline at end of file diff --git a/test-real-notification.js b/test-real-notification.js new file mode 100644 index 0000000..c5dede5 --- /dev/null +++ b/test-real-notification.js @@ -0,0 +1,66 @@ +#!/usr/bin/env node + +/** + * Test Real Notification + * Creates a notification with real tmux session name + */ + +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); + +// Load environment variables +const envPath = path.join(__dirname, '.env'); +if (fs.existsSync(envPath)) { + dotenv.config({ path: envPath }); +} + +const TelegramChannel = require('./src/channels/telegram/telegram'); + +async function testRealNotification() { + console.log('🧪 Creating REAL notification with real tmux session...\n'); + + // Configure Telegram channel + const config = { + botToken: process.env.TELEGRAM_BOT_TOKEN, + chatId: process.env.TELEGRAM_CHAT_ID + }; + + const telegramChannel = new TelegramChannel(config); + + // Get real tmux session name from env + const realSession = process.env.TMUX_SESSION || 'claude-real'; + + // Create REAL notification + const notification = { + type: 'completed', + title: 'Claude Task Completed', + message: 'Real notification - Ready for command injection', + project: 'claude-code-line', + metadata: { + userQuestion: '準備進行真實測試', + claudeResponse: '已準備好接收新指令並注入到真實 Claude 會話中', + tmuxSession: realSession // 使用真實會話名稱 + } + }; + + try { + console.log(`📱 Sending REAL notification for session: ${realSession}`); + const result = await telegramChannel.send(notification); + + if (result) { + console.log('✅ REAL notification sent successfully!'); + console.log(`🖥️ Commands will be injected into tmux session: ${realSession}`); + console.log('\n📋 Now you can reply with:'); + console.log(' /cmd [NEW_TOKEN] '); + console.log('\n🎯 Example:'); + console.log(' /cmd [NEW_TOKEN] ls -la'); + } else { + console.log('❌ Failed to send notification'); + } + } catch (error) { + console.error('❌ Error:', error.message); + } +} + +testRealNotification(); \ No newline at end of file diff --git a/test-telegram-notification.js b/test-telegram-notification.js new file mode 100755 index 0000000..de1e839 --- /dev/null +++ b/test-telegram-notification.js @@ -0,0 +1,62 @@ +#!/usr/bin/env node + +/** + * Test Telegram Notification + * Simulates Claude sending a notification via Telegram + */ + +const path = require('path'); +const fs = require('fs'); +const dotenv = require('dotenv'); + +// Load environment variables +const envPath = path.join(__dirname, '.env'); +if (fs.existsSync(envPath)) { + dotenv.config({ path: envPath }); +} + +const TelegramChannel = require('./src/channels/telegram/telegram'); + +async function testNotification() { + console.log('🧪 Testing Telegram notification...\n'); + + // Configure Telegram channel + const config = { + botToken: process.env.TELEGRAM_BOT_TOKEN, + chatId: process.env.TELEGRAM_CHAT_ID + }; + + const telegramChannel = new TelegramChannel(config); + + // Create test notification + const notification = { + type: 'completed', + title: 'Claude Task Completed', + message: 'Test notification from Claude Code Remote', + project: 'claude-code-line', + metadata: { + userQuestion: '請幫我查詢這個代碼庫:https://github.com/JessyTsui/Claude-Code-Remote', + claudeResponse: '我已經查詢了這個代碼庫,這是一個 Claude Code Remote 項目,允許通過電子郵件遠程控制 Claude Code。', + tmuxSession: 'claude-test' + } + }; + + try { + console.log('📱 Sending test notification...'); + const result = await telegramChannel.send(notification); + + if (result) { + console.log('✅ Test notification sent successfully!'); + console.log('📋 Now you can reply with a command in this format:'); + console.log(' /cmd TOKEN123 '); + console.log('\n🎯 Example:'); + console.log(' /cmd [TOKEN_FROM_MESSAGE] 請幫我分析這個專案的架構'); + } else { + console.log('❌ Failed to send test notification'); + } + } catch (error) { + console.error('❌ Error:', error.message); + } +} + +testNotification(); \ No newline at end of file diff --git a/test-telegram-setup.sh b/test-telegram-setup.sh new file mode 100755 index 0000000..d1422dc --- /dev/null +++ b/test-telegram-setup.sh @@ -0,0 +1,122 @@ +#!/bin/bash + +# Claude Code Remote - Telegram Setup Test Script +# This script tests all components of the Telegram setup + +echo "🧪 Claude Code Remote - Telegram Setup Test" +echo "===========================================" + +# Load environment variables +if [ -f ".env" ]; then + echo "✅ .env file found" + source .env +else + echo "❌ .env file not found" + exit 1 +fi + +# Check required environment variables +if [ -z "$TELEGRAM_BOT_TOKEN" ]; then + echo "❌ TELEGRAM_BOT_TOKEN not set in .env" + exit 1 +else + echo "✅ TELEGRAM_BOT_TOKEN found" +fi + +if [ -z "$TELEGRAM_CHAT_ID" ]; then + echo "❌ TELEGRAM_CHAT_ID not set in .env" + exit 1 +else + echo "✅ TELEGRAM_CHAT_ID found" +fi + +if [ -z "$TELEGRAM_WEBHOOK_URL" ]; then + echo "❌ TELEGRAM_WEBHOOK_URL not set in .env" + exit 1 +else + echo "✅ TELEGRAM_WEBHOOK_URL found: $TELEGRAM_WEBHOOK_URL" +fi + +# Test Telegram bot connection +echo "" +echo "🔧 Testing Telegram bot connection..." +response=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \ + -H "Content-Type: application/json" \ + -d "{\"chat_id\": $TELEGRAM_CHAT_ID, \"text\": \"🧪 Setup test from Claude Code Remote\"}") + +if echo "$response" | grep -q '"ok":true'; then + echo "✅ Telegram bot connection successful" +else + echo "❌ Telegram bot connection failed" + echo "Response: $response" + exit 1 +fi + +# Check webhook status +echo "" +echo "🔧 Checking webhook status..." +webhook_response=$(curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getWebhookInfo") +if echo "$webhook_response" | grep -q "$TELEGRAM_WEBHOOK_URL"; then + echo "✅ Webhook is correctly set" +else + echo "⚠️ Webhook not set to expected URL" + echo "Expected: $TELEGRAM_WEBHOOK_URL" + echo "Response: $webhook_response" +fi + +# Check if claude-hooks.json exists +if [ -f "claude-hooks.json" ]; then + echo "✅ claude-hooks.json found" +else + echo "❌ claude-hooks.json not found" + exit 1 +fi + +# Test notification script +echo "" +echo "🔧 Testing notification script..." +node claude-hook-notify.js completed + +# Check if required processes are running +echo "" +echo "🔧 Checking running processes..." + +if pgrep -f "ngrok" > /dev/null; then + echo "✅ ngrok is running" +else + echo "⚠️ ngrok not found - make sure to run: ngrok http 3001" +fi + +if pgrep -f "start-telegram-webhook" > /dev/null; then + echo "✅ Telegram webhook service is running" +else + echo "⚠️ Telegram webhook service not running - run: node start-telegram-webhook.js" +fi + +# Check tmux sessions +echo "" +echo "🔧 Checking tmux sessions..." +if command -v tmux >/dev/null 2>&1; then + if tmux list-sessions 2>/dev/null | grep -q "claude-code"; then + echo "✅ claude-code tmux session found" + else + echo "⚠️ claude-code tmux session not found - create with: tmux new-session -s claude-code" + fi +else + echo "⚠️ tmux not installed" +fi + +echo "" +echo "📋 Setup Test Summary:" +echo "=====================" +echo "If all items above show ✅, your setup is ready!" +echo "" +echo "Next steps:" +echo "1. Make sure ngrok is running: ngrok http 3001" +echo "2. Make sure webhook service is running: node start-telegram-webhook.js" +echo "3. Start Claude in tmux with hooks:" +echo " tmux attach -t claude-code" +echo " export CLAUDE_HOOKS_CONFIG=$(pwd)/claude-hooks.json" +echo " claude" +echo "" +echo "Test by running a task in Claude - you should get a Telegram notification!" \ No newline at end of file