MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / canonicalToolName

Method canonicalToolName

app/src/AI/ToolDispatcher.cpp:2113–2147  ·  view source on GitHub ↗

* @brief Folds a provider-sanitized tool name (dots/colons as '_') back to its canonical form. */

Source from the content-addressed store, hash-verified

2111 * @brief Folds a provider-sanitized tool name (dots/colons as '_') back to its canonical form.
2112 */
2113QString AI::ToolDispatcher::canonicalToolName(const QString& name) const
2114{
2115 if (isAssistantTool(name) || isFsTool(name) || API::CommandRegistry::instance().hasCommand(name))
2116 return name;
2117
2118 static const auto kReverse = []() {
2119 QHash<QString, QString> map;
2120 const auto add = [&map](const QString& canonical) {
2121 QString key = canonical;
2122 key.replace(QChar('.'), QChar('_'));
2123 key.replace(QChar(':'), QChar('_'));
2124 map.insert(key, canonical);
2125 };
2126 for (const auto& def : assistantToolDefs())
2127 add(def.name);
2128
2129 for (const auto& def : fsToolDefs())
2130 add(def.name);
2131
2132 const auto& commands = API::CommandRegistry::instance().commands();
2133 for (auto it = commands.constBegin(); it != commands.constEnd(); ++it)
2134 add(it.value().name);
2135
2136 return map;
2137 }();
2138
2139 const auto it = kReverse.constFind(name);
2140 if (it != kReverse.constEnd())
2141 return it.value();
2142
2143 if (name.startsWith(QStringLiteral("meta_")))
2144 return QStringLiteral("meta.") + name.mid(5);
2145
2146 return name;
2147}
2148
2149/**
2150 * @brief Returns the metadata block for a single command, or an empty object.

Callers 2

onToolCallRequestedMethod · 0.80
dispatchByCallSafetyMethod · 0.80

Calls 7

isAssistantToolFunction · 0.85
isFsToolFunction · 0.85
assistantToolDefsFunction · 0.85
fsToolDefsFunction · 0.85
hasCommandMethod · 0.80
addFunction · 0.50
valueMethod · 0.45

Tested by

no test coverage detected