Packages

Prompt Runner SDK - packet-first prompt execution for Elixir and CLI workflows with verifier-owned completion, retry, repair, and git-aware repository orchestration.

Current section

Files

Jump to
prompt_runner_sdk lib prompt_runner source.ex
Raw

lib/prompt_runner/source.ex

defmodule PromptRunner.Source do
@moduledoc """
Behaviour for loading prompts from directories, legacy config, or in-memory input.
"""
alias PromptRunner.Prompt
@callback load(source :: term(), opts :: keyword()) ::
{:ok, PromptRunner.Source.Result.t()} | {:error, term()}
defmodule Result do
@moduledoc """
Normalized source output consumed by `PromptRunner.Plan`.
"""
@type t :: %__MODULE__{
prompts: [Prompt.t()],
commit_messages: %{optional({String.t(), String.t() | nil}) => String.t()},
target_repos: [map()] | nil,
repo_groups: map(),
source_root: String.t() | nil,
project_dir: String.t() | nil,
phase_names: map(),
metadata: map(),
legacy_config: PromptRunner.Config.t() | nil
}
defstruct prompts: [],
commit_messages: %{},
target_repos: nil,
repo_groups: %{},
source_root: nil,
project_dir: nil,
phase_names: %{},
metadata: %{},
legacy_config: nil
end
end