Skip to content

Hex1b.Automation

Assembly: Hex1b.dll

Classes

AutomationStepRecord

Immutable record of a completed automation step. Used by to track step history for diagnostic purposes.

csharp
public sealed record AutomationStepRecord : IEquatable<AutomationStepRecord>

BmpEncoder

Encodes raw pixel data to BMP format for embedding in SVG as data URIs.

csharp
public static class BmpEncoder

CellMatchContext

Context provided to cell predicates during pattern matching. Contains information about the current position, cell, and match state.

csharp
public sealed class CellMatchContext

CellPatternMatch

Represents a successful pattern match containing all traversed cells and capture information.

csharp
public sealed class CellPatternMatch

CellPatternSearcher

A fluent builder for describing patterns of terminal cells. Patterns can match based on character content, cell attributes, colors, and spatial relationships. The searcher is immutable - all methods return new instances, making patterns safe to reuse and compose.

csharp
public sealed class CellPatternSearcher

CellPatternSearchResult

Collection of all pattern matches found in a search.

csharp
public sealed class CellPatternSearchResult

Hex1bAutomationException

Exception thrown by when an automation step fails. Includes rich diagnostic information including the full step history, terminal snapshot, and source location to help pinpoint the failure.

csharp
public sealed class Hex1bAutomationException : Exception, ISerializable

Hex1bTerminalAutomator

Provides an imperative, async API for automating terminal interactions in tests. Each method executes immediately and records its result in a step history, providing rich diagnostic context when failures occur.

csharp
public sealed class Hex1bTerminalAutomator

Hex1bTerminalInputSequence

A sequence of test steps that can be applied to a terminal. Built using .

csharp
public sealed class Hex1bTerminalInputSequence

Hex1bTerminalInputSequenceBuilder

Fluent builder for creating test sequences to simulate user interaction.

csharp
public sealed class Hex1bTerminalInputSequenceBuilder

Hex1bTerminalInputSequenceOptions

Options for configuring test sequence execution.

csharp
public sealed class Hex1bTerminalInputSequenceOptions

Hex1bTerminalRegionExtensions

Extension methods for providing common text operations.

csharp
public static class Hex1bTerminalRegionExtensions

Hex1bTerminalSnapshot

An immutable snapshot of terminal state at a point in time. Used for assertions and wait conditions in test sequences.

csharp
public sealed class Hex1bTerminalSnapshot : IHex1bTerminalRegion, IDisposable

Hex1bTerminalSnapshotRegion

A lightweight view into a terminal snapshot that provides localized coordinates. The region translates local (0,0)-based coordinates to the absolute position in the snapshot.

csharp
public sealed class Hex1bTerminalSnapshotRegion : IHex1bTerminalRegion

KeyInputStep

A step that sends a single key event.

csharp
public sealed record KeyInputStep : TestStep, IEquatable<TestStep>, IEquatable<KeyInputStep>

MouseInputStep

A step that sends a mouse event at a specific position.

csharp
public sealed record MouseInputStep : TestStep, IEquatable<TestStep>, IEquatable<MouseInputStep>

SixelDecoder

Decodes Sixel graphics data to raw pixel arrays for SVG rendering.

csharp
public static class SixelDecoder

SixelImage

Represents a decoded Sixel image as RGBA pixel data.

csharp
public sealed class SixelImage

TapeArtifact

Describes a generated playback artifact.

csharp
public sealed record TapeArtifact : IEquatable<TapeArtifact>

TapeCaptureOptions

Selects playback artifacts without changing the Tape language.

csharp
public sealed class TapeCaptureOptions

TapeChordCommand

Represents a Ctrl, Alt, or Shift instruction and its ordered operands.

csharp
public sealed record TapeChordCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeChordCommand>

TapeCommand

Represents an immutable Tape instruction, including application-defined instructions.

csharp
public abstract record TapeCommand : IEquatable<TapeCommand>

TapeCommandResult

Contains either a command's input-sequence builder or an error that prevents playback.

csharp
public sealed class TapeCommandResult

TapeCopyCommand

Declares text to copy without accessing a clipboard.

csharp
public sealed record TapeCopyCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeCopyCommand>

