MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / format_tool_as_command

Function format_tool_as_command

atomic-repository/src/ai/tools.rs:1107–1148  ·  view source on GitHub ↗

Format a tool call as the equivalent `atomic query` CLI command.

(name: &str, args: &serde_json::Value)

Source from the content-addressed store, hash-verified

1105
1106/// Format a tool call as the equivalent `atomic query` CLI command.
1107fn format_tool_as_command(name: &str, args: &serde_json::Value) -> String {
1108 match name {
1109 "kg_search" => {
1110 let query = args["query"].as_str().unwrap_or("?");
1111 let limit = args["limit"].as_u64().unwrap_or(10);
1112 format!("atomic query search \"{}\" -k {}", query, limit)
1113 }
1114 "kg_neighbors" => {
1115 let id = args["node_id"].as_str().unwrap_or("?");
1116 let depth = args["depth"].as_u64().unwrap_or(1);
1117 format!("atomic query neighbors \"{}\" -d {}", id, depth)
1118 }
1119 "read_file" => {
1120 let path = args["path"].as_str().unwrap_or("?");
1121 match (args["start_line"].as_u64(), args["end_line"].as_u64()) {
1122 (Some(s), Some(e)) => format!("read_file {} L{}-{}", path, s, e),
1123 (Some(s), None) => format!("read_file {} L{}+", path, s),
1124 _ => format!("read_file {}", path),
1125 }
1126 }
1127 "code_search" => {
1128 let pattern = args["pattern"].as_str().unwrap_or("?");
1129 let mut cmd = format!("atomic query code \"{}\"", pattern);
1130 if let Some(t) = args["file_type"].as_str() {
1131 cmd.push_str(&format!(" -t {}", t));
1132 }
1133 if let Some(g) = args["path_filter"].as_str() {
1134 cmd.push_str(&format!(" -g {}", g));
1135 }
1136 cmd
1137 }
1138 "list_entities" => {
1139 let path = args["path"].as_str().unwrap_or("?");
1140 format!("atomic query entities {}", path)
1141 }
1142 "vault_read" => {
1143 let path = args["path"].as_str().unwrap_or("?");
1144 format!("atomic vault show {}", path)
1145 }
1146 _ => format!("{}({})", name, args),
1147 }
1148}
1149
1150/// Truncate a tool result to [`MAX_TOOL_RESULT_BYTES`].
1151fn truncate_result(s: &str) -> String {

Callers 1

run_tool_loopFunction · 0.85

Calls 2

as_u64Method · 0.80
as_strMethod · 0.45

Tested by

no test coverage detected