summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorOlcan <[email protected]>2025-06-02 09:56:32 -0700
committerGitHub <[email protected]>2025-06-02 09:56:32 -0700
commitc5869db0806d04bc0d1f4da6823f9e13d22e476b (patch)
tree6e5b4c112dd14f948f6deed7b80c2e10589967cc /packages/cli/src
parent467dec4edf17abcb03784caadc1694aac29d0373 (diff)
enable async tool discovery by making the registry accessor async; remove call to discoverTools that caused duplicate discovery (#691)
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/nonInteractiveCli.test.ts2
-rw-r--r--packages/cli/src/nonInteractiveCli.ts3
-rw-r--r--packages/cli/src/ui/hooks/atCommandProcessor.ts2
3 files changed, 2 insertions, 5 deletions
diff --git a/packages/cli/src/nonInteractiveCli.test.ts b/packages/cli/src/nonInteractiveCli.test.ts
index dca3b855..389d35f2 100644
--- a/packages/cli/src/nonInteractiveCli.test.ts
+++ b/packages/cli/src/nonInteractiveCli.test.ts
@@ -42,7 +42,6 @@ describe('runNonInteractive', () => {
startChat: vi.fn().mockResolvedValue(mockChat),
} as unknown as GeminiClient;
mockToolRegistry = {
- discoverTools: vi.fn().mockResolvedValue(undefined),
getFunctionDeclarations: vi.fn().mockReturnValue([]),
getTool: vi.fn(),
} as unknown as ToolRegistry;
@@ -82,7 +81,6 @@ describe('runNonInteractive', () => {
await runNonInteractive(mockConfig, 'Test input');
expect(mockGeminiClient.startChat).toHaveBeenCalled();
- expect(mockToolRegistry.discoverTools).toHaveBeenCalled();
expect(mockChat.sendMessageStream).toHaveBeenCalledWith({
message: [{ text: 'Test input' }],
config: {
diff --git a/packages/cli/src/nonInteractiveCli.ts b/packages/cli/src/nonInteractiveCli.ts
index 9077ecbf..f7b4108b 100644
--- a/packages/cli/src/nonInteractiveCli.ts
+++ b/packages/cli/src/nonInteractiveCli.ts
@@ -40,8 +40,7 @@ export async function runNonInteractive(
input: string,
): Promise<void> {
const geminiClient = new GeminiClient(config);
- const toolRegistry: ToolRegistry = config.getToolRegistry();
- await toolRegistry.discoverTools();
+ const toolRegistry: ToolRegistry = await config.getToolRegistry();
const chat = await geminiClient.startChat();
const abortController = new AbortController();
diff --git a/packages/cli/src/ui/hooks/atCommandProcessor.ts b/packages/cli/src/ui/hooks/atCommandProcessor.ts
index 54b10d51..ac56ab75 100644
--- a/packages/cli/src/ui/hooks/atCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/atCommandProcessor.ts
@@ -138,7 +138,7 @@ export async function handleAtCommand({
const atPathToResolvedSpecMap = new Map<string, string>();
const contentLabelsForDisplay: string[] = [];
- const toolRegistry = config.getToolRegistry();
+ const toolRegistry = await config.getToolRegistry();
const readManyFilesTool = toolRegistry.getTool('read_many_files');
const globTool = toolRegistry.getTool('glob');