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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "natureco-cli",
3
- "version": "5.6.7",
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"
@@ -848,14 +848,14 @@ async function startRepl(args) {
848
848
  // User mesajı
849
849
  messages.push({ role: 'user', content: line });
850
850
 
851
- // v5.4.9: Hard-coded fallback "sen kimsin?" gibi sorular icin model cevabindan once prefix
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 "Ben İchigo" model cevap verse bile onemli degil, bu gorunur
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 İchigo, NatureCo CLI\'nin Türkçe yapay zeka asistanıyım. ');
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
- // Text chunk callback — v5.4.15: DIREKT FIX, buffer'sız
872
- // v5.4.15: Her chunk'ta inline fix - buffer mantigi tamamen kaldirildi
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.4.18: Tam cevaba inline fix uygula (stream false sayesinde tam metin gelir)
926
- const fixedReply = global._applyModelNameFix ? global._applyModelNameFix(reply) : reply;
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((reply || '').length / 4);
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));