blun-king-cli 9.1.419 → 9.1.420

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
@@ -90,6 +90,13 @@ erscheint nicht als erfundene Benutzernachricht und wird pro Sitzung nur einmal
90
90
  angestoßen. Wartende, pausierte und blockierte Ziele sowie manuelle
91
91
  Berechtigungsmodi starten weiterhin nicht selbstständig.
92
92
 
93
+ Ab BLUN King 9.1.420 beendet ein aktives Ziel mit dauerhaftem
94
+ Warte-Checkpoint die autonome Fortsetzung nach dem aktuellen Zug, ohne das Ziel
95
+ zu verwerfen. Externe, zeitliche, abhängige und nutzerabhängige Auslöser
96
+ erzeugen dadurch keine leeren Folgezüge. Beim nächsten Ereignis wird der
97
+ gespeicherte Auslöser erneut eingeordnet. Sofortige Ziele und ältere Ziele ohne
98
+ Checkpoint laufen unverändert weiter.
99
+
93
100
  Zuverlässiger King-Start
94
101
  -----------------------
95
102
  Bei einer ausdrücklich als wiederholbar gekennzeichneten Serverüberlastung
package/README.md CHANGED
@@ -109,6 +109,13 @@ erscheint nicht als erfundene Benutzernachricht und wird pro Sitzung nur einmal
109
109
  angestoßen. Wartende, pausierte und blockierte Ziele sowie manuelle
110
110
  Berechtigungsmodi starten weiterhin nicht selbstständig.
111
111
 
112
+ Ab BLUN King 9.1.420 beendet ein aktives Ziel mit dauerhaftem
113
+ Warte-Checkpoint die autonome Fortsetzung nach dem aktuellen Zug, ohne das Ziel
114
+ zu verwerfen. Externe, zeitliche, abhängige und nutzerabhängige Auslöser
115
+ erzeugen dadurch keine leeren Folgezüge. Beim nächsten Ereignis wird der
116
+ gespeicherte Auslöser erneut eingeordnet. Sofortige Ziele und ältere Ziele ohne
117
+ Checkpoint laufen unverändert weiter.
118
+
112
119
  ## Zuverlässiger King-Start
113
120
 
114
121
  Bei einer vom Server ausdrücklich als wiederholbar gekennzeichneten
@@ -4,6 +4,8 @@ const AUTONOMOUS_PERMISSION_MODES = new Set(['auto', 'yolo']);
4
4
  const ACTIVE_PHASES = new Set(['orient', 'plan', 'act', 'verify', 'learn']);
5
5
  const START = Object.freeze({ kind: 'start', trigger: 'immediate' });
6
6
  const WAIT = Object.freeze({ kind: 'wait' });
7
+ const CONTINUE = Object.freeze({ kind: 'continue' });
8
+ const YIELD = Object.freeze({ kind: 'yield' });
7
9
 
8
10
  function goalAutostartDecision({ goal, permissionMode } = {}) {
9
11
  if (!goal || typeof goal !== 'object' || Array.isArray(goal)) return WAIT;
@@ -19,4 +21,11 @@ function goalAutostartDecision({ goal, permissionMode } = {}) {
19
21
  return START;
20
22
  }
21
23
 
22
- module.exports = { goalAutostartDecision };
24
+ function goalContinuationDecision({ goal } = {}) {
25
+ if (!goal || typeof goal !== 'object' || Array.isArray(goal) || goal.status !== 'active') return YIELD;
26
+ const checkpoint = goal.actionCheckpoint;
27
+ if (!checkpoint || typeof checkpoint !== 'object' || Array.isArray(checkpoint)) return CONTINUE;
28
+ return checkpoint.phase === 'wait' ? YIELD : CONTINUE;
29
+ }
30
+
31
+ module.exports = { goalAutostartDecision, goalContinuationDecision };
package/blun.mjs CHANGED
@@ -37,7 +37,7 @@ import * as win32Path from "node:path/win32";
37
37
  import { createServer } from "node:http";
38
38
  import { pipeline as pipeline$1 } from "node:stream/promises";
39
39
  const { writeTelegramConsoleStatus } = telegramConsoleStatusPolicy;
40
- const { goalAutostartDecision } = cognitiveGoalAutostartPolicy;
40
+ const { goalAutostartDecision, goalContinuationDecision } = cognitiveGoalAutostartPolicy;
41
41
  import { EventEmitter as EventEmitter$1 } from "node:events";
42
42
  import { StringDecoder } from "node:string_decoder";
43
43
  import co from "node:assert";
@@ -262100,6 +262100,7 @@ var init_turn = __esmMin((() => {
262100
262100
  await this.agent.goal.markBlocked({ reason: "A configured budget was reached" });
262101
262101
  return end;
262102
262102
  }
262103
+ if (goalContinuationDecision({ goal }).kind === "yield") return end;
262103
262104
  turnId = this.allocateTurnId();
262104
262105
  turnInput = [{
262105
262106
  type: "text",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.419",
3
+ "version": "9.1.420",
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": {