blun-king-cli 9.1.108 → 9.1.110

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
@@ -111,6 +111,8 @@ Version 9.1.105 ergänzt `TaskUpdate` für laufende Hintergrundagenten. King üb
111
111
 
112
112
  Version 9.1.106 erlaubt Agentenprofilen, Werkzeuge namentlich auszuschließen. King wendet diese Ausschlüsse erst an, nachdem dauerhaft geladene, dynamisch nachgeladene und MCP-Werkzeuge zusammengestellt wurden. Die Standardprofile `coder`, `explore` und `plan` können über Telegram weder antworten noch reagieren, Nachrichten bearbeiten oder Anhänge herunterladen; der Hauptagent bleibt unverändert. So senden delegierte Agenten keine Nachrichten am Hauptagenten vorbei, und ihre Modellanfragen enthalten weniger Werkzeugschemas. Nicht gefundene, namentlich angegebene Werkzeuge werden sichtbar gemeldet.
113
113
 
114
+ Version 9.1.109 hält nur noch die neun Werkzeuge dauerhaft in der Modellanfrage, auf die mehr als 98 Prozent von Fredriks 3.183 gemessenen Werkzeugaufrufen entfielen. Alle übrigen Werkzeuge bleiben über `ToolSearch` auffindbar und nach dem ersten Laden für den Rest der Sitzung verfügbar. Dadurch sinkt die Schemalast bei jedem normalen Modellschritt, ohne ein Werkzeug zu entfernen oder den Schnellweg für Telegram-Antworten und ausstehende Medienergebnisse zu verändern.
115
+
114
116
  Verliert ein delegierter Einzelagent oder ein Mitglied eines Agentenschwarms die Provider-Verbindung, erhält es eine leere Provider-Antwort, bricht sein Stream wegen Leerlaufs ab oder meldet der Server HTTP 408/500/502/503/504, setzt BLUN King denselben Agenten anhand seines dauerhaften Verlaufs fort. Bei Einzelagenten sowie bei Schwarm-Unterbrechungen außerhalb von HTTP 429 wartet die erste Fortsetzung zwei Sekunden und die zweite fünf Sekunden; danach bleibt der ursprüngliche Fehler sichtbar. HTTP 429 behält im Schwarm seine getrennte, längere Überlastungsregel. Authentifizierungs-, Zahlungs- oder Kontingent-, Richtlinien-, Kontext-, Werkzeug- und Codefehler sowie manuelle Abbrüche lösen keine automatische Fortsetzung aus. Jeder Fortsetzungsversuch verwendet die bestehende Agenten-ID, damit bereits abgeschlossene Arbeit nicht wiederholt wird.
115
117
 
116
118
  Rein lesende Sitzungsdiagnose
package/README.md CHANGED
@@ -117,6 +117,8 @@ Version 9.1.105 ergänzt `TaskUpdate` für laufende Hintergrundagenten. King üb
117
117
 
118
118
  Version 9.1.106 erlaubt Agentenprofilen, Werkzeuge namentlich auszuschließen. King wendet diese Ausschlüsse erst an, nachdem dauerhaft geladene, dynamisch nachgeladene und MCP-Werkzeuge zusammengestellt wurden. Die Standardprofile `coder`, `explore` und `plan` können über Telegram weder antworten noch reagieren, Nachrichten bearbeiten oder Anhänge herunterladen; der Hauptagent bleibt unverändert. So senden delegierte Agenten keine Nachrichten am Hauptagenten vorbei, und ihre Modellanfragen enthalten weniger Werkzeugschemas. Nicht gefundene, namentlich angegebene Werkzeuge werden sichtbar gemeldet.
119
119
 
120
+ Version 9.1.109 hält nur noch die neun Werkzeuge dauerhaft in der Modellanfrage, auf die mehr als 98 Prozent von Fredriks 3.183 gemessenen Werkzeugaufrufen entfielen. Alle übrigen Werkzeuge bleiben über `ToolSearch` auffindbar und nach dem ersten Laden für den Rest der Sitzung verfügbar. Dadurch sinkt die Schemalast bei jedem normalen Modellschritt, ohne ein Werkzeug zu entfernen oder den Schnellweg für Telegram-Antworten und ausstehende Medienergebnisse zu verändern.
121
+
120
122
  Ab BLUN King 9.1.99 werden auch direkt aufeinanderfolgende reine Textergebnisse als Stapel betrachtet. Enthalten sie zusammen mehr als 12.000 Zeichen, obwohl kein einzelnes Ergebnis diese Grenze überschreitet, speichert King so viele der größten geeigneten Ergebnisse wie nötig in privaten Dateien. In der Modellprojektion verbleiben lesbare Verweise. Der unveränderte Sitzungsrohverlauf bleibt vollständig erhalten. Gemischte Medienergebnisse, einzelne Ergebnisse unter 3.000 Zeichen und Stapel bis einschließlich 12.000 Zeichen bleiben unverändert. Beispiel: Bei zwei Suchergebnissen mit 7.000 und 6.000 Zeichen wird das größere Ergebnis privat gespeichert; Anfang, Ende, ausgelassene Zeichenzahl und `output_path` bleiben für den Agenten sichtbar.
