lib/openagents/shadow_programs/provider.ex

main at 58e6347eeb72 · 530 B

defmodule OpenAgents.ShadowPrograms.Provider do
  @moduledoc "No-effect provider boundary for one typed shadow inference."

  @callback evaluate(
              OpenAgents.ProgramArtifacts.Artifact.t(),
              OpenAgents.ShadowPrograms.Signature.t(),
              map(),
              pos_integer()
            ) ::
              {:ok,
               %{
                 output: map(),
                 response_id: String.t(),
                 usage: map()
               }}
              | {:error, atom() | tuple()}
end