blun-king-cli 9.1.138 → 9.1.140
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/LIESMICH.txt +4 -0
- package/README.md +4 -0
- package/bin/mistake-relevance-policy.cjs +1 -1
- package/bin/telegram-context-projection-policy.cjs +50 -0
- package/blun.mjs +4 -2
- package/package.json +1 -1
package/LIESMICH.txt
CHANGED
|
@@ -131,6 +131,10 @@ Ab BLUN King 9.1.137 schützt die Modellprojektion nur noch die zwölf neuesten
|
|
|
131
131
|
|
|
132
132
|
Ab BLUN King 9.1.138 enthält die Modellprojektion von jedem wiederkehrenden Cron-Auftrag nur noch den neuesten ausstehenden Weckhinweis. Einmalige Erinnerungen, unterschiedliche Aufträge sowie fehlerhafte oder nicht eindeutig zugeordnete Nachrichten bleiben unverändert. Der vollständige Sitzungs-Wire bleibt erhalten. In Fredriks aktueller Sitzung entfallen dadurch bei jeder Anfrage 12.012 Zeichen, also rund 3.003 geschätzte Token.
|
|
133
133
|
|
|
134
|
+
Ab BLUN King 9.1.139 begrenzt die Modellprojektion ältere, nicht adressierte Telegram-Kanalteile auf 500 Zeichen pro Nachricht. Die neueste Nutzernachricht, adressierte Kanalteile, Anhänge und der vollständige Sitzungs-Wire bleiben unverändert. In Fredriks aktueller Sitzung entfallen dadurch bei jeder Anfrage 9.389 Zeichen, also rund 2.348 geschätzte Token.
|
|
135
|
+
|
|
136
|
+
Ab BLUN King 9.1.140 begrenzt die relevanzbasierte Mistake-Erinnerung den zusätzlich eingeblendeten Regelkontext standardmäßig auf 4.000 Zeichen. Die vollständigen Mistake-Dateien und der Sitzungs-Wire bleiben unverändert; nur die Modellprojektion erhält die engere Auswahl. In Fredriks gemessenem Lauf sinkt der Hinweis dadurch von 6.037 auf höchstens 4.000 Zeichen. Das spart mindestens 2.037 Zeichen beziehungsweise rund 509 geschätzte Token pro Anfrage.
|
|
137
|
+
|
|
134
138
|
Ab BLUN King 9.1.136 behält die Modellprojektion nur noch den neuesten dynamischen `Mistake.md`-Hinweis. Ältere, zugbezogene Auswahlen bleiben im Sitzungsrohverlauf und in Exporten erhalten, werden nach einer neueren Auswahl aber nicht mehr erneut an das Modell gesendet. Andere geänderte Hinweise bleiben unberührt. In Fredriks aktueller Sitzung lagen fünf `Mistake.md`-Auswahlen vor; das Entfernen der vier überholten Kopien spart pro Modellanfrage 24.143 Zeichen, also etwa 6.036 geschätzte Token.
|
|
135
139
|
|
|
136
140
|
Ab BLUN King 9.1.131 entfernt die Modellprojektion zwei ältere Regelkopien aus dem Systemprompt, sobald gleichwertige Regeln im Conduct-Abschnitt vorhanden sind. Betroffen sind ausschließlich die doppelten Hinweise zu Ehrlichkeit und Zugangsdaten; die vollständigen Conduct-Regeln und alle übrigen Prompt-Abschnitte bleiben unverändert. In der ausgelieferten Standardvorlage sinkt der wiederholt gesendete Prompt dadurch um 1.010 Zeichen, also um etwa 253 geschätzte Token pro Modellanfrage. Fehlt eines der Conduct-Gegenstücke, bleibt die entsprechende ältere Regel unverändert erhalten.
|
package/README.md
CHANGED
|
@@ -137,6 +137,10 @@ Ab BLUN King 9.1.137 schützt die Modellprojektion nur noch die zwölf neuesten
|
|
|
137
137
|
|
|
138
138
|
Ab BLUN King 9.1.138 enthält die Modellprojektion von jedem wiederkehrenden Cron-Auftrag nur noch den neuesten ausstehenden Weckhinweis. Einmalige Erinnerungen, unterschiedliche Aufträge sowie fehlerhafte oder nicht eindeutig zugeordnete Nachrichten bleiben unverändert. Der vollständige Sitzungs-Wire bleibt erhalten. In Fredriks aktueller Sitzung entfallen dadurch bei jeder Anfrage 12.012 Zeichen, also rund 3.003 geschätzte Token.
|
|
139
139
|
|
|
140
|
+
Ab BLUN King 9.1.139 begrenzt die Modellprojektion ältere, nicht adressierte Telegram-Kanalteile auf 500 Zeichen pro Nachricht. Die neueste Nutzernachricht, adressierte Kanalteile, Anhänge und der vollständige Sitzungs-Wire bleiben unverändert. In Fredriks aktueller Sitzung entfallen dadurch bei jeder Anfrage 9.389 Zeichen, also rund 2.348 geschätzte Token.
|
|
141
|
+
|
|
142
|
+
Ab BLUN King 9.1.140 begrenzt die relevanzbasierte Mistake-Erinnerung den zusätzlich eingeblendeten Regelkontext standardmäßig auf 4.000 Zeichen. Die vollständigen Mistake-Dateien und der Sitzungs-Wire bleiben unverändert; nur die Modellprojektion erhält die engere Auswahl. In Fredriks gemessenem Lauf sinkt der Hinweis dadurch von 6.037 auf höchstens 4.000 Zeichen. Das spart mindestens 2.037 Zeichen beziehungsweise rund 509 geschätzte Token pro Anfrage.
|
|
143
|
+
|
|
140
144
|
Ab BLUN King 9.1.136 behält die Modellprojektion nur noch den neuesten dynamischen `Mistake.md`-Hinweis. Ältere, zugbezogene Auswahlen bleiben im Sitzungsrohverlauf und in Exporten erhalten, werden nach einer neueren Auswahl aber nicht mehr erneut an das Modell gesendet. Andere geänderte Hinweise bleiben unberührt. In Fredriks aktueller Sitzung lagen fünf `Mistake.md`-Auswahlen vor; das Entfernen der vier überholten Kopien spart pro Modellanfrage 24.143 Zeichen, also etwa 6.036 geschätzte Token.
|
|
141
145
|
|
|
142
146
|
Ab BLUN King 9.1.131 entfernt die Modellprojektion zwei ältere Regelkopien aus dem Systemprompt, sobald gleichwertige Regeln im Conduct-Abschnitt vorhanden sind. Betroffen sind ausschließlich die doppelten Hinweise zu Ehrlichkeit und Zugangsdaten; die vollständigen Conduct-Regeln und alle übrigen Prompt-Abschnitte bleiben unverändert. In der ausgelieferten Standardvorlage sinkt der wiederholt gesendete Prompt dadurch um 1.010 Zeichen, also um etwa 253 geschätzte Token pro Modellanfrage. Fehlt eines der Conduct-Gegenstücke, bleibt die entsprechende ältere Regel unverändert erhalten.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const MAX_UNADDRESSED_TELEGRAM_CONTEXT_CHARS = 2000;
|
|
4
|
+
const HISTORICAL_UNADDRESSED_TELEGRAM_CONTEXT_CHARS = 500;
|
|
5
|
+
const HISTORICAL_UNADDRESSED_CHANNEL_PATTERN = /(<channel\s+[^>]*\baddressed="false"[^>]*>[\s\S]*?<\/channel>)(?:\r?\n\[NUR MITLESEN[^\]]*\])?/gu;
|
|
4
6
|
|
|
5
7
|
function trimDanglingHighSurrogate(value) {
|
|
6
8
|
if (value.length === 0) return value;
|
|
@@ -33,7 +35,55 @@ function projectUnaddressedTelegramContext(
|
|
|
33
35
|
return `${head}${marker}${tail}`;
|
|
34
36
|
}
|
|
35
37
|
|
|
38
|
+
function projectHistoricalUnaddressedTelegramText(text) {
|
|
39
|
+
if (typeof text !== 'string' || !text.includes('addressed="false"')) return text;
|
|
40
|
+
return text.replace(
|
|
41
|
+
HISTORICAL_UNADDRESSED_CHANNEL_PATTERN,
|
|
42
|
+
(_matched, channel) => projectUnaddressedTelegramContext(
|
|
43
|
+
channel,
|
|
44
|
+
HISTORICAL_UNADDRESSED_TELEGRAM_CONTEXT_CHARS,
|
|
45
|
+
),
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function projectHistoricalUnaddressedTelegramMessages(history) {
|
|
50
|
+
if (!Array.isArray(history) || history.length === 0) return history;
|
|
51
|
+
let latestUserIndex = -1;
|
|
52
|
+
for (let index = history.length - 1; index >= 0; index -= 1) {
|
|
53
|
+
if (history[index]?.role === 'user' && history[index]?.origin?.kind === 'user') {
|
|
54
|
+
latestUserIndex = index;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (latestUserIndex <= 0) return history;
|
|
59
|
+
|
|
60
|
+
let changed = false;
|
|
61
|
+
const projected = history.map((message, index) => {
|
|
62
|
+
if (
|
|
63
|
+
index >= latestUserIndex
|
|
64
|
+
|| message?.role !== 'user'
|
|
65
|
+
|| message?.origin?.kind !== 'user'
|
|
66
|
+
|| !Array.isArray(message.content)
|
|
67
|
+
) return message;
|
|
68
|
+
|
|
69
|
+
let messageChanged = false;
|
|
70
|
+
const content = message.content.map((part) => {
|
|
71
|
+
if (part?.type !== 'text' || typeof part.text !== 'string') return part;
|
|
72
|
+
const text = projectHistoricalUnaddressedTelegramText(part.text);
|
|
73
|
+
if (text === part.text) return part;
|
|
74
|
+
messageChanged = true;
|
|
75
|
+
return { ...part, text };
|
|
76
|
+
});
|
|
77
|
+
if (!messageChanged) return message;
|
|
78
|
+
changed = true;
|
|
79
|
+
return { ...message, content };
|
|
80
|
+
});
|
|
81
|
+
return changed ? projected : history;
|
|
82
|
+
}
|
|
83
|
+
|
|
36
84
|
module.exports = {
|
|
85
|
+
HISTORICAL_UNADDRESSED_TELEGRAM_CONTEXT_CHARS,
|
|
37
86
|
MAX_UNADDRESSED_TELEGRAM_CONTEXT_CHARS,
|
|
87
|
+
projectHistoricalUnaddressedTelegramMessages,
|
|
38
88
|
projectUnaddressedTelegramContext,
|
|
39
89
|
};
|
package/blun.mjs
CHANGED
|
@@ -75986,10 +75986,11 @@ var init_full = __esmMin((() => {
|
|
|
75986
75986
|
}));
|
|
75987
75987
|
//#endregion
|
|
75988
75988
|
//#region ../../packages/agent-core/src/agent/compaction/micro.ts
|
|
75989
|
-
var selectMicroCompactionCutoff, isPersistedToolResultReference, dedupeRecurringCronWakeups, dedupeRepeatedInjections, DEFAULT_CONFIG, MicroCompaction;
|
|
75989
|
+
var selectMicroCompactionCutoff, isPersistedToolResultReference, projectHistoricalUnaddressedTelegramMessages, dedupeRecurringCronWakeups, dedupeRepeatedInjections, DEFAULT_CONFIG, MicroCompaction;
|
|
75990
75990
|
var init_micro = __esmMin((() => {
|
|
75991
75991
|
({ selectMicroCompactionCutoff } = createRequire(import.meta.url)("./bin/micro-compaction-policy.cjs"));
|
|
75992
75992
|
({ isPersistedToolResultReference } = createRequire(import.meta.url)("./bin/tool-result-offload-policy.cjs"));
|
|
75993
|
+
({ projectHistoricalUnaddressedTelegramMessages } = createRequire(import.meta.url)("./bin/telegram-context-projection-policy.cjs"));
|
|
75993
75994
|
({ dedupeRecurringCronWakeups, dedupeRepeatedInjections } = createRequire(import.meta.url)("./bin/repeated-injection-projection.cjs"));
|
|
75994
75995
|
init_tokens();
|
|
75995
75996
|
DEFAULT_CONFIG = {
|
|
@@ -78962,7 +78963,8 @@ var init_context$2 = __esmMin((() => {
|
|
|
78962
78963
|
}
|
|
78963
78964
|
project(messages, options) {
|
|
78964
78965
|
const anomalies = [];
|
|
78965
|
-
const
|
|
78966
|
+
const historicalTelegramProjected = projectHistoricalUnaddressedTelegramMessages(messages);
|
|
78967
|
+
const result = project(this.agent.assistantMessageOffload.compact(this.agent.userMessageOffload.compact(this.agent.microCompaction.compact(this.agent.toolResultBatchOffload.compact(dedupeRecurringCronWakeups(dedupeRepeatedInjections(compactBaselineSkillInjections(historicalTelegramProjected))))))), {
|
|
78966
78968
|
...options,
|
|
78967
78969
|
onAnomaly: (anomaly) => {
|
|
78968
78970
|
anomalies.push(anomaly);
|