TapeDiagnostic

Describes a problem encountered while parsing or executing a Tape document.

csharp
public sealed record TapeDiagnostic : IEquatable<TapeDiagnostic>

TapeDocument

Contains an editable sequence of Tape instructions.

csharp
public sealed class TapeDocument

TapeDurationLiteral

Retains a duration without requiring runtime conversion.

csharp
public sealed record TapeDurationLiteral : IEquatable<TapeDurationLiteral>

TapeEnvCommand

Declares an environment variable without changing the process environment.

csharp
public sealed record TapeEnvCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeEnvCommand>

TapeExecutionResult

Owns the final snapshot and describes completed playback.

csharp
public sealed class TapeExecutionResult : IDisposable

TapeExtensionCommand

Represents a custom keyword and its deferred playback-result callback.

csharp
public sealed record TapeExtensionCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeExtensionCommand>

TapeHideCommand

Declares the beginning of hidden output.

csharp
public sealed record TapeHideCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeHideCommand>

TapeKeyCommand

Presses a named key or scrolls, with optional repeat and delay operands.

csharp
public sealed record TapeKeyCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeKeyCommand>

TapeLiteral

Retains a normalized setting operand and its original source spelling.

csharp
public sealed record TapeLiteral : IEquatable<TapeLiteral>

TapeNumberLiteral

Retains a numeric token, including values whose numeric conversion would fail.

csharp
public sealed record TapeNumberLiteral : IEquatable<TapeNumberLiteral>

TapeOutputCommand

Declares an output path without creating an artifact.

csharp
public sealed record TapeOutputCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeOutputCommand>

TapeParseContext

Provides token access, source information, and diagnostic reporting to a syntax extension.

csharp
public sealed class TapeParseContext

TapeParseException

Indicates that Tape source contains syntax errors.

csharp
public sealed class TapeParseException : Exception, ISerializable

TapeParser

Parses VHS v0.11.0 Tape syntax into an editable document without executing instructions.

csharp
public sealed class TapeParser

TapeParserOptions

Configures Tape syntax callbacks without executing instructions during parsing.

csharp
public sealed class TapeParserOptions

TapePasteCommand

Declares a paste instruction.

csharp
public sealed record TapePasteCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapePasteCommand>

TapePlaybackException

Reports a failure after tape execution has begun.

csharp
public sealed class TapePlaybackException : Exception, ISerializable

TapePlaybackOptions

Configures playback, capture, and optional default-shell launch settings.

csharp
public sealed class TapePlaybackOptions

TapePlayContext

Provides the effective playback settings while preparing a command's result.

csharp
public sealed class TapePlayContext

TapePlayer

Prepares and plays Tape documents against borrowed or player-owned terminals.

csharp
public sealed class TapePlayer

TapeRequireCommand

Declares a required executable without searching for it.

csharp
public sealed record TapeRequireCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeRequireCommand>

TapeScreenshotCommand

Declares a screenshot instruction without creating a file.

csharp
public sealed record TapeScreenshotCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeScreenshotCommand>

TapeSetCommand

Declares a Tape setting without evaluating it.

csharp
public sealed record TapeSetCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeSetCommand>

TapeShowCommand

Declares the resumption of visible output.

csharp
public sealed record TapeShowCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeShowCommand>

TapeSleepCommand

Pauses execution for a duration.

csharp
public sealed record TapeSleepCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeSleepCommand>

TapeSourceCommand

Declares a source include without opening or expanding the referenced file.

csharp
public sealed record TapeSourceCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeSourceCommand>

TapeToken

Represents a source token without escape decoding.

csharp
public sealed record TapeToken : IEquatable<TapeToken>

TapeTokenReader

Provides forward-only access to Tape tokens for syntax recognition.

csharp
public sealed class TapeTokenReader

TapeTypeCommand

Types text using an optional per-character delay.

csharp
public sealed record TapeTypeCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeTypeCommand>

TapeValidationException

Reports a tape rejected before any execution begins.

csharp
public sealed class TapeValidationException : Exception, ISerializable

TapeValidationResult

Contains preparation diagnostics without executing a tape.

csharp
public sealed class TapeValidationResult

