-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
I fixed it naively on my fork like this:
diff --git a/lib/hermes/server.ex b/lib/hermes/server.ex
index 0354815..374efa0 100644
--- a/lib/hermes/server.ex
+++ b/lib/hermes/server.ex
@@ -467,7 +467,7 @@ defmodule Hermes.Server do
# Register with auto-derived name
component MyServer.Tools.Calculator
-
+
# Register with custom name
component MyServer.Tools.FileManager, name: "files"
"""
@@ -591,6 +591,7 @@ defmodule Hermes.Server do
%Resource{
uri: mod.uri(),
name: name,
+ title: Component.get_title(mod),
description: Component.get_description(mod),
mime_type: mod.mime_type(),
handler: mod
@@ -830,7 +831,7 @@ defmodule Hermes.Server do
]
model_preferences = %{"costPriority" => 1.0, "speedPriority" => 0.1, "hints" => [%{"name" => "claude"}]}
-
+
:ok = Hermes.Server.send_sampling_request(frame, messages,
model_preferences: model_preferences,
system_prompt: "You are a helpful assistant",
diff --git a/lib/hermes/server/component.ex b/lib/hermes/server/component.ex
index 991a6c2..160bfea 100644
--- a/lib/hermes/server/component.ex
+++ b/lib/hermes/server/component.ex
@@ -164,7 +164,7 @@ defmodule Hermes.Server.Component do
# Simple field
field :email, {:required, :string}, format: "email", description: "User's email address"
field :age, :integer, description: "Age in years"
-
+
# Nested field
field :user do
field :name, {:required, :string}
@@ -315,6 +315,14 @@ defmodule Hermes.Server.Component do
end
end
+ def get_title(module) when is_atom(module) do
+ if function_exported?(module, :__title__, 0) do
+ module.__title__()
+ else
+ ""
+ end
+ end
+
@doc """
Gets the component type (:tool, :prompt, or :resource).
Metadata
Metadata
Assignees
Labels
No labels