blun-king-cli 9.1.78 → 9.1.80
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 +16 -1
- package/README.md +15 -1
- package/bin/tool-result-offload-telemetry.cjs +12 -0
- package/blun.mjs +11 -2
- package/package.json +1 -1
package/LIESMICH.txt
CHANGED
|
@@ -9,7 +9,7 @@ Installation
|
|
|
9
9
|
------------
|
|
10
10
|
Die geprüfte Version exakt global installieren:
|
|
11
11
|
|
|
12
|
-
npm install -g blun-king-cli@9.1.
|
|
12
|
+
npm install -g blun-king-cli@9.1.80
|
|
13
13
|
|
|
14
14
|
Start
|
|
15
15
|
-----
|
|
@@ -86,6 +86,14 @@ Exportieren und die sichtbare Historie behalten die ursprünglichen
|
|
|
86
86
|
Werkzeugergebnisse. Das Telemetrieereignis `micro_compaction_finished` nennt den
|
|
87
87
|
Auslöser, den Schnitt und die geschätzte Tokenzahl vor und nach der Entlastung.
|
|
88
88
|
|
|
89
|
+
## Große Werkzeugausgaben und isolierte Teilagenten
|
|
90
|
+
|
|
91
|
+
Werkzeugausgaben mit mehr als 50.000 Zeichen werden vollständig unter `<agent-home>/tool-results/` gespeichert. Im Modellkontext bleiben nur eine Vorschau der ersten 2.000 Zeichen, der genaue `output_path` und der Hinweis, die Datei bei Bedarf mit `Read` zu öffnen. Dadurch bleibt die vollständige Ausgabe wiederauffindbar, ohne in jedem weiteren Modellschritt erneut als großer Textblock mitzufahren.
|
|
92
|
+
|
|
93
|
+
Das Telemetrieereignis `tool_result_offloaded` enthält ausschließlich `tool_name`, `output_size_chars`, `output_size_bytes` und `preview_size_chars`. Es enthält weder den Inhalt noch den Speicherpfad. Beispiel: Eine Ausgabe mit 80.000 Zeichen erzeugt eine Vorschau mit 2.000 Zeichen; die Telemetrie zeigt die Größenersparnis, ohne Nutzdaten zu protokollieren.
|
|
94
|
+
|
|
95
|
+
Reguläre `Agent`-Teilaufgaben verwenden eine eigene `ContextMemory` und eine eigene `wire.jsonl` in einem getrennten Agentenverzeichnis. Der Hauptagent erhält nur die Ergebniszusammenfassung, sodass lange Teilaufgaben nicht den Hauptverlauf füllen. `TodoList` speichert Pläne weiterhin maschinenlesbar im Sitzungs-Wire; `blun handoff` übergibt sie zusammen mit prüfbaren Hashes zwischen CLI, Desktop und Web.
|
|
96
|
+
|
|
89
97
|
Zug-Wächter
|
|
90
98
|
-----------
|
|
91
99
|
Läuft ein Zug 20 Minuten ohne neues Werkzeugergebnis, meldet die Konsole den
|
|
@@ -228,6 +236,13 @@ nicht geschrieben werden, protokolliert King compaction_history_archive_failed
|
|
|
228
236
|
und lässt den normalen Verdichtungsweg verfügbar; ein Archivfehler löscht
|
|
229
237
|
niemals den gespeicherten Sitzungsverlauf.
|
|
230
238
|
|
|
239
|
+
Dauerhafte Checkpoints zwischen Arbeitsschritten
|
|
240
|
+
-------------------------------------------------
|
|
241
|
+
|
|
242
|
+
Bevor King den nächsten Modellschritt beginnt, schreibt er alle vorangegangenen Wire-Einträge dauerhaft auf den Datenträger. Nach dem Ende eines Zuges erfolgt eine weitere vollständige Sicherung, bevor der zugehörige Worker abgeschlossen wird. Das schließt beendete Modell- und Werkzeugschritte ein. Eine fortgesetzte Sitzung beginnt dadurch beim letzten abgeschlossenen Schritt und ist nicht auf noch ungesicherte Einträge im Arbeitsspeicher angewiesen.
|
|
243
|
+
|
|
244
|
+
Beispiel: Wenn der Anbieter oder das Terminal nach einem abgeschlossenen Werkzeugaufruf, aber vor der nächsten Modellantwort ausfällt, kann die Sitzung neu gestartet oder fortgesetzt werden. Der vorangegangene Werkzeugeintrag wurde vor der nächsten Anfrage an den Anbieter in wire.jsonl synchronisiert und wird beim Fortsetzen wieder eingelesen. Der Checkpoint verkürzt keine Prompts und ersetzt nicht die wiederauffindbaren Verdichtungsarchive; er schützt die Übergabe zwischen zwei Arbeitsschritten.
|
|
245
|
+
|
|
231
246
|
Aktualisieren
|
|
232
247
|
-------------
|
|
233
248
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Voraussetzung ist Node.js 24.15 oder neuer. Die geprüfte Version wird exakt
|
|
|
9
9
|
installiert:
|
|
10
10
|
|
|
11
11
|
```powershell
|
|
12
|
-
npm install -g blun-king-cli@9.1.
|
|
12
|
+
npm install -g blun-king-cli@9.1.80
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Reproduzierbares Staging und Packen
|
|
@@ -108,6 +108,14 @@ Exportieren und die sichtbare Historie behalten die ursprünglichen
|
|
|
108
108
|
Werkzeugergebnisse. Das Telemetrieereignis `micro_compaction_finished` nennt den
|
|
109
109
|
Auslöser, den Schnitt und die geschätzte Tokenzahl vor und nach der Entlastung.
|
|
110
110
|
|
|
111
|
+
## Große Werkzeugausgaben und isolierte Teilagenten
|
|
112
|
+
|
|
113
|
+
Werkzeugausgaben mit mehr als 50.000 Zeichen werden vollständig unter `<agent-home>/tool-results/` gespeichert. Im Modellkontext bleiben nur eine Vorschau der ersten 2.000 Zeichen, der genaue `output_path` und der Hinweis, die Datei bei Bedarf mit `Read` zu öffnen. Dadurch bleibt die vollständige Ausgabe wiederauffindbar, ohne in jedem weiteren Modellschritt erneut als großer Textblock mitzufahren.
|
|
114
|
+
|
|
115
|
+
Das Telemetrieereignis `tool_result_offloaded` enthält ausschließlich `tool_name`, `output_size_chars`, `output_size_bytes` und `preview_size_chars`. Es enthält weder den Inhalt noch den Speicherpfad. Beispiel: Eine Ausgabe mit 80.000 Zeichen erzeugt eine Vorschau mit 2.000 Zeichen; die Telemetrie zeigt die Größenersparnis, ohne Nutzdaten zu protokollieren.
|
|
116
|
+
|
|
117
|
+
Reguläre `Agent`-Teilaufgaben verwenden eine eigene `ContextMemory` und eine eigene `wire.jsonl` in einem getrennten Agentenverzeichnis. Der Hauptagent erhält nur die Ergebniszusammenfassung, sodass lange Teilaufgaben nicht den Hauptverlauf füllen. `TodoList` speichert Pläne weiterhin maschinenlesbar im Sitzungs-Wire; `blun handoff` übergibt sie zusammen mit prüfbaren Hashes zwischen CLI, Desktop und Web.
|
|
118
|
+
|
|
111
119
|
## Zug-Wächter
|
|
112
120
|
|
|
113
121
|
Läuft ein Zug 20 Minuten ohne neues Werkzeugergebnis, meldet die Konsole den
|
|
@@ -246,6 +254,12 @@ Bevor eine erfolgreiche Vollverdichtung ältere Nachrichten ersetzt, schreibt Ki
|
|
|
246
254
|
|
|
247
255
|
Eingebettete Bild-, Audio- und Videodaten werden im Archiv nicht doppelt gespeichert. Der ursprüngliche Sitzungs-Wire bleibt maßgeblich. Kann das Archiv nicht geschrieben werden, protokolliert King `compaction_history_archive_failed` und lässt den normalen Verdichtungsweg verfügbar; ein Archivfehler löscht niemals den gespeicherten Sitzungsverlauf.
|
|
248
256
|
|
|
257
|
+
## Dauerhafte Checkpoints zwischen Arbeitsschritten
|
|
258
|
+
|
|
259
|
+
Bevor King den nächsten Modellschritt beginnt, schreibt er alle vorangegangenen Wire-Einträge dauerhaft auf den Datenträger. Nach dem Ende eines Zuges erfolgt eine weitere vollständige Sicherung, bevor der zugehörige Worker abgeschlossen wird. Das schließt beendete Modell- und Werkzeugschritte ein. Eine fortgesetzte Sitzung beginnt dadurch beim letzten abgeschlossenen Schritt und ist nicht auf noch ungesicherte Einträge im Arbeitsspeicher angewiesen.
|
|
260
|
+
|
|
261
|
+
Beispiel: Wenn der Anbieter oder das Terminal nach einem abgeschlossenen Werkzeugaufruf, aber vor der nächsten Modellantwort ausfällt, kann die Sitzung neu gestartet oder fortgesetzt werden. Der vorangegangene Werkzeugeintrag wurde vor der nächsten Anfrage an den Anbieter in `wire.jsonl` synchronisiert und wird beim Fortsetzen wieder eingelesen. Der Checkpoint verkürzt keine Prompts und ersetzt nicht die wiederauffindbaren Verdichtungsarchive; er schützt die Übergabe zwischen zwei Arbeitsschritten.
|
|
262
|
+
|
|
249
263
|
## Aktualisieren
|
|
250
264
|
|
|
251
265
|
`blun update`, `king update` und die jeweilige Variante `upgrade` verwenden
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function buildToolResultOffloadTelemetry(options) {
|
|
4
|
+
return {
|
|
5
|
+
tool_name: options.toolName,
|
|
6
|
+
output_size_chars: options.text.length,
|
|
7
|
+
output_size_bytes: Buffer.byteLength(options.text, 'utf8'),
|
|
8
|
+
preview_size_chars: Math.min(options.text.length, options.previewChars),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
module.exports = { buildToolResultOffloadTelemetry };
|
package/blun.mjs
CHANGED
|
@@ -259897,6 +259897,11 @@ async function budgetToolResultForModel(options) {
|
|
|
259897
259897
|
toolCallId: options.toolCallId
|
|
259898
259898
|
}, text);
|
|
259899
259899
|
if (outputPath === void 0) return options.result;
|
|
259900
|
+
options.telemetry?.track("tool_result_offloaded", buildToolResultOffloadTelemetry({
|
|
259901
|
+
toolName: options.toolName,
|
|
259902
|
+
text,
|
|
259903
|
+
previewChars: TOOL_RESULT_PREVIEW_CHARS
|
|
259904
|
+
}));
|
|
259900
259905
|
const output = renderPersistedToolResult(options.toolName, options.toolCallId, text, outputPath);
|
|
259901
259906
|
return options.result.isError === true ? {
|
|
259902
259907
|
...options.result,
|
|
@@ -259945,9 +259950,10 @@ function renderPersistedToolResult(toolName, toolCallId, text, outputPath) {
|
|
|
259945
259950
|
function safeToolResultFileStem(toolName, toolCallId) {
|
|
259946
259951
|
return `${toolName}-${toolCallId}`.replace(/[^a-zA-Z0-9._-]+/g, "_").replace(/^_+|_+$/g, "").slice(0, 80) || "tool-result";
|
|
259947
259952
|
}
|
|
259948
|
-
var TOOL_RESULT_MAX_CHARS, TOOL_RESULT_PREVIEW_CHARS;
|
|
259953
|
+
var TOOL_RESULT_MAX_CHARS, TOOL_RESULT_PREVIEW_CHARS, buildToolResultOffloadTelemetry;
|
|
259949
259954
|
var init_tool_result_budget = __esmMin((() => {
|
|
259950
259955
|
init_dist$6();
|
|
259956
|
+
({ buildToolResultOffloadTelemetry } = createRequire(import.meta.url)("./bin/tool-result-offload-telemetry.cjs"));
|
|
259951
259957
|
TOOL_RESULT_MAX_CHARS = 5e4;
|
|
259952
259958
|
TOOL_RESULT_PREVIEW_CHARS = 2e3;
|
|
259953
259959
|
}));
|
|
@@ -260784,6 +260790,7 @@ var init_turn = __esmMin((() => {
|
|
|
260784
260790
|
this.currentStepByTurn.delete(turnId);
|
|
260785
260791
|
this.interruptedTelemetryTurnIds.delete(turnId);
|
|
260786
260792
|
this.stepFailureByTurn.delete(turnId);
|
|
260793
|
+
await this.agent.records.flush();
|
|
260787
260794
|
return {
|
|
260788
260795
|
event: ended,
|
|
260789
260796
|
stopReason: completedStopReason,
|
|
@@ -260916,6 +260923,7 @@ var init_turn = __esmMin((() => {
|
|
|
260916
260923
|
},
|
|
260917
260924
|
hooks: {
|
|
260918
260925
|
beforeStep: async ({ signal: stepSignal, stepNumber }) => {
|
|
260926
|
+
await this.agent.records.flush();
|
|
260919
260927
|
this.agent.microCompaction.detect();
|
|
260920
260928
|
await this.agent.injection.inject();
|
|
260921
260929
|
stepSignal.throwIfAborted();
|
|
@@ -261036,7 +261044,8 @@ var init_turn = __esmMin((() => {
|
|
|
261036
261044
|
homedir: this.agent.homedir,
|
|
261037
261045
|
toolName: ctx.toolCall.name,
|
|
261038
261046
|
toolCallId: ctx.toolCall.id,
|
|
261039
|
-
result: finalResult
|
|
261047
|
+
result: finalResult,
|
|
261048
|
+
telemetry: this.agent.telemetry
|
|
261040
261049
|
});
|
|
261041
261050
|
}
|
|
261042
261051
|
}
|