⚠️ EXPERIMENTAL. Read the emitted result out of a run's tool calls, validated
against the contract. Pure — returns the same ParsedAgentResult vocabulary the
fenced rail's parseAgentResult returns, so an eval measure can use it as a
metric and the assertion below can wrap it, without one dual-purpose function.
Accepts Trace["toolCalls"], SubagentTrace["toolCalls"] or an eval
ctx.toolCalls. Names are matched bare (emit_result) or MCP-prefixed
(mcp__<server>__emit_result).
Differs from the fenced rail in ONE deliberate way: more than one call is
malformed, not last-one-wins. The fenced parser takes the LAST block because
an earlier block may be illustrative reasoning; a tool call is an action, never
illustrative, so "exactly once" is checkable here and is not checkable there.
⚠️ EXPERIMENTAL. Read the emitted result out of a run's tool calls, validated against the contract. Pure — returns the same
ParsedAgentResultvocabulary the fenced rail'sparseAgentResultreturns, so an evalmeasurecan use it as a metric and the assertion below can wrap it, without one dual-purpose function.Accepts
Trace["toolCalls"],SubagentTrace["toolCalls"]or an evalctx.toolCalls. Names are matched bare (emit_result) or MCP-prefixed (mcp__<server>__emit_result).Differs from the fenced rail in ONE deliberate way: more than one call is
malformed, not last-one-wins. The fenced parser takes the LAST block because an earlier block may be illustrative reasoning; a tool call is an action, never illustrative, so "exactly once" is checkable here and is not checkable there.