feat(cli): A2A Server Primary Agent Support

- Added a new `/agents use <name>` command to allow users to set a remote agent as the primary agent for the current session.
- Implemented `A2AStreamingAdapter` to seamlessly integrate A2A server task polling with the existing CLI streaming UX.
- Mapped A2A server task status updates to Gemini `Thought` events, providing native thinking visualization in the terminal.
- Updated `nonInteractiveCli` and `useGeminiStream` to dynamically route requests through the `A2AStreamingAdapter` when a session primary agent is configured.
- Ensured context history continuity by maintaining `contextId` and `taskId` across requests within the adapter.
This commit is contained in:
Taylor Mullen
2026-02-23 16:37:37 -08:00
parent 8b1dc15182
commit 38e99a4556
23 changed files with 1395 additions and 20 deletions
@@ -48,6 +48,7 @@ describe('restoreCommand', () => {
getProjectTempDir: vi.fn().mockReturnValue(geminiTempDir),
},
getGeminiClient: vi.fn().mockReturnValue({
getSessionPrimaryAgent: vi.fn().mockReturnValue(null),
setHistory: mockSetHistory,
}),
} as unknown as Config;