@@ -216,6 +216,64 @@ await engine.debug(true): Promise<void> // sends "debug on"
216216await engine .debug (false ): Promise < void > // sends "debug off"
217217```
218218
219+ ### Querying the engine identity
220+
221+ ``` typescript
222+ async id (): Promise < ID >
223+ ```
224+
225+ Waits for the UCI handshake to complete, then returns the engine's ` ID ` object
226+ (` { name: string; author: string } ` ). Throws if the engine did not report an
227+ identity.
228+
229+ ``` typescript
230+ const { name, author } = await engine .id ();
231+ console .log (` ${name } by ${author } ` );
232+ ```
233+
234+ ### Registering the engine
235+
236+ ``` typescript
237+ async register (options ?: RegisterOptions ): Promise < void >
238+ ```
239+
240+ Sends a ` register ` command to the engine. Call without arguments to defer
241+ registration (` register later ` ), or pass ` { name, code } ` to register
242+ immediately.
243+
244+ ``` typescript
245+ await engine .register (); // register later
246+ await engine .register ({ name: ' My Name' , code: ' 4359874324' });
247+ ```
248+
249+ ### Listening for one event
250+
251+ ``` typescript
252+ once <K extends keyof Events >(event : K ): Promise <Events [K ]>
253+ ` ` `
254+
255+ Returns a promise that resolves with the next emission of ` event ` . Useful for
256+ waiting on a single engine response without setting up a persistent listener.
257+
258+ ` ` ` typescript
259+ const { move } = await engine .once (' bestmove' );
260+ ```
261+
262+ ### Removing a listener
263+
264+ ``` typescript
265+ off <K extends keyof Events >(event : K , listener : (data : Events [K ]) => void | Promise <void >): void
266+ ` ` `
267+
268+ Removes a listener previously registered with ` on ()` .
269+
270+ ` ` ` typescript
271+ const handler = ({ move }: { move: string | undefined }) => console .log (move );
272+ engine .on (' bestmove' , handler );
273+ // …
274+ engine .off (' bestmove' , handler );
275+ ```
276+
219277### Low-level access
220278
221279``` typescript
0 commit comments