(&self)
| 226 | } |
| 227 | |
| 228 | fn parameters(&self) -> serde_json::Value { |
| 229 | let base = std::env::current_dir().unwrap_or_else(|_| PathBuf::from(".")); |
| 230 | let skills = discover_skills(&base); |
| 231 | let skill_names: Vec<String> = skills.into_iter().map(|s| s.name).collect(); |
| 232 | |
| 233 | serde_json::json!({ |
| 234 | "type": "object", |
| 235 | "properties": { |
| 236 | "skill_name": { |
| 237 | "type": "string", |
| 238 | "description": "Name of the skill to load", |
| 239 | "enum": skill_names |
| 240 | }, |
| 241 | "arguments": { |
| 242 | "type": "object", |
| 243 | "description": "Arguments to pass to the skill" |
| 244 | }, |
| 245 | "prompt": { |
| 246 | "type": "string", |
| 247 | "description": "Additional prompt/instructions for the skill" |
| 248 | } |
| 249 | }, |
| 250 | "required": ["skill_name"] |
| 251 | }) |
| 252 | } |
| 253 | |
| 254 | async fn execute( |
| 255 | &self, |
nothing calls this directly
no test coverage detected