Releases: echecsjs/uci
Releases · echecsjs/uci
v4.1.0
v4.0.2
Fixed
- Exported
RegisterOptionstype — consumers can now reference it when wrapping
register()
v4.0.0
Changed
positionis now an async method instead of a setter. Use
await engine.position('startpos')instead ofengine.position = 'startpos'.
Fixed
- Process stderr now emits proper
Errorobjects instead of rawBuffer. ready()no longer permanently caches errors — subsequent calls retry the
isreadyhandshake, allowing recovery from transient failures.
Added
- Process class unit tests (stdout buffering, stderr, write errors, lifecycle).
go()option combination tests (depth, nodes, mate, searchmoves, movestogo).- Edge case tests for parser and ingest (empty input, unknown commands, string
info).
v3.0.2
Added
EventsandGoOptionsare now re-exported from the package root — consumers
can import them directly:import UCI, { type GoOptions } from '@echecs/uci'
Fixed
start()no longer re-sendssetoptioncommands on every call — engine
config is now applied exactly once after the UCI handshake
v3.0.1
Fixed
- README updated to reflect v3.0.0 API (constructor
configoption,
GoOptions, pondering, correctedstop()/reset()descriptions,sbhitsin
InfoCommand) - CHANGELOG: moved
reset()andstop()entries fromAddedtoChanged
v1.0.0
Initial public release.
Added
UCIclass — wraps a UCI chess engine process with a typed event-emitter API- Full UCI handshake (
uci,isready,uciok,readyok) start(options?)— appliessetoptionoverrides and sendsgomove(move)— sends a move in long algebraic notation and restarts searchstop()— sendsquitand terminates the engine processreset()— resets position tostartposexecute(command)— sends an arbitrary UCI command stringdepthandlinesproperties for controlling search parameterspositionsetter for FEN orstartpos- Typed
infoevents: depth, selective depth, score (cp/matewith
lowerbound/upperbound), PV moves, nodes, NPS, time, hashfull, CPU load - Typed
bestmove,id,option,copyprotection,registration,error,
output,readyok,uciokevents - Engine option validation via Zod schemas