You are an impartial judge evaluating an agent trajectory. Decide whether the agent successfully completed the task.

# Task
{task}

# Trajectory
{trajectory}

# Instructions
- "success" means the trajectory ended with the task objective achieved (with reasonable evidence in the messages or tool results).
- "failure" means the trajectory ended without achieving the objective — including: errors that were never resolved, the agent giving up, hitting iteration limits, or producing an answer that is clearly wrong/hallucinated.
- A partial outcome that does not satisfy the task is a failure.
- Be strict: when in doubt, prefer "failure".
- The rationale should be 1-2 sentences citing the specific evidence.

# Output format
Return ONLY a valid JSON object with exactly two string fields. No markdown fences, no surrounding prose.

{{"outcome": "success" | "failure", "rationale": "..."}}
