llmist 12.3.3 → 12.3.4

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/index.cjs CHANGED
@@ -10403,7 +10403,17 @@ async function safeObserve(fn, logger, eventType) {
10403
10403
  logger.warn(`Observer error in ${eventType}:`, error);
10404
10404
  }
10405
10405
  }
10406
+ function chainObserverCall(chainMap, key, fn, logger, eventType, cleanup = false) {
10407
+ const previousPromise = chainMap.get(key) ?? Promise.resolve();
10408
+ const newPromise = previousPromise.then(() => safeObserve(fn, logger, eventType));
10409
+ chainMap.set(key, newPromise);
10410
+ if (cleanup) {
10411
+ newPromise.finally(() => chainMap.delete(key));
10412
+ }
10413
+ }
10406
10414
  function bridgeTreeToHooks(tree, hooks, logger) {
10415
+ const gadgetPromiseChains = /* @__PURE__ */ new Map();
10416
+ const llmPromiseChains = /* @__PURE__ */ new Map();
10407
10417
  return tree.onAll((event) => {
10408
10418
  const subagentContext = buildSubagentContext(tree, event);
10409
10419
  switch (event.type) {
@@ -10426,10 +10436,14 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10426
10436
  logger,
10427
10437
  subagentContext
10428
10438
  };
10429
- safeObserve(
10439
+ chainObserverCall(
10440
+ gadgetPromiseChains,
10441
+ gadgetEvent.invocationId,
10430
10442
  () => hooks.observers?.onGadgetExecutionStart?.(context),
10431
10443
  logger,
10432
- "onGadgetExecutionStart"
10444
+ "onGadgetExecutionStart",
10445
+ false
10446
+ // Don't cleanup - wait for completion event
10433
10447
  );
10434
10448
  }
10435
10449
  break;
@@ -10449,10 +10463,14 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10449
10463
  logger,
10450
10464
  subagentContext
10451
10465
  };
10452
- safeObserve(
10466
+ chainObserverCall(
10467
+ gadgetPromiseChains,
10468
+ gadgetEvent.invocationId,
10453
10469
  () => hooks.observers?.onGadgetExecutionComplete?.(context),
10454
10470
  logger,
10455
- "onGadgetExecutionComplete"
10471
+ "onGadgetExecutionComplete",
10472
+ true
10473
+ // Cleanup after completion
10456
10474
  );
10457
10475
  }
10458
10476
  break;
@@ -10471,10 +10489,14 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10471
10489
  logger,
10472
10490
  subagentContext
10473
10491
  };
10474
- safeObserve(
10492
+ chainObserverCall(
10493
+ gadgetPromiseChains,
10494
+ gadgetEvent.invocationId,
10475
10495
  () => hooks.observers?.onGadgetExecutionComplete?.(context),
10476
10496
  logger,
10477
- "onGadgetExecutionComplete"
10497
+ "onGadgetExecutionComplete",
10498
+ true
10499
+ // Cleanup after error
10478
10500
  );
10479
10501
  }
10480
10502
  break;
@@ -10493,7 +10515,15 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10493
10515
  logger,
10494
10516
  subagentContext
10495
10517
  };
10496
- safeObserve(() => hooks.observers?.onGadgetSkipped?.(context), logger, "onGadgetSkipped");
10518
+ chainObserverCall(
10519
+ gadgetPromiseChains,
10520
+ gadgetEvent.invocationId,
10521
+ () => hooks.observers?.onGadgetSkipped?.(context),
10522
+ logger,
10523
+ "onGadgetSkipped",
10524
+ true
10525
+ // Cleanup after skipped
10526
+ );
10497
10527
  }
10498
10528
  break;
10499
10529
  }
@@ -10517,7 +10547,15 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10517
10547
  logger,
10518
10548
  subagentContext
10519
10549
  };
10520
- safeObserve(() => hooks.observers?.onLLMCallStart?.(context), logger, "onLLMCallStart");
10550
+ chainObserverCall(
10551
+ llmPromiseChains,
10552
+ event.nodeId,
10553
+ () => hooks.observers?.onLLMCallStart?.(context),
10554
+ logger,
10555
+ "onLLMCallStart",
10556
+ false
10557
+ // Don't cleanup - wait for completion event
10558
+ );
10521
10559
  }
10522
10560
  break;
10523
10561
  }
@@ -10541,10 +10579,14 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10541
10579
  logger,
10542
10580
  subagentContext
10543
10581
  };
10544
- safeObserve(
10582
+ chainObserverCall(
10583
+ llmPromiseChains,
10584
+ event.nodeId,
10545
10585
  () => hooks.observers?.onLLMCallComplete?.(context),
10546
10586
  logger,
10547
- "onLLMCallComplete"
10587
+ "onLLMCallComplete",
10588
+ true
10589
+ // Cleanup after completion
10548
10590
  );
10549
10591
  }
10550
10592
  break;
@@ -10566,7 +10608,15 @@ function bridgeTreeToHooks(tree, hooks, logger) {
10566
10608
  logger,
10567
10609
  subagentContext
10568
10610
  };
10569
- safeObserve(() => hooks.observers?.onLLMCallError?.(context), logger, "onLLMCallError");
10611
+ chainObserverCall(
10612
+ llmPromiseChains,
10613
+ event.nodeId,
10614
+ () => hooks.observers?.onLLMCallError?.(context),
10615
+ logger,
10616
+ "onLLMCallError",
10617
+ true
10618
+ // Cleanup after error
10619
+ );
10570
10620
  }
10571
10621
  break;
10572
10622
  }