summaryrefslogtreecommitdiffstats
path: root/src/config/agent.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/agent.rs')
-rw-r--r--src/config/agent.rs21
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()
+}