sphynx-sh/runner/eve starts the agent, sends it the case prompt, and turns what eve streams into the trial journal. You write no event mapping yourself.
The profile
Put the agent in the profile’sworkspace, with a package.json that installs sphynx-sh and eve 0.58:
profile.json
sphynx-eve starts eve dev in the workspace, waits until it answers, and runs one session with the case prompt. When the agent lives in a subdirectory, pass it: node_modules/.bin/sphynx-eve apps/agent.
Read the variant’s model in the agent, so each variant runs the model it names:
agent/agent.ts
env credential, never in the profile.
The suite
What is recorded
Other events are ignored.
A run that did not finish never passes
A failed or parked session records no answer, so a check that reads the answer fails. The reason is on theFinished line in the journal. A tool that needs approval parks the session, because nobody is there to approve it. Turn approval off for the tools a case uses.
sphynx-eve exits 0 when the session completed, 1 when it failed, and 3 when it parked.
From code
The pieces are exported for a script of your own:reduceEve is the mapping on its own. It takes the state and one eve event and returns the next state with the lines to print, so you can test it against a recorded stream.