TapeWaitCommand

Waits for a regular expression to match terminal text.

csharp
public sealed record TapeWaitCommand : TapeCommand, IEquatable<TapeCommand>, IEquatable<TapeWaitCommand>

TerminalAnsiOptions

Options for ANSI rendering of terminal regions.

csharp
public class TerminalAnsiOptions

TerminalRegionAnsiExtensions

Extension methods for rendering terminal regions to ANSI escape code format.

csharp
public static class TerminalRegionAnsiExtensions

TerminalRegionCellPatternExtensions

Extension methods for searching terminal regions with cell patterns.

csharp
public static class TerminalRegionCellPatternExtensions

TerminalRegionHtmlExtensions

Extension methods for rendering terminal regions to interactive HTML format.

csharp
public static class TerminalRegionHtmlExtensions

TerminalRegionSvgExtensions

Extension methods for rendering terminal regions to SVG format.

csharp
public static class TerminalRegionSvgExtensions

TerminalSvgOptions

Options for SVG rendering of terminal regions.

csharp
public class TerminalSvgOptions

TestPatternGenerator

Generates well-known test pattern images for verifying graphics rendering. These patterns have predictable, easily verifiable outputs.

csharp
public static class TestPatternGenerator

TestStep

Base class for test sequence steps. Each step knows how to execute itself against a terminal.

csharp
public abstract record TestStep : IEquatable<TestStep>

TextInputStep

A step that types a string of text, optionally with delays between keystrokes.

csharp
public sealed record TextInputStep : TestStep, IEquatable<TestStep>, IEquatable<TextInputStep>

WaitStep

A step that pauses for a specified duration.

csharp
public sealed record WaitStep : TestStep, IEquatable<TestStep>, IEquatable<WaitStep>

WaitUntilStep

A step that waits until a condition is met on the terminal.

csharp
public sealed record WaitUntilStep : TestStep, IEquatable<TestStep>, IEquatable<WaitUntilStep>

WaitUntilTimeoutException

Exception thrown when a times out waiting for a condition. Includes rich diagnostic information about the terminal state at the time of timeout.

csharp
public sealed class WaitUntilTimeoutException : TimeoutException, ISerializable

Structs

FindOptions

Options for Find pattern methods.

csharp
public readonly struct FindOptions

MultiLineTextMatch

Represents a text match that may span multiple lines in a terminal region.

csharp
public readonly record struct MultiLineTextMatch : IEquatable<MultiLineTextMatch>

TapeSourceSpan

Identifies a range of Tape source text.

csharp
public readonly record struct TapeSourceSpan : IEquatable<TapeSourceSpan>

TextMatch

Represents a text match found in a terminal region, with its coordinates.

csharp
public readonly record struct TextMatch : IEquatable<TextMatch>

TraversedCell

Represents a single cell that was traversed during pattern matching.

csharp
public readonly record struct TraversedCell : IEquatable<TraversedCell>

Interfaces

IHex1bTerminalRegion

Common interface for terminal snapshot and snapshot regions. Provides core cell access and region extraction.

csharp
public interface IHex1bTerminalRegion

Enums

Direction

Direction of movement in the terminal grid.

csharp
public enum Direction

FindCursorPosition

Specifies where to position the cursor after a Find match.

csharp
public enum FindCursorPosition

ScrollbackWidth

Controls how scrollback line widths are adapted when included in a snapshot.

csharp
public enum ScrollbackWidth

TapeArtifactKind

Identifies the format of a generated tape artifact.

csharp
public enum TapeArtifactKind

TapeDiagnosticSeverity

Indicates the importance of a Tape diagnostic.

csharp
public enum TapeDiagnosticSeverity

TapeDiagnosticStage

Identifies the stage that produced a Tape diagnostic.

csharp
public enum TapeDiagnosticStage

TapeSetting

Identifies a setting recognized by the VHS v0.11.0 grammar.

csharp
public enum TapeSetting

TapeTokenKind

Identifies a token's lexical category without converting its value.

csharp
public enum TapeTokenKind

TapeWaitScope

Identifies the terminal text examined by a Wait instruction.

csharp
public enum TapeWaitScope

Released under the MIT License.