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 +1 -1
- package/src/agent/engine.js +31 -5
- package/src/main.js +2 -2
package/package.json
CHANGED
package/src/agent/engine.js
CHANGED
|
@@ -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
|
-
'-
|
|
124
|
-
'-
|
|
125
|
-
'-
|
|
126
|
-
'-
|
|
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
|
}
|