diff options
| author | sigoden <sigoden@gmail.com> | 2025-01-19 19:38:14 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-19 19:38:14 +0800 |
| commit | 77d6c33d9e1438338a7a530c98f717a5f9f10e67 (patch) | |
| tree | ea51d0f9c5234aa0759ea8dc46e0d2118d24a2a4 /src/config/agent.rs | |
| parent | bc532d99be0c407fe5e6ef82018350837ac2fb97 (diff) | |
| download | aichat-77d6c33d9e1438338a7a530c98f717a5f9f10e67.tar.gz | |
refactor: improve autocompletion for agent variable (#1104)
Diffstat (limited to 'src/config/agent.rs')
| -rw-r--r-- | src/config/agent.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/config/agent.rs b/src/config/agent.rs index 591bc9d..f535d32 100644 --- a/src/config/agent.rs +++ b/src/config/agent.rs @@ -532,3 +532,24 @@ pub fn list_agents() -> Vec<String> { }) .collect() } + +pub fn complete_agent_variables(agent_name: &str) -> Vec<(String, Option<String>)> { + let index_path = Config::agent_functions_dir(agent_name).join("index.yaml"); + if !index_path.exists() { + return vec![]; + } + let Ok(definition) = AgentDefinition::load(&index_path) else { + return vec![]; + }; + definition + .variables + .iter() + .map(|v| { + let description = match &v.default { + Some(default) => format!("{} [default: {default}]", v.description), + None => v.description.clone(), + }; + (format!("{}=", v.name), Some(description)) + }) + .collect() +} |
