baro-ai 0.70.14 → 0.71.0

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/dist/cli.mjs CHANGED
@@ -40683,8 +40683,10 @@ var RunStarted = defineSemanticEvent("run_started");
40683
40683
  var LevelComputeRequest = defineSemanticEvent("level_compute_request");
40684
40684
  var LevelStarted = defineSemanticEvent("level_started");
40685
40685
  var LevelCompleted = defineSemanticEvent("level_completed");
40686
+ var RecoveryStarted = defineSemanticEvent("recovery_started");
40686
40687
  var StorySpawnRequest = defineSemanticEvent("story_spawn_request");
40687
40688
  var StorySpawned = defineSemanticEvent("story_spawned");
40689
+ var StoryRouted = defineSemanticEvent("story_routed");
40688
40690
  var FinalizeStarted = defineSemanticEvent("finalize_started");
40689
40691
  var PrCreated = defineSemanticEvent("pr_created");
40690
40692
  var RunCompleted = defineSemanticEvent("run_completed");
@@ -40942,6 +40944,8 @@ var Conductor = class extends BaseObserver {
40942
40944
  */
40943
40945
  recoveryAttempts = /* @__PURE__ */ new Map();
40944
40946
  maxRecoveryAttemptsPerStory = 1;
40947
+ /** Recovery levels started in this run (1-based `attempt` for RecoveryStarted). */
40948
+ recoveryLevelsStarted = 0;
40945
40949
  totalAttempts = 0;
40946
40950
  appliedReplans = 0;
40947
40951
  currentLevel = null;
@@ -41412,6 +41416,13 @@ ${prompt}`;
41412
41416
  failed: [],
41413
41417
  perStoryAttempts: /* @__PURE__ */ new Map()
41414
41418
  };
41419
+ this.recoveryLevelsStarted += 1;
41420
+ this.emit(
41421
+ RecoveryStarted.create({
41422
+ attempt: this.recoveryLevelsStarted,
41423
+ storyIds: this.currentLevel.storyIds
41424
+ })
41425
+ );
41415
41426
  this.emit(
41416
41427
  LevelStarted.create({
41417
41428
  ordinal,
@@ -43423,6 +43434,13 @@ var CoordinationForwarder = class extends BaseObserver {
43423
43434
  }
43424
43435
  }
43425
43436
  handleIntervention(item) {
43437
+ emit({
43438
+ type: "intervention",
43439
+ id: item.storyId,
43440
+ source: item.source,
43441
+ action: item.action,
43442
+ reason: item.reason
43443
+ });
43426
43444
  emit({
43427
43445
  type: "story_log",
43428
43446
  id: item.storyId,
@@ -43443,6 +43461,13 @@ var CoordinationForwarder = class extends BaseObserver {
43443
43461
  });
43444
43462
  }
43445
43463
  handleCritique(item) {
43464
+ emit({
43465
+ type: "critique",
43466
+ id: item.agentId,
43467
+ verdict: item.verdict,
43468
+ reasoning: item.reasoning,
43469
+ violated: [...item.violatedCriteria]
43470
+ });
43446
43471
  emit({
43447
43472
  type: "story_log",
43448
43473
  id: item.agentId,
@@ -43451,6 +43476,67 @@ var CoordinationForwarder = class extends BaseObserver {
43451
43476
  }
43452
43477
  };
43453
43478
 
43479
+ // ../baro-orchestrator/src/participants/forwarders/dag.ts
43480
+ var DagForwarder = class extends BaseObserver {
43481
+ async onExternalEvent(_source, event) {
43482
+ if (Replan.is(event)) {
43483
+ this.handleReplan(event.data);
43484
+ return;
43485
+ }
43486
+ if (LevelStarted.is(event)) {
43487
+ this.handleLevelStarted(event.data);
43488
+ return;
43489
+ }
43490
+ if (LevelCompleted.is(event)) {
43491
+ this.handleLevelCompleted(event.data);
43492
+ return;
43493
+ }
43494
+ if (RecoveryStarted.is(event)) {
43495
+ this.handleRecoveryStarted(event.data);
43496
+ return;
43497
+ }
43498
+ }
43499
+ handleReplan(item) {
43500
+ emit({
43501
+ type: "replan",
43502
+ source: item.source,
43503
+ reason: item.reason,
43504
+ added: item.addedStories.map((s2) => ({
43505
+ id: s2.id,
43506
+ title: s2.title,
43507
+ depends_on: [...s2.dependsOn]
43508
+ })),
43509
+ removed: [...item.removedStoryIds],
43510
+ rewired: Object.entries(item.modifiedDeps).map(([id, deps]) => ({
43511
+ id,
43512
+ depends_on: [...deps]
43513
+ }))
43514
+ });
43515
+ }
43516
+ handleLevelStarted(item) {
43517
+ emit({
43518
+ type: "level_started",
43519
+ ordinal: item.ordinal,
43520
+ story_ids: [...item.storyIds]
43521
+ });
43522
+ }
43523
+ handleLevelCompleted(item) {
43524
+ emit({
43525
+ type: "level_completed",
43526
+ ordinal: item.ordinal,
43527
+ passed: [...item.passed],
43528
+ failed: [...item.failed]
43529
+ });
43530
+ }
43531
+ handleRecoveryStarted(item) {
43532
+ emit({
43533
+ type: "recovery_started",
43534
+ attempt: item.attempt,
43535
+ story_ids: [...item.storyIds]
43536
+ });
43537
+ }
43538
+ };
43539
+
43454
43540
  // ../baro-orchestrator/src/participants/forwarders/finalization.ts
43455
43541
  var FinalizationForwarder = class extends BaseObserver {
43456
43542
  async onExternalEvent(_source, event) {
@@ -43550,6 +43636,31 @@ var StoryLifecycleForwarder = class extends BaseObserver {
43550
43636
  this.handleStoryResult(event.data);
43551
43637
  return;
43552
43638
  }
43639
+ if (StoryRouted.is(event)) {
43640
+ emit({
43641
+ type: "routed",
43642
+ id: event.data.storyId,
43643
+ backend: event.data.backend,
43644
+ model: event.data.model
43645
+ });
43646
+ return;
43647
+ }
43648
+ if (StoryMerged.is(event)) {
43649
+ emit({
43650
+ type: "story_merged",
43651
+ id: event.data.storyId,
43652
+ mode: event.data.mode
43653
+ });
43654
+ return;
43655
+ }
43656
+ if (StoryMergeFailed.is(event)) {
43657
+ emit({
43658
+ type: "merge_failed",
43659
+ id: event.data.storyId,
43660
+ error: event.data.error
43661
+ });
43662
+ return;
43663
+ }
43553
43664
  }
43554
43665
  // Same signal the Sentry uses: a write/edit tool call from a story
43555
43666
  // agent. We attribute the touched path to that agent's story and
@@ -43721,6 +43832,7 @@ function joinBaroEventForwarders(env) {
43721
43832
  new TokenUsageForwarder(),
43722
43833
  new ProgressForwarder(),
43723
43834
  new CoordinationForwarder(),
43835
+ new DagForwarder(),
43724
43836
  new FinalizationForwarder()
43725
43837
  ];
43726
43838
  for (const f3 of forwarders) f3.join(env);
@@ -47739,6 +47851,14 @@ var StoryFactory = class extends BaseObserver {
47739
47851
  process.stderr.write(
47740
47852
  `[story-factory] ${req.storyId} \u2192 ${formatRoute(route)}` + (req.model ? ` (model="${req.model}")` : "") + "\n"
47741
47853
  );
47854
+ this.envRef.deliverSemanticEvent(
47855
+ this,
47856
+ StoryRouted.create({
47857
+ storyId: req.storyId,
47858
+ backend: route.backend,
47859
+ model: route.model ?? "default"
47860
+ })
47861
+ );
47742
47862
  const storyCwd = this.opts.worktrees ? await this.opts.worktrees.create(req.storyId) ?? this.opts.cwd : this.opts.cwd;
47743
47863
  const exec3 = this.executor.start(req, route, storyCwd, this.envRef, {
47744
47864
  openaiModel: this.opts.openaiModel,