Files
2025-04-01 11:00:41 +11:00

47 lines
971 B
Go

package impl
import (
"net/http"
. "github.com/mickael-kerjean/filestash/server/plugin/plg_handler_mcp/types"
)
var listOfPrompts = map[string]PromptDefinition{}
type PromptDefinition struct {
Prompt
ExecMessage func(params map[string]any, userSession *UserSession) ([]PromptMessage, error)
ExecDescription func(params map[string]any) string
}
func RegisterPrompt(t PromptDefinition) {
listOfPrompts[t.Name] = t
}
func AllPrompts() []Prompt {
t := []Prompt{}
for _, v := range listOfPrompts {
t = append(t, v.Prompt)
}
return t
}
func ExecPromptGet(name string, params map[string]any, userSession *UserSession) ([]PromptMessage, error) {
t, ok := listOfPrompts[name]
if !ok {
return nil, &JSONRPCError{
Code: http.StatusNotFound,
Message: "Not Found",
}
}
return t.ExecMessage(params, userSession)
}
func ExecPromptDescription(params map[string]any) string {
n, ok := params["name"].(string)
if !ok {
return ""
}
return n
}