blun-king-cli 9.1.61 → 9.1.62

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
@@ -145,5 +145,14 @@ Telegram einrichten
145
145
 
146
146
  ~/.blun/channels/telegram/.env
147
147
 
148
- 3. `king` starten und den angezeigten Pairing-Code mit
149
- /telegram:access pair CODE bestätigen.
148
+ 3. `king` starten und in der Konsole eingeben:
149
+
150
+ /telegram:access connect
151
+
152
+ 4. Den dort erzeugten Einmalcode im gewünschten privaten Chat oder in der
153
+ gewünschten Gruppe senden:
154
+
155
+ /connect CODE
156
+
157
+ Chat-ID und Absender-ID werden intern gespeichert und müssen nie eingegeben
158
+ werden. Der Code verfällt nach zehn Minuten und funktioniert nur einmal.
package/README.md CHANGED
@@ -35,6 +35,11 @@ an. Version, Konto, Modell und Befehle sind ansonsten identisch. Der Unterschied
35
35
  gilt nur für den laufenden Prozess; die gespeicherte
36
36
  Plugin-Konfiguration wird nicht umgeschrieben.
37
37
 
38
+ Telegram-Chats werden ohne manuell eingegebene IDs verbunden. In der Konsole
39
+ erzeugt `/telegram:access connect` einen einmaligen Code. `/connect CODE` im
40
+ gewünschten privaten Chat oder in einer Gruppe speichert Chat und Absender
41
+ intern; der Code verfällt nach zehn Minuten und ist nur einmal verwendbar.
42
+
38
43
  ## Zuverlässiger King-Start
39
44
 
40
45
  Der Windows-Hilfsprozess für private Pfade übernimmt `TEMP` und `TMP` aus der
@@ -106,6 +111,10 @@ besten sicheren lokalen nächsten Schritt um. Der sichtbare Aufgabenplan und all
106
111
  Freigabegrenzen von `/idea` gelten weiterhin. Der Befehl funktioniert auch über
107
112
  Telegram.
108
113
 
114
+ Der sichtbare Verlauf behält standardmäßig die vollständige laufende und
115
+ wiederhergestellte Sitzung. Das Mausrad kann den Verlauf direkt beim ersten Zug
116
+ öffnen; Editor und Fußzeile bleiben dabei fest sichtbar.
117
+
109
118
  Im automatisch angebundenen Telegram-Kanal werden ausschließlich `/loop`,
110
119
  `/goal`, `/idea`, `/chancenradar` und `/befehle` als Befehle ausgeführt. Ist der Agent
111
120
  beschäftigt, bleiben sie in der Warteschlange. Andere Slash-Eingaben werden aus
package/blun.mjs CHANGED
@@ -503027,7 +503027,7 @@ var PersonalMemoryController = class {
503027
503027
  //#endregion
503028
503028
  //#region src/tui/constant/scrollback.ts
503029
503029
  function shouldEnableScrollbackMouseTracking(buffer) {
503030
- return buffer !== void 0 && buffer.isActive();
503030
+ return buffer !== void 0 && buffer.totalLines > 0;
503031
503031
  }
503032
503032
  const ENABLE_SCROLLBACK_MOUSE_TRACKING = "\x1B[?1000h\x1B[?1006h";
503033
503033
  const DISABLE_SCROLLBACK_MOUSE_TRACKING = "\x1B[?1000l\x1B[?1006l";
@@ -507713,7 +507713,7 @@ function formatLoopChatIndicator(loop, colors, nowMs = Date.now()) {
507713
507713
  numeric: "always",
507714
507714
  style: "short"
507715
507715
  }).format(value, unit);
507716
- return chalk.hex(colors.primary)("\u25cf") + chalk.hex(colors.textMuted)(` Loop ${relative}`);
507716
+ return chalk.hex(colors.textMuted)(`Loop ${relative}`);
507717
507717
  }
507718
507718
  function formatBadgeElapsed(ms) {
507719
507719
  const totalSeconds = Math.round(ms / 1e3);
@@ -508028,8 +508028,8 @@ var FooterComponent = class {
508028
508028
  if (model) {
508029
508029
  const sep = chalk.hex(colors.textMuted)(" · ");
508030
508030
  const persona = personaName();
508031
- const profileLabel = process.env["BLUN_PROFILE"] ?? "default";
508032
- const profile = chalk.hex(colors.textDim)(profileLabel) + sep;
508031
+ const profileLabel = process.env["BLUN_PROFILE"]?.trim();
508032
+ const profile = profileLabel !== void 0 && profileLabel.length > 0 && profileLabel.toLowerCase() !== "default" ? chalk.hex(colors.textDim)(profileLabel) + sep : "";
508033
508033
  const brand = chalk.hex(colors.primary).bold("● BL") + chalk.hex(colors.text)("UN") + sep + profile + (persona !== void 0 ? chalk.hex(colors.text)(persona) + sep : "");
508034
508034
  const modelLabel = model;
508035
508035
  const modeLabel = uiText(state.permissionMode === "yolo" ? "footer.mode.god" : state.permissionMode === "auto" ? "footer.mode.auto" : "footer.mode.manual");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.61",
3
+ "version": "9.1.62",
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": {
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: access
3
- description: Manage Telegram channel access — approve pairings, edit allowlists, set DM/group policy.
3
+ description: Manage Telegram channel access — create connection codes, approve pairings, edit allowlists, set DM/group policy.
4
4
  ---
5
5
  Manage access control for the BLUN Telegram channel. The state file is
6
6
  `~/.blun/channels/telegram/access.json` (create the directory and a default
7
- `{"dmPolicy":"pairing","allowFrom":[],"groups":{},"pending":{}}` if missing).
7
+ `{"dmPolicy":"pairing","allowFrom":[],"groups":{},"pending":{},"connect":{}}` if missing).
8
8
  Honor `BLUN_TELEGRAM_STATE_DIR` if that environment variable is set.
9
9
 
10
10
  ARGUMENTS: $ARGUMENTS
@@ -13,6 +13,14 @@ Supported operations (parse from the arguments above; if empty, show current
13
13
  state as a short summary — dmPolicy, allowFrom entries, groups, pending codes
14
14
  with expiry):
15
15
 
16
+ - `connect` — generate a cryptographically random 6-character lowercase hex
17
+ code in this console. Store it as `connect[code]` with `createdAt` now and
18
+ `expiresAt` ten minutes from now, save atomically, then print exactly these
19
+ two useful lines (never ask for or print a Telegram chat id):
20
+ `Telegram-Code: <code>`
21
+ `Jetzt im gewuenschten privaten Chat oder in der Gruppe senden: /connect <code>`
22
+ The bridge consumes the code once and records the Telegram ids internally.
23
+
16
24
  - `pair <code>` — look up `pending[<code>]`. If present and not expired
17
25
  (`expiresAt` in ms since epoch): move its `senderId` into `allowFrom`
18
26
  (deduplicated), delete the pending entry, save the file, then write an empty