From 0d92b0a44554b904da55fe7dc543a59eab08778f Mon Sep 17 00:00:00 2001 From: Evandro Fonseca Junior Date: Thu, 26 Mar 2026 19:21:53 -0300 Subject: [PATCH] feat: add cli execution stubs --- crates/localllm-cli/src/main.rs | 61 +++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/crates/localllm-cli/src/main.rs b/crates/localllm-cli/src/main.rs index 3d3a88c..c903342 100644 --- a/crates/localllm-cli/src/main.rs +++ b/crates/localllm-cli/src/main.rs @@ -397,8 +397,65 @@ fn execution_stub(contract: &ExecutionContract) -> ExecutionStub { ExecutionContract::SummaryOnly { command } => ExecutionStub::SummaryOnly { command: command.clone(), }, - _ => ExecutionStub::SummaryOnly { - command: "unimplemented".to_owned(), + ExecutionContract::HttpGet { + path, + api_key_present, + } => ExecutionStub::HttpRequest { + method: "GET", + path: path.clone(), + api_key_present: *api_key_present, + body: None, + }, + ExecutionContract::LocalModelScan { models_dir } => ExecutionStub::LocalAction { + action: "scan_models_dir", + target: models_dir.clone(), + detail: None, + }, + ExecutionContract::LocalModelLoad { + models_dir, + model, + alias, + } => ExecutionStub::LocalAction { + action: "load_model", + target: models_dir.clone(), + detail: Some(match alias { + Some(alias) => format!("model={} alias={}", model, alias), + None => format!("model={}", model), + }), + }, + ExecutionContract::LocalAuthConfig { mode, api_key } => ExecutionStub::LocalAction { + action: "configure_auth", + target: "auth".to_owned(), + detail: Some(format!( + "mode={} has_api_key={}", + auth_mode_name(*mode), + api_key.is_some() + )), + }, + ExecutionContract::LocalConfigWrite { key, value } => ExecutionStub::LocalAction { + action: "write_config", + target: key.clone(), + detail: Some(format!("value={}", value)), + }, + ExecutionContract::ThroughputRequest { + path, + api_key_present, + samples, + prompt_tokens, + completion_tokens, + } => ExecutionStub::HttpRequest { + method: "POST", + path: path.clone(), + api_key_present: *api_key_present, + body: Some(format!( + "samples={} prompt_tokens={} completion_tokens={} stream=false", + samples, prompt_tokens, completion_tokens + )), + }, + ExecutionContract::LocalLogRead { lines } => ExecutionStub::LocalAction { + action: "tail_logs", + target: "logs".to_owned(), + detail: Some(format!("lines={}", lines)), }, } }