Contract and shared helpers for evaluation metrics.
Metrics return a normalized result. Compatibility with historical assertion
result maps is handled by Aludel.Evals.AssertionEvaluator.
Summary
Types
@type json_value() :: nil | boolean() | number() | String.t() | [json_value()] | %{optional(String.t()) => json_value()}
Callbacks
@callback evaluate(String.t(), map()) :: Aludel.Evals.Metric.Result.t()
@callback type() :: String.t()
Functions
@spec decode_json(String.t()) :: {:ok, json_value()} | {:error, Jason.DecodeError.t()}
@spec invalid_result(String.t()) :: Aludel.Evals.Metric.Result.t()