natureco-cli 5.61.0 → 5.63.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.
@@ -1,5 +1,7 @@
1
1
  const chalk = require('chalk');
2
2
  const os = require('os');
3
+ const { getLang: _gl } = require('../utils/i18n');
4
+ const L = (tr, en) => (_gl() === 'en' ? en : tr);
3
5
 
4
6
  function system(args) {
5
7
  const [action, ...params] = args || [];
@@ -9,7 +11,7 @@ function system(args) {
9
11
  if (action === 'presence') return systemPresence();
10
12
 
11
13
  console.log(chalk.red(`\n ❌ Bilinmeyen komut: ${action}\n`));
12
- console.log(chalk.gray(' Kullanım: natureco system [status|events|presence]\n'));
14
+ console.log(chalk.gray(L(' Kullanım: natureco system [status|events|presence]\n', ' Usage: natureco system [status|events|presence]\n')));
13
15
  process.exit(1);
14
16
  }
15
17
 
@@ -1,5 +1,7 @@
1
1
  const chalk = require('chalk');
2
2
  const fs = require('fs');
3
+ const { getLang: _gl } = require('../utils/i18n');
4
+ const L = (tr, en) => (_gl() === 'en' ? en : tr);
3
5
  const path = require('path');
4
6
  const os = require('os');
5
7
  const { execSync, spawn } = require('child_process');
@@ -30,14 +32,14 @@ function terminal(args) {
30
32
  if (action === 'list') return listSessions();
31
33
 
32
34
  console.log(chalk.red(`\n ❌ Bilinmeyen komut: ${action}\n`));
33
- console.log(chalk.gray(' Kullanım: natureco terminal [exec|connect|disconnect|list]\n'));
35
+ console.log(chalk.gray(L(' Kullanım: natureco terminal [exec|connect|disconnect|list]\n', ' Usage: natureco terminal [exec|connect|disconnect|list]\n')));
34
36
  process.exit(1);
35
37
  }
36
38
 
37
39
  function execCmd(cmd) {
38
40
  if (!cmd) {
39
- console.log(chalk.red('\n ❌ Komut gerekli\n'));
40
- console.log(chalk.gray(' Örnek: natureco terminal exec "ls -la"\n'));
41
+ console.log(chalk.red(L('\n ❌ Komut gerekli\n', '\n ❌ Command required\n')));
42
+ console.log(chalk.gray(L(' Örnek: natureco terminal exec "ls -la"\n', ' Example: natureco terminal exec "ls -la"\n')));
41
43
  process.exit(1);
42
44
  }
43
45
  console.log(chalk.cyan(`\n 🖥️ $ ${cmd}\n`));
@@ -45,24 +47,24 @@ function execCmd(cmd) {
45
47
  try {
46
48
  const output = execSync(cmd, { encoding: 'utf8', timeout: 30000, maxBuffer: 1024 * 1024 });
47
49
  if (output) console.log(output);
48
- console.log(chalk.green(`\n ✅ Komut başarıyla tamamlandı (${output.length} bytes)\n`));
50
+ console.log(chalk.green(`\n ✅ ${L('Komut başarıyla tamamlandı', 'Command completed successfully')} (${output.length} bytes)\n`));
49
51
  } catch (err) {
50
52
  if (err.stdout) console.log(err.stdout.toString());
51
53
  if (err.stderr) console.log(chalk.red(err.stderr.toString()));
52
- console.log(chalk.red(`\n ❌ Hata: ${err.message}\n`));
54
+ console.log(chalk.red(`\n ❌ ${L('Hata', 'Error')}: ${err.message}\n`));
53
55
  }
54
56
  }
55
57
 
56
58
  function connectSession(target, cmd) {
57
59
  if (!target) {
58
- console.log(chalk.red('\n ❌ Hedef gerekli (örn: local, ssh://user@host)\n'));
60
+ console.log(chalk.red(L('\n ❌ Hedef gerekli (örn: local, ssh://user@host)\n', '\n ❌ Target required (e.g. local, ssh://user@host)\n')));
59
61
  process.exit(1);
60
62
  }
61
63
 
62
64
  const sessions = loadSessions();
63
65
  const existing = sessions.find(s => s.target === target && s.status === 'active');
64
66
  if (existing) {
65
- console.log(chalk.yellow(`\n ⚠️ ${target} üzerinde zaten aktif oturum var: ${existing.id}\n`));
67
+ console.log(chalk.yellow(`\n ⚠️ ${target} ${L('üzerinde zaten aktif oturum var', 'already has an active session')}: ${existing.id}\n`));
66
68
  return;
67
69
  }
68
70
 
@@ -70,21 +72,21 @@ function connectSession(target, cmd) {
70
72
  sessions.push(session);
71
73
  saveSessions(sessions);
72
74
 
73
- console.log(chalk.green(`\n ✅ Oturum başlatıldı: ${session.id}\n`));
75
+ console.log(chalk.green(`\n ✅ ${L('Oturum başlatıldı', 'Session started')}: ${session.id}\n`));
74
76
  console.log(` ${chalk.white('Target:')} ${target}`);
75
77
  console.log(` ${chalk.white('Shell:')} ${session.cmd}`);
76
78
  console.log();
77
79
 
78
80
  if (target === 'local' || target.startsWith('local')) {
79
81
  const shell = session.cmd;
80
- console.log(chalk.gray(` ${shell} başlatılıyor... (Ctrl+D çıkış)\n`));
82
+ console.log(chalk.gray(` ${shell} ${L('başlatılıyor... (Ctrl+D çıkış)', 'starting... (Ctrl+D to exit)')}\n`));
81
83
  try {
82
84
  const child = spawn(shell, [], { stdio: 'inherit', shell: true });
83
85
  child.on('exit', () => {
84
86
  session.status = 'closed';
85
87
  session.endedAt = new Date().toISOString();
86
88
  saveSessions(sessions);
87
- console.log(chalk.gray(`\n Oturum sonlandı: ${session.id}\n`));
89
+ console.log(chalk.gray(`\n ${L('Oturum sonlandı', 'Session ended')}: ${session.id}\n`));
88
90
  });
89
91
  } catch (err) {
90
92
  console.log(chalk.red(`\n ❌ ${err.message}\n`));
@@ -92,17 +94,17 @@ function connectSession(target, cmd) {
92
94
  return;
93
95
  }
94
96
 
95
- console.log(chalk.gray(` Uzak oturum: ssh veya winrm ile ${target} bağlanın\n`));
97
+ console.log(chalk.gray(` ${L('Uzak oturum: ssh veya winrm ile', 'Remote session: connect via ssh or winrm to')} ${target}${L(' bağlanın', '')}\n`));
96
98
  }
97
99
 
98
100
  function disconnectSession(id) {
99
101
  const sessions = loadSessions();
100
102
  const idx = sessions.findIndex(s => s.id === id);
101
- if (idx === -1) { console.log(chalk.red(`\n ❌ Oturum bulunamadı: ${id}\n`)); process.exit(1); }
103
+ if (idx === -1) { console.log(chalk.red(`\n ❌ ${L('Oturum bulunamadı', 'Session not found')}: ${id}\n`)); process.exit(1); }
102
104
  sessions[idx].status = 'closed';
103
105
  sessions[idx].endedAt = new Date().toISOString();
104
106
  saveSessions(sessions);
105
- console.log(chalk.gray(`\n 🛑 Oturum sonlandı: ${id} — ${sessions[idx].target}\n`));
107
+ console.log(chalk.gray(`\n 🛑 ${L('Oturum sonlandı', 'Session ended')}: ${id} — ${sessions[idx].target}\n`));
106
108
  }
107
109
 
108
110
  function listSessions() {
@@ -110,7 +112,7 @@ function listSessions() {
110
112
  console.log(chalk.cyan('\n 📋 Terminal Sessions\n'));
111
113
  console.log(chalk.gray(' ' + '─'.repeat(48)));
112
114
  if (sessions.length === 0) {
113
- console.log(chalk.gray(' Oturum bulunamadı.\n'));
115
+ console.log(chalk.gray(L(' Oturum bulunamadı.\n', ' No sessions found.\n')));
114
116
  return;
115
117
  }
116
118
  for (const s of sessions.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt))) {
@@ -1,5 +1,7 @@
1
1
  const chalk = require('chalk');
2
2
  const { getConfig, saveConfig } = require('../utils/config');
3
+ const { getLang: _gl } = require('../utils/i18n');
4
+ const L = (tr, en) => (_gl() === 'en' ? en : tr);
3
5
 
4
6
  const MENTION_TTL_MS = 300 * 1000;
5
7
 
@@ -14,7 +16,7 @@ function threadOwnership(args) {
14
16
  if (action === 'agent') return setDefaultAgent(params[0]);
15
17
 
16
18
  console.log(chalk.red(`\n ❌ Bilinmeyen komut: ${action}\n`));
17
- console.log(chalk.gray(' Kullanım: natureco thread-ownership [status|list|assign|release|check|agent]\n'));
19
+ console.log(chalk.gray(L(' Kullanım: natureco thread-ownership [status|list|assign|release|check|agent]\n', ' Usage: natureco thread-ownership [status|list|assign|release|check|agent]\n')));
18
20
  process.exit(1);
19
21
  }
20
22
 
@@ -49,7 +51,7 @@ function listOwnership() {
49
51
  console.log(chalk.gray(' ' + '─'.repeat(48)));
50
52
 
51
53
  if (entries.length === 0) {
52
- console.log(chalk.gray(' Atanmış thread yok.\n'));
54
+ console.log(chalk.gray(L(' Atanmış thread yok.\n', ' No threads assigned.\n')));
53
55
  return;
54
56
  }
55
57
 
@@ -67,7 +69,7 @@ function listOwnership() {
67
69
 
68
70
  function assignOwnership(threadId, agentName, channel) {
69
71
  if (!threadId || !agentName) {
70
- console.log(chalk.red('\n ❌ threadId ve agentName gerekli\n'));
72
+ console.log(chalk.red(L('\n ❌ threadId ve agentName gerekli\n', '\n ❌ threadId and agentName required\n')));
71
73
  console.log(chalk.cyan(' natureco thread-ownership assign C012345 "agent-bob" slack\n'));
72
74
  process.exit(1);
73
75
  }
@@ -82,7 +84,7 @@ function assignOwnership(threadId, agentName, channel) {
82
84
 
83
85
  function releaseOwnership(threadId, channel) {
84
86
  if (!threadId) {
85
- console.log(chalk.red('\n ❌ threadId gerekli\n'));
87
+ console.log(chalk.red(L('\n ❌ threadId gerekli\n', '\n ❌ threadId required\n')));
86
88
  process.exit(1);
87
89
  }
88
90
 
@@ -99,12 +101,12 @@ function releaseOwnership(threadId, channel) {
99
101
  }
100
102
 
101
103
  saveConfig(config);
102
- console.log(chalk.gray(`\n 🔓 Thread ${threadId} serbest bırakıldı\n`));
104
+ console.log(chalk.gray(`\n 🔓 Thread ${threadId} ${L('serbest bırakıldı', 'released')}\n`));
103
105
  }
104
106
 
105
107
  function checkOwnership(threadId, channel, agentName) {
106
108
  if (!threadId || !channel || !agentName) {
107
- console.log(chalk.red('\n ❌ threadId, channel ve agentName gerekli\n'));
109
+ console.log(chalk.red(L('\n ❌ threadId, channel ve agentName gerekli\n', '\n ❌ threadId, channel and agentName required\n')));
108
110
  console.log(chalk.cyan(' natureco thread-ownership check C012345 slack agent-bob\n'));
109
111
  process.exit(1);
110
112
  }
@@ -118,7 +120,7 @@ function checkOwnership(threadId, channel, agentName) {
118
120
  });
119
121
 
120
122
  if (!entry) {
121
- console.log(chalk.green(`\n ✅ Thread ${threadId} sahipsiz — ${agentName} alabilir\n`));
123
+ console.log(chalk.green(`\n ✅ Thread ${threadId} ${L('sahipsiz', 'unowned')} — ${agentName} ${L('alabilir', 'can take it')}\n`));
122
124
  return;
123
125
  }
124
126
 
@@ -127,13 +129,13 @@ function checkOwnership(threadId, channel, agentName) {
127
129
  const since = typeof data === 'string' ? '-' : data.since ? new Date(data.since).toLocaleString() : '-';
128
130
 
129
131
  if (owner === agentName) {
130
- console.log(chalk.green(`\n ✅ Thread ${threadId} zaten ${agentName}'e ait\n`));
132
+ console.log(chalk.green(`\n ✅ Thread ${threadId} ${L('zaten', 'already belongs to')} ${agentName}${L("'e ait", '')}\n`));
131
133
  return;
132
134
  }
133
135
 
134
136
  const expired = data.since ? (Date.now() - new Date(data.since).getTime() > MENTION_TTL_MS) : false;
135
137
  if (expired) {
136
- console.log(chalk.yellow(`\n ⚠️ Thread ${threadId} süresi dolmuş (${owner}), ${agentName} alabilir\n`));
138
+ console.log(chalk.yellow(`\n ⚠️ Thread ${threadId} ${L('süresi dolmuş', 'expired')} (${owner}), ${agentName} ${L('alabilir', 'can take it')}\n`));
137
139
  return;
138
140
  }
139
141
 
@@ -142,7 +144,7 @@ function checkOwnership(threadId, channel, agentName) {
142
144
 
143
145
  function setDefaultAgent(name) {
144
146
  if (!name) {
145
- console.log(chalk.red('\n ❌ Agent adı gerekli\n'));
147
+ console.log(chalk.red(L('\n ❌ Agent adı gerekli\n', '\n ❌ Agent name required\n')));
146
148
  process.exit(1);
147
149
  }
148
150
 
@@ -9,6 +9,8 @@
9
9
  */
10
10
 
11
11
  const chalk = require('chalk');
12
+ const { getLang: _gl } = require('../utils/i18n');
13
+ const L = (tr, en) => (_gl() === 'en' ? en : tr);
12
14
  const tui = require('../utils/tui');
13
15
  const { loadToolDefinitions, EMOJI_MAP, TOOLSET_MAP } = require('../utils/tools');
14
16
  const { getConfig, setConfigValue } = require('../utils/config');
@@ -24,11 +26,11 @@ function main(args) {
24
26
  case 'disable':
25
27
  return cmdDisable(args[1]);
26
28
  default:
27
- console.log(chalk.yellow('Kullanım:'));
29
+ console.log(chalk.yellow(L('Kullanım:', 'Usage:')));
28
30
  console.log(chalk.gray(' natureco tools Grup listesi'));
29
- console.log(chalk.gray(' natureco tools list Detaylı liste'));
30
- console.log(chalk.gray(' natureco tools enable <name> Tool etkinleştir'));
31
- console.log(chalk.gray(' natureco tools disable <name> Tool devre dışı'));
31
+ console.log(chalk.gray(L(' natureco tools list Detaylı liste', ' natureco tools list Detailed list')));
32
+ console.log(chalk.gray(L(' natureco tools enable <name> Tool etkinleştir', ' natureco tools enable <name> Enable tool')));
33
+ console.log(chalk.gray(L(' natureco tools disable <name> Tool devre dışı', ' natureco tools disable <name> Disable tool')));
32
34
  console.log('');
33
35
  }
34
36
  }
@@ -56,9 +58,9 @@ function cmdList() {
56
58
  console.log(' ' + line);
57
59
  }
58
60
 
59
- console.log(chalk.gray('\n Toplam: ' + total + ' aktif tool'));
61
+ console.log(chalk.gray(L('\n Toplam: ', '\n Total: ') + total + ' aktif tool'));
60
62
  if (disabled.size > 0) {
61
- console.log(chalk.yellow(' Devre dışı: ' + [...disabled].join(', ')));
63
+ console.log(chalk.yellow(L(' Devre dışı: ', ' Disabled: ') + [...disabled].join(', ')));
62
64
  }
63
65
  console.log('');
64
66
  }
@@ -69,7 +71,7 @@ function getDisabledTools() {
69
71
  }
70
72
 
71
73
  function cmdEnable(name) {
72
- if (!name) return console.log(chalk.red('Tool adı gerekli: natureco tools enable <name>'));
74
+ if (!name) return console.log(chalk.red(L('Tool adı gerekli: natureco tools enable <name>', 'Tool name required: natureco tools enable <name>')));
73
75
  const disabled = getDisabledTools();
74
76
  if (!disabled.has(name)) return console.log(chalk.yellow(name + ' zaten etkin.'));
75
77
  disabled.delete(name);
@@ -78,10 +80,10 @@ function cmdEnable(name) {
78
80
  }
79
81
 
80
82
  function cmdDisable(name) {
81
- if (!name) return console.log(chalk.red('Tool adı gerekli: natureco tools disable <name>'));
83
+ if (!name) return console.log(chalk.red(L('Tool adı gerekli: natureco tools disable <name>', 'Tool name required: natureco tools disable <name>')));
82
84
  const allTools = loadToolDefinitions();
83
85
  const tool = allTools.find(t => t.name === name);
84
- if (!tool) return console.log(chalk.red('Tool bulunamadı: ' + name));
86
+ if (!tool) return console.log(chalk.red(L('Tool bulunamadı: ', 'Tool not found: ') + name));
85
87
  const disabled = getDisabledTools();
86
88
  if (disabled.has(name)) return console.log(chalk.yellow(name + ' zaten devre dışı.'));
87
89
  disabled.add(name);
@@ -1,5 +1,7 @@
1
1
  const chalk = require('chalk');
2
2
  const fs = require('fs');
3
+ const { getLang: _gl } = require('../utils/i18n');
4
+ const L = (tr, en) => (_gl() === 'en' ? en : tr);
3
5
  const path = require('path');
4
6
  const os = require('os');
5
7
 
@@ -11,7 +13,7 @@ function transcripts(args) {
11
13
  if (action === 'delete') return deleteTranscript(params[0]);
12
14
 
13
15
  console.log(chalk.red(`\n ❌ Bilinmeyen komut: ${action}\n`));
14
- console.log(chalk.gray(' Kullanım: natureco transcripts [list|show|delete]\n'));
16
+ console.log(chalk.gray(L(' Kullanım: natureco transcripts [list|show|delete]\n', ' Usage: natureco transcripts [list|show|delete]\n')));
15
17
  process.exit(1);
16
18
  }
17
19
 
@@ -53,7 +55,7 @@ function showTranscript(id) {
53
55
  if (!fs.existsSync(file)) {
54
56
  const alt = path.join(sessionsDir, id);
55
57
  if (!fs.existsSync(alt)) {
56
- console.log(chalk.red(`\n ❌ Transcript bulunamadı: ${id}\n`));
58
+ console.log(chalk.red(`\n ❌ ${L('Transcript bulunamadı', 'Transcript not found')}: ${id}\n`));
57
59
  process.exit(1);
58
60
  }
59
61
  const content = fs.readFileSync(alt, 'utf8');
@@ -83,13 +85,13 @@ function deleteTranscript(id) {
83
85
  if (!fs.existsSync(target)) {
84
86
  target = path.join(sessionsDir, id);
85
87
  if (!fs.existsSync(target)) {
86
- console.log(chalk.red(`\n ❌ Transcript bulunamadı: ${id}\n`));
88
+ console.log(chalk.red(`\n ❌ ${L('Transcript bulunamadı', 'Transcript not found')}: ${id}\n`));
87
89
  process.exit(1);
88
90
  }
89
91
  }
90
92
 
91
93
  fs.unlinkSync(target);
92
- console.log(chalk.green(`\n 🗑️ Transcript silindi: ${id}\n`));
94
+ console.log(chalk.green(`\n 🗑️ ${L('Transcript silindi', 'Transcript deleted')}: ${id}\n`));
93
95
  }
94
96
 
95
97
  module.exports = transcripts;
@@ -1,5 +1,7 @@
1
1
  const chalk = require('chalk');
2
2
  const { getConfig, saveConfig } = require('../utils/config');
3
+ const { getLang: _gl } = require('../utils/i18n');
4
+ const L = (tr, en) => (_gl() === 'en' ? en : tr);
3
5
 
4
6
  const VYDRA_ENDPOINTS = {
5
7
  'vydra-image': {
@@ -27,7 +29,7 @@ function vydra(args) {
27
29
  if (action === 'test') return testVydra();
28
30
 
29
31
  console.log(chalk.red(`\n ❌ Bilinmeyen komut: ${action}\n`));
30
- console.log(chalk.gray(' Kullanım: natureco vydra [status|configure|test]\n'));
32
+ console.log(chalk.gray(L(' Kullanım: natureco vydra [status|configure|test]\n', ' Usage: natureco vydra [status|configure|test]\n')));
31
33
  process.exit(1);
32
34
  }
33
35