feat: add cli execution previews

This commit is contained in:
Evandro Fonseca Junior committed 2026-03-26 19:28:23 -03:00
1 parent a326b92744
commit 633b39eb53
1 file changed
+35 -3
+35 -3
View File
@@ -478,14 +478,46 @@ fn execution_stub(contract: &ExecutionContract) -> ExecutionStub {
}
}
fn execution_preview(_cli: &Cli, stub: &ExecutionStub) -> ExecutionPreview {
fn execution_preview(cli: &Cli, stub: &ExecutionStub) -> ExecutionPreview {
match stub {
ExecutionStub::SummaryOnly { command } => ExecutionPreview::SummaryOnly {
command: command.clone(),
},
_ => ExecutionPreview::SummaryOnly {
command: "preview-unimplemented".to_owned(),
ExecutionStub::HttpRequest {
method,
path,
api_key_present,
body,
} => ExecutionPreview::HttpPreview {
method,
url: format!("{}{}", cli.server.trim_end_matches('/'), path),
api_key_present: *api_key_present,
body: body.clone(),
},
ExecutionStub::LocalAction {
action,
target,
detail,
} => ExecutionPreview::LocalPreview {
action,
target: target.clone(),
effect: preview_effect(action, detail.as_deref()),
},
}
}
fn preview_effect(action: &str, detail: Option<&str>) -> String {
match (action, detail) {
("scan_models_dir", _) => "discover available model files".to_owned(),
("load_model", Some(detail)) => format!("load {}", detail),
("configure_auth", Some(detail)) => format!("set {}", detail),
("write_config", Some(detail)) => format!("persist {}", detail),
("tail_logs", Some(detail)) => detail
.strip_prefix("lines=")
.map(|lines| format!("tail last {} lines", lines))
.unwrap_or_else(|| format!("apply {}", detail)),
(_, Some(detail)) => format!("apply {}", detail),
(_, None) => format!("run {}", action),
}
}