551
552
async prepareToolInvocation(context: IToolInvocationPreparationContext, _token: CancellationToken): Promise<IPreparedToolInvocation | undefined> {
554
>
const requestedAgentName = this.normalizeRequestedAgentName(args.agentName);
555
>
556
>
const subagent = requestedAgentName ? await this.getSubAgentByName(requestedAgentName) : undefined;
557
>
const currentModeInstructions = context.chatSessionResource ? this.getCurrentModeInstructions(context.chatSessionResource) : undefined;
558
>
559
>
// Resolve the model early and cache it for invoke()
560
>
const resolved = this.resolveSubagentModel(subagent, context.modelId, args.model);
561
>
this._resolvedModels.set(context.toolCallId, resolved);
562
>
563
>
return {
564
>
invocationMessage: args.description,
565
>
toolSpecificData: {
566
>
kind: 'subagent',
567
>
description: args.description,
568
>
agentName: subagent?.name ?? requestedAgentName ?? currentModeInstructions?.name,
569
>
prompt: args.prompt,
570
>
modelName: resolved.resolvedModelName,
571
>
},
572
>
};
573
>
}
574
575
private normalizeRequestedAgentName(agentName: string | undefined): string | undefined {