wenox-cli 2.2.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -64
- package/bin/wenox.js +18 -234
- package/package.json +3 -11
- package/requirements-wenox.txt +0 -33
- package/scripts/install-python-deps.js +0 -48
package/README.md
CHANGED
|
@@ -1,101 +1,119 @@
|
|
|
1
1
|
# WENOX CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Claude API • Enterprise AI Platform**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Basit kurulum, sıfır sorun. Python dependency cehennemini atlayın.
|
|
6
|
+
|
|
7
|
+
## Hızlı Kurulum
|
|
6
8
|
|
|
7
9
|
```bash
|
|
10
|
+
# 1. WENOX CLI'yi kur
|
|
8
11
|
npm install -g wenox-cli
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Setup & Usage
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
# 2. Python bağımlılığını kur
|
|
14
|
+
pip install aider-chat
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
# 3. API anahtarını ayarla
|
|
17
|
+
set WENOX_API_KEY=your_api_key_here
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**For PowerShell:**
|
|
23
|
-
```powershell
|
|
24
|
-
$env:WENOX_API_KEY="your_api_key_here"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**For Linux/Mac:**
|
|
28
|
-
```bash
|
|
29
|
-
export WENOX_API_KEY="your_api_key_here"
|
|
30
|
-
```
|
|
19
|
+
# 4. Başlat
|
|
20
|
+
wenox
|
|
21
|
+
```
|
|
31
22
|
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
wenox
|
|
35
|
-
```
|
|
23
|
+
## Özellikler
|
|
36
24
|
|
|
37
|
-
|
|
25
|
+
- 🚀 **Sıfır Karmaşa** - Basit pip install, çalışır
|
|
26
|
+
- 🔧 **Manuel Kontrol** - Sen kurarsın, sen kontrol edersin
|
|
27
|
+
- 🎯 **Garantili Çalışma** - Python dependency cehennemini atlar
|
|
28
|
+
- 💻 **Çapraz Platform** - Windows, macOS, Linux
|
|
29
|
+
- 🛡️ **Güvenli** - Kendi Python ortamında çalışır
|
|
38
30
|
|
|
39
|
-
|
|
40
|
-
If you get `'wenox' is not recognized` error:
|
|
31
|
+
## Kurulum Seçenekleri
|
|
41
32
|
|
|
42
|
-
1
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
### Yöntem 1: Global Kurulum (Önerilen)
|
|
34
|
+
```bash
|
|
35
|
+
npm install -g wenox-cli
|
|
36
|
+
pip install aider-chat
|
|
37
|
+
```
|
|
46
38
|
|
|
47
|
-
|
|
39
|
+
### Yöntem 2: NPX (Kurulum Yok)
|
|
40
|
+
```bash
|
|
41
|
+
npx wenox-cli
|
|
42
|
+
# (Yine de pip install aider-chat gerekli)
|
|
43
|
+
```
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
npm config get prefix
|
|
52
|
-
```
|
|
45
|
+
## Kurulum
|
|
53
46
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
1. **Python bağımlılığını kur**: `pip install aider-chat`
|
|
48
|
+
2. **API anahtarını al**: [wenox.ai/dashboard](https://wenox.ai/dashboard)
|
|
49
|
+
3. **Ortam değişkenini ayarla**:
|
|
50
|
+
- **CMD**: `set WENOX_API_KEY=your_key_here`
|
|
51
|
+
- **PowerShell**: `$env:WENOX_API_KEY="your_key_here"`
|
|
52
|
+
4. **WENOX'u çalıştır**: `wenox`
|
|
58
53
|
|
|
59
|
-
##
|
|
54
|
+
## Sistem Gereksinimleri
|
|
60
55
|
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- 🔄 **Real-time Collaboration** - AI pair programming
|
|
64
|
-
- 📁 **Project Aware** - Understands your entire codebase
|
|
65
|
-
- ⚡ **Lightning Fast** - Optimized for productivity
|
|
56
|
+
- **Python 3.10+** + `pip install aider-chat`
|
|
57
|
+
- **Node.js 16+** (NPM kurulumu için)
|
|
66
58
|
|
|
67
|
-
##
|
|
59
|
+
## Kullanım
|
|
68
60
|
|
|
69
61
|
```bash
|
|
70
|
-
#
|
|
62
|
+
# Mevcut dizinde WENOX'u başlat
|
|
71
63
|
wenox
|
|
72
64
|
|
|
73
|
-
#
|
|
74
|
-
wenox
|
|
65
|
+
# Belirli dosyalarla çalış
|
|
66
|
+
wenox file1.py file2.js
|
|
75
67
|
|
|
76
|
-
#
|
|
68
|
+
# Farklı AI modeli kullan
|
|
77
69
|
wenox --model gpt-4
|
|
78
70
|
|
|
79
|
-
#
|
|
71
|
+
# Yardım al
|
|
80
72
|
wenox --help
|
|
81
73
|
```
|
|
82
74
|
|
|
83
|
-
##
|
|
75
|
+
## Sorun Giderme
|
|
76
|
+
|
|
77
|
+
### "wenox komutu bulunamadı"
|
|
78
|
+
- Dene: `npx wenox-cli`
|
|
79
|
+
- Veya kurulumdan sonra terminali yeniden başlat
|
|
80
|
+
|
|
81
|
+
### Python Hataları
|
|
82
|
+
```bash
|
|
83
|
+
pip install aider-chat
|
|
84
|
+
# Veya
|
|
85
|
+
pip install aider-chat --user
|
|
86
|
+
# Veya
|
|
87
|
+
python -m pip install aider-chat
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### API Anahtarı Sorunları
|
|
91
|
+
API anahtarının doğru ayarlandığından emin ol:
|
|
92
|
+
- CMD: `echo %WENOX_API_KEY%`
|
|
93
|
+
- PowerShell: `echo $env:WENOX_API_KEY`
|
|
84
94
|
|
|
85
|
-
|
|
86
|
-
- Python 3.10+ (auto-detected and prompted if missing)
|
|
95
|
+
## v3.1.0'daki Yenilikler
|
|
87
96
|
|
|
88
|
-
|
|
97
|
+
- ✅ **Basitleştirilmiş Yaklaşım** - Otomatik kurulum yok, manuel kontrol
|
|
98
|
+
- ✅ **Sıfır Dependency Cehennem** - Sen pip install yaparsın, çalışır
|
|
99
|
+
- ✅ **Net Hata Mesajları** - Sorun olursa ne yapacağın belli
|
|
100
|
+
- ✅ **Müşteri Dostu** - Kurulum adımları açık ve net
|
|
89
101
|
|
|
90
|
-
|
|
91
|
-
|
|
102
|
+
## Müşteri İçin Basit Talimat
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Bu 4 komutu çalıştır, çalışır:
|
|
106
|
+
npm install -g wenox-cli
|
|
107
|
+
pip install aider-chat
|
|
108
|
+
set WENOX_API_KEY=your_key_here
|
|
109
|
+
wenox
|
|
110
|
+
```
|
|
92
111
|
|
|
93
|
-
##
|
|
112
|
+
## Destek
|
|
94
113
|
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
- 📧 [Support](mailto:support@wenox.ai)
|
|
114
|
+
- 📧 Email: support@wenox.ai
|
|
115
|
+
- 🌐 Website: [wenox.ai](https://wenox.ai)
|
|
98
116
|
|
|
99
117
|
---
|
|
100
118
|
|
|
101
|
-
**WENOX** -
|
|
119
|
+
**WENOX CLI v3.1.0** - Basit kurulum, garantili çalışma.
|
package/bin/wenox.js
CHANGED
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const { spawn } = require('child_process');
|
|
4
|
-
const path = require('path');
|
|
5
|
-
const fs = require('fs');
|
|
6
|
-
const os = require('os');
|
|
7
|
-
|
|
8
|
-
// WENOX environment path
|
|
9
|
-
const WENOX_ENV_PATH = path.join(os.homedir(), '.wenox', 'env');
|
|
10
|
-
const WENOX_PYTHON = process.platform === 'win32'
|
|
11
|
-
? path.join(WENOX_ENV_PATH, 'Scripts', 'python.exe')
|
|
12
|
-
: path.join(WENOX_ENV_PATH, 'bin', 'python');
|
|
13
|
-
const WENOX_PIP = process.platform === 'win32'
|
|
14
|
-
? path.join(WENOX_ENV_PATH, 'Scripts', 'pip.exe')
|
|
15
|
-
: path.join(WENOX_ENV_PATH, 'bin', 'pip');
|
|
16
4
|
|
|
17
5
|
// Simple console colors
|
|
18
6
|
const chalk = {
|
|
@@ -24,21 +12,6 @@ const chalk = {
|
|
|
24
12
|
bold: (text) => `\x1b[1m${text}\x1b[0m`
|
|
25
13
|
};
|
|
26
14
|
|
|
27
|
-
// Simple boxen replacement
|
|
28
|
-
function boxen(content, options = {}) {
|
|
29
|
-
const lines = content.split('\n');
|
|
30
|
-
const maxLength = Math.max(...lines.map(line => line.length));
|
|
31
|
-
const border = '─'.repeat(maxLength + 2);
|
|
32
|
-
|
|
33
|
-
let result = `┌${border}┐\n`;
|
|
34
|
-
lines.forEach(line => {
|
|
35
|
-
result += `│ ${line.padEnd(maxLength)} │\n`;
|
|
36
|
-
});
|
|
37
|
-
result += `└${border}┘`;
|
|
38
|
-
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
15
|
// WENOX Banner
|
|
43
16
|
const banner = chalk.cyan(`
|
|
44
17
|
██╗ ██╗███████╗███╗ ██╗ ██████╗ ██╗ ██╗
|
|
@@ -52,182 +25,7 @@ const banner = chalk.cyan(`
|
|
|
52
25
|
`);
|
|
53
26
|
|
|
54
27
|
function showWelcome() {
|
|
55
|
-
console.log(
|
|
56
|
-
padding: 1,
|
|
57
|
-
margin: 1,
|
|
58
|
-
borderStyle: 'round',
|
|
59
|
-
borderColor: 'cyan'
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function checkPython() {
|
|
64
|
-
return new Promise((resolve) => {
|
|
65
|
-
const python = process.platform === 'win32' ? 'python' : 'python3';
|
|
66
|
-
const child = spawn(python, ['--version'], { stdio: 'pipe' });
|
|
67
|
-
|
|
68
|
-
let versionOutput = '';
|
|
69
|
-
child.stdout.on('data', (data) => {
|
|
70
|
-
versionOutput += data.toString();
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
child.on('close', (code) => {
|
|
74
|
-
if (code === 0) {
|
|
75
|
-
// Extract version number
|
|
76
|
-
const versionMatch = versionOutput.match(/Python (\d+)\.(\d+)\.(\d+)/);
|
|
77
|
-
if (versionMatch) {
|
|
78
|
-
const major = parseInt(versionMatch[1]);
|
|
79
|
-
const minor = parseInt(versionMatch[2]);
|
|
80
|
-
|
|
81
|
-
console.log(chalk.cyan(`🐍 Python ${major}.${minor} detected`));
|
|
82
|
-
|
|
83
|
-
if (major === 3 && minor >= 14) {
|
|
84
|
-
console.log(chalk.green('✅ Python 3.14+ detected - using latest compatible packages'));
|
|
85
|
-
} else if (major === 3 && minor === 12) {
|
|
86
|
-
console.log(chalk.green('✅ Python 3.12 detected - excellent compatibility'));
|
|
87
|
-
} else if (major === 3 && minor >= 10) {
|
|
88
|
-
console.log(chalk.green('✅ Python 3.10-3.13 detected - good compatibility'));
|
|
89
|
-
} else {
|
|
90
|
-
console.log(chalk.red('❌ Python 3.10+ is required for WENOX'));
|
|
91
|
-
resolve(false);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
resolve(true);
|
|
96
|
-
} else {
|
|
97
|
-
resolve(false);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
child.on('error', () => {
|
|
102
|
-
resolve(false);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function checkWenoxEnvironment() {
|
|
108
|
-
return fs.existsSync(WENOX_PYTHON) && fs.existsSync(WENOX_PIP);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
async function createWenoxEnvironment() {
|
|
112
|
-
console.log(chalk.cyan('🔧 Creating WENOX isolated environment...'));
|
|
113
|
-
|
|
114
|
-
// Create .wenox directory
|
|
115
|
-
const wenoxDir = path.join(os.homedir(), '.wenox');
|
|
116
|
-
if (!fs.existsSync(wenoxDir)) {
|
|
117
|
-
fs.mkdirSync(wenoxDir, { recursive: true });
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return new Promise((resolve, reject) => {
|
|
121
|
-
const python = process.platform === 'win32' ? 'python' : 'python3';
|
|
122
|
-
|
|
123
|
-
// Create virtual environment
|
|
124
|
-
const venvChild = spawn(python, ['-m', 'venv', WENOX_ENV_PATH], {
|
|
125
|
-
stdio: 'inherit',
|
|
126
|
-
shell: true
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
venvChild.on('close', (code) => {
|
|
130
|
-
if (code === 0) {
|
|
131
|
-
console.log(chalk.green('✅ WENOX environment created successfully!'));
|
|
132
|
-
resolve();
|
|
133
|
-
} else {
|
|
134
|
-
reject(new Error('Failed to create WENOX environment'));
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
venvChild.on('error', (err) => {
|
|
139
|
-
reject(err);
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
async function installWenoxPackages() {
|
|
145
|
-
console.log(chalk.cyan('📦 Installing WENOX packages in isolated environment...'));
|
|
146
|
-
console.log(chalk.yellow('🔧 This ensures no conflicts with your system Python'));
|
|
147
|
-
|
|
148
|
-
return new Promise((resolve, reject) => {
|
|
149
|
-
// First upgrade pip in the virtual environment
|
|
150
|
-
console.log(chalk.cyan('🔧 Upgrading pip in WENOX environment...'));
|
|
151
|
-
|
|
152
|
-
const upgradeChild = spawn(WENOX_PIP, [
|
|
153
|
-
'install',
|
|
154
|
-
'--upgrade',
|
|
155
|
-
'pip>=25.0',
|
|
156
|
-
'setuptools>=70.0',
|
|
157
|
-
'wheel'
|
|
158
|
-
], {
|
|
159
|
-
stdio: 'inherit',
|
|
160
|
-
shell: true
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
upgradeChild.on('close', (upgradeCode) => {
|
|
164
|
-
if (upgradeCode !== 0) {
|
|
165
|
-
console.log(chalk.yellow('⚠️ Pip upgrade failed, continuing anyway...'));
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Install core packages first without dependencies
|
|
169
|
-
console.log(chalk.cyan('📋 Installing core WENOX packages...'));
|
|
170
|
-
|
|
171
|
-
const coreChild = spawn(WENOX_PIP, [
|
|
172
|
-
'install',
|
|
173
|
-
'aider-chat==0.16.0',
|
|
174
|
-
'openai==0.27.6',
|
|
175
|
-
'anthropic==0.76.0',
|
|
176
|
-
'--no-deps'
|
|
177
|
-
], {
|
|
178
|
-
stdio: 'inherit',
|
|
179
|
-
shell: true
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
coreChild.on('close', (code) => {
|
|
183
|
-
if (code === 0) {
|
|
184
|
-
console.log(chalk.green('✅ Core packages installed!'));
|
|
185
|
-
|
|
186
|
-
// Now install dependencies from requirements
|
|
187
|
-
console.log(chalk.cyan('📋 Installing additional dependencies...'));
|
|
188
|
-
|
|
189
|
-
const requirementsPath = path.join(__dirname, '..', 'requirements-wenox.txt');
|
|
190
|
-
|
|
191
|
-
const depsChild = spawn(WENOX_PIP, [
|
|
192
|
-
'install',
|
|
193
|
-
'-r',
|
|
194
|
-
requirementsPath
|
|
195
|
-
], {
|
|
196
|
-
stdio: 'inherit',
|
|
197
|
-
shell: true
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
depsChild.on('close', (depsCode) => {
|
|
201
|
-
if (depsCode === 0) {
|
|
202
|
-
console.log(chalk.green('✅ WENOX packages installed successfully!'));
|
|
203
|
-
console.log(chalk.cyan('🎯 All packages are isolated and working perfectly'));
|
|
204
|
-
resolve();
|
|
205
|
-
} else {
|
|
206
|
-
console.log(chalk.yellow('⚠️ Some dependencies failed, but core packages are ready'));
|
|
207
|
-
console.log(chalk.green('✅ WENOX should work with basic functionality'));
|
|
208
|
-
resolve();
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
depsChild.on('error', (err) => {
|
|
213
|
-
console.log(chalk.yellow('⚠️ Dependencies installation failed, but core is ready'));
|
|
214
|
-
resolve();
|
|
215
|
-
});
|
|
216
|
-
} else {
|
|
217
|
-
console.log(chalk.red('❌ Core package installation failed'));
|
|
218
|
-
reject(new Error('Failed to install core WENOX packages'));
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
coreChild.on('error', (err) => {
|
|
223
|
-
reject(err);
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
upgradeChild.on('error', (err) => {
|
|
228
|
-
console.log(chalk.yellow('⚠️ Pip upgrade failed, continuing with installation...'));
|
|
229
|
-
});
|
|
230
|
-
});
|
|
28
|
+
console.log(banner);
|
|
231
29
|
}
|
|
232
30
|
|
|
233
31
|
function checkApiKey() {
|
|
@@ -241,7 +39,7 @@ function checkApiKey() {
|
|
|
241
39
|
console.log(' ' + chalk.bold('CMD:') + ' set WENOX_API_KEY=your_api_key_here');
|
|
242
40
|
console.log(' ' + chalk.bold('PowerShell:') + ' $env:WENOX_API_KEY="your_api_key_here"');
|
|
243
41
|
console.log('\n3. Run ' + chalk.cyan('wenox') + ' again');
|
|
244
|
-
console.log('\n' + chalk.yellow('💡 Tip: If "wenox" command not found, try: npx wenox'));
|
|
42
|
+
console.log('\n' + chalk.yellow('💡 Tip: If "wenox" command not found, try: npx wenox-cli'));
|
|
245
43
|
process.exit(1);
|
|
246
44
|
}
|
|
247
45
|
|
|
@@ -278,8 +76,10 @@ async function runAider() {
|
|
|
278
76
|
const args = [...defaultArgs, ...userArgs];
|
|
279
77
|
|
|
280
78
|
console.log(chalk.green('✅ Starting WENOX Claude API Platform...\n'));
|
|
79
|
+
console.log(chalk.yellow('💡 Make sure you have: pip install aider-chat'));
|
|
281
80
|
|
|
282
|
-
const
|
|
81
|
+
const python = process.platform === 'win32' ? 'python' : 'python3';
|
|
82
|
+
const child = spawn(python, args, {
|
|
283
83
|
stdio: 'inherit',
|
|
284
84
|
shell: true
|
|
285
85
|
});
|
|
@@ -293,6 +93,12 @@ async function runAider() {
|
|
|
293
93
|
|
|
294
94
|
child.on('error', (err) => {
|
|
295
95
|
console.error(chalk.red('❌ Error starting WENOX:'), err.message);
|
|
96
|
+
console.log(chalk.cyan('\n💡 Quick Fix:'));
|
|
97
|
+
console.log(chalk.cyan(' pip install aider-chat'));
|
|
98
|
+
console.log(chalk.cyan(' python -m pip install aider-chat'));
|
|
99
|
+
console.log(chalk.cyan('\n💡 If still issues:'));
|
|
100
|
+
console.log(chalk.cyan(' pip install --upgrade pip setuptools'));
|
|
101
|
+
console.log(chalk.cyan(' pip install aider-chat --user'));
|
|
296
102
|
process.exit(1);
|
|
297
103
|
});
|
|
298
104
|
}
|
|
@@ -325,19 +131,20 @@ ${chalk.bold('Examples:')}
|
|
|
325
131
|
wenox --model gpt-4 # Use specific model
|
|
326
132
|
|
|
327
133
|
${chalk.bold('Setup:')}
|
|
328
|
-
1.
|
|
329
|
-
2.
|
|
134
|
+
1. Install Python dependency: ${chalk.cyan('pip install aider-chat')}
|
|
135
|
+
2. Get API key: ${chalk.blue('https://wenox.ai/dashboard')}
|
|
136
|
+
3. Set environment variable:
|
|
330
137
|
${chalk.yellow('CMD:')} set WENOX_API_KEY=your_key
|
|
331
138
|
${chalk.yellow('PowerShell:')} $env:WENOX_API_KEY="your_key"
|
|
332
|
-
|
|
139
|
+
4. Run: ${chalk.cyan('wenox')}
|
|
333
140
|
|
|
334
141
|
${chalk.bold('Troubleshooting:')}
|
|
335
|
-
• If 'wenox' command not found, try: ${chalk.cyan('npx wenox')}
|
|
142
|
+
• If 'wenox' command not found, try: ${chalk.cyan('npx wenox-cli')}
|
|
143
|
+
• If Python errors: ${chalk.cyan('pip install aider-chat --user')}
|
|
336
144
|
• Or restart your terminal after installation
|
|
337
|
-
• Check PATH: ${chalk.cyan('npm config get prefix')}
|
|
338
145
|
|
|
339
146
|
${chalk.bold('System Requirements:')}
|
|
340
|
-
• Python 3.10+
|
|
147
|
+
• Python 3.10+ with pip install aider-chat
|
|
341
148
|
• Node.js 16+ for NPM installation
|
|
342
149
|
`);
|
|
343
150
|
return;
|
|
@@ -345,29 +152,6 @@ ${chalk.bold('System Requirements:')}
|
|
|
345
152
|
|
|
346
153
|
showWelcome();
|
|
347
154
|
|
|
348
|
-
// Check Python
|
|
349
|
-
const hasPython = await checkPython();
|
|
350
|
-
if (!hasPython) {
|
|
351
|
-
console.log(chalk.red('❌ Python 3.10+ is required'));
|
|
352
|
-
console.log('Please install Python from: https://python.org');
|
|
353
|
-
process.exit(1);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
// Check if WENOX environment exists
|
|
357
|
-
const hasWenoxEnv = checkWenoxEnvironment();
|
|
358
|
-
if (!hasWenoxEnv) {
|
|
359
|
-
console.log(chalk.cyan('🔧 First time setup - creating WENOX environment...'));
|
|
360
|
-
try {
|
|
361
|
-
await createWenoxEnvironment();
|
|
362
|
-
await installWenoxPackages();
|
|
363
|
-
} catch (err) {
|
|
364
|
-
console.error(chalk.red('❌ Failed to setup WENOX environment:'), err.message);
|
|
365
|
-
process.exit(1);
|
|
366
|
-
}
|
|
367
|
-
} else {
|
|
368
|
-
console.log(chalk.green('✅ WENOX environment ready'));
|
|
369
|
-
}
|
|
370
|
-
|
|
371
155
|
// Setup WENOX defaults
|
|
372
156
|
setupWenoxDefaults();
|
|
373
157
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wenox-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "WENOX AI - Advanced AI-powered development assistant",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"wenox": "bin/wenox.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"postinstall": "node scripts/install-python-deps.js",
|
|
11
10
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
12
11
|
},
|
|
13
12
|
"keywords": [
|
|
@@ -25,17 +24,10 @@
|
|
|
25
24
|
"type": "git",
|
|
26
25
|
"url": "git+https://github.com/wenox/wenox-cli.git"
|
|
27
26
|
},
|
|
28
|
-
"dependencies": {
|
|
29
|
-
"inquirer": "^9.2.12",
|
|
30
|
-
"ora": "^7.0.1",
|
|
31
|
-
"boxen": "^7.1.1",
|
|
32
|
-
"node-fetch": "^3.3.2"
|
|
33
|
-
},
|
|
27
|
+
"dependencies": {},
|
|
34
28
|
"files": [
|
|
35
29
|
"bin/",
|
|
36
|
-
"
|
|
37
|
-
"README.md",
|
|
38
|
-
"requirements-wenox.txt"
|
|
30
|
+
"README.md"
|
|
39
31
|
],
|
|
40
32
|
"engines": {
|
|
41
33
|
"node": ">=16.0.0"
|
package/requirements-wenox.txt
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# WENOX Enterprise Environment - Minimal Working Configuration
|
|
2
|
-
# Core WENOX dependencies only - no version conflicts
|
|
3
|
-
aider-chat==0.16.0
|
|
4
|
-
openai==0.27.6
|
|
5
|
-
anthropic==0.76.0
|
|
6
|
-
|
|
7
|
-
# Essential dependencies - let pip resolve versions automatically
|
|
8
|
-
requests
|
|
9
|
-
tqdm
|
|
10
|
-
colorama
|
|
11
|
-
click
|
|
12
|
-
pydantic
|
|
13
|
-
tiktoken
|
|
14
|
-
PyYAML
|
|
15
|
-
tree-sitter
|
|
16
|
-
diskcache
|
|
17
|
-
GitPython
|
|
18
|
-
rich
|
|
19
|
-
prompt-toolkit
|
|
20
|
-
Pygments
|
|
21
|
-
pathspec
|
|
22
|
-
networkx
|
|
23
|
-
numpy
|
|
24
|
-
scipy
|
|
25
|
-
sounddevice
|
|
26
|
-
soundfile
|
|
27
|
-
grep-ast
|
|
28
|
-
backoff
|
|
29
|
-
ConfigArgParse
|
|
30
|
-
markdown-it-py
|
|
31
|
-
|
|
32
|
-
# Note: Minimal package list to avoid dependency conflicts
|
|
33
|
-
# Additional packages will be installed as dependencies automatically
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { spawn } = require('child_process');
|
|
4
|
-
|
|
5
|
-
// Simple console colors without chalk
|
|
6
|
-
const colors = {
|
|
7
|
-
cyan: (text) => `\x1b[36m${text}\x1b[0m`,
|
|
8
|
-
green: (text) => `\x1b[32m${text}\x1b[0m`,
|
|
9
|
-
yellow: (text) => `\x1b[33m${text}\x1b[0m`,
|
|
10
|
-
blue: (text) => `\x1b[34m${text}\x1b[0m`
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
console.log(colors.cyan('🚀 Setting up WENOX CLI...'));
|
|
14
|
-
|
|
15
|
-
function checkPython() {
|
|
16
|
-
return new Promise((resolve) => {
|
|
17
|
-
const python = process.platform === 'win32' ? 'python' : 'python3';
|
|
18
|
-
const child = spawn(python, ['--version'], { stdio: 'pipe' });
|
|
19
|
-
|
|
20
|
-
child.on('close', (code) => {
|
|
21
|
-
resolve(code === 0);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
child.on('error', () => {
|
|
25
|
-
resolve(false);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
async function main() {
|
|
31
|
-
const hasPython = await checkPython();
|
|
32
|
-
|
|
33
|
-
if (!hasPython) {
|
|
34
|
-
console.log(colors.yellow('⚠️ Python 3.10+ is required for WENOX CLI'));
|
|
35
|
-
console.log('Please install Python from: https://python.org');
|
|
36
|
-
console.log('After installing Python, run: ' + colors.cyan('npm install -g wenox-cli'));
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
console.log(colors.green('✅ Python detected'));
|
|
41
|
-
console.log(colors.green('✅ WENOX CLI is ready!'));
|
|
42
|
-
console.log('\nNext steps:');
|
|
43
|
-
console.log('1. Get your API key: ' + colors.blue('https://wenox.ai/dashboard'));
|
|
44
|
-
console.log('2. Set environment: ' + colors.yellow('export WENOX_API_KEY=your_key'));
|
|
45
|
-
console.log('3. Run: ' + colors.cyan('wenox'));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
main();
|