KetraTerm
API · v0.3.0All versions

TerminalPersistentProcessOracle

class TerminalPersistentProcessOracle(command: List<String>, workingDirectory: Path? = null, timeout: Duration = Duration.ofSeconds(10)) : TerminalDifferentialOracle, AutoCloseable

Persistent JSON-lines oracle client for high-volume differential campaigns.

Calls are serialized because one process owns one ordered request/response stream. The external worker must create a fresh emulator for every request; persistence amortizes process startup without sharing terminal state.

Parameters

command

executable and arguments selecting the oracle's server mode.

workingDirectory

process working directory, or null to inherit it.

timeout

maximum duration of one response and graceful shutdown.

Constructors

Link copied to clipboard
constructor(command: List<String>, workingDirectory: Path? = null, timeout: Duration = Duration.ofSeconds(10))

Functions

Link copied to clipboard
open override fun close()
Link copied to clipboard
open override fun replay(columns: Int, rows: Int, maxHistory: Int, transcript: TerminalReplayTranscript): TerminalOracleSnapshot

Replays a transcript from a clean terminal state.