use crate::error::CodeLensError;
pub(crate) fn validate_required_params(
name: &str,
arguments: &serde_json::Value,
) -> Result<(), CodeLensError> {
let tool = match crate::tool_defs::tool_definition(name) {
Some(t) => t,
None => return Ok(()), };
let required = match tool.input_schema.get("required").and_then(|v| v.as_array()) {
Some(arr) => arr,
None => return Ok(()), };
for field in required {
if let Some(key) = field.as_str() {
if key.starts_with('_') {
continue;
}
let present = arguments
.get(key)
.is_some_and(|v| !v.is_null() && v.as_str() != Some(""));
if !present {
return Err(CodeLensError::MissingParam(key.to_owned()));
}
}
}
Ok(())
}