summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/cli/src/nonInteractiveCli.test.ts2
-rw-r--r--packages/cli/src/nonInteractiveCli.ts2
-rw-r--r--packages/cli/src/ui/commands/mcpCommand.test.ts32
-rw-r--r--packages/cli/src/ui/commands/mcpCommand.ts6
-rw-r--r--packages/cli/src/ui/commands/toolsCommand.test.ts11
-rw-r--r--packages/cli/src/ui/commands/toolsCommand.ts2
-rw-r--r--packages/cli/src/ui/hooks/atCommandProcessor.ts2
-rw-r--r--packages/cli/src/zed-integration/zedIntegration.ts5
-rw-r--r--packages/core/src/config/config.ts4
-rw-r--r--packages/core/src/core/client.test.ts2
-rw-r--r--packages/core/src/core/client.ts4
-rw-r--r--packages/core/src/core/coreToolScheduler.test.ts36
-rw-r--r--packages/core/src/core/coreToolScheduler.ts7
-rw-r--r--packages/core/src/core/geminiChat.ts2
-rw-r--r--packages/core/src/core/subagent.test.ts2
-rw-r--r--packages/core/src/core/subagent.ts5
-rw-r--r--packages/core/src/utils/environmentContext.test.ts2
-rw-r--r--packages/core/src/utils/environmentContext.ts2
18 files changed, 61 insertions, 67 deletions
diff --git a/packages/cli/src/nonInteractiveCli.test.ts b/packages/cli/src/nonInteractiveCli.test.ts
index 79ee2d0d..b08862f5 100644
--- a/packages/cli/src/nonInteractiveCli.test.ts
+++ b/packages/cli/src/nonInteractiveCli.test.ts
@@ -65,7 +65,7 @@ describe('runNonInteractive', () => {
mockConfig = {
initialize: vi.fn().mockResolvedValue(undefined),
getGeminiClient: vi.fn().mockReturnValue(mockGeminiClient),
- getToolRegistry: vi.fn().mockResolvedValue(mockToolRegistry),
+ getToolRegistry: vi.fn().mockReturnValue(mockToolRegistry),
getMaxSessionTurns: vi.fn().mockReturnValue(10),
getIdeMode: vi.fn().mockReturnValue(false),
getFullContext: vi.fn().mockReturnValue(false),
diff --git a/packages/cli/src/nonInteractiveCli.ts b/packages/cli/src/nonInteractiveCli.ts
index b65bf15d..e6af6665 100644
--- a/packages/cli/src/nonInteractiveCli.ts
+++ b/packages/cli/src/nonInteractiveCli.ts
@@ -39,7 +39,7 @@ export async function runNonInteractive(
});
const geminiClient = config.getGeminiClient();
- const toolRegistry: ToolRegistry = await config.getToolRegistry();
+ const toolRegistry: ToolRegistry = config.getToolRegistry();
const abortController = new AbortController();
let currentMessages: Content[] = [
diff --git a/packages/cli/src/ui/commands/mcpCommand.test.ts b/packages/cli/src/ui/commands/mcpCommand.test.ts
index 09b97bb0..8bf27291 100644
--- a/packages/cli/src/ui/commands/mcpCommand.test.ts
+++ b/packages/cli/src/ui/commands/mcpCommand.test.ts
@@ -83,7 +83,7 @@ describe('mcpCommand', () => {
// Create mock config with all necessary methods
mockConfig = {
- getToolRegistry: vi.fn().mockResolvedValue({
+ getToolRegistry: vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue([]),
}),
getMcpServers: vi.fn().mockReturnValue({}),
@@ -119,7 +119,7 @@ describe('mcpCommand', () => {
});
it('should show an error if tool registry is not available', async () => {
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue(undefined);
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue(undefined);
const result = await mcpCommand.action!(mockContext, '');
@@ -133,7 +133,7 @@ describe('mcpCommand', () => {
describe('no MCP servers configured', () => {
beforeEach(() => {
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue([]),
});
mockConfig.getMcpServers = vi.fn().mockReturnValue({});
@@ -184,7 +184,7 @@ describe('mcpCommand', () => {
...mockServer3Tools,
];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(allTools),
});
@@ -243,7 +243,7 @@ describe('mcpCommand', () => {
createMockMCPTool('tool2', 'server1', 'This is tool 2 description'),
];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
@@ -296,7 +296,7 @@ describe('mcpCommand', () => {
createMockMCPTool('tool1', 'server1', 'This is tool 1 description'),
];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
@@ -340,7 +340,7 @@ describe('mcpCommand', () => {
// Mock tools - only server1 has tools
const mockServerTools = [createMockMCPTool('server1_tool1', 'server1')];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
@@ -386,7 +386,7 @@ describe('mcpCommand', () => {
createMockMCPTool('server2_tool1', 'server2'),
];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
@@ -523,7 +523,7 @@ describe('mcpCommand', () => {
const mockServerTools = [tool1, tool2];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
@@ -566,7 +566,7 @@ describe('mcpCommand', () => {
createMockMCPTool('tool1', 'server1', 'Tool without schema'),
];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
@@ -603,7 +603,7 @@ describe('mcpCommand', () => {
createMockMCPTool('tool1', 'server1', 'Test tool'),
];
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue(mockServerTools),
});
});
@@ -766,7 +766,7 @@ describe('mcpCommand', () => {
};
mockConfig.getMcpServers = vi.fn().mockReturnValue(mockMcpServers);
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue([]),
});
@@ -787,7 +787,7 @@ describe('mcpCommand', () => {
};
mockConfig.getMcpServers = vi.fn().mockReturnValue(mockMcpServers);
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue({
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue({
getAllTools: vi.fn().mockReturnValue([]),
});
@@ -879,7 +879,7 @@ describe('mcpCommand', () => {
oauth: { enabled: true },
},
}),
- getToolRegistry: vi.fn().mockResolvedValue(mockToolRegistry),
+ getToolRegistry: vi.fn().mockReturnValue(mockToolRegistry),
getGeminiClient: vi.fn().mockReturnValue(mockGeminiClient),
getPromptRegistry: vi.fn().mockResolvedValue({
removePromptsByServer: vi.fn(),
@@ -984,7 +984,7 @@ describe('mcpCommand', () => {
config: {
getMcpServers: vi.fn().mockReturnValue({ server1: {} }),
getBlockedMcpServers: vi.fn().mockReturnValue([]),
- getToolRegistry: vi.fn().mockResolvedValue(mockToolRegistry),
+ getToolRegistry: vi.fn().mockReturnValue(mockToolRegistry),
getGeminiClient: vi.fn().mockReturnValue(mockGeminiClient),
getPromptRegistry: vi.fn().mockResolvedValue({
getPromptsByServer: vi.fn().mockReturnValue([]),
@@ -1040,7 +1040,7 @@ describe('mcpCommand', () => {
});
it('should show an error if tool registry is not available', async () => {
- mockConfig.getToolRegistry = vi.fn().mockResolvedValue(undefined);
+ mockConfig.getToolRegistry = vi.fn().mockReturnValue(undefined);
const refreshCommand = mcpCommand.subCommands?.find(
(cmd) => cmd.name === 'refresh',
diff --git a/packages/cli/src/ui/commands/mcpCommand.ts b/packages/cli/src/ui/commands/mcpCommand.ts
index 9e321937..67d66604 100644
--- a/packages/cli/src/ui/commands/mcpCommand.ts
+++ b/packages/cli/src/ui/commands/mcpCommand.ts
@@ -44,7 +44,7 @@ const getMcpStatus = async (
};
}
- const toolRegistry = await config.getToolRegistry();
+ const toolRegistry = config.getToolRegistry();
if (!toolRegistry) {
return {
type: 'message',
@@ -400,7 +400,7 @@ const authCommand: SlashCommand = {
);
// Trigger tool re-discovery to pick up authenticated server
- const toolRegistry = await config.getToolRegistry();
+ const toolRegistry = config.getToolRegistry();
if (toolRegistry) {
context.ui.addItem(
{
@@ -485,7 +485,7 @@ const refreshCommand: SlashCommand = {
};
}
- const toolRegistry = await config.getToolRegistry();
+ const toolRegistry = config.getToolRegistry();
if (!toolRegistry) {
return {
type: 'message',
diff --git a/packages/cli/src/ui/commands/toolsCommand.test.ts b/packages/cli/src/ui/commands/toolsCommand.test.ts
index 41c5196b..01399512 100644
--- a/packages/cli/src/ui/commands/toolsCommand.test.ts
+++ b/packages/cli/src/ui/commands/toolsCommand.test.ts
@@ -31,7 +31,7 @@ describe('toolsCommand', () => {
const mockContext = createMockCommandContext({
services: {
config: {
- getToolRegistry: () => Promise.resolve(undefined),
+ getToolRegistry: () => undefined,
},
},
});
@@ -52,8 +52,7 @@ describe('toolsCommand', () => {
const mockContext = createMockCommandContext({
services: {
config: {
- getToolRegistry: () =>
- Promise.resolve({ getAllTools: () => [] as Tool[] }),
+ getToolRegistry: () => ({ getAllTools: () => [] as Tool[] }),
},
},
});
@@ -73,8 +72,7 @@ describe('toolsCommand', () => {
const mockContext = createMockCommandContext({
services: {
config: {
- getToolRegistry: () =>
- Promise.resolve({ getAllTools: () => mockTools }),
+ getToolRegistry: () => ({ getAllTools: () => mockTools }),
},
},
});
@@ -92,8 +90,7 @@ describe('toolsCommand', () => {
const mockContext = createMockCommandContext({
services: {
config: {
- getToolRegistry: () =>
- Promise.resolve({ getAllTools: () => mockTools }),
+ getToolRegistry: () => ({ getAllTools: () => mockTools }),
},
},
});
diff --git a/packages/cli/src/ui/commands/toolsCommand.ts b/packages/cli/src/ui/commands/toolsCommand.ts
index e993bab3..31ff8c27 100644
--- a/packages/cli/src/ui/commands/toolsCommand.ts
+++ b/packages/cli/src/ui/commands/toolsCommand.ts
@@ -24,7 +24,7 @@ export const toolsCommand: SlashCommand = {
useShowDescriptions = true;
}
- const toolRegistry = await context.services.config?.getToolRegistry();
+ const toolRegistry = context.services.config?.getToolRegistry();
if (!toolRegistry) {
context.ui.addItem(
{
diff --git a/packages/cli/src/ui/hooks/atCommandProcessor.ts b/packages/cli/src/ui/hooks/atCommandProcessor.ts
index 50b8fbbd..85ad6f6f 100644
--- a/packages/cli/src/ui/hooks/atCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/atCommandProcessor.ts
@@ -157,7 +157,7 @@ export async function handleAtCommand({
both: [],
};
- const toolRegistry = await config.getToolRegistry();
+ const toolRegistry = config.getToolRegistry();
const readManyFilesTool = toolRegistry.getTool('read_many_files');
const globTool = toolRegistry.getTool('glob');
diff --git a/packages/cli/src/zed-integration/zedIntegration.ts b/packages/cli/src/zed-integration/zedIntegration.ts
index 51b1f170..9a10e1a8 100644
--- a/packages/cli/src/zed-integration/zedIntegration.ts
+++ b/packages/cli/src/zed-integration/zedIntegration.ts
@@ -10,7 +10,6 @@ import {
AuthType,
Config,
GeminiChat,
- ToolRegistry,
logToolCall,
ToolResult,
convertToFunctionResponse,
@@ -366,7 +365,7 @@ class Session {
return errorResponse(new Error('Missing function name'));
}
- const toolRegistry: ToolRegistry = await this.config.getToolRegistry();
+ const toolRegistry = this.config.getToolRegistry();
const tool = toolRegistry.getTool(fc.name as string);
if (!tool) {
@@ -531,7 +530,7 @@ class Session {
const contentLabelsForDisplay: string[] = [];
const ignoredPaths: string[] = [];
- const toolRegistry = await this.config.getToolRegistry();
+ const toolRegistry = this.config.getToolRegistry();
const readManyFilesTool = toolRegistry.getTool('read_many_files');
const globTool = toolRegistry.getTool('glob');
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index c5f919c1..5ab39e83 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -482,8 +482,8 @@ export class Config {
return this.workspaceContext;
}
- getToolRegistry(): Promise<ToolRegistry> {
- return Promise.resolve(this.toolRegistry);
+ getToolRegistry(): ToolRegistry {
+ return this.toolRegistry;
}
getPromptRegistry(): PromptRegistry {
diff --git a/packages/core/src/core/client.test.ts b/packages/core/src/core/client.test.ts
index 5afdba55..8e219f3c 100644
--- a/packages/core/src/core/client.test.ts
+++ b/packages/core/src/core/client.test.ts
@@ -183,7 +183,7 @@ describe('Gemini Client (client.ts)', () => {
getContentGeneratorConfig: vi
.fn()
.mockReturnValue(contentGeneratorConfig),
- getToolRegistry: vi.fn().mockResolvedValue(mockToolRegistry),
+ getToolRegistry: vi.fn().mockReturnValue(mockToolRegistry),
getModel: vi.fn().mockReturnValue('test-model'),
getEmbeddingModel: vi.fn().mockReturnValue('test-embedding-model'),
getApiKey: vi.fn().mockReturnValue('test-key'),
diff --git a/packages/core/src/core/client.ts b/packages/core/src/core/client.ts
index 89c194a4..a77a4893 100644
--- a/packages/core/src/core/client.ts
+++ b/packages/core/src/core/client.ts
@@ -201,7 +201,7 @@ export class GeminiClient {
}
async setTools(): Promise<void> {
- const toolRegistry = await this.config.getToolRegistry();
+ const toolRegistry = this.config.getToolRegistry();
const toolDeclarations = toolRegistry.getFunctionDeclarations();
const tools: Tool[] = [{ functionDeclarations: toolDeclarations }];
this.getChat().setTools(tools);
@@ -225,7 +225,7 @@ export class GeminiClient {
async startChat(extraHistory?: Content[]): Promise<GeminiChat> {
this.forceFullIdeContext = true;
const envParts = await getEnvironmentContext(this.config);
- const toolRegistry = await this.config.getToolRegistry();
+ const toolRegistry = this.config.getToolRegistry();
const toolDeclarations = toolRegistry.getFunctionDeclarations();
const tools: Tool[] = [{ functionDeclarations: toolDeclarations }];
const history: Content[] = [
diff --git a/packages/core/src/core/coreToolScheduler.test.ts b/packages/core/src/core/coreToolScheduler.test.ts
index e0d7f65a..6eb0e5b9 100644
--- a/packages/core/src/core/coreToolScheduler.test.ts
+++ b/packages/core/src/core/coreToolScheduler.test.ts
@@ -31,7 +31,7 @@ describe('CoreToolScheduler', () => {
const mockTool = new MockTool();
mockTool.shouldConfirm = true;
const declarativeTool = mockTool;
- const toolRegistry = {
+ const mockToolRegistry = {
getTool: () => declarativeTool,
getFunctionDeclarations: () => [],
tools: new Map(),
@@ -43,7 +43,7 @@ describe('CoreToolScheduler', () => {
discoverTools: async () => {},
getAllTools: () => [],
getToolsByServer: () => [],
- };
+ } as unknown as ToolRegistry;
const onAllToolCallsComplete = vi.fn();
const onToolCallsUpdate = vi.fn();
@@ -61,7 +61,7 @@ describe('CoreToolScheduler', () => {
const scheduler = new CoreToolScheduler({
config: mockConfig,
- toolRegistry: Promise.resolve(toolRegistry as unknown as ToolRegistry),
+ toolRegistry: mockToolRegistry,
onAllToolCallsComplete,
onToolCallsUpdate,
getPreferredEditor: () => 'vscode',
@@ -91,7 +91,7 @@ describe('CoreToolScheduler with payload', () => {
it('should update args and diff and execute tool when payload is provided', async () => {
const mockTool = new MockModifiableTool();
const declarativeTool = mockTool;
- const toolRegistry = {
+ const mockToolRegistry = {
getTool: () => declarativeTool,
getFunctionDeclarations: () => [],
tools: new Map(),
@@ -103,7 +103,7 @@ describe('CoreToolScheduler with payload', () => {
discoverTools: async () => {},
getAllTools: () => [],
getToolsByServer: () => [],
- };
+ } as unknown as ToolRegistry;
const onAllToolCallsComplete = vi.fn();
const onToolCallsUpdate = vi.fn();
@@ -121,7 +121,7 @@ describe('CoreToolScheduler with payload', () => {
const scheduler = new CoreToolScheduler({
config: mockConfig,
- toolRegistry: Promise.resolve(toolRegistry as unknown as ToolRegistry),
+ toolRegistry: mockToolRegistry,
onAllToolCallsComplete,
onToolCallsUpdate,
getPreferredEditor: () => 'vscode',
@@ -391,7 +391,7 @@ describe('CoreToolScheduler edit cancellation', () => {
it('should preserve diff when an edit is cancelled', async () => {
const mockEditTool = new MockEditTool();
const declarativeTool = mockEditTool;
- const toolRegistry = {
+ const mockToolRegistry = {
getTool: () => declarativeTool,
getFunctionDeclarations: () => [],
tools: new Map(),
@@ -403,7 +403,7 @@ describe('CoreToolScheduler edit cancellation', () => {
discoverTools: async () => {},
getAllTools: () => [],
getToolsByServer: () => [],
- };
+ } as unknown as ToolRegistry;
const onAllToolCallsComplete = vi.fn();
const onToolCallsUpdate = vi.fn();
@@ -421,7 +421,7 @@ describe('CoreToolScheduler edit cancellation', () => {
const scheduler = new CoreToolScheduler({
config: mockConfig,
- toolRegistry: Promise.resolve(toolRegistry as unknown as ToolRegistry),
+ toolRegistry: mockToolRegistry,
onAllToolCallsComplete,
onToolCallsUpdate,
getPreferredEditor: () => 'vscode',
@@ -481,7 +481,7 @@ describe('CoreToolScheduler YOLO mode', () => {
mockTool.shouldConfirm = true;
const declarativeTool = mockTool;
- const toolRegistry = {
+ const mockToolRegistry = {
getTool: () => declarativeTool,
getToolByName: () => declarativeTool,
// Other properties are not needed for this test but are included for type consistency.
@@ -494,7 +494,7 @@ describe('CoreToolScheduler YOLO mode', () => {
discoverTools: async () => {},
getAllTools: () => [],
getToolsByServer: () => [],
- };
+ } as unknown as ToolRegistry;
const onAllToolCallsComplete = vi.fn();
const onToolCallsUpdate = vi.fn();
@@ -513,7 +513,7 @@ describe('CoreToolScheduler YOLO mode', () => {
const scheduler = new CoreToolScheduler({
config: mockConfig,
- toolRegistry: Promise.resolve(toolRegistry as unknown as ToolRegistry),
+ toolRegistry: mockToolRegistry,
onAllToolCallsComplete,
onToolCallsUpdate,
getPreferredEditor: () => 'vscode',
@@ -572,7 +572,7 @@ describe('CoreToolScheduler request queueing', () => {
mockTool.executeFn.mockImplementation(() => firstCallPromise);
const declarativeTool = mockTool;
- const toolRegistry = {
+ const mockToolRegistry = {
getTool: () => declarativeTool,
getToolByName: () => declarativeTool,
getFunctionDeclarations: () => [],
@@ -584,7 +584,7 @@ describe('CoreToolScheduler request queueing', () => {
discoverTools: async () => {},
getAllTools: () => [],
getToolsByServer: () => [],
- };
+ } as unknown as ToolRegistry;
const onAllToolCallsComplete = vi.fn();
const onToolCallsUpdate = vi.fn();
@@ -602,7 +602,7 @@ describe('CoreToolScheduler request queueing', () => {
const scheduler = new CoreToolScheduler({
config: mockConfig,
- toolRegistry: Promise.resolve(toolRegistry as unknown as ToolRegistry),
+ toolRegistry: mockToolRegistry,
onAllToolCallsComplete,
onToolCallsUpdate,
getPreferredEditor: () => 'vscode',
@@ -685,7 +685,7 @@ describe('CoreToolScheduler request queueing', () => {
it('should handle two synchronous calls to schedule', async () => {
const mockTool = new MockTool();
const declarativeTool = mockTool;
- const toolRegistry = {
+ const mockToolRegistry = {
getTool: () => declarativeTool,
getToolByName: () => declarativeTool,
getFunctionDeclarations: () => [],
@@ -697,7 +697,7 @@ describe('CoreToolScheduler request queueing', () => {
discoverTools: async () => {},
getAllTools: () => [],
getToolsByServer: () => [],
- };
+ } as unknown as ToolRegistry;
const onAllToolCallsComplete = vi.fn();
const onToolCallsUpdate = vi.fn();
@@ -715,7 +715,7 @@ describe('CoreToolScheduler request queueing', () => {
const scheduler = new CoreToolScheduler({
config: mockConfig,
- toolRegistry: Promise.resolve(toolRegistry as unknown as ToolRegistry),
+ toolRegistry: mockToolRegistry,
onAllToolCallsComplete,
onToolCallsUpdate,
getPreferredEditor: () => 'vscode',
diff --git a/packages/core/src/core/coreToolScheduler.ts b/packages/core/src/core/coreToolScheduler.ts
index 1a031de5..7a1698c9 100644
--- a/packages/core/src/core/coreToolScheduler.ts
+++ b/packages/core/src/core/coreToolScheduler.ts
@@ -226,7 +226,7 @@ const createErrorResponse = (
});
interface CoreToolSchedulerOptions {
- toolRegistry: Promise<ToolRegistry>;
+ toolRegistry: ToolRegistry;
outputUpdateHandler?: OutputUpdateHandler;
onAllToolCallsComplete?: AllToolCallsCompleteHandler;
onToolCallsUpdate?: ToolCallsUpdateHandler;
@@ -236,7 +236,7 @@ interface CoreToolSchedulerOptions {
}
export class CoreToolScheduler {
- private toolRegistry: Promise<ToolRegistry>;
+ private toolRegistry: ToolRegistry;
private toolCalls: ToolCall[] = [];
private outputUpdateHandler?: OutputUpdateHandler;
private onAllToolCallsComplete?: AllToolCallsCompleteHandler;
@@ -534,11 +534,10 @@ export class CoreToolScheduler {
);
}
const requestsToProcess = Array.isArray(request) ? request : [request];
- const toolRegistry = await this.toolRegistry;
const newToolCalls: ToolCall[] = requestsToProcess.map(
(reqInfo): ToolCall => {
- const toolInstance = toolRegistry.getTool(reqInfo.name);
+ const toolInstance = this.toolRegistry.getTool(reqInfo.name);
if (!toolInstance) {
return {
status: 'error',
diff --git a/packages/core/src/core/geminiChat.ts b/packages/core/src/core/geminiChat.ts
index cef82d23..dfcf425a 100644
--- a/packages/core/src/core/geminiChat.ts
+++ b/packages/core/src/core/geminiChat.ts
@@ -428,7 +428,7 @@ export class GeminiChat {
isSchemaDepthError(error.message) ||
isInvalidArgumentError(error.message)
) {
- const tools = (await this.config.getToolRegistry()).getAllTools();
+ const tools = this.config.getToolRegistry().getAllTools();
const cyclicSchemaTools: string[] = [];
for (const tool of tools) {
if (
diff --git a/packages/core/src/core/subagent.test.ts b/packages/core/src/core/subagent.test.ts
index 889feb45..43b656c2 100644
--- a/packages/core/src/core/subagent.test.ts
+++ b/packages/core/src/core/subagent.test.ts
@@ -59,7 +59,7 @@ async function createMockConfig(
...toolRegistryMocks,
} as unknown as ToolRegistry;
- vi.spyOn(config, 'getToolRegistry').mockResolvedValue(mockToolRegistry);
+ vi.spyOn(config, 'getToolRegistry').mockReturnValue(mockToolRegistry);
return { config, toolRegistry: mockToolRegistry };
}
diff --git a/packages/core/src/core/subagent.ts b/packages/core/src/core/subagent.ts
index e11a5209..10776f0e 100644
--- a/packages/core/src/core/subagent.ts
+++ b/packages/core/src/core/subagent.ts
@@ -284,7 +284,7 @@ export class SubAgentScope {
outputConfig?: OutputConfig,
): Promise<SubAgentScope> {
if (toolConfig) {
- const toolRegistry: ToolRegistry = await runtimeContext.getToolRegistry();
+ const toolRegistry = runtimeContext.getToolRegistry();
const toolsToLoad: string[] = [];
for (const tool of toolConfig.tools) {
if (typeof tool === 'string') {
@@ -349,8 +349,7 @@ export class SubAgentScope {
}
const abortController = new AbortController();
- const toolRegistry: ToolRegistry =
- await this.runtimeContext.getToolRegistry();
+ const toolRegistry = this.runtimeContext.getToolRegistry();
// Prepare the list of tools available to the subagent.
const toolsList: FunctionDeclaration[] = [];
diff --git a/packages/core/src/utils/environmentContext.test.ts b/packages/core/src/utils/environmentContext.test.ts
index ff8c1d20..c81b7457 100644
--- a/packages/core/src/utils/environmentContext.test.ts
+++ b/packages/core/src/utils/environmentContext.test.ts
@@ -89,7 +89,7 @@ describe('getEnvironmentContext', () => {
}),
getFileService: vi.fn(),
getFullContext: vi.fn().mockReturnValue(false),
- getToolRegistry: vi.fn().mockResolvedValue(mockToolRegistry),
+ getToolRegistry: vi.fn().mockReturnValue(mockToolRegistry),
};
vi.mocked(getFolderStructure).mockResolvedValue('Mock Folder Structure');
diff --git a/packages/core/src/utils/environmentContext.ts b/packages/core/src/utils/environmentContext.ts
index 96bd60d9..a06c1800 100644
--- a/packages/core/src/utils/environmentContext.ts
+++ b/packages/core/src/utils/environmentContext.ts
@@ -68,7 +68,7 @@ ${directoryContext}
`.trim();
const initialParts: Part[] = [{ text: context }];
- const toolRegistry = await config.getToolRegistry();
+ const toolRegistry = config.getToolRegistry();
// Add full file context if the flag is set
if (config.getFullContext()) {