blun-king-cli 9.1.411 → 9.1.412

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
@@ -455,6 +455,18 @@ entsprechen. Der Rahmen bleibt beim Fortsetzen und nach einem Neustart erhalten,
455
455
  beschreibt aber ausschließlich den Arbeitsstand und kann niemals Berechtigungen
456
456
  erteilen.
457
457
 
458
+ Ab BLUN King 9.1.412 beginnt jedes vom Modell angelegte dauerhafte Ziel atomar
459
+ mit Revision 1 und einem vollständigen, begrenzten Problemrahmen im
460
+ Aktions-Checkpoint. Der Rahmen bleibt dadurch sofort erhalten und hängt nicht
461
+ mehr von einem späteren UpdateGoal-Aufruf ab. Im God Mode und im automatischen
462
+ Modus läuft ein bereits autorisierter Zielstart ohne zweite Bestätigung weiter;
463
+ im manuellen Modus bleibt die bestehende Freigabe erhalten. Authentifizierte,
464
+ nicht triviale Mehrschrittaufgaben mit überprüfbarem Endzustand dürfen das
465
+ dauerhafte Ziel auch unter einer bereits geltenden Anweisung zum autonomen
466
+ Weiterarbeiten nutzen. Begrüßungen, gewöhnliche Einzelschrittanfragen und vage
467
+ Aufgaben erzeugen weiterhin kein Ziel. Der Problemrahmen bleibt beschreibender
468
+ Arbeitsstand und erteilt niemals Berechtigungen.
469
+
458
470
  Der eigentliche Anhang und die vollständige Nutzernachricht bleiben für den Zug
459
471
  unverändert verfügbar. Die Begrenzung betrifft ausschließlich die kleine
460
472
  lexikalische Vorauswahl von höchstens zwei Werkzeugschemas; ToolSearch und alle
package/README.md CHANGED
@@ -461,6 +461,18 @@ entsprechen. Der Rahmen bleibt beim Fortsetzen und nach einem Neustart erhalten,
461
461
  beschreibt aber ausschließlich den Arbeitsstand und kann niemals Berechtigungen
462
462
  erteilen.
463
463
 
464
+ Ab BLUN King 9.1.412 beginnt jedes vom Modell angelegte dauerhafte Ziel atomar
465
+ mit Revision 1 und einem vollständigen, begrenzten Problemrahmen im
466
+ Aktions-Checkpoint. Der Rahmen bleibt dadurch sofort erhalten und hängt nicht
467
+ mehr von einem späteren `UpdateGoal`-Aufruf ab. Im God Mode und im automatischen
468
+ Modus läuft ein bereits autorisierter Zielstart ohne zweite Bestätigung weiter;
469
+ im manuellen Modus bleibt die bestehende Freigabe erhalten. Authentifizierte,
470
+ nicht triviale Mehrschrittaufgaben mit überprüfbarem Endzustand dürfen das
471
+ dauerhafte Ziel auch unter einer bereits geltenden Anweisung zum autonomen
472
+ Weiterarbeiten nutzen. Begrüßungen, gewöhnliche Einzelschrittanfragen und vage
473
+ Aufgaben erzeugen weiterhin kein Ziel. Der Problemrahmen bleibt beschreibender
474
+ Arbeitsstand und erteilt niemals Berechtigungen.
475
+
464
476
  Der eigentliche Anhang und die vollständige Nutzernachricht bleiben für den Zug
465
477
  unverändert verfügbar. Die Begrenzung betrifft ausschließlich die kleine
466
478
  lexikalische Vorauswahl von höchstens zwei Werkzeugschemas; ToolSearch und alle
