blun-king-cli 9.1.140 → 9.1.142

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 CHANGED
@@ -135,6 +135,8 @@ Ab BLUN King 9.1.139 begrenzt die Modellprojektion ältere, nicht adressierte Te
135
135
 
136
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
137
 
138
+ Ab BLUN King 9.1.142 behält die Modellprojektion von älteren, nicht adressierten Telegram-Kanalteilen statt 500 nur noch eine 250 Zeichen lange Vorschau mit Anfang und Ende. Adressierte Kanalteile, die neueste Nutzernachricht, Anhänge, fehlerhaftes Kanal-Markup, Rohverlauf und Exporte bleiben unverändert. In Fredriks aktueller Sitzung spart das pro Modellanfrage weitere 9.221 Zeichen beziehungsweise rund 2.305 geschätzte Token.
139
+
138
140
  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.
139
141
 
140
142
  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
@@ -141,6 +141,10 @@ Ab BLUN King 9.1.139 begrenzt die Modellprojektion ältere, nicht adressierte Te
141
141
 
142
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
143
 
144
+ Ab BLUN King 9.1.141 entfernt die Modellprojektion die Argumente älterer, abgeschlossener Werkzeugaufrufe bereits ab 32 geschätzten Token. Für Werkzeugergebnisse gilt weiterhin die bisherige Schwelle. Die 20 neuesten Nachrichten, noch nicht abgeschlossene Aufrufe, fehlerhaftes JSON und der Sitzungsrohverlauf bleiben unverändert. In Fredriks aktueller Sitzung sinkt die Projektion dadurch pro Modellanfrage um weitere 10.544 Zeichen beziehungsweise rund 2.636 geschätzte Token.
145
+
146
+ Ab BLUN King 9.1.142 behält die Modellprojektion von älteren, nicht adressierten Telegram-Kanalteilen statt 500 nur noch eine 250 Zeichen lange Vorschau mit Anfang und Ende. Adressierte Kanalteile, die neueste Nutzernachricht, Anhänge, fehlerhaftes Kanal-Markup, Rohverlauf und Exporte bleiben unverändert. In Fredriks aktueller Sitzung spart das pro Modellanfrage weitere 9.221 Zeichen beziehungsweise rund 2.305 geschätzte Token.
147
+
144
148
  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.
145
149
 
146
150
  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.
@@ -2,6 +2,7 @@
2
2
 
3
3
  const MICRO_COMPACTION_PRESSURE_RATIO = 0.75;
4
4
  const MICRO_COMPACTION_MIN_ADVANCE_MESSAGES = 20;
5
+ const MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS = 32;
5
6
 
