MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / dispatch_daemon_tool

Function dispatch_daemon_tool

src/tool_command.rs:262–280  ·  view source on GitHub ↗
(
    dispatch: DaemonToolDispatch,
    tool_name: &str,
    tool_args: Value,
    raw_json: bool,
)

Source from the content-addressed store, hash-verified

260}
261
262async fn dispatch_daemon_tool(
263 dispatch: DaemonToolDispatch,
264 tool_name: &str,
265 tool_args: Value,
266 raw_json: bool,
267) -> Result<()> {
268 let result_value = match dispatch.call(tool_name, tool_args.clone()).await {
269 Ok(value) => value,
270 Err(error) if is_daemon_unavailable(&error) => {
271 match dispatch.fallback(tool_name, tool_args).await? {
272 Some(value) => value,
273 None => return Err(error),
274 }
275 }
276 Err(error) => return Err(error),
277 };
278 print_tool_output(&result_value, raw_json);
279 Ok(())
280}
281
282fn is_daemon_unavailable(error: &TraceDecayError) -> bool {
283 matches!(

Callers 1

runFunction · 0.85

Calls 4

is_daemon_unavailableFunction · 0.85
print_tool_outputFunction · 0.85
fallbackMethod · 0.80
callMethod · 0.45

Tested by

no test coverage detected