pub mod tool_names {
#[tracing::instrument(level = "trace")]
pub fn elicit_number() -> String {
"elicit_number".to_string()
}
#[tracing::instrument(level = "trace")]
pub fn elicit_bool() -> String {
"elicit_bool".to_string()
}
#[tracing::instrument(level = "trace")]
pub fn elicit_text() -> String {
"elicit_text".to_string()
}
#[tracing::instrument(level = "trace")]
pub fn elicit_select() -> String {
"elicit_select".to_string()
}
#[tracing::instrument(level = "trace")]
pub fn elicit_survey() -> String {
"elicit_survey".to_string()
}
}
#[tracing::instrument(level = "debug")]
pub fn number_params(
prompt: &str,
min: i64,
max: i64,
) -> serde_json::Map<String, serde_json::Value> {
let mut map = serde_json::Map::new();
map.insert(
"prompt".to_string(),
serde_json::Value::String(prompt.to_string()),
);
map.insert("min".to_string(), serde_json::Value::Number(min.into()));
map.insert("max".to_string(), serde_json::Value::Number(max.into()));
map
}
#[tracing::instrument(level = "debug")]
pub fn bool_params(prompt: &str) -> serde_json::Map<String, serde_json::Value> {
let mut map = serde_json::Map::new();
map.insert(
"prompt".to_string(),
serde_json::Value::String(prompt.to_string()),
);
map
}
#[tracing::instrument(level = "debug")]
pub fn text_params(prompt: &str) -> serde_json::Map<String, serde_json::Value> {
let mut map = serde_json::Map::new();
map.insert(
"prompt".to_string(),
serde_json::Value::String(prompt.to_string()),
);
map
}
#[tracing::instrument(level = "debug", skip(options))]
pub fn select_params<S: AsRef<str>>(
prompt: &str,
options: &[S],
) -> serde_json::Map<String, serde_json::Value> {
let mut map = serde_json::Map::new();
map.insert(
"prompt".to_string(),
serde_json::Value::String(prompt.to_string()),
);
map.insert(
"options".to_string(),
serde_json::Value::Array(
options
.iter()
.map(|s| serde_json::Value::String(s.as_ref().to_string()))
.collect(),
),
);
map
}