PromptRunner.Template (PromptRunnerSDK v0.7.0)

Copy Markdown View Source

Prompt scaffold templates.

Templates are markdown documents with YAML front matter. Template front matter provides default prompt metadata, while the body provides the authoring scaffold. Dynamic prompt attributes are merged in by Prompt Runner when a new prompt is created.

Summary

Types

loaded_template()

@type loaded_template() :: %{
  name: String.t(),
  path: String.t() | nil,
  source: :packet | :home | :builtin,
  attributes: map(),
  body: String.t()
}

Functions

contains_placeholder_markers?(body)

@spec contains_placeholder_markers?(String.t() | nil) :: boolean()

default_name()

@spec default_name() :: String.t()

init()

@spec init() ::
  {:ok,
   %{
     templates_dir: String.t(),
     default_template_file: String.t(),
     from_adr_template_file: String.t()
   }}

list(packet_root \\ nil)

@spec list(String.t() | nil) :: {:ok, [map()]}

load(name_or_path \\ nil, opts \\ [])

@spec load(
  String.t() | nil,
  keyword()
) :: {:ok, loaded_template()} | {:error, term()}

packet_template_path(packet_root, name)

@spec packet_template_path(String.t(), String.t()) :: String.t()

packet_templates_dir(packet_root)

@spec packet_templates_dir(String.t()) :: String.t()

render(attrs, map)

@spec render(map(), loaded_template()) :: {map(), String.t()}

template_path(name)

@spec template_path(String.t()) :: String.t()

templates_dir()

@spec templates_dir() :: String.t()