mirror of
https://github.com/davidkaya/aryx.git
synced 2026-08-26 12:53:59 +02:00
fix: filter internal runtime tools
Exclude internal runtime tools from sidecar capability discovery so they do not surface in the approval tool catalog. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -16,6 +16,13 @@ public sealed class SidecarProtocolHost
|
|||||||
private const string ResolveApprovalCommandType = "resolve-approval";
|
private const string ResolveApprovalCommandType = "resolve-approval";
|
||||||
private const string ResolveUserInputCommandType = "resolve-user-input";
|
private const string ResolveUserInputCommandType = "resolve-user-input";
|
||||||
private const string AskUserToolName = "ask_user";
|
private const string AskUserToolName = "ask_user";
|
||||||
|
private static readonly HashSet<string> ExcludedRuntimeToolNames = new(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
AskUserToolName,
|
||||||
|
"report_intent",
|
||||||
|
"task_complete",
|
||||||
|
"exit_plan_mode",
|
||||||
|
};
|
||||||
|
|
||||||
private static readonly string[] AuthenticationErrorIndicators =
|
private static readonly string[] AuthenticationErrorIndicators =
|
||||||
[
|
[
|
||||||
@@ -460,7 +467,7 @@ public sealed class SidecarProtocolHost
|
|||||||
{
|
{
|
||||||
string? toolName = string.IsNullOrWhiteSpace(tool.Name) ? null : tool.Name.Trim();
|
string? toolName = string.IsNullOrWhiteSpace(tool.Name) ? null : tool.Name.Trim();
|
||||||
return toolName is not null
|
return toolName is not null
|
||||||
&& !string.Equals(toolName, AskUserToolName, StringComparison.OrdinalIgnoreCase);
|
&& !ExcludedRuntimeToolNames.Contains(toolName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsReasoningEffort(string? value)
|
private static bool IsReasoningEffort(string? value)
|
||||||
|
|||||||
@@ -517,7 +517,7 @@ public sealed class SidecarProtocolHostTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void MapRuntimeTools_ExcludesAskUserAndDeduplicatesByName()
|
public void MapRuntimeTools_ExcludesInternalToolsAndDeduplicatesByName()
|
||||||
{
|
{
|
||||||
IReadOnlyList<SidecarRuntimeToolDto> runtimeTools = SidecarProtocolHost.MapRuntimeTools(
|
IReadOnlyList<SidecarRuntimeToolDto> runtimeTools = SidecarProtocolHost.MapRuntimeTools(
|
||||||
[
|
[
|
||||||
@@ -527,6 +527,21 @@ public sealed class SidecarProtocolHostTests
|
|||||||
Description = "Ask the user a question.",
|
Description = "Ask the user a question.",
|
||||||
},
|
},
|
||||||
new Tool
|
new Tool
|
||||||
|
{
|
||||||
|
Name = "report_intent",
|
||||||
|
Description = "Report current intent.",
|
||||||
|
},
|
||||||
|
new Tool
|
||||||
|
{
|
||||||
|
Name = "task_complete",
|
||||||
|
Description = "Signal task completion.",
|
||||||
|
},
|
||||||
|
new Tool
|
||||||
|
{
|
||||||
|
Name = "exit_plan_mode",
|
||||||
|
Description = "Exit plan mode.",
|
||||||
|
},
|
||||||
|
new Tool
|
||||||
{
|
{
|
||||||
Name = " web_fetch ",
|
Name = " web_fetch ",
|
||||||
Description = " Fetch content from the web. ",
|
Description = " Fetch content from the web. ",
|
||||||
|
|||||||
Reference in New Issue
Block a user