# Spec: @suaveplan/readline ## Purpose Terminal I/O primitive: async line reader, interactive readline interface, and byte scanner engine. Depends only on `@suaveplan/error`, `@suaveplan/types`, `@opentelemetry/api`, `zod`. ## ADDED Requirements ### readLines - `readLines(stream: NodeJS.ReadableStream, signal?: AbortSignal): AsyncGenerator` - Yields each newline-delimited UTF-8 line - Terminates cleanly on AbortSignal or stream close ### createInterface - `createInterface(opts: { input, output?, signal? }): ReadlineInterface` - Returns `{ question(prompt): Promise, close(): void }` - OTel span per `question()` call - AbortSignal aborts pending question ### ByteScanner - Internal engine for buffered byte-level scanning