@@ -4282,7 +4282,13 @@ export class Agent<
42824282 } ) ;
42834283 }
42844284
4285- result = { text : generateResult . text , subAgentThreadId, subAgentResourceId, subAgentToolResults } ;
4285+ result = {
4286+ text : generateResult . text ,
4287+ subAgentThreadId,
4288+ subAgentResourceId,
4289+ subAgentToolResults,
4290+ usage : generateResult . usage ,
4291+ } ;
42864292 } else if (
42874293 ( methodType === 'generate' || methodType === 'generateLegacy' ) &&
42884294 resolvedModelVersion === 'v1'
@@ -4295,7 +4301,21 @@ export class Agent<
42954301 ...resolveObservabilityContext ( context ?? { } ) ,
42964302 context : filteredContextMessages as unknown as CoreMessage [ ] ,
42974303 } ) ;
4298- result = { text : generateResult . text } ;
4304+ const subAgentToolResultsLegacy = generateResult . toolResults ?. map ( ( toolResult : any ) => ( {
4305+ toolName : toolResult . toolName ,
4306+ toolCallId : toolResult . toolCallId ,
4307+ result : toolResult . result ,
4308+ args : toolResult . args ,
4309+ isError : toolResult . isError ,
4310+ } ) ) ;
4311+
4312+ result = {
4313+ text : generateResult . text ,
4314+ subAgentThreadId,
4315+ subAgentResourceId,
4316+ subAgentToolResults : subAgentToolResultsLegacy ,
4317+ usage : generateResult . usage ,
4318+ } ;
42994319 } else if (
43004320 ( methodType === 'stream' || methodType === 'streamLegacy' ) &&
43014321 supportedLanguageModelSpecifications . includes ( resolvedModelVersion )
@@ -4441,11 +4461,13 @@ export class Agent<
44414461 // Use streamResult.text (a delayed promise) which resolves to the
44424462 // output-processor-modified text, rather than the raw accumulated text-deltas.
44434463 const processedText = await streamResult . text ;
4464+ const subAgentUsage = await streamResult . usage ;
44444465 result = {
44454466 text : processedText ,
44464467 subAgentThreadId,
44474468 subAgentResourceId,
44484469 subAgentToolResults,
4470+ usage : subAgentUsage ,
44494471 } ;
44504472 } else {
44514473 if ( typeof resolvedAgent . streamLegacy !== 'function' ) {
@@ -4476,6 +4498,10 @@ export class Agent<
44764498 result = { text : fullText } ;
44774499 }
44784500
4501+ // Note: `usage` is included in `result` for successful generate, generateLegacy,
4502+ // and stream code paths. The `streamLegacy` path accumulates text only and won't
4503+ // have `usage`. Error/rejected delegation callbacks may also omit it.
4504+
44794505 // Call onDelegationComplete hook if provided
44804506 if ( delegation ?. onDelegationComplete ) {
44814507 try {
0 commit comments