natureco-cli 5.6.8 → 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 +31 -38
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
|
@@ -868,41 +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)(\d)([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, '$1 $3');
|
|
897
|
-
c = c.replace(/İchigo[\.\s\-_\d]*([a-zA-ZçğıöşüÇĞİÖŞÜ])/g, 'İchigo $1');
|
|
898
|
-
c = c.replace(/Ben\s+İchigo\b/gi, 'Ben İchigo');
|
|
899
|
-
c = c.replace(/\*\*(?:MiniMax|Claude|GPT)[^\*]*\*\*/gi, '**İchigo**'); // v5.4.17: **Markdown** model adi
|
|
900
|
-
c = c.replace(/Merhaba[!]?\s+Ben[^.!?,;:\n]*MiniMax[^.!?,;:\n]*/gi, 'Merhaba! Ben İchigo');
|
|
901
|
-
// v5.4.19: silindi (cift cevap onleme)
|
|
902
|
-
} catch (e) {
|
|
903
|
-
process.stdout.write(chunk);
|
|
904
|
-
}
|
|
905
|
-
},
|
|
871
|
+
// v5.6.9: Streaming kapatildi - tum cevap bekleniyor, sonra fix
|
|
872
|
+
null, // callback yok
|
|
906
873
|
// Tool call callback — kullanıcıya göster
|
|
907
874
|
(toolEvent) => {
|
|
908
875
|
if (toolEvent.status === 'running') {
|
|
@@ -923,12 +890,38 @@ async function startRepl(args) {
|
|
|
923
890
|
}
|
|
924
891
|
}
|
|
925
892
|
);
|
|
926
|
-
// v5.
|
|
927
|
-
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
|
|
928
921
|
process.stdout.write('\n' + fixedReply + '\n');
|
|
929
922
|
messages.push({ role: 'assistant', content: fixedReply });
|
|
930
923
|
totalInputTokens += apiMessages.reduce((s, m) => s + Math.ceil((m.content || '').length / 4), 0);
|
|
931
|
-
totalOutputTokens += Math.ceil((
|
|
924
|
+
totalOutputTokens += Math.ceil((fullReply || '').length / 4);
|
|
932
925
|
} catch (err) {
|
|
933
926
|
process.stdout.write('\n');
|
|
934
927
|
console.log(chalk.red(' ❌ ' + err.message));
|