llmist 12.3.2 → 12.3.3
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 +110 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +110 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -10362,6 +10362,18 @@ function findParentGadgetInvocationId(tree, nodeId) {
|
|
|
10362
10362
|
}
|
|
10363
10363
|
return void 0;
|
|
10364
10364
|
}
|
|
10365
|
+
function getIterationFromTree(tree, nodeId) {
|
|
10366
|
+
let currentId = nodeId;
|
|
10367
|
+
while (currentId) {
|
|
10368
|
+
const node = tree.getNode(currentId);
|
|
10369
|
+
if (!node) break;
|
|
10370
|
+
if (node.type === "llm_call") {
|
|
10371
|
+
return node.iteration;
|
|
10372
|
+
}
|
|
10373
|
+
currentId = node.parentId;
|
|
10374
|
+
}
|
|
10375
|
+
return 0;
|
|
10376
|
+
}
|
|
10365
10377
|
function buildSubagentContext(tree, event) {
|
|
10366
10378
|
const parentGadgetInvocationId = findParentGadgetInvocationId(tree, event.nodeId);
|
|
10367
10379
|
if (!parentGadgetInvocationId) {
|
|
@@ -10395,12 +10407,101 @@ function bridgeTreeToHooks(tree, hooks, logger) {
|
|
|
10395
10407
|
return tree.onAll((event) => {
|
|
10396
10408
|
const subagentContext = buildSubagentContext(tree, event);
|
|
10397
10409
|
switch (event.type) {
|
|
10398
|
-
//
|
|
10399
|
-
//
|
|
10400
|
-
//
|
|
10401
|
-
//
|
|
10402
|
-
//
|
|
10403
|
-
//
|
|
10410
|
+
// =================================================================
|
|
10411
|
+
// GADGET EVENTS - Bridged for subagent visibility
|
|
10412
|
+
// =================================================================
|
|
10413
|
+
// When a subagent executes gadgets, these events propagate through
|
|
10414
|
+
// the shared tree to the parent's hooks.
|
|
10415
|
+
// Only bridged for subagent events (depth > 0) to avoid double-calling
|
|
10416
|
+
// root agent events which are handled directly in stream-processor.ts
|
|
10417
|
+
case "gadget_start": {
|
|
10418
|
+
if (subagentContext && hooks.observers?.onGadgetExecutionStart) {
|
|
10419
|
+
const gadgetEvent = event;
|
|
10420
|
+
const gadgetNode = tree.getNode(event.nodeId);
|
|
10421
|
+
const context = {
|
|
10422
|
+
iteration: getIterationFromTree(tree, event.nodeId),
|
|
10423
|
+
gadgetName: gadgetEvent.name,
|
|
10424
|
+
invocationId: gadgetEvent.invocationId,
|
|
10425
|
+
parameters: gadgetNode?.parameters ?? {},
|
|
10426
|
+
logger,
|
|
10427
|
+
subagentContext
|
|
10428
|
+
};
|
|
10429
|
+
safeObserve(
|
|
10430
|
+
() => hooks.observers?.onGadgetExecutionStart?.(context),
|
|
10431
|
+
logger,
|
|
10432
|
+
"onGadgetExecutionStart"
|
|
10433
|
+
);
|
|
10434
|
+
}
|
|
10435
|
+
break;
|
|
10436
|
+
}
|
|
10437
|
+
case "gadget_complete": {
|
|
10438
|
+
if (subagentContext && hooks.observers?.onGadgetExecutionComplete) {
|
|
10439
|
+
const gadgetEvent = event;
|
|
10440
|
+
const gadgetNode = tree.getNode(event.nodeId);
|
|
10441
|
+
const context = {
|
|
10442
|
+
iteration: getIterationFromTree(tree, event.nodeId),
|
|
10443
|
+
gadgetName: gadgetEvent.name,
|
|
10444
|
+
invocationId: gadgetEvent.invocationId,
|
|
10445
|
+
parameters: gadgetNode?.parameters ?? {},
|
|
10446
|
+
finalResult: gadgetEvent.result,
|
|
10447
|
+
executionTimeMs: gadgetEvent.executionTimeMs,
|
|
10448
|
+
cost: gadgetEvent.cost,
|
|
10449
|
+
logger,
|
|
10450
|
+
subagentContext
|
|
10451
|
+
};
|
|
10452
|
+
safeObserve(
|
|
10453
|
+
() => hooks.observers?.onGadgetExecutionComplete?.(context),
|
|
10454
|
+
logger,
|
|
10455
|
+
"onGadgetExecutionComplete"
|
|
10456
|
+
);
|
|
10457
|
+
}
|
|
10458
|
+
break;
|
|
10459
|
+
}
|
|
10460
|
+
case "gadget_error": {
|
|
10461
|
+
if (subagentContext && hooks.observers?.onGadgetExecutionComplete) {
|
|
10462
|
+
const gadgetEvent = event;
|
|
10463
|
+
const gadgetNode = tree.getNode(event.nodeId);
|
|
10464
|
+
const context = {
|
|
10465
|
+
iteration: getIterationFromTree(tree, event.nodeId),
|
|
10466
|
+
gadgetName: gadgetEvent.name,
|
|
10467
|
+
invocationId: gadgetEvent.invocationId,
|
|
10468
|
+
parameters: gadgetNode?.parameters ?? {},
|
|
10469
|
+
error: gadgetEvent.error,
|
|
10470
|
+
executionTimeMs: gadgetEvent.executionTimeMs,
|
|
10471
|
+
logger,
|
|
10472
|
+
subagentContext
|
|
10473
|
+
};
|
|
10474
|
+
safeObserve(
|
|
10475
|
+
() => hooks.observers?.onGadgetExecutionComplete?.(context),
|
|
10476
|
+
logger,
|
|
10477
|
+
"onGadgetExecutionComplete"
|
|
10478
|
+
);
|
|
10479
|
+
}
|
|
10480
|
+
break;
|
|
10481
|
+
}
|
|
10482
|
+
case "gadget_skipped": {
|
|
10483
|
+
if (subagentContext && hooks.observers?.onGadgetSkipped) {
|
|
10484
|
+
const gadgetEvent = event;
|
|
10485
|
+
const gadgetNode = tree.getNode(event.nodeId);
|
|
10486
|
+
const context = {
|
|
10487
|
+
iteration: getIterationFromTree(tree, event.nodeId),
|
|
10488
|
+
gadgetName: gadgetEvent.name,
|
|
10489
|
+
invocationId: gadgetEvent.invocationId,
|
|
10490
|
+
parameters: gadgetNode?.parameters ?? {},
|
|
10491
|
+
failedDependency: gadgetEvent.failedDependency ?? "",
|
|
10492
|
+
failedDependencyError: gadgetEvent.failedDependencyError ?? gadgetEvent.error,
|
|
10493
|
+
logger,
|
|
10494
|
+
subagentContext
|
|
10495
|
+
};
|
|
10496
|
+
safeObserve(() => hooks.observers?.onGadgetSkipped?.(context), logger, "onGadgetSkipped");
|
|
10497
|
+
}
|
|
10498
|
+
break;
|
|
10499
|
+
}
|
|
10500
|
+
// =================================================================
|
|
10501
|
+
// LLM EVENTS - Bridged for subagent visibility
|
|
10502
|
+
// =================================================================
|
|
10503
|
+
// When a subagent makes LLM calls, these events propagate through
|
|
10504
|
+
// the shared tree to the parent's hooks.
|
|
10404
10505
|
case "llm_call_start": {
|
|
10405
10506
|
if (subagentContext && hooks.observers?.onLLMCallStart) {
|
|
10406
10507
|
const llmEvent = event;
|
|
@@ -10416,7 +10517,7 @@ function bridgeTreeToHooks(tree, hooks, logger) {
|
|
|
10416
10517
|
logger,
|
|
10417
10518
|
subagentContext
|
|
10418
10519
|
};
|
|
10419
|
-
safeObserve(() => hooks.observers
|
|
10520
|
+
safeObserve(() => hooks.observers?.onLLMCallStart?.(context), logger, "onLLMCallStart");
|
|
10420
10521
|
}
|
|
10421
10522
|
break;
|
|
10422
10523
|
}
|
|
@@ -10441,7 +10542,7 @@ function bridgeTreeToHooks(tree, hooks, logger) {
|
|
|
10441
10542
|
subagentContext
|
|
10442
10543
|
};
|
|
10443
10544
|
safeObserve(
|
|
10444
|
-
() => hooks.observers
|
|
10545
|
+
() => hooks.observers?.onLLMCallComplete?.(context),
|
|
10445
10546
|
logger,
|
|
10446
10547
|
"onLLMCallComplete"
|
|
10447
10548
|
);
|
|
@@ -10465,7 +10566,7 @@ function bridgeTreeToHooks(tree, hooks, logger) {
|
|
|
10465
10566
|
logger,
|
|
10466
10567
|
subagentContext
|
|
10467
10568
|
};
|
|
10468
|
-
safeObserve(() => hooks.observers
|
|
10569
|
+
safeObserve(() => hooks.observers?.onLLMCallError?.(context), logger, "onLLMCallError");
|
|
10469
10570
|
}
|
|
10470
10571
|
break;
|
|
10471
10572
|
}
|