wenox-cli 3.2.0 → 3.2.1
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 +45 -53
- package/bin/wenox.js +93 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,65 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
**Claude API • Enterprise AI Platform**
|
|
4
4
|
|
|
5
|
-
Python 3.
|
|
5
|
+
Otomatik Python 3.12 indirici ile sıfır kurulum sorunu!
|
|
6
6
|
|
|
7
7
|
## Hızlı Kurulum
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# 2. Python bağımlılığını kur (Python 3.14 uyumlu)
|
|
14
|
-
pip install aider-chat --only-binary=all
|
|
10
|
+
# Tek komut - gerisini WENOX halleder:
|
|
11
|
+
npx wenox-cli
|
|
15
12
|
|
|
16
|
-
#
|
|
13
|
+
# API anahtarını ayarla
|
|
17
14
|
set WENOX_API_KEY=your_api_key_here
|
|
18
15
|
|
|
19
|
-
#
|
|
16
|
+
# Başlat
|
|
20
17
|
wenox
|
|
21
18
|
```
|
|
22
19
|
|
|
23
|
-
## Python
|
|
20
|
+
## Otomatik Python İndirici
|
|
24
21
|
|
|
25
|
-
Python 3.
|
|
22
|
+
WENOX artık **otomatik olarak Python 3.12 indirir**:
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
- 🚀 **Sıfır Kurulum** - Python kurmanıza gerek yok
|
|
25
|
+
- 📦 **Portable Python 3.12** - 50MB indirme (tek seferlik)
|
|
26
|
+
- 🔧 **Otomatik Aider Kurulumu** - Her şey hazır gelir
|
|
27
|
+
- 🛡️ **İzole Ortam** - Sistem Python'unu etkilemez
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
pip install --upgrade pip setuptools
|
|
33
|
-
pip install aider-chat
|
|
29
|
+
## Nasıl Çalışır
|
|
34
30
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
1. **İlk çalıştırma:** WENOX otomatik Python 3.12 indirir
|
|
32
|
+
2. **Aider kurulumu:** Portable Python'a aider-chat kurar
|
|
33
|
+
3. **Hazır!** - Artık her seferinde hızlı başlar
|
|
38
34
|
|
|
39
35
|
## Özellikler
|
|
40
36
|
|
|
41
|
-
- 🚀 **Python
|
|
42
|
-
- 🔧 **
|
|
43
|
-
- 🎯 **Garantili Çalışma** -
|
|
37
|
+
- 🚀 **Otomatik Python İndirici** - Python 3.12 portable
|
|
38
|
+
- 🔧 **Sıfır Dependency Sorunu** - İzole ortam
|
|
39
|
+
- 🎯 **Garantili Çalışma** - Setuptools sorunlarını atlar
|
|
44
40
|
- 💻 **Çapraz Platform** - Windows, macOS, Linux
|
|
45
|
-
- 🛡️ **Güvenli** -
|
|
41
|
+
- 🛡️ **Güvenli** - ~/.wenox klasöründe izole
|
|
46
42
|
|
|
47
43
|
## Kurulum Seçenekleri
|
|
48
44
|
|
|
49
|
-
### Yöntem 1:
|
|
45
|
+
### Yöntem 1: NPX (Önerilen)
|
|
50
46
|
```bash
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
npx wenox-cli
|
|
48
|
+
# Otomatik Python indirir ve kurar
|
|
53
49
|
```
|
|
54
50
|
|
|
55
|
-
### Yöntem 2:
|
|
51
|
+
### Yöntem 2: Global Kurulum
|
|
56
52
|
```bash
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
npm install -g wenox-cli
|
|
54
|
+
wenox
|
|
55
|
+
# Otomatik Python indirir ve kurar
|
|
59
56
|
```
|
|
60
57
|
|
|
61
58
|
## Kurulum
|
|
62
59
|
|
|
63
|
-
1. **
|
|
60
|
+
1. **WENOX'u çalıştır**: `npx wenox-cli` (otomatik Python indirir)
|
|
64
61
|
2. **API anahtarını al**: [wenox.ai/dashboard](https://wenox.ai/dashboard)
|
|
65
62
|
3. **Ortam değişkenini ayarla**:
|
|
66
63
|
- **CMD**: `set WENOX_API_KEY=your_key_here`
|
|
@@ -69,8 +66,10 @@ npx wenox-cli
|
|
|
69
66
|
|
|
70
67
|
## Sistem Gereksinimleri
|
|
71
68
|
|
|
72
|
-
- **Python 3.10+** (3.12 önerilen, 3.14 destekli)
|
|
73
69
|
- **Node.js 16+** (NPM kurulumu için)
|
|
70
|
+
- **İnternet bağlantısı** (Python indirme için, tek seferlik)
|
|
71
|
+
|
|
72
|
+
Python kurmanıza gerek yok! WENOX otomatik indirir.
|
|
74
73
|
|
|
75
74
|
## Kullanım
|
|
76
75
|
|
|
@@ -94,42 +93,35 @@ wenox --help
|
|
|
94
93
|
- Dene: `npx wenox-cli`
|
|
95
94
|
- Veya kurulumdan sonra terminali yeniden başlat
|
|
96
95
|
|
|
97
|
-
### Python
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
# Alternatif:
|
|
103
|
-
pip install --upgrade pip setuptools
|
|
104
|
-
pip install aider-chat
|
|
105
|
-
|
|
106
|
-
# Son çare:
|
|
107
|
-
pip install aider-chat --no-deps
|
|
108
|
-
pip install tree-sitter
|
|
109
|
-
```
|
|
96
|
+
### Python İndirme Sorunları
|
|
97
|
+
WENOX otomatik Python indirir. Sorun olursa:
|
|
98
|
+
- İnternet bağlantınızı kontrol edin
|
|
99
|
+
- Güvenlik duvarı Python indirmeyi engelliyor olabilir
|
|
110
100
|
|
|
111
101
|
### API Anahtarı Sorunları
|
|
112
102
|
API anahtarının doğru ayarlandığından emin ol:
|
|
113
103
|
- CMD: `echo %WENOX_API_KEY%`
|
|
114
104
|
- PowerShell: `echo $env:WENOX_API_KEY`
|
|
115
105
|
|
|
116
|
-
## v3.1
|
|
106
|
+
## v3.2.1'deki Yenilikler
|
|
117
107
|
|
|
118
|
-
- ✅ **Python
|
|
119
|
-
- ✅ **
|
|
120
|
-
- ✅ **
|
|
121
|
-
- ✅ **
|
|
108
|
+
- ✅ **Otomatik Python İndirici** - Python 3.12 portable indirir
|
|
109
|
+
- ✅ **Sıfır Kurulum Sorunu** - Setuptools cehennemini atlar
|
|
110
|
+
- ✅ **İzole Ortam** - ~/.wenox klasöründe temiz kurulum
|
|
111
|
+
- ✅ **Hızlı Başlatma** - İkinci seferden itibaren anında başlar
|
|
122
112
|
|
|
123
113
|
## Müşteri İçin Basit Talimat
|
|
124
114
|
|
|
125
115
|
```bash
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
pip install aider-chat --only-binary=all
|
|
116
|
+
# Sadece bu 3 komutu çalıştır:
|
|
117
|
+
npx wenox-cli
|
|
129
118
|
set WENOX_API_KEY=your_key_here
|
|
130
119
|
wenox
|
|
131
120
|
```
|
|
132
121
|
|
|
122
|
+
İlk çalıştırmada Python 3.12 otomatik indirilir (2-3 dakika).
|
|
123
|
+
Sonraki çalıştırmalarda anında başlar!
|
|
124
|
+
|
|
133
125
|
## Destek
|
|
134
126
|
|
|
135
127
|
- 📧 Email: support@wenox.ai
|
|
@@ -137,4 +129,4 @@ wenox
|
|
|
137
129
|
|
|
138
130
|
---
|
|
139
131
|
|
|
140
|
-
**WENOX CLI v3.1
|
|
132
|
+
**WENOX CLI v3.2.1** - Otomatik Python indirici ile sıfır sorun!
|
package/bin/wenox.js
CHANGED
|
@@ -1,6 +1,85 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const https = require('https');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
|
|
8
|
+
async function downloadPortablePython() {
|
|
9
|
+
const wenoxDir = path.join(os.homedir(), '.wenox');
|
|
10
|
+
const pythonDir = path.join(wenoxDir, 'python312');
|
|
11
|
+
const pythonExe = path.join(pythonDir, 'python.exe');
|
|
12
|
+
|
|
13
|
+
// Check if portable Python already exists
|
|
14
|
+
if (fs.existsSync(pythonExe)) {
|
|
15
|
+
console.log(chalk.green('✅ Portable Python 3.12 ready'));
|
|
16
|
+
return pythonExe;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
console.log(chalk.cyan('📦 Downloading Portable Python 3.12 (one-time setup)...'));
|
|
20
|
+
console.log(chalk.yellow('⏳ This will take 2-3 minutes (50MB download)...'));
|
|
21
|
+
|
|
22
|
+
// Create directories
|
|
23
|
+
if (!fs.existsSync(wenoxDir)) {
|
|
24
|
+
fs.mkdirSync(wenoxDir, { recursive: true });
|
|
25
|
+
}
|
|
26
|
+
if (!fs.existsSync(pythonDir)) {
|
|
27
|
+
fs.mkdirSync(pythonDir, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Download portable Python 3.12
|
|
31
|
+
const pythonUrl = 'https://www.python.org/ftp/python/3.12.9/python-3.12.9-embed-amd64.zip';
|
|
32
|
+
const zipPath = path.join(wenoxDir, 'python312.zip');
|
|
33
|
+
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
const file = fs.createWriteStream(zipPath);
|
|
36
|
+
|
|
37
|
+
https.get(pythonUrl, (response) => {
|
|
38
|
+
const totalSize = parseInt(response.headers['content-length'], 10);
|
|
39
|
+
let downloadedSize = 0;
|
|
40
|
+
|
|
41
|
+
response.on('data', (chunk) => {
|
|
42
|
+
downloadedSize += chunk.length;
|
|
43
|
+
const percent = Math.round((downloadedSize / totalSize) * 100);
|
|
44
|
+
process.stdout.write(`\r${chalk.cyan('📥 Downloading:')} ${percent}%`);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
response.pipe(file);
|
|
48
|
+
|
|
49
|
+
file.on('finish', () => {
|
|
50
|
+
file.close();
|
|
51
|
+
console.log(chalk.green('\n✅ Download complete! Extracting...'));
|
|
52
|
+
|
|
53
|
+
// Extract ZIP (simple implementation)
|
|
54
|
+
const { execSync } = require('child_process');
|
|
55
|
+
try {
|
|
56
|
+
execSync(`powershell -command "Expand-Archive -Path '${zipPath}' -DestinationPath '${pythonDir}' -Force"`, { stdio: 'pipe' });
|
|
57
|
+
|
|
58
|
+
// Install pip
|
|
59
|
+
console.log(chalk.cyan('📦 Installing pip...'));
|
|
60
|
+
execSync(`"${pythonExe}" -m ensurepip --default-pip`, { stdio: 'pipe' });
|
|
61
|
+
|
|
62
|
+
// Install aider
|
|
63
|
+
console.log(chalk.cyan('📦 Installing aider-chat...'));
|
|
64
|
+
execSync(`"${pythonExe}" -m pip install aider-chat`, { stdio: 'pipe' });
|
|
65
|
+
|
|
66
|
+
console.log(chalk.green('✅ Portable Python 3.12 + Aider ready!'));
|
|
67
|
+
resolve(pythonExe);
|
|
68
|
+
} catch (err) {
|
|
69
|
+
console.log(chalk.red('❌ Extraction failed:', err.message));
|
|
70
|
+
reject(err);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
file.on('error', (err) => {
|
|
75
|
+
fs.unlink(zipPath, () => { });
|
|
76
|
+
reject(err);
|
|
77
|
+
});
|
|
78
|
+
}).on('error', (err) => {
|
|
79
|
+
reject(err);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
4
83
|
|
|
5
84
|
// Simple console colors
|
|
6
85
|
const chalk = {
|
|
@@ -150,6 +229,16 @@ async function checkAiderStatus() {
|
|
|
150
229
|
}
|
|
151
230
|
|
|
152
231
|
async function runAider() {
|
|
232
|
+
// Try to use portable Python first
|
|
233
|
+
let pythonExe;
|
|
234
|
+
try {
|
|
235
|
+
pythonExe = await downloadPortablePython();
|
|
236
|
+
console.log(chalk.green('🐍 Using Portable Python 3.12'));
|
|
237
|
+
} catch (err) {
|
|
238
|
+
console.log(chalk.yellow('⚠️ Portable Python failed, using system Python'));
|
|
239
|
+
pythonExe = process.platform === 'win32' ? 'python' : 'python3';
|
|
240
|
+
}
|
|
241
|
+
|
|
153
242
|
// Default arguments for WENOX
|
|
154
243
|
const defaultArgs = [
|
|
155
244
|
'-m', 'aider.main',
|
|
@@ -166,8 +255,7 @@ async function runAider() {
|
|
|
166
255
|
|
|
167
256
|
console.log(chalk.green('✅ Starting WENOX Claude API Platform...\n'));
|
|
168
257
|
|
|
169
|
-
const
|
|
170
|
-
const child = spawn(python, args, {
|
|
258
|
+
const child = spawn(pythonExe, args, {
|
|
171
259
|
stdio: 'inherit',
|
|
172
260
|
shell: true
|
|
173
261
|
});
|
|
@@ -246,17 +334,8 @@ ${chalk.bold('System Requirements:')}
|
|
|
246
334
|
// Check API key
|
|
247
335
|
checkApiKey();
|
|
248
336
|
|
|
249
|
-
//
|
|
250
|
-
|
|
251
|
-
if (!dependenciesOk) {
|
|
252
|
-
console.log(chalk.cyan('🔧 Auto-fixing Python dependencies...'));
|
|
253
|
-
const fixed = await autoFixDependencies();
|
|
254
|
-
if (!fixed) {
|
|
255
|
-
console.log(chalk.red('❌ Could not resolve dependencies automatically'));
|
|
256
|
-
console.log(chalk.cyan('💡 Please run manually: pip install aider-chat tree-sitter-languages'));
|
|
257
|
-
process.exit(1);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
337
|
+
// Skip dependency check, use portable Python
|
|
338
|
+
console.log(chalk.cyan('🚀 Using Portable Python approach...'));
|
|
260
339
|
|
|
261
340
|
// Run aider with WENOX branding
|
|
262
341
|
await runAider();
|