natureco-cli 2.13.7 → 2.13.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": "2.13.7",
3
+ "version": "2.13.9",
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.13.7</div>
214
+ <div class="version-badge" id="version-badge">v2.13.9</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.13.7',
344
+ version: 'v2.13.9',
345
345
  bots: cfg.bots || [],
346
346
  telegramToken: cfg.telegramToken || null,
347
347
  whatsappConnected: cfg.whatsappConnected || false,
package/src/utils/api.js CHANGED
@@ -722,18 +722,15 @@ TOOL SELECTION GUIDE:
722
722
  if (mcpTools.length > 0) {
723
723
  const mcpServerNames = Object.keys(mcpClients);
724
724
 
725
- systemPrompt += `\n\nAVAILABLE MCP SERVERS AND TOOLS:`;
725
+ systemPrompt += `\n\nMCP SERVERS (${mcpServerNames.length}):`;
726
726
 
727
727
  for (const serverName of mcpServerNames) {
728
728
  const serverTools = mcpClients[serverName].tools;
729
- const toolNames = serverTools.map(t => t.name).join(', ');
730
- systemPrompt += `\n- ${serverName} server: ${toolNames}`;
729
+ systemPrompt += `\n- ${serverName}: ${serverTools.length} tools`;
731
730
  }
732
731
 
733
- systemPrompt += `\n\nCRITICAL: When filesystem MCP server is loaded, you MUST use list_directory (NOT list_dir), read_file from MCP (NOT local read_file).`;
734
- systemPrompt += `\nLocal tools are DISABLED when MCP equivalents exist. Always check MCP tools first.`;
735
- systemPrompt += `\nMCP tools have more features and better error handling than local tools.`;
736
- systemPrompt += `\n\nFor GitHub MCP, prefer list_issues over search_issues when listing issues.`;
732
+ systemPrompt += `\n\nWhen filesystem MCP is loaded, use list_directory (not list_dir), read_file from MCP (not local).`;
733
+ systemPrompt += `\nFor GitHub MCP, prefer list_issues over search_issues.`;
737
734
  }
738
735
 
739
736
  // Add available skills information
@@ -747,9 +744,13 @@ TOOL SELECTION GUIDE:
747
744
 
748
745
  if (skills.length > 0) {
749
746
  systemPrompt += `\n\nAVAILABLE SKILLS:`;
750
- systemPrompt += `\nYou have ${skills.length} custom skills installed in ~/.natureco/skills/`;
751
- systemPrompt += `\nSkills: ${skills.join(', ')}`;
752
- systemPrompt += `\nThese skills may contain specialized scripts, tools, or workflows the user has configured.`;
747
+
748
+ // Show only first 10 skills, summarize the rest
749
+ if (skills.length > 10) {
750
+ systemPrompt += `\nInstalled skills (${skills.length} total): ${skills.slice(0, 10).join(', ')} and ${skills.length - 10} more.`;
751
+ } else {
752
+ systemPrompt += `\nInstalled skills: ${skills.join(', ')}`;
753
+ }
753
754
  }
754
755
  } catch (err) {
755
756
  // Silently skip if skills directory can't be read
@@ -231,12 +231,24 @@ function getMemoryPrompt(botId) {
231
231
  }
232
232
 
233
233
  if (facts.length > 0) {
234
+ // Limit to top 15 facts to reduce token usage
234
235
  const sorted = facts.sort((a, b) => b.score - a.score);
235
- parts.push(`Bilgiler: ${sorted.map(f => f.value).join(', ')}`);
236
+ const topFacts = sorted.slice(0, 15);
237
+
238
+ console.log('[MEMORY] Facts count:', facts.length, '→ showing:', topFacts.length);
239
+
240
+ parts.push(`Bilgiler: ${topFacts.map(f => f.value).join(', ')}`);
241
+
242
+ if (facts.length > 15) {
243
+ parts.push(`(${facts.length - 15} daha fazla bilgi mevcut)`);
244
+ }
236
245
  }
237
246
  }
238
247
 
239
- return parts.join('\n');
248
+ const prompt = parts.join('\n');
249
+ console.log('[MEMORY] Prompt length:', prompt.length, 'chars, ~', Math.round(prompt.length / 4), 'tokens');
250
+
251
+ return prompt;
240
252
  }
241
253
 
242
254
  // Clear memory for a bot