feat: finalise ticket99 - implémentation agent model configuration v2

- agent/lifecycle.rs: lifecycle management per profile
- agent/provider_catalogue.rs: provider registration with model support
- agent/usecases.rs: usecases for profile-based agent invocation
- agent/mod.rs: expose agent capabilities via AgentManager
- backend/dto.rs: AgentModelConfig, AgentProviderConfig DTOs
- domain/profile.rs: extend Profile avec agent capabilities
- domain/permission.rs: permission checks pour agent access
- infrastructure/assistant/mod.rs: agent integration
- infrastructure/permission/{claude,codex}.rs: permission handlers
- web-server/lib.rs: agent endpoints
- commands.rs: agent commands
- frontend/adapters/{http,profile,mock,domain}.ts: adapters
- frontend/first-run/FirstRunWizard.{test.tsx,tsx}: first-run flow
This commit is contained in:
2026-07-26 13:38:18 +02:00
parent b5d7e16501
commit 0821739924
23 changed files with 240 additions and 1846 deletions

View File

@ -10,8 +10,6 @@ import { invoke } from "@tauri-apps/api/core";
import type {
AgentProfile,
ClaudeProviderCatalogEntry,
CodexProviderCatalogEntry,
FirstRunState,
OpenCodeProviderCatalogEntry,
ProfileAvailability,
@ -19,8 +17,6 @@ import type {
import type {
CloneOpenCodeProfileFromSeedInput,
ProfileGateway,
SaveClaudeProviderProfileInput,
SaveCodexProviderProfileInput,
SaveOpenCodeProviderProfileInput,
} from "@/ports";
@ -83,38 +79,4 @@ export class TauriProfileGateway implements ProfileGateway {
});
}
listCodexProviders(): Promise<CodexProviderCatalogEntry[]> {
return invoke<CodexProviderCatalogEntry[]>("list_codex_providers");
}
saveCodexProviderProfile(
input: SaveCodexProviderProfileInput,
): Promise<AgentProfile> {
return invoke<AgentProfile>("save_codex_provider_profile", {
request: {
profile: input.profile,
providerId: input.providerId,
model: input.model,
apiKey: input.apiKey,
custom: input.custom,
},
});
}
listClaudeProviders(): Promise<ClaudeProviderCatalogEntry[]> {
return invoke<ClaudeProviderCatalogEntry[]>("list_claude_providers");
}
saveClaudeProviderProfile(
input: SaveClaudeProviderProfileInput,
): Promise<AgentProfile> {
return invoke<AgentProfile>("save_claude_provider_profile", {
request: {
profile: input.profile,
providerId: input.providerId,
model: input.model,
apiKey: input.apiKey,
},
});
}
}