121
123
 
122
124
  Ab BLUN King 9.1.100 beendet eine begrenzte Grep-Inhaltssuche ripgrep, sobald der Versatz, die angeforderten Zeilen und eine zusätzliche Vorschauzeile vollständig vorliegen. Die Vorschauzeile belegt, ob eine weitere Seite existiert, ohne vorher bis zu 10 MB einzulesen. Unbegrenzte Suchen, Trefferzählungen und nach Änderungszeit sortierte Dateilisten laufen weiterhin vollständig durch.
@@ -9,24 +9,10 @@ const CORE_TOOL_NAMES = Object.freeze([
9
9
  'Edit',
10
10
  'Grep',
11
11
  'Write',
12
- 'TodoList',
13
- 'CompactConversation',
14
12
  'Glob',
15
- 'TaskList',
16
- 'Agent',
17
- 'GetGoal',
18
- 'CronList',
19
- 'ReadMediaFile',
20
- 'TaskOutput',
21
- 'Skill',
22
13
  'GenerateImage',
23
14
  'GenerateVideo',
24
- 'GenerateSpeech',
25
- 'GetMedia',
26
15
  'mcp__plugin-telegram_telegram__reply',
27
- 'mcp__plugin-telegram_telegram__react',
28
- 'mcp__plugin-telegram_telegram__edit_message',
29
- 'mcp__plugin-telegram_telegram__download_attachment',
30
16
  ]);
31
17
 
32
18
  function toolSchemaBudgetTokens(maxContextTokens) {
package/blun.mjs CHANGED
@@ -1654,9 +1654,11 @@ var init_errors$10 = __esmMin((() => {
1654
1654
  }
1655
1655
  };
1656
1656
  APIProviderRateLimitError = class extends APIStatusError {
1657
- constructor(message, requestId) {
1657
+ retryAfterMs;
1658
+ constructor(message, requestId, retryAfterMs) {
1658
1659
  super(429, message, requestId);
1659
1660
  this.name = "APIProviderRateLimitError";
1661
+ this.retryAfterMs = typeof retryAfterMs === "number" && Number.isFinite(retryAfterMs) && retryAfterMs >= 0 ? retryAfterMs : null;
1660
1662
  }
1661
1663
  };
1662
1664
  APIPaymentRequiredError = class extends APIStatusError {
@@ -1849,6 +1851,7 @@ async function responseError(response) {
1849
1851
  apiCode: code,
1850
1852
  retryAfterMs: retryAfterHeaderMs(response.headers)
1851
1853
  });
1854
+ if (response.status === 429) return new APIProviderRateLimitError(message, requestId, retryAfterHeaderMs(response.headers));
1852
1855
  return normalizeAPIStatusError(response.status, message, requestId);
1853
1856
  }
1854
1857
  function retryAfterHeaderMs(headers) {
@@ -30322,7 +30325,7 @@ async function chatWithRetry(input) {
30322
30325
  logRequestFailure(input, error, attempt, maxAttempts);
30323
30326
  throw error;
30324
30327
  }
30325
- const delayMs = delays[attempt - 1] ?? 0;
30328
+ const delayMs = retryDelayForError(error, delays[attempt - 1] ?? 0);
30326
30329
  input.params.signal.throwIfAborted();
30327
30330
  input.dispatchEvent({
30328
30331
  type: "step.retrying",
@@ -30338,6 +30341,10 @@ async function chatWithRetry(input) {
30338
30341
  await sleepForRetry(delayMs, input.params.signal);
30339
30342
  }
30340
30343
  }
30344
+ function retryDelayForError(error, fallbackDelayMs) {
30345
+ if (!(error instanceof APIProviderRateLimitError) || error.retryAfterMs === null) return fallbackDelayMs;
30346
+ return Math.max(fallbackDelayMs, error.retryAfterMs);
30347
+ }
30341
30348
  function logRequestFailure(input, error, attempt, maxAttempts) {
30342
30349
  if (isAbortError$4(error) || input.params.signal.aborted) return;
30343
30350
  input.log?.warn("llm request failed", {
@@ -257727,7 +257734,7 @@ var init_rg_locator = __esmMin((() => {
257727
257734
  import_yauzl$2 = require_yauzl();
257728
257735
  init_abort();
257729
257736
  RG_VERSION = "15.0.0";
257730
- RG_BASE_URL = "https://blun.ai/blun/rg";
257737
+ RG_BASE_URL = `https://github.com/BurntSushi/ripgrep/releases/download/${RG_VERSION}`;
257731
257738
  DOWNLOAD_TIMEOUT_MS$1 = 6e5;
257732
257739
  RG_ARCHIVE_SHA256 = {
257733
257740
  "ripgrep-15.0.0-aarch64-apple-darwin.tar.gz": "98bb2e61e7277ba0ea72d2ae2592497fd8d2940934a16b122448d302a6637e3b",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.108",
3
+ "version": "9.1.110",
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": {