mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-17 07:13:07 -07:00
chore(core): revert registry changes in agent-tool branch
This commit is contained in:
@@ -1011,57 +1011,44 @@ describe('AgentRegistry', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('should override an existing agent but warn on duplicate name', async () => {
|
||||
it('should overwrite an existing agent definition', async () => {
|
||||
await registry.testRegisterAgent(MOCK_AGENT_V1);
|
||||
expect(registry.getDefinition('MockAgent')?.description).toBe(
|
||||
'Mock Description V1',
|
||||
);
|
||||
|
||||
const feedbackSpy = vi.spyOn(coreEvents, 'emitFeedback');
|
||||
await registry.testRegisterAgent(MOCK_AGENT_V2);
|
||||
|
||||
// Should override to V2 (preserves existing precedence)
|
||||
expect(registry.getDefinition('MockAgent')?.description).toBe(
|
||||
'Mock Description V2 (Updated)',
|
||||
);
|
||||
expect(registry.getAllDefinitions()).toHaveLength(1);
|
||||
// But should emit a warning about the duplicate
|
||||
expect(feedbackSpy).toHaveBeenCalledWith(
|
||||
'warning',
|
||||
expect.stringContaining("Duplicate agent name 'MockAgent'"),
|
||||
);
|
||||
});
|
||||
|
||||
it('should not warn when re-registering the same definition (refresh)', async () => {
|
||||
await registry.testRegisterAgent(MOCK_AGENT_V1);
|
||||
expect(registry.getDefinition('MockAgent')?.description).toBe(
|
||||
'Mock Description V1',
|
||||
);
|
||||
|
||||
// Re-registering the exact same object should succeed without warning
|
||||
const feedbackSpy = vi.spyOn(coreEvents, 'emitFeedback');
|
||||
await registry.testRegisterAgent(MOCK_AGENT_V1);
|
||||
expect(registry.getDefinition('MockAgent')?.description).toBe(
|
||||
'Mock Description V1',
|
||||
);
|
||||
expect(feedbackSpy).not.toHaveBeenCalledWith(
|
||||
'warning',
|
||||
expect.stringContaining('Duplicate'),
|
||||
);
|
||||
});
|
||||
|
||||
it('should warn on duplicate in debug logs', async () => {
|
||||
it('should log overwrites when in debug mode', async () => {
|
||||
const debugConfig = makeMockedConfig({ debugMode: true });
|
||||
const debugRegistry = new TestableAgentRegistry(debugConfig);
|
||||
const warnSpy = vi
|
||||
.spyOn(debugLogger, 'warn')
|
||||
const debugLogSpy = vi
|
||||
.spyOn(debugLogger, 'log')
|
||||
.mockImplementation(() => {});
|
||||
|
||||
await debugRegistry.testRegisterAgent(MOCK_AGENT_V1);
|
||||
await debugRegistry.testRegisterAgent(MOCK_AGENT_V2);
|
||||
|
||||
expect(warnSpy).toHaveBeenCalledWith(
|
||||
expect.stringContaining('Overriding agent'),
|
||||
expect(debugLogSpy).toHaveBeenCalledWith(
|
||||
`[AgentRegistry] Overriding agent 'MockAgent'`,
|
||||
);
|
||||
});
|
||||
|
||||
it('should not log overwrites when not in debug mode', async () => {
|
||||
const debugLogSpy = vi
|
||||
.spyOn(debugLogger, 'log')
|
||||
.mockImplementation(() => {});
|
||||
|
||||
await registry.testRegisterAgent(MOCK_AGENT_V1);
|
||||
await registry.testRegisterAgent(MOCK_AGENT_V2);
|
||||
|
||||
expect(debugLogSpy).not.toHaveBeenCalledWith(
|
||||
`[AgentRegistry] Overriding agent 'MockAgent'`,
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -328,10 +328,9 @@ export class AgentRegistry {
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers an agent definition. If an agent with the same name already
|
||||
* exists from a different definition, a warning is emitted to surface
|
||||
* potential state collision. The new definition still overwrites the old
|
||||
* one to preserve existing precedence order (user → project → extension).
|
||||
* Registers an agent definition. If an agent with the same name exists,
|
||||
* it will be overwritten, respecting the precedence established by the
|
||||
* initialization order.
|
||||
*/
|
||||
protected async registerAgent<TOutput extends z.ZodTypeAny>(
|
||||
definition: AgentDefinition<TOutput>,
|
||||
|
||||
Reference in New Issue
Block a user