feat: add model selection for AI agents (claude, codex, gemini)

Add a new ModelSelector component that allows users to choose specific model variants for different AI agents. This includes:
- ModelSelector UI component with agent-specific model options
- Model parameter propagation through API, RPC, and spawning layers
- Support for auto model selection (default behavior)
- Localization strings for English and Chinese
- Type definitions for model options per agent
This commit is contained in:
weishu
2026-01-23 11:55:29 +08:00
parent 29551478cc
commit e130dfd24b
13 changed files with 88 additions and 4 deletions
+2 -1
View File
@@ -100,7 +100,7 @@ export class ApiMachineClient {
setRPCHandlers({ spawnSession, stopSession, requestShutdown }: MachineRpcHandlers): void {
this.rpcHandlerManager.registerHandler('spawn-happy-session', async (params: any) => {
const { directory, sessionId, machineId, approvedNewDirectoryCreation, agent, yolo, token, sessionType, worktreeName } = params || {}
const { directory, sessionId, machineId, approvedNewDirectoryCreation, agent, model, yolo, token, sessionType, worktreeName } = params || {}
if (!directory) {
throw new Error('Directory is required')
@@ -112,6 +112,7 @@ export class ApiMachineClient {
machineId,
approvedNewDirectoryCreation,
agent,
model,
yolo,
token,
sessionType,
+1
View File
@@ -4,6 +4,7 @@ export interface SpawnSessionOptions {
sessionId?: string
approvedNewDirectoryCreation?: boolean
agent?: 'claude' | 'codex' | 'gemini'
model?: string
yolo?: boolean
token?: string
sessionType?: 'simple' | 'worktree'
+3
View File
@@ -333,6 +333,9 @@ export async function startRunner(): Promise<void> {
'--hapi-starting-mode', 'remote',
'--started-by', 'runner'
];
if (options.model) {
args.push('--model', options.model);
}
if (yolo) {
args.push('--yolo');
}