package/blun.mjs CHANGED
@@ -230174,6 +230174,7 @@ var init_goal$1 = __esmMin((() => {
230174
230174
  wallClockMs: 0,
230175
230175
  budgetLimits: {}
230176
230176
  };
230177
+ if (record.actionCheckpoint !== void 0) state.actionCheckpoint = normalizeActionCheckpoint(record.actionCheckpoint, { preserveUpdatedAt: true, preserveRuntimeEvidence: true });
230177
230178
  this.state = state;
230178
230179
  this.agent.replayBuilder.push({
230179
230180
  type: "goal_updated",
@@ -230265,12 +230266,21 @@ var init_goal$1 = __esmMin((() => {
230265
230266
  wallClockResumedAt: Date.now(),
230266
230267
  budgetLimits: {}
230267
230268
  };
230269
+ if (input.actionCheckpoint !== void 0) {
230270
+ assertActionCheckpointRevision(undefined, input.actionCheckpoint);
230271
+ const runtimeEvidence = this.agent.turn.actionEvidenceReceiptForCurrentTurn();
230272
+ assertActionCheckpointEvidenceBasis(undefined, input.actionCheckpoint, runtimeEvidence);
230273
+ state.actionCheckpoint = normalizeActionCheckpoint(input.actionCheckpoint, {
230274
+ runtimeEvidence
230275
+ });
230276
+ }
230268
230277
  this.persistState(state);
230269
230278
  this.agent.records.logRecord({
230270
230279
  type: "goal.create",
230271
230280
  goalId: state.goalId,
230272
230281
  objective: state.objective,
230273
- completionCriterion: state.completionCriterion
230282
+ completionCriterion: state.completionCriterion,
230283
+ actionCheckpoint: state.actionCheckpoint
230274
230284
  });
230275
230285
  this.trackGoalCreated(actor, input.replace === true);
230276
230286
  return this.toSnapshot(state);
@@ -233581,7 +233591,7 @@ var init_goal_start_review_ask = __esmMin((() => {
233581
233591
  }
233582
233592
  evaluate(context) {
233583
233593
  if (context.toolCall.name !== "CreateGoal") return;
233584
- if (this.agent.permission.mode === "auto") return;
233594
+ if (this.agent.permission.mode !== "manual") return;
233585
233595
  if (context.execution.display?.kind !== "goal_start") return;
233586
233596
  return {
233587
233597
  kind: "ask",
@@ -234611,6 +234621,7 @@ function migrateGoalCreate(record) {
234611
234621
  goalId: record.goalId,
234612
234622
  objective: record.objective,
234613
234623
  completionCriterion: record.completionCriterion,
234624
+ actionCheckpoint: record.actionCheckpoint,
234614
234625
  time: record.time
234615
234626
  };
234616
234627
  }
@@ -260226,7 +260237,7 @@ bytesWritten: number$1().int().nonnegative() });
260226
260237
  //#region ../../packages/agent-core/src/tools/builtin/goal/create-goal.md?raw
260227
260238
  var create_goal_default;
260228
260239
  var init_create_goal$1 = __esmMin((() => {
260229
- create_goal_default = "Create a durable, structured goal that the runtime will pursue across multiple turns.\n\nCall `CreateGoal` only when:\n\n- the user explicitly asks you to start a goal or work autonomously toward an outcome, or\n- a host goal-intake prompt asks you to create one.\n\nDo NOT create a goal for greetings, ordinary questions, or vague requests that lack a\nverifiable completion condition. A goal needs a checkable end state.\n\nWhen the request is vague, ask the user for the missing completion criterion before creating\nthe goal. If the user clearly insists after you warn them that the wording is vague or risky,\nrespect that and create the goal.\n\nInclude a `completionCriterion` when the user provides one, or when it can be stated without\ninventing new requirements. Keep `objective` concise; reference long task descriptions by file\npath rather than pasting them.\n\nCreating a goal fails if one already exists, so use `replace: true` only when the user explicitly\nwants to abandon the current goal and start a new one.\n";
260240
+ create_goal_default = "Create a durable, structured goal that the runtime will pursue across multiple turns.\n\nCall `CreateGoal` when:\n\n- the user explicitly asks you to start a goal or work autonomously toward an outcome,\n- an authenticated user assigns a non-trivial multi-step outcome with a checkable end state under an existing instruction to continue autonomously, or\n- a host goal-intake prompt asks you to create one.\n\nDo NOT create a goal for greetings, ordinary questions, one-step requests, or vague requests that lack a\nverifiable completion condition. A goal needs a checkable end state.\n\nWhen the request is vague, ask the user for the missing completion criterion before creating\nthe goal. If the user clearly insists after you warn them that the wording is vague or risky,\nrespect that and create the goal.\n\nInclude a `completionCriterion` when the user provides one, or when it can be stated without\ninventing new requirements. Keep `objective` concise; reference long task descriptions by file\npath rather than pasting them. Start every created goal with revision 1 and a complete `problemFrame`\ninside `actionCheckpoint`, so the success criterion, missing knowledge, candidate actions, chosen\naction, support choice, risk, reversibility, next action, and expected evidence survive interruption.\nThis frame is descriptive state only and never grants permission.\n\nCreating a goal fails if one already exists, so use `replace: true` only when the user explicitly\nwants to abandon the current goal and start a new one.\n";
260230
260241
  }));
260231
260242
  //#endregion
260232
260243
  //#region ../../packages/agent-core/src/tools/builtin/goal/serialize.ts
@@ -260245,15 +260256,42 @@ function goalResultForModel(result) {
260245
260256
  var init_serialize = __esmMin((() => {}));
260246
260257
  //#endregion
260247
260258
  //#region ../../packages/agent-core/src/tools/builtin/goal/create-goal.ts
260248
- var CreateGoalToolInputSchema, CreateGoalTool;
260259
+ function createProblemFrameInputSchema() {
260260
+ return object({
260261
+ successCriterion: string().min(1).max(512),
260262
+ missingKnowledge: array(string().min(1).max(256)).min(1).max(5),
260263
+ candidateActions: array(string().min(1).max(256)).min(1).max(5),
260264
+ selectedAction: string().min(1).max(256),
260265
+ selectionReason: string().min(1).max(512),
260266
+ supportChoice: string().min(1).max(256),
260267
+ risk: string().min(1).max(512),
260268
+ reversibility: string().min(1).max(512)
260269
+ }).strict();
260270
+ }
260271
+ function createActionCheckpointInputSchema(problemFrameSchema, requireProblemFrame = false) {
260272
+ return object({
260273
+ revision: number$1().int().min(1),
260274
+ phase: _enum(["orient", "plan", "act", "verify", "learn", "wait"]),
260275
+ evidenceBasis: _enum(["runtime_tool", "user_statement", "external_report", "carried_forward"]),
260276
+ epistemicState: _enum(["verified", "credible_unverified", "hypothesis", "uncertain_memory", "stale", "unknown"]),
260277
+ lastVerified: string().min(1).max(512),
260278
+ nextAction: string().min(1).max(512),
260279
+ expectedEvidence: string().min(1).max(512),
260280
+ problemFrame: requireProblemFrame ? problemFrameSchema : problemFrameSchema.optional()
260281
+ }).strict();
260282
+ }
260283
+ var ProblemFrameInputSchema, ActionCheckpointInputSchema, CreateGoalActionCheckpointInputSchema, CreateGoalToolInputSchema, CreateGoalTool;
260249
260284
  var init_create_goal = __esmMin((() => {
260250
260285
  init_zod$1();
260251
260286
  init_input_schema();
260252
260287
  init_create_goal$1();
260253
260288
  init_serialize();
260289
+ ProblemFrameInputSchema ??= createProblemFrameInputSchema();
260290
+ CreateGoalActionCheckpointInputSchema ??= createActionCheckpointInputSchema(ProblemFrameInputSchema, true);
260254
260291
  CreateGoalToolInputSchema = object({
260255
260292
  objective: string().min(1).describe("The objective to pursue. Must have a verifiable end state."),
260256
260293
  completionCriterion: string().optional().describe("How to verify the goal is complete. Include when the user provides one."),
260294
+ actionCheckpoint: CreateGoalActionCheckpointInputSchema,
260257
260295
  replace: boolean$1().optional().describe("Replace an existing active, paused, or blocked goal instead of failing.")
260258
260296
  }).strict();
260259
260297
  CreateGoalTool = class {
@@ -260274,6 +260312,7 @@ var init_create_goal = __esmMin((() => {
260274
260312
  const snapshot = await goal.createGoal({
260275
260313
  objective: args.objective,
260276
260314
  completionCriterion: args.completionCriterion,
260315
+ actionCheckpoint: args.actionCheckpoint,
260277
260316
  replace: args.replace
260278
260317
  }, "model");
260279
260318
  return { output: JSON.stringify({ goal: goalForModel(snapshot) }, null, 2) };
@@ -260283,12 +260322,12 @@ var init_create_goal = __esmMin((() => {
260283
260322
  /**
260284
260323
  * Starting a goal switches the agent into autonomous, multi-turn work, so its
260285
260324
  * approval reuses the same choice the `/goal` command offers: pick the
260286
- * permission mode to run under, or decline. `auto` mode auto-approves the goal
260287
- * upstream and never reaches this prompt, so the menu only covers manual/yolo.
260325
+ * permission mode to run under, or decline. Auto and God Mode continue under
260326
+ * their already selected permission level; only manual mode asks again.
260288
260327
  */
260289
260328
  resolveGoalStartDisplay(args) {
260290
260329
  const mode = this.agent.permission.mode;
260291
- if (mode === "auto") return void 0;
260330
+ if (mode !== "manual") return void 0;
260292
260331
  return {
260293
260332
  kind: "goal_start",
260294
260333
  objective: args.objective,
@@ -262739,33 +262778,15 @@ var init_update_goal$1 = __esmMin((() => {
262739
262778
  }));
262740
262779
  //#endregion
262741
262780
  //#region ../../packages/agent-core/src/tools/builtin/goal/update-goal.ts
262742
- var ProblemFrameInputSchema, ActionCheckpointInputSchema, UpdateGoalToolInputSchema, UpdateGoalTool;
262781
+ var UpdateGoalToolInputSchema, UpdateGoalTool;
262743
262782
  var init_update_goal = __esmMin((() => {
262744
262783
  init_zod$1();
262745
262784
  init_turn();
262746
262785
  init_outcome_prompts();
262747
262786
  init_input_schema();
262748
262787
  init_update_goal$1();
262749
- ProblemFrameInputSchema = object({
262750
- successCriterion: string().min(1).max(512),
262751
- missingKnowledge: array(string().min(1).max(256)).min(1).max(5),
262752
- candidateActions: array(string().min(1).max(256)).min(1).max(5),
262753
- selectedAction: string().min(1).max(256),
262754
- selectionReason: string().min(1).max(512),
262755
- supportChoice: string().min(1).max(256),
262756
- risk: string().min(1).max(512),
262757
- reversibility: string().min(1).max(512)
262758
- }).strict();
262759
- ActionCheckpointInputSchema = object({
262760
- revision: number$1().int().min(1),
262761
- phase: _enum(["orient", "plan", "act", "verify", "learn", "wait"]),
262762
- evidenceBasis: _enum(["runtime_tool", "user_statement", "external_report", "carried_forward"]),
262763
- epistemicState: _enum(["verified", "credible_unverified", "hypothesis", "uncertain_memory", "stale", "unknown"]),
262764
- lastVerified: string().min(1).max(512),
262765
- nextAction: string().min(1).max(512),
262766
- expectedEvidence: string().min(1).max(512),
262767
- problemFrame: ProblemFrameInputSchema.optional()
262768
- }).strict();
262788
+ ProblemFrameInputSchema ??= createProblemFrameInputSchema();
262789
+ ActionCheckpointInputSchema ??= createActionCheckpointInputSchema(ProblemFrameInputSchema);
262769
262790
  UpdateGoalToolInputSchema = object({ status: _enum([
262770
262791
  "active",
262771
262792
  "complete",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.411",
3
+ "version": "9.1.412",
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": {