6
7
  function selectMicroCompactionCutoff(options = {}) {
7
8
  const historyLength = nonNegativeInteger(options.historyLength);
@@ -71,5 +72,6 @@ function positiveFinite(value) {
71
72
  module.exports = {
72
73
  MICRO_COMPACTION_MIN_ADVANCE_MESSAGES,
73
74
  MICRO_COMPACTION_PRESSURE_RATIO,
75
+ MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS,
74
76
  selectMicroCompactionCutoff,
75
77
  };
@@ -5,12 +5,12 @@ const LATEST_ONLY_INJECTION_VARIANTS = new Set(['mistake_md']);
5
5
  function repeatedInjectionKey(message) {
6
6
  if (message?.role !== 'user') return null;
7
7
  if (message?.origin?.kind !== 'injection') return null;
8
- const variant = String(message.origin.variant || '').trim();
9
- if (!variant) return null;
10
8
  if (!Array.isArray(message.content) || message.content.length !== 1) return null;
11
9
  const part = message.content[0];
12
10
  if (part?.type !== 'text' || typeof part.text !== 'string') return null;
13
11
  if (Array.isArray(message.toolCalls) && message.toolCalls.length > 0) return null;
12
+ const variant = String(message.origin.variant || '').trim();
13
+ if (!variant) return null;
14
14
  return { variant, text: part.text };
15
15
  }
16
16
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const MAX_UNADDRESSED_TELEGRAM_CONTEXT_CHARS = 2000;
4
- const HISTORICAL_UNADDRESSED_TELEGRAM_CONTEXT_CHARS = 500;
4
+ const HISTORICAL_UNADDRESSED_TELEGRAM_CONTEXT_CHARS = 250;
5
5
  const HISTORICAL_UNADDRESSED_CHANNEL_PATTERN = /(<channel\s+[^>]*\baddressed="false"[^>]*>[\s\S]*?<\/channel>)(?:\r?\n\[NUR MITLESEN[^\]]*\])?/gu;
6
6
 
7
7
  function trimDanglingHighSurrogate(value) {
package/blun.mjs CHANGED
@@ -75986,9 +75986,9 @@ var init_full = __esmMin((() => {
75986
75986
  }));
75987
75987
  //#endregion
75988
75988
  //#region ../../packages/agent-core/src/agent/compaction/micro.ts
75989
- var selectMicroCompactionCutoff, isPersistedToolResultReference, projectHistoricalUnaddressedTelegramMessages, dedupeRecurringCronWakeups, dedupeRepeatedInjections, DEFAULT_CONFIG, MicroCompaction;
75989
+ var selectMicroCompactionCutoff, MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS, isPersistedToolResultReference, projectHistoricalUnaddressedTelegramMessages, dedupeRecurringCronWakeups, dedupeRepeatedInjections, DEFAULT_CONFIG, MicroCompaction;
75990
75990
  var init_micro = __esmMin((() => {
75991
- ({ selectMicroCompactionCutoff } = createRequire(import.meta.url)("./bin/micro-compaction-policy.cjs"));
75991
+ ({ selectMicroCompactionCutoff, MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS } = createRequire(import.meta.url)("./bin/micro-compaction-policy.cjs"));
75992
75992
  ({ isPersistedToolResultReference } = createRequire(import.meta.url)("./bin/tool-result-offload-policy.cjs"));
75993
75993
  ({ projectHistoricalUnaddressedTelegramMessages } = createRequire(import.meta.url)("./bin/telegram-context-projection-policy.cjs"));
75994
75994
  ({ dedupeRecurringCronWakeups, dedupeRepeatedInjections } = createRequire(import.meta.url)("./bin/repeated-injection-projection.cjs"));
@@ -75996,6 +75996,7 @@ var init_micro = __esmMin((() => {
75996
75996
  DEFAULT_CONFIG = {
75997
75997
  keepRecentMessages: 20,
75998
75998
  minContentTokens: 100,
75999
+ minToolArgumentTokens: MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS,
75999
76000
  cacheMissedThresholdMs: 3600 * 1e3,
76000
76001
  truncatedMarker: "[Old tool result content cleared]",
76001
76002
  truncatedArgumentsMarker: "[Old tool call arguments cleared]",
@@ -76093,7 +76094,7 @@ var init_micro = __esmMin((() => {
76093
76094
  else if (i < historicalArgumentCutoff && msg.role === "assistant" && Array.isArray(msg.toolCalls)) {
76094
76095
  let changed = false;
76095
76096
  const toolCalls = msg.toolCalls.map((call) => {
76096
- if (!completedToolCallIds.has(call.id) || typeof call.arguments !== "string" || this.toolArgumentTokens(call.arguments) < config.minContentTokens) return call;
76097
+ if (!completedToolCallIds.has(call.id) || typeof call.arguments !== "string" || this.toolArgumentTokens(call.arguments) < config.minToolArgumentTokens) return call;
76097
76098
  try {
76098
76099
  JSON.parse(call.arguments);
76099
76100
  } catch {
@@ -76149,7 +76150,7 @@ var init_micro = __esmMin((() => {
76149
76150
  continue;
76150
76151
  }
76151
76152
  const argumentTokens = this.toolArgumentTokens(call.arguments);
76152
- if (argumentTokens < this.config.minContentTokens) continue;
76153
+ if (argumentTokens < this.config.minToolArgumentTokens) continue;
76153
76154
  argumentsMarkerTokenCount ??= this.toolArgumentTokens(serializedArgumentsMarker);
76154
76155
  truncatedToolArgumentCount += 1;
76155
76156
  truncatedToolArgumentTokensBefore += argumentTokens;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.140",
3
+ "version": "9.1.142",
4
4
  "description": "BLUN CLI - your own AI agent with a Telegram channel. Get it done. With BLUN.",
5
5
  "license": "MIT",
6
6
  "bin": {