natureco-cli 2.16.3 → 2.16.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "natureco-cli",
3
- "version": "2.16.3",
3
+ "version": "2.16.5",
4
4
  "description": "NatureCo AI Bot Terminal Interface",
5
5
  "main": "bin/natureco.js",
6
6
  "bin": {
@@ -211,7 +211,7 @@ body::before{
211
211
  <div class="header-bot-name" id="header-bot-name">Nature Bot</div>
212
212
  <div class="header-bot-model" id="header-bot-model">NatureCo</div>
213
213
  </div>
214
- <div class="version-badge" id="version-badge">v2.16.3</div>
214
+ <div class="version-badge" id="version-badge">v2.16.5</div>
215
215
  </div>
216
216
  <div class="messages" id="messages"></div>
217
217
  <div class="input-area">
@@ -341,7 +341,7 @@ function dashboard(action) {
341
341
  apiKey: cfg.apiKey,
342
342
  defaultBot: cfg.defaultBot,
343
343
  defaultBotId: cfg.defaultBotId,
344
- version: 'v2.16.3',
344
+ version: 'v2.16.5',
345
345
  bots: cfg.bots || [],
346
346
  telegramToken: cfg.telegramToken || null,
347
347
  whatsappConnected: cfg.whatsappConnected || false,
@@ -9,7 +9,17 @@ const { getSkills } = require('../utils/skills');
9
9
  async function doctor(options) {
10
10
  const shouldFix = options && (options.includes('--fix') || options.includes('-f'));
11
11
 
12
- console.log(chalk.cyan.bold('\n🔍 NatureCo CLI Sistem Kontrolü\n'));
12
+ console.clear();
13
+ console.log('');
14
+ console.log(chalk.green.bold(' (\\_/)'));
15
+ console.log(chalk.green.bold(' (•ᴥ•)'));
16
+ console.log(chalk.green(' />🌿'));
17
+ console.log('');
18
+ console.log(chalk.green.bold(' NatureCo CLI — Sistem Kontrolü'));
19
+ if (shouldFix) console.log(chalk.yellow(' --fix modu aktif\n'));
20
+ else console.log(chalk.gray(' Sorunları otomatik düzeltmek için: natureco doctor --fix\n'));
21
+ console.log(chalk.gray(' ' + '─'.repeat(48)));
22
+ console.log('');
13
23
 
14
24
  const results = [];
15
25
  let passed = 0;
@@ -312,45 +322,42 @@ async function doctor(options) {
312
322
  }
313
323
 
314
324
  // Özet
315
- console.log(chalk.cyan('\n────────────────────────────────'));
325
+ console.log('');
326
+ console.log(chalk.gray(' ' + '─'.repeat(48)));
316
327
 
317
- // Kritik kontroller için durum
318
328
  const criticalPercentage = criticalTotal > 0 ? Math.round((criticalPassed / criticalTotal) * 100) : 100;
319
329
  let statusColor = chalk.green;
320
330
  let statusText = 'Mükemmel';
321
331
 
322
332
  if (criticalPercentage < 75) {
323
333
  statusColor = chalk.red;
324
- statusText = 'Kritik';
334
+ statusText = 'Kritik sorun var';
325
335
  } else if (criticalPercentage < 100) {
326
336
  statusColor = chalk.yellow;
327
- statusText = 'Dikkat';
337
+ statusText = 'Dikkat gerekiyor';
328
338
  } else if (passed < total) {
329
339
  statusColor = chalk.cyan;
330
340
  statusText = 'İyi';
331
341
  }
332
342
 
333
- console.log(statusColor.bold(`Sistem Durumu: ${statusText}`));
334
- console.log(chalk.white(`${passed}/${total} kontrol geçti`));
335
- console.log(chalk.gray(`Kritik: ${criticalPassed}/${criticalTotal}`));
343
+ console.log('');
344
+ console.log(chalk.gray(' Durum : ') + statusColor.bold(statusText));
345
+ console.log(chalk.gray(' Kontrol : ') + chalk.white(`${passed}/${total} geçti`));
346
+ console.log(chalk.gray(' Kritik : ') + chalk.white(`${criticalPassed}/${criticalTotal}`));
336
347
 
337
- // Sorunlar
338
348
  const errors = results.filter(r => r.status === 'error');
339
349
  const warnings = results.filter(r => r.status === 'warning');
340
350
 
341
351
  if (errors.length > 0) {
342
- console.log(chalk.red(`\n❌ ${errors.length} hata bulundu`));
352
+ console.log(chalk.red(`\n ❌ ${errors.length} hata bulundu`));
343
353
  }
344
-
345
354
  if (warnings.length > 0) {
346
- console.log(chalk.yellow(`⚠️ ${warnings.length} uyarı bulundu`));
355
+ console.log(chalk.yellow(` ${warnings.length} uyarı bulundu`));
347
356
  }
348
-
349
357
  if (!shouldFix && (errors.length > 0 || warnings.length > 0)) {
350
- console.log(chalk.gray('\nOtomatik onarım için: natureco doctor --fix'));
358
+ console.log(chalk.gray('\n Otomatik onarım: ') + chalk.cyan('natureco doctor --fix'));
351
359
  }
352
-
353
- console.log(chalk.cyan('────────────────────────────────\n'));
360
+ console.log('');
354
361
  }
355
362
 
356
363
  function checkPort(port) {
@@ -1,5 +1,4 @@
1
1
  const chalk = require('chalk');
2
- const boxen = require('boxen');
3
2
  const fs = require('fs');
4
3
  const path = require('path');
5
4
  const os = require('os');
@@ -49,90 +48,58 @@ async function gateway(action) {
49
48
  const version = packageJson.version;
50
49
 
51
50
  console.clear();
52
-
53
- // Ana logo kutusu - tavşan emoji ile
54
- const title = boxen(
55
- chalk.green.bold('🐰 NatureCo Terminal\n') +
56
- chalk.green.bold(` v${version}\n\n`) +
57
- chalk.gray('AI botlarınızla terminal\'den konuşun\n') +
58
- chalk.gray('Workflow\'ları otomatize edin\n') +
59
- chalk.gray('Yetenekler ekleyin, MCP entegre edin'),
60
- {
61
- padding: { top: 1, bottom: 1, left: 3, right: 3 },
62
- margin: { top: 1, bottom: 0, left: 0, right: 0 },
63
- borderStyle: 'round',
64
- borderColor: 'green',
65
- align: 'center',
66
- }
67
- );
68
51
 
69
- console.log(title);
70
- console.log(chalk.gray('─'.repeat(60)));
52
+ console.log('');
53
+ console.log(chalk.green.bold(' (\\_/)'));
54
+ console.log(chalk.green.bold(' (•ᴥ•)'));
55
+ console.log(chalk.green(' />🌿'));
56
+ console.log('');
57
+ console.log(chalk.green.bold(' NatureCo CLI ') + chalk.gray(`v${version}`));
58
+ console.log(chalk.gray(' Terminal-native AI agent\n'));
59
+ console.log(chalk.gray(' ' + '─'.repeat(48)));
71
60
  console.log('');
72
61
 
73
- // Durum bilgileri - emoji ve ikonlarla
74
- if (config.apiKey) {
75
- const maskedKey = config.apiKey.substring(0, 7) + '...';
76
- console.log(chalk.cyan('🔑 Giriş yapıldı:'), chalk.white(maskedKey));
77
- } else {
78
- console.log(chalk.yellow('🔑 Giriş yapılmadı'), chalk.gray('(natureco login)'));
79
- }
62
+ // Durum bilgileri
63
+ const providerHost = config.providerUrl
64
+ ? config.providerUrl.replace('https://', '').split('/')[0]
65
+ : null;
80
66
 
81
- if (config.defaultBot) {
82
- console.log(chalk.cyan('🤖 Aktif bot:'), chalk.white(config.defaultBot));
83
- } else {
84
- console.log(chalk.gray('🤖 Aktif bot: Yok'));
67
+ if (providerHost) {
68
+ console.log(chalk.gray(' Provider : ') + chalk.white(providerHost));
69
+ }
70
+ if (config.providerModel) {
71
+ console.log(chalk.gray(' Model : ') + chalk.white(config.providerModel));
72
+ }
73
+ if (config.botName) {
74
+ console.log(chalk.gray(' Bot : ') + chalk.cyan(config.botName));
75
+ }
76
+ if (config.userName) {
77
+ console.log(chalk.gray(' Kullanıcı: ') + chalk.white(config.userName));
85
78
  }
86
79
 
87
80
  const skills = getSkills();
88
- const skillCount = skills.length;
89
- console.log(chalk.cyan('✨ Skills:'), chalk.white(`${skillCount} yüklü`));
81
+ console.log(chalk.gray(' Skills : ') + chalk.white(`${skills.length} yüklü`));
90
82
 
91
83
  const mcpServers = getMcpServers();
92
- const mcpCount = Object.keys(mcpServers).length;
93
- const activeMcpCount = Object.values(mcpServers).filter(s => !s.disabled).length;
94
- console.log(chalk.cyan('🔌 MCP:'), chalk.white(`${activeMcpCount}/${mcpCount} aktif`));
84
+ const activeMcp = Object.values(mcpServers).filter(s => !s.disabled).length;
85
+ const totalMcp = Object.keys(mcpServers).length;
86
+ if (totalMcp > 0) {
87
+ console.log(chalk.gray(' MCP : ') + chalk.white(`${activeMcp}/${totalMcp} aktif`));
88
+ }
95
89
 
96
90
  console.log('');
97
- console.log(chalk.gray('─'.repeat(60)));
91
+ console.log(chalk.gray(' ' + '─'.repeat(48)));
98
92
  console.log('');
99
93
 
100
- // Komutlar - daha okunabilir format
101
- console.log(chalk.green.bold('Komutlar:\n'));
102
-
103
- console.log(chalk.yellow(' natureco chat <bot>'));
104
- console.log(chalk.gray(' Bot ile interaktif sohbet başlat\n'));
105
-
106
- console.log(chalk.yellow(' natureco bots'));
107
- console.log(chalk.gray(' Tüm botlarını listele\n'));
108
-
109
- console.log(chalk.yellow(' natureco ask "soru"'));
110
- console.log(chalk.gray(' Tek seferlik soru sor\n'));
111
-
112
- console.log(chalk.yellow(' natureco skills'));
113
- console.log(chalk.gray(' Skill\'leri yönet (install, remove, list)\n'));
114
-
115
- console.log(chalk.yellow(' natureco mcp'));
116
- console.log(chalk.gray(' MCP sunucularını yönet\n'));
117
-
118
- console.log(chalk.yellow(' natureco init'));
119
- console.log(chalk.gray(' Mevcut dizinde proje başlat\n'));
120
-
121
- console.log(chalk.yellow(' natureco config'));
122
- console.log(chalk.gray(' Ayarları görüntüle ve düzenle\n'));
123
-
124
- console.log(chalk.yellow(' natureco gateway start'));
125
- console.log(chalk.gray(' Gateway\'i başlat (WhatsApp dahil)\n'));
126
-
127
- console.log(chalk.yellow(' natureco help'));
128
- console.log(chalk.gray(' Tüm komutları ve örnekleri göster\n'));
129
-
130
- console.log(chalk.gray('─'.repeat(60)));
94
+ // Hızlı komutlar
95
+ console.log(chalk.cyan.bold(' Hızlı Başlat\n'));
96
+ console.log(chalk.yellow(' natureco chat') + chalk.gray(' Bot ile sohbet başlat'));
97
+ console.log(chalk.yellow(' natureco setup') + chalk.gray(' Kurulumu yeniden çalıştır'));
98
+ console.log(chalk.yellow(' natureco gateway start') + chalk.gray(' Gateway\'i arka planda başlat'));
99
+ console.log(chalk.yellow(' natureco help') + chalk.gray(' Tüm komutları göster'));
131
100
  console.log('');
132
-
133
- // Hızlı başlat ve döküman
134
- console.log(chalk.cyan('💬 Hızlı başlat:'), chalk.white('natureco chat'));
135
- console.log(chalk.cyan('📚 Döküman:'), chalk.white('natureco.me/docs'));
101
+ console.log(chalk.gray(' ' + '─'.repeat(48)));
102
+ console.log(chalk.gray(' Döküman: ') + chalk.cyan('natureco.me/cli'));
136
103
  console.log('');
137
104
  }
138
105
 
@@ -4,42 +4,51 @@ const { saveApiKey } = require('../utils/config');
4
4
  const { validateApiKey } = require('../utils/api');
5
5
 
6
6
  async function login() {
7
- console.log(chalk.green.bold('\n╭─ NatureCo Login ─╮'));
8
- console.log(chalk.green('│ Enter your API key │'));
9
- console.log(chalk.green('╰───────────────────╯\n'));
10
-
11
- const answers = await inquirer.prompt([
12
- {
13
- type: 'password',
14
- name: 'apiKey',
15
- message: 'API Key:',
16
- mask: '*',
17
- validate: (input) => {
18
- if (!input || input.trim().length === 0) {
19
- return 'API key cannot be empty';
20
- }
21
- if (!input.startsWith('nco_') && !input.startsWith('nc_')) {
22
- return 'API key must start with "nco_" or "nc_"';
23
- }
24
- return true;
25
- },
7
+ console.clear();
8
+
9
+ console.log('');
10
+ console.log(chalk.green.bold(' (\\_/)'));
11
+ console.log(chalk.green.bold(' (•ᴥ•)'));
12
+ console.log(chalk.green(' />🌿'));
13
+ console.log('');
14
+ console.log(chalk.green.bold(' NatureCo CLI — Giriş'));
15
+ console.log(chalk.gray(' API key\'ini gir ve başla.\n'));
16
+ console.log(chalk.gray(' ' + ''.repeat(48)));
17
+ console.log('');
18
+ console.log(chalk.gray(' API key almak için: ') + chalk.cyan('developers.natureco.me'));
19
+ console.log('');
20
+
21
+ const { apiKey } = await inquirer.prompt([{
22
+ type: 'password',
23
+ name: 'apiKey',
24
+ message: ' API Key:',
25
+ mask: '*',
26
+ validate: (v) => {
27
+ if (!v.trim()) return 'API key boş olamaz';
28
+ if (!v.startsWith('nco_') && !v.startsWith('nc_')) {
29
+ return 'API key "nco_" veya "nc_" ile başlamalı';
30
+ }
31
+ return true;
26
32
  },
27
- ]);
33
+ }]);
28
34
 
29
- const apiKey = answers.apiKey.trim();
35
+ console.log('');
36
+ console.log(chalk.gray(' Doğrulanıyor...'));
30
37
 
31
- console.log(chalk.yellow('\n⏳ Validating API key...'));
32
-
33
- const isValid = await validateApiKey(apiKey);
38
+ const isValid = await validateApiKey(apiKey.trim());
34
39
 
35
40
  if (!isValid) {
36
- console.log(chalk.red('❌ Invalid API key. Please check and try again.\n'));
41
+ console.log(chalk.red('\n Geçersiz API key. Lütfen kontrol et.\n'));
37
42
  process.exit(1);
38
43
  }
39
44
 
40
- saveApiKey(apiKey);
41
- console.log(chalk.green('✅ Login successful! API key saved.\n'));
42
- console.log(chalk.gray(`Stored in: ~/.natureco/config.json\n`));
45
+ saveApiKey(apiKey.trim());
46
+
47
+ console.log(chalk.green('\n ✓ Giriş başarılı!'));
48
+ console.log(chalk.gray(' Config: ~/.natureco/config.json'));
49
+ console.log('');
50
+ console.log(chalk.gray(' Başlamak için: ') + chalk.cyan('natureco chat'));
51
+ console.log('');
43
52
  }
44
53
 
45
54
  module.exports = login;