1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use crate::logoi::input::tool::{FunctionParameter, FunctionType}; use serde_json::Map; use super::parse_type::insert_type; pub fn insert_param( params_map: &mut Map<String, serde_json::Value>, required_params: &mut Vec<String>, param: &FunctionParameter, ) { let is_optional_type = matches!(param._type, FunctionType::Option(_)); if param.required && !is_optional_type { required_params.push(param.name.clone()); } let mut param_map = serde_json::Map::new(); insert_type(&mut param_map, ¶m._type); if let Some(ref description) = param.description { param_map.insert( "description".to_string(), serde_json::Value::String(description.clone()), ); } params_map.insert( param.name.clone(), serde_json::Value::Object(param_map), ); }