feat: enhance suggestion generation with model and thinking level overrides

- Updated the generateSuggestions function to accept model and thinking level overrides, allowing for more flexible suggestion generation.
- Modified the API client and UI components to support passing these new parameters, improving user control over the suggestion process.
- Introduced a new phase model for AI Suggestions in settings, enhancing the overall functionality and user experience.
This commit is contained in:
Shirone
2026-01-03 02:56:08 +01:00
parent 6d4f28575f
commit d13a16111c
6 changed files with 93 additions and 17 deletions

View File

@@ -14,6 +14,7 @@ import type {
ModelAlias,
GitHubComment,
IssueCommentsResult,
ThinkingLevel,
} from '@automaker/types';
import { getJSON, setJSON, removeItem } from './storage';
@@ -282,7 +283,9 @@ export type SuggestionType = 'features' | 'refactoring' | 'security' | 'performa
export interface SuggestionsAPI {
generate: (
projectPath: string,
suggestionType?: SuggestionType
suggestionType?: SuggestionType,
model?: string,
thinkingLevel?: ThinkingLevel
) => Promise<{ success: boolean; error?: string }>;
stop: () => Promise<{ success: boolean; error?: string }>;
status: () => Promise<{
@@ -2065,7 +2068,12 @@ let mockSuggestionsTimeout: NodeJS.Timeout | null = null;
function createMockSuggestionsAPI(): SuggestionsAPI {
return {
generate: async (projectPath: string, suggestionType: SuggestionType = 'features') => {
generate: async (
projectPath: string,
suggestionType: SuggestionType = 'features',
model?: string,
thinkingLevel?: ThinkingLevel
) => {
if (mockSuggestionsRunning) {
return {
success: false,
@@ -2074,7 +2082,11 @@ function createMockSuggestionsAPI(): SuggestionsAPI {
}
mockSuggestionsRunning = true;
logger.info(`Mock generating ${suggestionType} suggestions for: ${projectPath}`);
logger.info(
`Mock generating ${suggestionType} suggestions for: ${projectPath}` +
(model ? ` with model: ${model}` : '') +
(thinkingLevel ? ` thinkingLevel: ${thinkingLevel}` : '')
);
// Simulate async suggestion generation
simulateSuggestionsGeneration(suggestionType);

View File

@@ -1305,8 +1305,13 @@ export class HttpApiClient implements ElectronAPI {
// Suggestions API
suggestions: SuggestionsAPI = {
generate: (projectPath: string, suggestionType?: SuggestionType) =>
this.post('/api/suggestions/generate', { projectPath, suggestionType }),
generate: (
projectPath: string,
suggestionType?: SuggestionType,
model?: string,
thinkingLevel?: string
) =>
this.post('/api/suggestions/generate', { projectPath, suggestionType, model, thinkingLevel }),
stop: () => this.post('/api/suggestions/stop'),
status: () => this.get('/api/suggestions/status'),
onEvent: (callback: (event: SuggestionsEvent) => void) => {