natureco-cli 5.6.7 → 5.6.9
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 +1 -1
- package/src/commands/repl.js +35 -41
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "natureco-cli",
|
|
3
|
-
"version": "5.6.
|
|
3
|
+
"version": "5.6.9",
|
|
4
4
|
"description": "OpenClaw'dan daha güvenli, daha hızlı, daha ucuz AI agent CLI. Multi-agent, self-evolving skills, audit log, maliyet optimizasyonu ve NatureCo platform-native.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"natureco": "bin/natureco.js"
|
package/src/commands/repl.js
CHANGED
|
@@ -848,14 +848,14 @@ async function startRepl(args) {
|
|
|
848
848
|
// User mesajı
|
|
849
849
|
messages.push({ role: 'user', content: line });
|
|
850
850
|
|
|
851
|
-
// v5.
|
|
851
|
+
// v5.6.8: Hard-coded fallback - "sen kimsin?" sorulari icin dinamik botName
|
|
852
852
|
const trimmed = (line || '').toLowerCase();
|
|
853
853
|
const isIdentityQuestion = /(sen\s+kim|adin\s+ne|kendini\s+tan|kendin\s+tanit|kimsin|ne\s+adindasin)/.test(trimmed);
|
|
854
854
|
if (isIdentityQuestion) {
|
|
855
|
-
// Hard-coded
|
|
855
|
+
// Hard-coded prefix artik botName'i kullaniyor
|
|
856
|
+
const displayName = memory.botName || 'İchigo';
|
|
856
857
|
process.stdout.write(tui.styled('\n AI ', { color: tui.PALETTE.secondary, bold: true }));
|
|
857
|
-
process.stdout.write('Ben
|
|
858
|
-
// Modelin devam etmesini beklemiyoruz, normal akis devam etsin
|
|
858
|
+
process.stdout.write('Ben ' + displayName + ', NatureCo CLI\'nin Türkçe yapay zeka asistanıyım. ');
|
|
859
859
|
console.log('\n');
|
|
860
860
|
}
|
|
861
861
|
|
|
@@ -868,40 +868,8 @@ async function startRepl(args) {
|
|
|
868
868
|
providerApiKey,
|
|
869
869
|
apiMessages,
|
|
870
870
|
model,
|
|
871
|
-
//
|
|
872
|
-
//
|
|
873
|
-
(chunk) => {
|
|
874
|
-
try {
|
|
875
|
-
let c = String(chunk || '');
|
|
876
|
-
// 1. Model adlari
|
|
877
|
-
c = c.replace(/MiniMax[\s\-\.\w\d]*/gi, 'İchigo'); // v5.4.16 FINAL: \b kaldirildi, parca parça gelen chunk'larda bile calisir
|
|
878
|
-
c = c.replace(/MiniMax[^İchigoİCHIGO]*?(?=[İchigoİCHIGO.,!?\n]|$)/g, 'İchigo');
|
|
879
|
-
c = c.replace(/NatureCo\s+CLI/g, 'İchigo');
|
|
880
|
-
c = c.replace(/\bClaude[\s\-\.\w]*/gi, 'İchigo');
|
|
881
|
-
c = c.replace(/\bGPT[\s\-\.\w]*/gi, 'İchigo');
|
|
882
|
-
c = c.replace(/ChatGPT/g, 'İchigo');
|
|
883
|
-
// 2. "Ben X" pattern
|
|
884
|
-
c = c.replace(/Ben[^.!?,;:\n]*MiniMax[^.!?,;:\n]*/gi, 'Ben İchigo'); // v5.4.16: parca parça MiniMax'i de yakala
|
|
885
|
-
c = c.replace(/Ben\s+Claude[^.!?,;:\n]*/gi, 'Ben İchigo');
|
|
886
|
-
c = c.replace(/Ben\s+GPT[^.!?,;:\n]*/gi, 'Ben İchigo');
|
|
887
|
-
c = c.replace(/Ben\s+bir\s+(?:yapay\s+zeka|AI)[^.!?,;:\n]*/gi, 'Ben İchigo');
|
|
888
|
-
c = c.replace(/Ben\s+NatureCo\s+CLI[^.!?,;:\n]*/gi, 'Ben İchigo');
|
|
889
|
-
// 3. "İchigo" varyasyonlari
|
|
890
|
-
c = c.replace(/(İchigo)(\d)([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, '$1 $3');
|
|
891
|
-
c = c.replace(/(İchigo)([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, '$1 $2');
|
|
892
|
-
c = c.replace(/İchigo[\.\s\-_]*\d+/g, 'İchigo');
|
|
893
|
-
c = c.replace(/İchigo\./g, 'İchigo');
|
|
894
|
-
// 4. "Ben İchigo" + sonraki harf
|
|
895
|
-
c = c.replace(/Ben\s+İchigo([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, 'Ben İchigo $1');
|
|
896
|
-
c = c.replace(/İchigo[\.\s\-_\d]*([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, 'İchigo $1'); // v5.4.16: İchigo.5 gibi nokta+rakam+harf
|
|
897
|
-
c = c.replace(/Ben\s+İchigo\b/gi, 'Ben İchigo');
|
|
898
|
-
c = c.replace(/\*\*(?:MiniMax|Claude|GPT)[^\*]*\*\*/gi, '**İchigo**'); // v5.4.17: **Markdown** model adi
|
|
899
|
-
c = c.replace(/Merhaba[!]?\s+Ben[^.!?,;:\n]*MiniMax[^.!?,;:\n]*/gi, 'Merhaba! Ben İchigo');
|
|
900
|
-
// v5.4.19: silindi (cift cevap onleme)
|
|
901
|
-
} catch (e) {
|
|
902
|
-
process.stdout.write(chunk);
|
|
903
|
-
}
|
|
904
|
-
},
|
|
871
|
+
// v5.6.9: Streaming kapatildi - tum cevap bekleniyor, sonra fix
|
|
872
|
+
null, // callback yok
|
|
905
873
|
// Tool call callback — kullanıcıya göster
|
|
906
874
|
(toolEvent) => {
|
|
907
875
|
if (toolEvent.status === 'running') {
|
|
@@ -922,12 +890,38 @@ async function startRepl(args) {
|
|
|
922
890
|
}
|
|
923
891
|
}
|
|
924
892
|
);
|
|
925
|
-
// v5.
|
|
926
|
-
const
|
|
893
|
+
// v5.6.9: Streaming kapatildi, tam cevap replyBuffer'da birikiyor
|
|
894
|
+
const fullReply = global._replyBuffer || reply || '';
|
|
895
|
+
global._replyBuffer = '';
|
|
896
|
+
// Bot adini al
|
|
897
|
+
const displayBotName = memory.botName || 'İchigo';
|
|
898
|
+
// v5.6.9: Tum model adlarini ve varyasyonlari temizle
|
|
899
|
+
let fixedReply = String(fullReply);
|
|
900
|
+
// Bilinen model adlari - tum varyasyonlar
|
|
901
|
+
fixedReply = fixedReply.replace(/\bMiniMax[-\s\w\.\d]*/gi, displayBotName);
|
|
902
|
+
fixedReply = fixedReply.replace(/\bM2\.5[-\s\w\.\d]*/gi, displayBotName);
|
|
903
|
+
fixedReply = fixedReply.replace(/\bM2[\s\-\.\w\d]*/gi, displayBotName);
|
|
904
|
+
fixedReply = fixedReply.replace(/\bClaude[-\s\w\.\d]*/gi, displayBotName);
|
|
905
|
+
fixedReply = fixedReply.replace(/\bGPT[-\s\w\.\d]*/gi, displayBotName);
|
|
906
|
+
fixedReply = fixedReply.replace(/\bChatGPT\b/g, displayBotName);
|
|
907
|
+
// NatureCo CLI referansini temizle
|
|
908
|
+
fixedReply = fixedReply.replace(/NatureCo\s+CLI(\s*'in|'nin)?/gi, displayBotName);
|
|
909
|
+
// "Ben X" pattern - tum model adlarini bot adi ile degistir
|
|
910
|
+
fixedReply = fixedReply.replace(/Ben\s+MiniMax[^.!?,;:\n]*/gi, 'Ben ' + displayBotName);
|
|
911
|
+
fixedReply = fixedReply.replace(/Ben\s+Claude[^.!?,;:\n]*/gi, 'Ben ' + displayBotName);
|
|
912
|
+
fixedReply = fixedReply.replace(/Ben\s+GPT[^.!?,;:\n]*/gi, 'Ben ' + displayBotName);
|
|
913
|
+
fixedReply = fixedReply.replace(/Ben\s+İchigo[\s\w\.]*/gi, 'Ben ' + displayBotName);
|
|
914
|
+
// Markdown ** ile cevrili model adi
|
|
915
|
+
fixedReply = fixedReply.replace(/\*\*(?:MiniMax|Claude|GPT|M2\.5|M2)[^\*]*\*\*/gi, '**' + displayBotName + '**');
|
|
916
|
+
// "İchigo" varyasyonlari
|
|
917
|
+
fixedReply = fixedReply.replace(/(İchigo)(\d)([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, displayBotName + ' $3');
|
|
918
|
+
fixedReply = fixedReply.replace(/İchigo[\.\s\-_]*\d+/g, displayBotName);
|
|
919
|
+
fixedReply = fixedReply.replace(/İchigo\./g, displayBotName);
|
|
920
|
+
// Cevap yazdir
|
|
927
921
|
process.stdout.write('\n' + fixedReply + '\n');
|
|
928
922
|
messages.push({ role: 'assistant', content: fixedReply });
|
|
929
923
|
totalInputTokens += apiMessages.reduce((s, m) => s + Math.ceil((m.content || '').length / 4), 0);
|
|
930
|
-
totalOutputTokens += Math.ceil((
|
|
924
|
+
totalOutputTokens += Math.ceil((fullReply || '').length / 4);
|
|
931
925
|
} catch (err) {
|
|
932
926
|
process.stdout.write('\n');
|
|
933
927
|
console.log(chalk.red(' ❌ ' + err.message));
|