local agent = require("agent")
local t1 = { name = "foo", _meta = { group = "mygroup" } }
local g1 = agent._resolve_mcp_group(t1, "myserver")
print("case1._meta.group_wins=" .. tostring(g1 == "mygroup"))
local t2 = { name = "bar" }
local g2 = agent._resolve_mcp_group(t2, "myserver")
print("case2.no_meta_fallback=" .. tostring(g2 == "myserver"))
local t3 = { name = "baz", _meta = { group = "" } }
local g3 = agent._resolve_mcp_group(t3, "myserver")
print("case3.empty_group_fallback=" .. tostring(g3 == "myserver"))
local t4 = { name = "qux", _meta = { group = 42 } }
local g4 = agent._resolve_mcp_group(t4, "myserver")
print("case4.number_group_fallback=" .. tostring(g4 == "myserver"))
local t5 = { name = "quux", _meta = { group = { "a", "b" } } }
local g5 = agent._resolve_mcp_group(t5, "myserver")
print("case5.table_group_fallback=" .. tostring(g5 == "myserver"))
local t6 = { name = "corge", _meta = { other = "value" } }
local g6 = agent._resolve_mcp_group(t6, "myserver")
print("case6.no_group_key_fallback=" .. tostring(g6 == "myserver"))
local mcp_tool_map_meta = {
meta__tool = {
server = "meta",
tool = "tool",
def = {
name = "meta__tool",
description = "tool with meta group",
input_schema = { type = "object", properties = {} },
group = agent._resolve_mcp_group({ name = "tool", _meta = { group = "custom" } }, "meta"),
},
},
}
local built = agent._build_tools(mcp_tool_map_meta, nil, { "custom" })
local found_custom = false
for _, t in ipairs(built) do
if t.name == "meta__tool" then found_custom = true end
end
print("case7.meta_group_used_for_filtering=" .. tostring(found_custom))