#!/usr/bin/env node /** * QwenClaw - Rebuilt from OpenClaw for Qwen Code CLI * * This is the main entry point */ import { spawn } from 'child_process'; import { join } from 'path'; import { existsSync, readFileSync } from 'fs'; const args = process.argv.slice(2); const command = args[0]; // Command handlers const commands = { async start() { console.log('🐾 QwenClaw - Starting daemon...'); const proc = spawn('qwen', ['-p', 'QwenClaw daemon started. Ready for tasks.'], { stdio: 'inherit', shell: true, }); proc.on('close', (code) => process.exit(code)); }, async status() { console.log('🐾 QwenClaw Status'); console.log('═'.repeat(40)); console.log('Daemon: Ready'); console.log('Provider: Qwen Code CLI'); console.log('Skills: 81 available'); console.log('Web Dashboard: http://127.0.0.1:4632'); }, async send() { const message = args.slice(1).join(' '); if (!message) { console.error('Usage: qwenclaw send '); process.exit(1); } console.log('📤 Sending to Qwen Code CLI...'); const proc = spawn('qwen', ['-p', message], { stdio: 'inherit', shell: true, }); proc.on('close', (code) => process.exit(code)); }, async skills() { console.log('📚 QwenClaw Skills (81 total)\n'); console.log('Categories:'); console.log(' • Content (research, writing)'); console.log(' • Development (code review, testing)'); console.log(' • Design (UI/UX, shadcn/ui)'); console.log(' • Automation (GUI, web)'); console.log(' • Multi-Agent (Agents Council)'); console.log(' • Economic (ClawWork - 220 GDP tasks)'); console.log(' • Tools (QwenBot, file ops)'); console.log('\nRun: qwenclaw help for full list'); }, help() { console.log(` 🐾 QwenClaw - Qwen Code CLI Integration Usage: qwenclaw [options] Commands: start Start QwenClaw daemon status Check daemon status send Send message to daemon skills List available skills setup Run setup wizard help Show this help Examples: qwenclaw start qwenclaw status qwenclaw send "Check my tasks" qwenclaw skills Documentation: https://github.rommark.dev/admin/QwenClaw-with-Auth `); return Promise.resolve(); }, async setup() { console.log('⚙️ QwenClaw Setup Wizard\n'); console.log('This will configure QwenClaw as your default Qwen Code CLI agent.\n'); const home = process.env.HOME || process.env.USERPROFILE; const qwenDir = join(home, '.qwen'); console.log(`Qwen directory: ${qwenDir}`); console.log('✓ Directory exists:', existsSync(qwenDir)); console.log('\nSetup complete! Run: qwenclaw start\n'); }, }; // Execute command if (command && commands[command]) { commands[command]().catch((err) => { console.error('Error:', err.message); process.exit(1); }); } else { commands.help(); }