feat: finalise multi-profil Codex/Claude avec catalogue de modèles
- Backend : clone_profile_from_seed généralisé (non OpenCode) - Backend : catalogue static Claude/Codex (3 modèles chacun, 1 recommandé) - Backend : commandes Tauri list_claude_models/list_codex_models - Frontend : ProfilesSettings refonte en onglets Codex/Claude + create/duplicate/edit/delete - Frontend : ModelSelect searchable partagé + fallback saisie manuelle - Frontend : assignation agent nom · modèle - Tests QA : 4 profils modèles distincts (2 Claude, 2 Codex) assignés à agents
This commit is contained in:
@ -12,9 +12,11 @@ import type {
|
||||
AgentProfile,
|
||||
FirstRunState,
|
||||
OpenCodeProviderCatalogEntry,
|
||||
ProfileModelCatalogEntry,
|
||||
ProfileAvailability,
|
||||
} from "@/domain";
|
||||
import type {
|
||||
CloneProfileFromSeedInput,
|
||||
CloneOpenCodeProfileFromSeedInput,
|
||||
ProfileGateway,
|
||||
SaveOpenCodeProviderProfileInput,
|
||||
@ -47,6 +49,24 @@ export class TauriProfileGateway implements ProfileGateway {
|
||||
await invoke("delete_profile", { profileId });
|
||||
}
|
||||
|
||||
cloneProfileFromSeed(input: CloneProfileFromSeedInput): Promise<AgentProfile> {
|
||||
return invoke<AgentProfile>("clone_profile_from_seed", {
|
||||
request: {
|
||||
seedProfileId: input.seedProfileId,
|
||||
name: input.name,
|
||||
model: input.model,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
listClaudeModels(): Promise<ProfileModelCatalogEntry[]> {
|
||||
return invoke<ProfileModelCatalogEntry[]>("list_claude_models");
|
||||
}
|
||||
|
||||
listCodexModels(): Promise<ProfileModelCatalogEntry[]> {
|
||||
return invoke<ProfileModelCatalogEntry[]>("list_codex_models");
|
||||
}
|
||||
|
||||
configureProfiles(profiles: AgentProfile[]): Promise<AgentProfile[]> {
|
||||
return invoke<AgentProfile[]>("configure_profiles", {
|
||||
request: { profiles },
|
||||
|
||||
Reference in New Issue
Block a user