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:
@ -13,9 +13,6 @@ import type {
|
||||
AgentDrift,
|
||||
AgentProfile,
|
||||
AppExitWorkGuardState,
|
||||
ClaudeProviderCatalogEntry,
|
||||
CodexCustomProviderConfig,
|
||||
CodexProviderCatalogEntry,
|
||||
CustomProviderConfig,
|
||||
DomainEvent,
|
||||
EmbedderEngines,
|
||||
@ -694,24 +691,6 @@ export interface ProfileGateway {
|
||||
saveOpenCodeProviderProfile(
|
||||
input: SaveOpenCodeProviderProfileInput,
|
||||
): Promise<AgentProfile>;
|
||||
/** Static catalogue of Codex providers/models (ticket #99). */
|
||||
listCodexProviders(): Promise<CodexProviderCatalogEntry[]>;
|
||||
/**
|
||||
* Creates or replaces (by id) a Codex profile with provider/model/secret
|
||||
* config. The literal API key is sealed backend-side and never returned.
|
||||
*/
|
||||
saveCodexProviderProfile(
|
||||
input: SaveCodexProviderProfileInput,
|
||||
): Promise<AgentProfile>;
|
||||
/** Static catalogue of Claude providers/models (ticket #99). */
|
||||
listClaudeProviders(): Promise<ClaudeProviderCatalogEntry[]>;
|
||||
/**
|
||||
* Creates or replaces (by id) a Claude profile with provider/model/secret
|
||||
* config. The literal API key is sealed backend-side and never returned.
|
||||
*/
|
||||
saveClaudeProviderProfile(
|
||||
input: SaveClaudeProviderProfileInput,
|
||||
): Promise<AgentProfile>;
|
||||
}
|
||||
|
||||
/** Input for {@link ProfileGateway.cloneOpenCodeProfileFromSeed}. */
|
||||
@ -740,32 +719,6 @@ export interface SaveOpenCodeProviderProfileInput {
|
||||
custom?: CustomProviderConfig;
|
||||
}
|
||||
|
||||
/** Input for {@link ProfileGateway.saveCodexProviderProfile}. */
|
||||
export interface SaveCodexProviderProfileInput {
|
||||
/** The profile to create or replace (by id). */
|
||||
profile: AgentProfile;
|
||||
/** Provider id used as Codex's `model_provider`. */
|
||||
providerId: string;
|
||||
/** Model name served by this provider. */
|
||||
model: string;
|
||||
/** Literal API key — sealed into the `SecretStore`, never persisted as-is. */
|
||||
apiKey: string;
|
||||
/** Optional custom endpoint config for a Codex provider. */
|
||||
custom?: CodexCustomProviderConfig;
|
||||
}
|
||||
|
||||
/** Input for {@link ProfileGateway.saveClaudeProviderProfile}. */
|
||||
export interface SaveClaudeProviderProfileInput {
|
||||
/** The profile to create or replace (by id). */
|
||||
profile: AgentProfile;
|
||||
/** Provider id. V1 backend exposes `"anthropic"`. */
|
||||
providerId: string;
|
||||
/** Model name served by this provider. */
|
||||
model: string;
|
||||
/** Literal API key — sealed into the `SecretStore`, never persisted as-is. */
|
||||
apiKey: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Local model servers (F35). CRUD over the global registry of declared
|
||||
* `llama.cpp` servers an OpenCode profile can bind to via
|
||||
|
||||
Reference in New Issue
Block a user