Engine evaluation protocol
Requires @openlatch/client 0.8.0 or later
Use this page to know which protocol contract the client’s engine answers from client 0.8.0, and what a request row carries.
The engine is the one the daemon decides with. Another process reaches it through an internal command of the client that no help output lists. The OpenLatch platform is its caller: you do not run it yourself.
Contract 2
Section titled “Contract 2”The engine answers contract 2, and only contract 2.
- The
--contractoption stays, and 2 is its only value and its default. - Any other value is refused before anything is read: the command exits with code 2, and the message names the value.
- Contract 1, the previous protocol, is refused the same way. A row that still carries an
inputfield is a contract 1 row: it is refused withOL-1240and a message naming contract 1, never guessed.
The engine announces its contract and contract version before it reads anything, and a caller refuses any other value before it sends a bundle.
The action row
Section titled “The action row”A row’s action is the v3 action: the data of a v3 hook event, the same model the client sends to the platform.
The row carries no input field: the engine reads the typed fields of the action.
Two rows have no hook event of their own. A spend row carries a tool action named spend with its amount, and a model row carries an llm_call action with its prompt.
The describe output
Section titled “The describe output”--describe reports the current revision only: the toolbox version it announces and the toolbox it lists are this revision’s, revision 5.
The engine still reads a bundle built for the previous revision, revision 4, so a machine keeps deciding with the bundle it holds until it fetches one of the current revision.