Merge origin/main into feat/hermes-relay-shared-metrics
Signed-off-by: Alex Fournier <afournier@nvidia.com>
This commit is contained in:
+18
-3
@@ -569,10 +569,15 @@ def _compute_tool_definitions(
|
||||
config=ts_cfg,
|
||||
)
|
||||
if assembly.activated and not quiet_mode:
|
||||
_forms = {"full": "catalog listing embedded",
|
||||
"names": "names-only listing embedded",
|
||||
"mixed": "listing embedded (oversized servers summarized)",
|
||||
"groups": "server summary embedded (search-only discovery)",
|
||||
"none": "no listing (search-only)"}
|
||||
print(
|
||||
f"🔎 Tool Search: {assembly.deferred_count} MCP/plugin tools deferred "
|
||||
f"(~{assembly.deferred_tokens} tokens) behind tool_search/describe/call. "
|
||||
f"Threshold ~{assembly.threshold_tokens} tokens."
|
||||
f"🔎 Tool Search (tier {assembly.tier}): {assembly.deferred_count} "
|
||||
f"MCP/plugin tools deferred (~{assembly.deferred_tokens} tokens) behind "
|
||||
f"tool_search/describe/call — {_forms.get(assembly.listing_form, assembly.listing_form)}."
|
||||
)
|
||||
filtered_tools = assembly.tool_defs
|
||||
except Exception as e: # pragma: no cover — never break tool loading
|
||||
@@ -726,6 +731,16 @@ def coerce_tool_args(tool_name: str, args: Dict[str, Any]) -> Dict[str, Any]:
|
||||
if not properties:
|
||||
return args
|
||||
|
||||
# The model saw the SANITIZED schema — property keys violating provider
|
||||
# patterns (e.g. Cloudflare's ``issue_class~neq``) were renamed before
|
||||
# the request. Map any sanitized keys back to the registry's original
|
||||
# wire names before schema lookup / dispatch.
|
||||
try:
|
||||
from tools.schema_sanitizer import unrename_tool_args
|
||||
args = unrename_tool_args(schema.get("parameters"), args)
|
||||
except Exception: # pragma: no cover — never break dispatch
|
||||
pass
|
||||
|
||||
for key, value in list(args.items()):
|
||||
prop_schema = properties.get(key)
|
||||
if not prop_schema:
|
||||
|
||||
Reference in New Issue
Block a user