Telemetry helpers for GEPA.
Provides a stable event schema for lifecycle, iteration, proposal, and evaluation events. This keeps GEPA free of tracker-specific code while allowing external handlers to attach and forward to W&B, MLflow, etc.
Summary
Functions
Emit baseline evaluation for the seed program.
Emit evaluation batch event (train or val).
Emit iteration start.
Emit iteration stop with performance metrics.
Emit proposal decision (accepted/rejected).
Emit proposal generation details.
Emit run start with sanitized config and schema version.
Emit run stop summary.
Emit valset update after accepting a program.
Schema version for telemetry metadata.
Functions
@spec emit_baseline(GEPA.EvaluationBatch.t(), non_neg_integer()) :: :ok
Emit baseline evaluation for the seed program.
@spec emit_evaluation_batch( non_neg_integer(), :train | :val, non_neg_integer(), integer(), [number()], non_neg_integer() | nil, String.t() | nil ) :: :ok
Emit evaluation batch event (train or val).
@spec emit_iteration_start(non_neg_integer(), term()) :: :ok
Emit iteration start.
@spec emit_iteration_stop( GEPA.State.t(), non_neg_integer(), number(), boolean(), float(), float(), term(), [term()] | nil, [term()] | nil, integer() ) :: :ok
Emit iteration stop with performance metrics.
@spec emit_proposal_decision( GEPA.CandidateProposal.t() | nil, non_neg_integer(), boolean(), atom(), float(), [term()] | nil ) :: :ok
Emit proposal decision (accepted/rejected).
@spec emit_proposal_generated(GEPA.CandidateProposal.t(), non_neg_integer()) :: :ok
Emit proposal generation details.
@spec emit_run_start(map()) :: :ok
Emit run start with sanitized config and schema version.
@spec emit_run_stop(GEPA.State.t(), integer()) :: :ok
Emit run stop summary.
@spec emit_valset_update( GEPA.State.t(), non_neg_integer(), non_neg_integer(), map() ) :: :ok
Emit valset update after accepting a program.
@spec schema_version() :: String.t()
Schema version for telemetry metadata.