feat(HAI-098): add model selection and configuration support
- Extend Settings type with model provider and model name fields - Add backend API endpoint to list available models - Add frontend API client for fetching models - Add model settings section to SettingsModal with provider/model dropdowns - Update engine executor to use the selected model from settings
This commit is contained in:
@@ -349,6 +349,8 @@ export class TaskExecutor {
|
||||
customTools,
|
||||
onText: agentLogger.onText,
|
||||
onToolStart: agentLogger.onToolStart,
|
||||
defaultProvider: settings.defaultProvider,
|
||||
defaultModelId: settings.defaultModelId,
|
||||
});
|
||||
|
||||
// Register session so the pause listener can terminate it
|
||||
|
||||
@@ -30,6 +30,10 @@ export interface AgentOptions {
|
||||
onText?: (delta: string) => void;
|
||||
onToolStart?: (name: string, args?: Record<string, unknown>) => void;
|
||||
onToolEnd?: (name: string, isError: boolean) => void;
|
||||
/** Default model provider (e.g. "anthropic"). Used with `defaultModelId` to select a specific model. */
|
||||
defaultProvider?: string;
|
||||
/** Default model ID within the provider (e.g. "claude-sonnet-4-5"). Used with `defaultProvider`. */
|
||||
defaultModelId?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,6 +54,11 @@ export async function createHaiAgent(options: AgentOptions): Promise<AgentResult
|
||||
retry: { enabled: true, maxRetries: 3 },
|
||||
});
|
||||
|
||||
// Resolve explicit model selection if provider and model ID are specified
|
||||
const selectedModel = options.defaultProvider && options.defaultModelId
|
||||
? modelRegistry.find(options.defaultProvider, options.defaultModelId)
|
||||
: undefined;
|
||||
|
||||
const resourceLoader = new DefaultResourceLoader({
|
||||
cwd: options.cwd,
|
||||
settingsManager,
|
||||
@@ -67,6 +76,7 @@ export async function createHaiAgent(options: AgentOptions): Promise<AgentResult
|
||||
customTools: options.customTools,
|
||||
sessionManager: SessionManager.inMemory(),
|
||||
settingsManager,
|
||||
...(selectedModel ? { model: selectedModel } : {}),
|
||||
});
|
||||
|
||||
// Wire up event listeners
|
||||
|
||||
@@ -270,6 +270,8 @@ export class TriageProcessor {
|
||||
customTools: this.createTriageTools(),
|
||||
onText: agentLogger.onText,
|
||||
onToolStart: agentLogger.onToolStart,
|
||||
defaultProvider: settings.defaultProvider,
|
||||
defaultModelId: settings.defaultModelId,
|
||||
});
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user