feat: v0.7.0 — AgentDef provider/model + install --provider/--model/--no-config : résolution flag > agent > défaut, erreur si provider inconnu (liste du registre), warning si modèle absent, résolution affichée en résumé et au --dry-run (closes #90)

- Providers réels livrés dans le catalogue par défaut (anthropic★/openai/deepseek/google) + hints provider sur claude-code/deepseek-harness
- Suppression par null dans l'overlay : am providers remove écrit <nom>: null (merge traite null comme suppression, set_path remplace le null avant de descendre)
- Cascade @secret (#89) : le provider déclaré de l'agent prime sur default_provider
This commit is contained in:
2026-08-19 20:03:47 -04:00
parent 7312e6ceab
commit ebc753cc4a
14 changed files with 336 additions and 38 deletions
+16 -2
View File
@@ -169,7 +169,18 @@ pub fn execute_command(app: &App, cmd: &Command) -> Result<i32> {
agent,
method,
force,
} => install_cmd::run(app, agent, method.as_deref(), *force),
provider,
model,
no_config,
} => install_cmd::run(
app,
&agent,
method.as_deref(),
*force,
provider.as_deref(),
model.as_deref(),
*no_config,
),
Command::Uninstall { agent, purge } => uninstall_cmd::run(app, agent, *purge),
Command::Update { agent, all, rollback } => {
update_cmd::run(app, agent.as_deref(), *all, rollback.as_deref())
@@ -311,7 +322,10 @@ pub fn resolve_exec(
crate::secrets::resolve_env_secrets(
&crate::secrets::store(),
&agent.name,
crate::providers::default_name(&app.config),
agent
.provider
.as_deref()
.or_else(|| crate::providers::default_name(&app.config)),
&mut env,
);
for w in warnings {