Behaviour, compile-time DSL, and content builders for MCP prompts.
Prompt arguments are deliberately the flat string map defined by MCP rather
than JSON Schema. Required arguments are checked by the router before
render/2 runs. A prompt returns one or more user/assistant messages through
Snodo.Result.prompt_get/2.
Summary
Functions
Builds base64-encoded audio content for a prompt message.
Returns and validates the protocol-neutral definition for a prompt module.
Builds embedded resource content for a prompt message.
Builds base64-encoded image content for a prompt message.
Builds a prompt message with a user or assistant role.
Builds a resource link for a prompt message.
Builds text content for a prompt message.
Callbacks
@callback complete(Snodo.Completion.t(), Snodo.Context.t()) :: {:ok, Snodo.Result.t()} | {:error, Snodo.Error.t() | term()}
@callback definition() :: Snodo.Prompt.Definition.t()
@callback render(arguments :: %{optional(String.t()) => String.t()}, Snodo.Context.t()) :: {:ok, Snodo.Result.t()} | {:error, Snodo.Error.t() | term()}
Functions
Builds base64-encoded audio content for a prompt message.
@spec definition(module()) :: Snodo.Prompt.Definition.t()
Returns and validates the protocol-neutral definition for a prompt module.
Builds embedded resource content for a prompt message.
Builds base64-encoded image content for a prompt message.
Builds a prompt message with a user or assistant role.
Builds a resource link for a prompt message.
Builds text content for a prompt message.