UNPKG

wordlift-cli

Version:

WordLift CLI - Your AI SEO Assistant powered by Google Gemini. Agentic SEO workflows with Agent Skills support, WordLift MCP integration, knowledge graphs, and intelligent content optimization for modern content creators.

91 lines (74 loc) 3.46 kB
#!/usr/bin/env node /** * WordLift CLI - Standalone version with embedded WordLift branding * @license Apache-2.0 */ const { spawn } = require('child_process'); const path = require('path'); const fs = require('fs'); const os = require('os'); // Get the directory where this script is located const scriptDir = path.dirname(__filename); const projectRoot = path.dirname(scriptDir); // Set up environment variables process.env.GEMINI_CONFIG_DIR = path.join(projectRoot, '.gemini'); // Function to patch Gemini CLI with WordLift branding function patchGeminiCLI() { const tempDir = os.tmpdir(); const patchedDir = path.join(tempDir, 'wordlift-gemini-cli'); if (!fs.existsSync(patchedDir)) { fs.mkdirSync(patchedDir, { recursive: true }); // Create a patched version of the AsciiArt.js const patchedAsciiArt = `/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ export const shortAsciiLogo = \` ██ ██ ██████ ██████ ██████ ██ ██ ███████ ████████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ ██ ██████ ██ ██ ██ ██ █████ ██ ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███ ███ ██████ ██ ██ ██████ ███████ ██ ██ ██ 🚀 WordLift CLI - Your SEO Assistant \`; export const longAsciiLogo = \` ██ ██ ██████ ██████ ██████ ██ ██ ███████ ████████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ ██ ██████ ██ ██ ██ ██ █████ ██ ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███ ███ ██████ ██ ██ ██████ ███████ ██ ██ ██ 🚀 WordLift CLI - Your SEO Assistant \`; //# sourceMappingURL=AsciiArt.js.map`; fs.writeFileSync(path.join(patchedDir, 'AsciiArt.js'), patchedAsciiArt); } return patchedDir; } // Prepare arguments - pass through all command line arguments const args = process.argv.slice(2); // Use npx to run Gemini CLI but with environment variable to override the ASCII art const patchedDir = patchGeminiCLI(); process.env.NODE_PATH = patchedDir + ':' + (process.env.NODE_PATH || ''); // Spawn the Gemini CLI with WordLift configuration const geminiProcess = spawn('npx', ['@google/gemini-cli', ...args], { stdio: 'inherit', cwd: projectRoot, env: { ...process.env, GEMINI_CONFIG_DIR: path.join(projectRoot, '.gemini'), WORDLIFT_BRANDING: 'true' } }); geminiProcess.on('error', (error) => { if (error.code === 'ENOENT') { console.error('❌ Failed to start WordLift CLI. Please ensure Node.js is installed.'); console.error(' You can also try: npm install -g @google/gemini-cli'); } else { console.error('❌ Error running WordLift CLI:', error.message); } process.exit(1); }); geminiProcess.on('close', (code) => { process.exit(code); });