MCPcopy Index your code
hub / github.com/AI45Lab/Code / js_command_context_to_object

Function js_command_context_to_object

sdk/node/src/js_slash_command.rs:61–89  ·  view source on GitHub ↗

Convert Rust CommandContext to JavaScript object.

(
    env: &napi::Env,
    ctx: &RustCommandContext,
)

Source from the content-addressed store, hash-verified

59
60/// Convert Rust CommandContext to JavaScript object.
61pub fn js_command_context_to_object(
62 env: &napi::Env,
63 ctx: &RustCommandContext,
64) -> napi::Result<napi::JsObject> {
65 let mut obj = env.create_object()?;
66 obj.set_named_property("sessionId", env.create_string(&ctx.session_id)?)?;
67 obj.set_named_property("workspace", env.create_string(&ctx.workspace)?)?;
68 obj.set_named_property("model", env.create_string(&ctx.model)?)?;
69 obj.set_named_property("historyLen", env.create_uint32(ctx.history_len as u32)?)?;
70 obj.set_named_property("totalTokens", env.create_int64(ctx.total_tokens as i64)?)?;
71 obj.set_named_property("totalCost", env.create_double(ctx.total_cost)?)?;
72
73 let mut tool_names_arr = env.create_array(ctx.tool_names.len() as u32)?;
74 for (i, name) in ctx.tool_names.iter().enumerate() {
75 tool_names_arr.set(i as u32, env.create_string(name)?)?;
76 }
77 obj.set_named_property("toolNames", tool_names_arr)?;
78
79 let mut mcp_servers_arr = env.create_array(ctx.mcp_servers.len() as u32)?;
80 for (i, (name, count)) in ctx.mcp_servers.iter().enumerate() {
81 let mut server_obj = env.create_object()?;
82 server_obj.set_named_property("name", env.create_string(name)?)?;
83 server_obj.set_named_property("toolCount", env.create_uint32(*count as u32)?)?;
84 mcp_servers_arr.set(i as u32, server_obj)?;
85 }
86 obj.set_named_property("mcpServers", mcp_servers_arr)?;
87
88 Ok(obj)
89}

Callers 1

register_commandMethod · 0.85

Calls 2

lenMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected