PromptRunner.LLM behaviour (PromptRunnerSDK v0.4.0)

Copy Markdown View Source

Behaviour and types for LLM integrations.

Summary

Types

close_fun()

@type close_fun() :: (-> any())

provider()

@type provider() :: sdk()

sdk()

@type sdk() :: :claude | :codex | :amp

stream()

@type stream() :: Enumerable.t()

stream_event()

@type stream_event() :: map()

Callbacks

normalize_provider(term)

@callback normalize_provider(term()) :: provider() | {:error, term()}

normalize_sdk(term)

@callback normalize_sdk(term()) :: sdk() | {:error, term()}

start_stream(map, t)

@callback start_stream(map(), String.t()) ::
  {:ok, stream(), close_fun(), map()} | {:error, term()}