yapi_core/extensions/
codemode.rs1use serde_json::{Value, json};
6
7use super::ToolInfo;
8use crate::tools::Exposure;
9
10pub const NAME: &str = "codemode";
12
13pub const SNIPPET: &str = "Run JavaScript that calls other tools";
15
16pub const GUIDELINE: &str = "Use codemode to batch independent tool calls (Promise.allSettled), chain them, or filter large output, instead of many separate calls.";
18
19pub fn parameters() -> Value {
21 json!({"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"Raw JavaScript source."}}})
22}
23
24pub fn is_codemode_tool(tool: &ToolInfo) -> bool {
27 tool.name == NAME && tool.exposure == Exposure::ModelOnly && tool.parameters == parameters()
28}