blun-king-cli 9.1.32 → 9.1.33

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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/blun.mjs +67 -41
  3. package/package.json +1 -1
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.32
12
+ npm install -g blun-king-cli@9.1.33
13
13
  ```
14
14
 
15
15
  ## Reproduzierbares Staging und Packen
package/blun.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // BLUN_BUILD_INPUT_SHA256:a7df37740da4f38cdb11b51de60021135cbc55aec8643f9501c9c946c3b67c0b
2
+ // BLUN_BUILD_INPUT_SHA256:cf0e1b17c2ea28e2e1baaa88f43c3a551cddc9c62e205a307c513cfd60c19a5a
3
3
  import { fileURLToPath as __cjsShimFileURLToPath } from 'node:url';
4
4
  import { dirname as __cjsShimDirname } from 'node:path';
5
5
  const __filename = __cjsShimFileURLToPath(import.meta.url);
@@ -399828,6 +399828,7 @@ registerUiCatalogFragment({
399828
399828
  "command.auto.description": "Toggle auto permission mode",
399829
399829
  "command.permission.description": "Select permission mode",
399830
399830
  "command.settings.description": "Open TUI settings",
399831
+ "command.outputStyle.description": "Choose the preferred way BLUN responds",
399831
399832
  "command.plan.description": "Toggle plan mode",
399832
399833
  "command.swarm.description": "Toggle swarm mode or run one task in swarm mode",
399833
399834
  "command.model.description": "Switch LLM model",
@@ -399884,6 +399885,7 @@ registerUiCatalogFragment({
399884
399885
  "command.auto.description": "Automatischen Berechtigungsmodus umschalten",
399885
399886
  "command.permission.description": "Berechtigungsmodus auswählen",
399886
399887
  "command.settings.description": "TUI-Einstellungen öffnen",
399888
+ "command.outputStyle.description": "Gewünschte Antwortweise für BLUN wählen",
399887
399889
  "command.plan.description": "Planmodus umschalten",
399888
399890
  "command.swarm.description": "Swarm-Modus umschalten oder eine Aufgabe im Swarm ausführen",
399889
399891
  "command.model.description": "LLM-Modell wechseln",
@@ -399940,6 +399942,7 @@ registerUiCatalogFragment({
399940
399942
  "command.auto.description": "Activar o desactivar el modo automático de permisos",
399941
399943
  "command.permission.description": "Seleccionar el modo de permisos",
399942
399944
  "command.settings.description": "Abrir los ajustes de la TUI",
399945
+ "command.outputStyle.description": "Elegir cómo debe responder BLUN",
399943
399946
  "command.plan.description": "Activar o desactivar el modo de planificación",
399944
399947
  "command.swarm.description": "Activar o desactivar el modo Swarm o ejecutar una tarea en ese modo",
399945
399948
  "command.model.description": "Cambiar el modelo LLM",
@@ -399996,6 +399999,7 @@ registerUiCatalogFragment({
399996
399999
  "command.auto.description": "Activer ou désactiver le mode d’autorisation automatique",
399997
400000
  "command.permission.description": "Choisir le mode d’autorisation",
399998
400001
  "command.settings.description": "Ouvrir les paramètres de la TUI",
400002
+ "command.outputStyle.description": "Choisir la manière dont BLUN doit répondre",
399999
400003
  "command.plan.description": "Activer ou désactiver le mode Plan",
400000
400004
  "command.swarm.description": "Activer ou désactiver le mode essaim, ou exécuter une tâche dans ce mode",
400001
400005
  "command.model.description": "Changer de modèle LLM",
@@ -400052,6 +400056,7 @@ registerUiCatalogFragment({
400052
400056
  "command.auto.description": "Slå på eller av automatiskt behörighetsläge",
400053
400057
  "command.permission.description": "Välj behörighetsläge",
400054
400058
  "command.settings.description": "Öppna TUI-inställningarna",
400059
+ "command.outputStyle.description": "Välj hur BLUN ska svara",
400055
400060
  "command.plan.description": "Slå på eller av planläget",
400056
400061
  "command.swarm.description": "Slå på eller av Swarm-läget eller kör en uppgift i Swarm-läge",
400057
400062
  "command.model.description": "Byt LLM-modell",
@@ -400108,6 +400113,7 @@ registerUiCatalogFragment({
400108
400113
  "command.auto.description": "Přepnout režim automatického oprávnění",
400109
400114
  "command.permission.description": "Vybrat režim oprávnění",
400110
400115
  "command.settings.description": "Otevřít nastavení TUI",
400116
+ "command.outputStyle.description": "Zvolit, jak má BLUN odpovídat",
400111
400117
  "command.plan.description": "Přepnout režim plánu",
400112
400118
  "command.swarm.description": "Přepnout režim swarm nebo spustit jednu úlohu v režimu swarm",
400113
400119
  "command.model.description": "Přepnout model LLM",
@@ -400391,6 +400397,13 @@ const BUILTIN_SLASH_COMMAND_DEFINITIONS = [
400391
400397
  priority: 100,
400392
400398
  availability: "always"
400393
400399
  },
400400
+ {
400401
+ name: "output-style",
400402
+ aliases: ["style"],
400403
+ descriptionKey: "command.outputStyle.description",
400404
+ priority: 100,
400405
+ availability: "always"
400406
+ },
400394
400407
  {
400395
400408
  name: "plan",
400396
400409
  aliases: [],
@@ -411101,10 +411114,10 @@ registerUiCatalogFragment({
411101
411114
  "swarmPermission.god.description": "Tools and plan changes are approved automatically. BLUN may still ask you questions.",
411102
411115
  "swarmPermission.manual.label": "Start in Manual",
411103
411116
  "swarmPermission.manual.description": "Keep approvals on. BLUN may stop and wait for you during the swarm task.",
411104
- "settings.actionStyle.label": "Action style",
411105
- "settings.actionStyle.description": "Choose how BLUN acts and explains its work.",
411106
- "actionStyle.title": "Preferred action style",
411107
- "actionStyle.scope": "This setting changes how BLUN collaborates with you. Plan and permission rules still take priority.",
411117
+ "settings.actionStyle.label": "Output style",
411118
+ "settings.actionStyle.description": "Choose how BLUN responds and presents its work.",
411119
+ "actionStyle.title": "Preferred output style",
411120
+ "actionStyle.scope": "This setting changes how BLUN responds. Plan and permission rules still take priority.",
411108
411121
  "actionStyle.default.label": "Default",
411109
411122
  "actionStyle.default.description": "Completes coding tasks efficiently and keeps responses concise.",
411110
411123
  "actionStyle.proactive.label": "Proactive",
@@ -411113,8 +411126,8 @@ registerUiCatalogFragment({
411113
411126
  "actionStyle.explanatory.description": "Explains implementation choices and relevant codebase patterns while working.",
411114
411127
  "actionStyle.learning.label": "Learning",
411115
411128
  "actionStyle.learning.description": "Pauses at useful points and invites you to write small pieces of code for hands-on practice.",
411116
- "actionStyle.saved": "Action style set to {style}.",
411117
- "actionStyle.saveFailed": "Could not save action style: {error}"
411129
+ "actionStyle.saved": "Output style set to {style}.",
411130
+ "actionStyle.saveFailed": "Could not save output style: {error}"
411118
411131
  },
411119
411132
  de: {
411120
411133
  "permission.title": "Berechtigungsmodus auswählen",
@@ -411175,10 +411188,10 @@ registerUiCatalogFragment({
411175
411188
  "swarmPermission.god.description": "Werkzeuge und Planwechsel werden automatisch freigegeben. BLUN kann dir weiterhin Fragen stellen.",
411176
411189
  "swarmPermission.manual.label": "Manuell starten",
411177
411190
  "swarmPermission.manual.description": "Freigaben beibehalten. BLUN kann den Swarm-Auftrag anhalten und auf dich warten.",
411178
- "settings.actionStyle.label": "Handlungsstil",
411179
- "settings.actionStyle.description": "Lege fest, wie BLUN handelt und seine Arbeit erklärt.",
411180
- "actionStyle.title": "Bevorzugter Handlungsstil",
411181
- "actionStyle.scope": "Diese Einstellung bestimmt, wie BLUN mit dir zusammenarbeitet. Plan- und Berechtigungsregeln haben weiterhin Vorrang.",
411191
+ "settings.actionStyle.label": "Ausgabestil",
411192
+ "settings.actionStyle.description": "Lege fest, wie BLUN antwortet und seine Arbeit darstellt.",
411193
+ "actionStyle.title": "Bevorzugter Ausgabestil",
411194
+ "actionStyle.scope": "Diese Einstellung bestimmt, wie BLUN antwortet. Plan- und Berechtigungsregeln haben weiterhin Vorrang.",
411182
411195
  "actionStyle.default.label": "Standard",
411183
411196
  "actionStyle.default.description": "Erledigt Programmieraufgaben effizient und hält Antworten knapp.",
411184
411197
  "actionStyle.proactive.label": "Proaktiv",
@@ -411187,8 +411200,8 @@ registerUiCatalogFragment({
411187
411200
  "actionStyle.explanatory.description": "Erläutert während der Arbeit Implementierungsentscheidungen und relevante Muster im Codebestand.",
411188
411201
  "actionStyle.learning.label": "Lernorientiert",
411189
411202
  "actionStyle.learning.description": "Hält an sinnvollen Stellen inne und lädt dich dazu ein, kleine Programmteile selbst zu schreiben und praktisch zu üben.",
411190
- "actionStyle.saved": "Handlungsstil auf {style} gesetzt.",
411191
- "actionStyle.saveFailed": "Handlungsstil konnte nicht gespeichert werden: {error}"
411203
+ "actionStyle.saved": "Ausgabestil auf {style} gesetzt.",
411204
+ "actionStyle.saveFailed": "Ausgabestil konnte nicht gespeichert werden: {error}"
411192
411205
  },
411193
411206
  es: {
411194
411207
  "permission.title": "Seleccionar el modo de permisos",
@@ -411249,10 +411262,10 @@ registerUiCatalogFragment({
411249
411262
  "swarmPermission.god.description": "Las herramientas y los cambios del plan se aprueban automáticamente. BLUN todavía puede hacerte preguntas.",
411250
411263
  "swarmPermission.manual.label": "Iniciar en modo Manual",
411251
411264
  "swarmPermission.manual.description": "Mantener activadas las aprobaciones. BLUN puede detenerse y esperar tu intervención durante la tarea de Swarm.",
411252
- "settings.actionStyle.label": "Estilo de actuación",
411253
- "settings.actionStyle.description": "Elige cómo actúa BLUN y cómo explica su trabajo.",
411254
- "actionStyle.title": "Estilo de actuación preferido",
411255
- "actionStyle.scope": "Esta opción determina cómo colabora BLUN contigo. Las reglas del plan y los permisos siguen teniendo prioridad.",
411265
+ "settings.actionStyle.label": "Estilo de salida",
411266
+ "settings.actionStyle.description": "Elige cómo responde BLUN y cómo presenta su trabajo.",
411267
+ "actionStyle.title": "Estilo de salida preferido",
411268
+ "actionStyle.scope": "Esta opción determina cómo responde BLUN. Las reglas del plan y de permisos siguen teniendo prioridad.",
411256
411269
  "actionStyle.default.label": "Predeterminado",
411257
411270
  "actionStyle.default.description": "Completa las tareas de programación con eficiencia y mantiene las respuestas concisas.",
411258
411271
  "actionStyle.proactive.label": "Proactivo",
@@ -411261,8 +411274,8 @@ registerUiCatalogFragment({
411261
411274
  "actionStyle.explanatory.description": "Explica mientras trabaja las decisiones de implementación y los patrones relevantes del código.",
411262
411275
  "actionStyle.learning.label": "Aprendizaje",
411263
411276
  "actionStyle.learning.description": "Se detiene en momentos útiles y te invita a escribir pequeños fragmentos de código para practicar.",
411264
- "actionStyle.saved": "Estilo de actuación establecido en {style}.",
411265
- "actionStyle.saveFailed": "No se ha podido guardar el estilo de actuación: {error}"
411277
+ "actionStyle.saved": "Estilo de salida establecido en {style}.",
411278
+ "actionStyle.saveFailed": "No se ha podido guardar el estilo de salida: {error}"
411266
411279
  },
411267
411280
  fr: {
411268
411281
  "permission.title": "Choisir le mode d’autorisation",
@@ -411323,10 +411336,10 @@ registerUiCatalogFragment({
411323
411336
  "swarmPermission.god.description": "Les outils et les changements de plan sont approuvés automatiquement. BLUN peut toujours vous poser des questions.",
411324
411337
  "swarmPermission.manual.label": "Lancer en mode Manuel",
411325
411338
  "swarmPermission.manual.description": "Conserver les approbations. BLUN peut s’arrêter et attendre votre réponse pendant la tâche en essaim.",
411326
- "settings.actionStyle.label": "Style d’action",
411327
- "settings.actionStyle.description": "Choisissez comment BLUN agit et explique son travail.",
411328
- "actionStyle.title": "Style d’action préféré",
411329
- "actionStyle.scope": "Ce réglage détermine la manière dont BLUN collabore avec vous. Les règles du plan et des autorisations restent prioritaires.",
411339
+ "settings.actionStyle.label": "Style de réponse",
411340
+ "settings.actionStyle.description": "Choisissez la manière dont BLUN répond et présente son travail.",
411341
+ "actionStyle.title": "Style de réponse préféré",
411342
+ "actionStyle.scope": "Ce réglage détermine la manière dont BLUN répond. Les règles du plan et des autorisations restent prioritaires.",
411330
411343
  "actionStyle.default.label": "Par défaut",
411331
411344
  "actionStyle.default.description": "Réalise efficacement les tâches de programmation et fournit des réponses concises.",
411332
411345
  "actionStyle.proactive.label": "Proactif",
@@ -411335,8 +411348,8 @@ registerUiCatalogFragment({
411335
411348
  "actionStyle.explanatory.description": "Explique ses choix d’implémentation et les éléments pertinents du code pendant son travail.",
411336
411349
  "actionStyle.learning.label": "Apprentissage",
411337
411350
  "actionStyle.learning.description": "S’arrête aux moments utiles et vous invite à écrire de petits extraits de code pour apprendre par la pratique.",
411338
- "actionStyle.saved": "Style d’action défini sur {style}.",
411339
- "actionStyle.saveFailed": "Impossible d’enregistrer le style d’action : {error}"
411351
+ "actionStyle.saved": "Style de réponse défini sur {style}.",
411352
+ "actionStyle.saveFailed": "Impossible d’enregistrer le style de réponse : {error}"
411340
411353
  },
411341
411354
  sv: {
411342
411355
  "permission.title": "Välj behörighetsläge",
@@ -411397,10 +411410,10 @@ registerUiCatalogFragment({
411397
411410
  "swarmPermission.god.description": "Verktyg och planändringar godkänns automatiskt. BLUN kan fortfarande ställa frågor.",
411398
411411
  "swarmPermission.manual.label": "Starta i manuellt läge",
411399
411412
  "swarmPermission.manual.description": "Behåll godkännanden aktiverade. BLUN kan stanna och vänta på dig under Swarm-uppgiften.",
411400
- "settings.actionStyle.label": "Handlingsstil",
411401
- "settings.actionStyle.description": "Välj hur BLUN agerar och förklarar sitt arbete.",
411402
- "actionStyle.title": "Önskad handlingsstil",
411403
- "actionStyle.scope": "Den här inställningen styr hur BLUN samarbetar med dig. Plan- och behörighetsregler har fortfarande företräde.",
411413
+ "settings.actionStyle.label": "Svarsstil",
411414
+ "settings.actionStyle.description": "Välj hur BLUN svarar och presenterar sitt arbete.",
411415
+ "actionStyle.title": "Önskad svarsstil",
411416
+ "actionStyle.scope": "Den här inställningen styr hur BLUN svarar. Plan- och behörighetsregler har fortfarande företräde.",
411404
411417
  "actionStyle.default.label": "Standard",
411405
411418
  "actionStyle.default.description": "Slutför programmeringsuppgifter effektivt och håller svaren kortfattade.",
411406
411419
  "actionStyle.proactive.label": "Proaktiv",
@@ -411409,8 +411422,8 @@ registerUiCatalogFragment({
411409
411422
  "actionStyle.explanatory.description": "Förklarar implementeringsval och relevanta mönster i kodbasen under arbetets gång.",
411410
411423
  "actionStyle.learning.label": "Lärande",
411411
411424
  "actionStyle.learning.description": "Stannar upp vid lämpliga tillfällen och bjuder in dig att skriva små kodavsnitt för praktisk övning.",
411412
- "actionStyle.saved": "Handlingsstilen har ställts in på {style}.",
411413
- "actionStyle.saveFailed": "Det gick inte att spara handlingsstilen: {error}"
411425
+ "actionStyle.saved": "Svarsstilen har ställts in på {style}.",
411426
+ "actionStyle.saveFailed": "Det gick inte att spara svarsstilen: {error}"
411414
411427
  },
411415
411428
  cs: {
411416
411429
  "permission.title": "Vybrat režim oprávnění",
@@ -411471,10 +411484,10 @@ registerUiCatalogFragment({
411471
411484
  "swarmPermission.god.description": "Nástroje a změny plánu se schvalují automaticky. BLUN vám přesto může položit otázku.",
411472
411485
  "swarmPermission.manual.label": "Spustit v ručním režimu",
411473
411486
  "swarmPermission.manual.description": "Ponechte schválení zapnuto. BLUN se může během úlohy roje zastavit a čekat na vás.",
411474
- "settings.actionStyle.label": "Styl jednání",
411475
- "settings.actionStyle.description": "Zvolte, jak BLUN jedná a jak vysvětluje svou práci.",
411476
- "actionStyle.title": "Preferovaný styl jednání",
411477
- "actionStyle.scope": "Toto nastavení určuje, jak s vámi BLUN spolupracuje. Pravidla plánu a oprávnění mají i nadále přednost.",
411487
+ "settings.actionStyle.label": "Styl odpovědí",
411488
+ "settings.actionStyle.description": "Zvolte, jak BLUN odpovídá a jak prezentuje svou práci.",
411489
+ "actionStyle.title": "Preferovaný styl odpovědí",
411490
+ "actionStyle.scope": "Toto nastavení určuje, jak BLUN odpovídá. Pravidla plánu a oprávnění mají i nadále přednost.",
411478
411491
  "actionStyle.default.label": "Výchozí",
411479
411492
  "actionStyle.default.description": "Efektivně plní programátorské úkoly a odpovídá stručně.",
411480
411493
  "actionStyle.proactive.label": "Proaktivní",
@@ -411483,8 +411496,8 @@ registerUiCatalogFragment({
411483
411496
  "actionStyle.explanatory.description": "Během práce vysvětluje implementační rozhodnutí a relevantní vzory v kódu.",
411484
411497
  "actionStyle.learning.label": "Výukový",
411485
411498
  "actionStyle.learning.description": "Na vhodných místech se zastaví a vyzve vás, abyste si pro praktické procvičení napsali malé části kódu.",
411486
- "actionStyle.saved": "Styl jednání byl nastaven na {style}.",
411487
- "actionStyle.saveFailed": "Styl jednání se nepodařilo uložit: {error}"
411499
+ "actionStyle.saved": "Styl odpovědí byl nastaven na {style}.",
411500
+ "actionStyle.saveFailed": "Styl odpovědí se nepodařilo uložit: {error}"
411488
411501
  }
411489
411502
  });
411490
411503
  //#endregion
@@ -417523,7 +417536,7 @@ function showPermissionPicker(host) {
417523
417536
  }
417524
417537
  }));
417525
417538
  }
417526
- function showActionStylePicker(host) {
417539
+ function showOutputStylePicker(host) {
417527
417540
  host.mountEditorReplacement(new ActionStyleSelectorComponent({
417528
417541
  currentValue: host.state.appState.actionStyle ?? "default",
417529
417542
  onSelect: (value) => {
@@ -417627,7 +417640,7 @@ function handleSettingsSelection(host, value) {
417627
417640
  handleEffortCommand(host, "");
417628
417641
  return;
417629
417642
  case "action-style":
417630
- showActionStylePicker(host);
417643
+ showOutputStylePicker(host);
417631
417644
  return;
417632
417645
  case "permission":
417633
417646
  showPermissionPicker(host);
@@ -492031,6 +492044,9 @@ async function handleBuiltInSlashCommand(host, name, args) {
492031
492044
  case "effort":
492032
492045
  await handleEffortCommand(host, args);
492033
492046
  return;
492047
+ case "output-style":
492048
+ showOutputStylePicker(host);
492049
+ return;
492034
492050
  case "permission":
492035
492051
  showPermissionPicker(host);
492036
492052
  return;
@@ -498491,6 +498507,7 @@ var ChannelQueueDeadlineController = class {
498491
498507
  if (this.deadlineTimer === void 0 && !this.interruptionRequested) this.scheduleDeadline(CHANNEL_QUEUE_DEADLINE_MS);
498492
498508
  }
498493
498509
  requestDeliveryAtSafePoint() {
498510
+ if (this.retainReleaseWhileDeliveryIsInFlight()) return;
498494
498511
  if (this.host.hasWaitingWork() && !this.host.canDeliverWork()) {
498495
498512
  this.requestInterruption();
498496
498513
  return;
@@ -498498,12 +498515,18 @@ var ChannelQueueDeadlineController = class {
498498
498515
  this.requestDelivery();
498499
498516
  }
498500
498517
  requestDeliveryNow() {
498518
+ if (this.retainReleaseWhileDeliveryIsInFlight()) return;
498501
498519
  if (this.host.hasWaitingWork() && !this.host.canDeliverWork()) {
498502
498520
  this.requestInterruption();
498503
498521
  return;
498504
498522
  }
498505
498523
  this.requestDelivery();
498506
498524
  }
498525
+ retainReleaseWhileDeliveryIsInFlight() {
498526
+ if (this.disposed || !this.deliveryInFlight || !this.host.hasWaitingWork()) return false;
498527
+ this.pendingReleaseCount += 1;
498528
+ return true;
498529
+ }
498507
498530
  dispose() {
498508
498531
  this.disposed = true;
498509
498532
  this.pendingReleaseCount = 0;
@@ -511649,7 +511672,8 @@ var BlunTUI = class {
511649
511672
  this.state.queuedMessages = this.state.queuedMessages.slice(1);
511650
511673
  const turnId = this.streamingUI.getTurnContext().turnId;
511651
511674
  let transcriptRendered = item.channelTranscriptRendered === true;
511652
- if (!transcriptRendered) {
511675
+ const renderTranscript = () => {
511676
+ if (transcriptRendered) return;
511653
511677
  this.appendTranscriptEntry({
511654
511678
  id: nextTranscriptId(),
511655
511679
  kind: "user",
@@ -511659,8 +511683,9 @@ var BlunTUI = class {
511659
511683
  origin: item.origin
511660
511684
  });
511661
511685
  transcriptRendered = true;
511662
- }
511686
+ };
511663
511687
  if (item.channelContextOnly === true) {
511688
+ renderTranscript();
511664
511689
  item.channelAcknowledge?.();
511665
511690
  if (this.queueFlushBatchRemaining > 0) this.queueFlushBatchRemaining -= 1;
511666
511691
  this.syncChannelQueueDeadline();
@@ -511690,6 +511715,7 @@ var BlunTUI = class {
511690
511715
  stepStarted: false,
511691
511716
  turnEnded: false,
511692
511717
  onCommit: () => {
511718
+ renderTranscript();
511693
511719
  item.channelAcknowledge?.();
511694
511720
  if (this.queueFlushBatchRemaining > 0) this.queueFlushBatchRemaining -= 1;
511695
511721
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.32",
3
+ "version": "9.1.33",
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": {