State schema for RubricMiddleware.
Only rubric is part of the public I/O schema -- callers write a
rubric and read the improved agent response back from messages.
Everything else is bookkeeping: status, iteration count, accumulated
evaluations, and rubric-attempt tracking are annotated with
PrivateStateAttr
so they are omitted from input/output schemas. Tests, evals, and
observability consumers can still reach them via the on_evaluation
callback, the rubric_evaluation_* stream events, or
agent.get_state(config).values on a checkpointed thread.