beast-agent 2.44.2 → 2.44.4

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,7 +1,7 @@
1
1
  {
2
2
  "name": "beast-agent",
3
3
  "productName": "Beast Agent",
4
- "version": "2.44.2",
4
+ "version": "2.44.4",
5
5
  "description": "Ultra-fast local agent shell for Windows.",
6
6
  "author": "algokodcom (AlgoKod)",
7
7
  "license": "MIT",
@@ -119,11 +119,34 @@ function modelContextOf(sel) {
119
119
 
120
120
  /* Çıktı biçimi kuralı: # ve * karakteri yasak (tüm ajanlar için ortak metin) */
121
121
  const FORMAT_RULES =
122
- 'ÇIKTI BİÇİMİ (ZORUNLU):\n' +
123
- '- Yanıtlarında asla # karakteri kullanma (markdown başlık yok).\n' +
124
- '- Asla * karakteri kullanma (kalın/italik yıldız yok); madde işaretleri için - kullan.\n' +
125
- '- Renkli sembol/ikon kullanma (renkli kalp, daire vb. yok); normal sarı emoji kullanabilirsin.\n' +
126
- '- Kod bloklarında dil gereği # veya * gerekiyorsa kod içinde serbest.';
122
+ 'ÇIKTI BİÇİMİ VE ÜSLUP (ZORUNLU):\n' +
123
+ '- Doğal ve insani yaz: anlatımı normal cümlelerle kur. Kalıplaşmış giriş/kapanış cümleleri, boş nezaket ("umarım yardımcı olur" vb.) ve art arda robotik madde listeleri kullanma.\n' +
124
+ '- Cümle içinde ayraç olarak uzun tire (—), kısa tire (-) ve eğik çizgi (/) KULLANMA; virgül, nokta, iki nokta kullan. Sözcükleri "/" ile birleştirme: "ve", "veya", "ya da" yaz. (Sayı aralığı "3-5", kod, URL ve komutlar istisnadır.)\n' +
125
+ '- Süs sembolleri kullanma (→ · • | ✓ ★ vb.); normal sarı emoji kullanabilirsin.\n' +
126
+ '- Asla # karakteri kullanma (markdown başlık yok). Asla * karakteri kullanma; madde listesi gerekirse satır başında "- " kullan.\n' +
127
+ '- Kod bloklarında dil gereği # * / - gerekiyorsa kod içinde serbest.';
128
+
129
+ /* Yapay zeka imzası sayılan işaret temizliği: uzun tireler ve cümle içi
130
+ ayraç tireleri virgüle, " / " "ya da"ya, süs sembolleri sadeleşir; sayı
131
+ aralıkları, kod blokları ve satır içi kod DOKUNULMADAN korunur. */
132
+ function stripAiDashes(text) {
133
+ const s = String(text == null ? '' : text);
134
+ if (!/[\u2013\u2014\u00b7\u2022]|[ \t][-/][ \t]|ve\/veya/i.test(s)) return s;
135
+ const parts = s.split(/(```[\s\S]*?```|`[^`\n]*`)/);
136
+ for (let i = 0; i < parts.length; i += 2) {
137
+ parts[i] = parts[i]
138
+ .replace(/^([ \t]*)[\u2022\u00b7][ \t]*/gm, '$1- ')
139
+ .replace(/(\d)[ \t]*[-\u2013\u2014][ \t]*(\d)/g, '$1-$2')
140
+ .replace(/[ \t]*[\u2013\u2014][ \t]*/g, ', ')
141
+ .replace(/ve\/veya/gi, 'veya')
142
+ .replace(/(\S)[ \t]+\/[ \t]+(\S)/g, '$1 ya da $2')
143
+ .replace(/(\S)[ \t]+-[ \t]+/g, '$1, ')
144
+ .replace(/[ \t]*\u00b7[ \t]*/g, ', ')
145
+ .replace(/,\s*,/g, ',')
146
+ .replace(/[ \t]+([.!?:;])/g, '$1');
147
+ }
148
+ return parts.join('');
149
+ }
127
150
 
128
151
  /* Kişi bazlı granül izin seviyeleri: hangi araçlara erişilebilir */
129
152
  const PERM_TOOL_SETS = {
@@ -865,6 +888,7 @@ class Engine {
865
888
  costIn: Number(c.costIn) || null,
866
889
  costOut: Number(c.costOut) || null,
867
890
  };
891
+ if (res && typeof res.content === 'string') res.content = stripAiDashes(res.content);
868
892
  return res;
869
893
  } catch (e) {
870
894
  if (e && (e.name === 'AbortError' || (signal && signal.aborted))) throw e;
@@ -4934,6 +4958,7 @@ const skills = require('./skills');
4934
4958
  }),
4935
4959
  }
4936
4960
  );
4961
+ if (res && typeof res.content === 'string') res.content = stripAiDashes(res.content);
4937
4962
  const assistant = { role: 'assistant', content: res.content || '' };
4938
4963
  if (res.toolCalls && res.toolCalls.length) assistant.tool_calls = res.toolCalls;
4939
4964
  if (res.reasoning) assistant.reasoning_content = res.reasoning; /* thinking geri-besleme */
@@ -7113,3 +7138,4 @@ module.exports.PERM_TOOL_SETS = PERM_TOOL_SETS;
7113
7138
  module.exports.PERM_LEVELS = PERM_LEVELS;
7114
7139
  module.exports.normalizePerms = normalizePerms;
7115
7140
  module.exports.OBSERVE_MARK = OBSERVE_MARK;
7141
+ module.exports.stripAiDashes = stripAiDashes;
package/src/main.js CHANGED
@@ -11,7 +11,7 @@ const crypto = require('crypto');
11
11
  isteklerindeki konuşma-başına kimlik agent/llm.js'te üretilir */
12
12
  const OPENCODE_SESSION = 'beast-' + crypto.randomUUID();
13
13
  const { spawn } = require('child_process');
14
- const { Engine, OBSERVE_MARK } = require('./agent/engine');
14
+ const { Engine, OBSERVE_MARK, stripAiDashes } = require('./agent/engine');
15
15
  const { loadBeastConfig, parseEnvFile, beastDir } = require('./agent/config');
16
16
  const bots = require('./agent/bots');
17
17
  const mqueue = require('./agent/mqueue');
@@ -7171,7 +7171,7 @@ function empatiLlmCompose(prompt) {
7171
7171
  ],
7172
7172
  temperature: 0.6,
7173
7173
  }, { signal: ctrl.signal })
7174
- .then((r) => String(r.content || '').trim().slice(0, 600))
7174
+ .then((r) => stripAiDashes(String(r.content || '').trim()).slice(0, 600))
7175
7175
  .catch(() => '')
7176
7176
  .finally(() => clearTimeout(kill));
7177
7177
  }