mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-16 14:53:19 -07:00
feat(cli): add active team indicator and sample teams; fix startup crash
- Add ActiveTeamIndicator to StatusRow.tsx - Create 'Coding Team' and 'Creative Writing Team' sample definitions - Move registry instantiations to Config constructor to prevent startup race conditions - Resolve syntax corruptions in Config.ts and StatusRow.tsx - Ensure core tests and CLI build are clean
This commit is contained in:
@@ -16,6 +16,7 @@ import { type ActiveHook } from '../types.js';
|
||||
import { useUIState } from '../contexts/UIStateContext.js';
|
||||
import { useSettings } from '../contexts/SettingsContext.js';
|
||||
import { theme } from '../semantic-colors.js';
|
||||
import { useConfig } from '../contexts/ConfigContext.js';
|
||||
import { GENERIC_WORKING_LABEL } from '../textConstants.js';
|
||||
import { INTERACTIVE_SHELL_WAITING_PHRASE } from '../hooks/usePhraseCycler.js';
|
||||
import { LoadingIndicator } from './LoadingIndicator.js';
|
||||
@@ -146,6 +147,22 @@ export const StatusNode: React.FC<{
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Renders an indicator for the currently active agent team.
|
||||
*/
|
||||
const ActiveTeamIndicator: React.FC = () => {
|
||||
const config = useConfig();
|
||||
const activeTeam = config?.getActiveTeam();
|
||||
|
||||
if (!activeTeam) return null;
|
||||
|
||||
return (
|
||||
<Box marginLeft={LAYOUT.INDICATOR_LEFT_MARGIN}>
|
||||
<Text color={theme.text.accent}>[ Team: {activeTeam.displayName} ]</Text>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
export const StatusRow: React.FC<StatusRowProps> = ({
|
||||
showUiDetails,
|
||||
isNarrow,
|
||||
@@ -393,6 +410,7 @@ export const StatusRow: React.FC<StatusRowProps> = ({
|
||||
<RawMarkdownIndicator />
|
||||
</Box>
|
||||
)}
|
||||
<ActiveTeamIndicator />
|
||||
</>
|
||||
) : (
|
||||
showRow2Minimal &&
|
||||
|
||||
@@ -21,8 +21,8 @@ import {
|
||||
type ContentGeneratorConfig,
|
||||
} from '../core/contentGenerator.js';
|
||||
import type { OverageStrategy } from '../billing/billing.js';
|
||||
import { PromptRegistry } from '../prompts/prompt-registry.js';
|
||||
import { ResourceRegistry } from '../resources/resource-registry.js';
|
||||
import type { PromptRegistry } from '../prompts/prompt-registry.js';
|
||||
import type { ResourceRegistry } from '../resources/resource-registry.js';
|
||||
import { ToolRegistry } from '../tools/tool-registry.js';
|
||||
import { LSTool } from '../tools/ls.js';
|
||||
import { ReadFileTool } from '../tools/read-file.js';
|
||||
@@ -1375,6 +1375,8 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
this._geminiClient = new GeminiClient(this);
|
||||
this.a2aClientManager = new A2AClientManager(this);
|
||||
this.modelRouterService = new ModelRouterService(this);
|
||||
this.agentRegistry = new AgentRegistry(this);
|
||||
this.teamRegistry = new TeamRegistry(this, this.agentRegistry);
|
||||
}
|
||||
|
||||
get config(): Config {
|
||||
@@ -1427,13 +1429,8 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
if (this.getCheckpointingEnabled()) {
|
||||
await this.getGitService();
|
||||
}
|
||||
this._promptRegistry = new PromptRegistry();
|
||||
this._resourceRegistry = new ResourceRegistry();
|
||||
|
||||
this.agentRegistry = new AgentRegistry(this);
|
||||
await this.agentRegistry.initialize();
|
||||
|
||||
this.teamRegistry = new TeamRegistry(this, this.agentRegistry);
|
||||
await this.teamRegistry.initialize();
|
||||
|
||||
coreEvents.on(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
|
||||
@@ -3774,5 +3771,6 @@ export class Config implements McpContext, AgentLoopContext {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Export model constants for use in CLI
|
||||
export { DEFAULT_GEMINI_FLASH_MODEL };
|
||||
|
||||
Reference in New Issue
Block a user