Member Junction
    Preparing search index...

    Structured input to the controller LLM.

    Contains everything the LLM needs to decide the next action(s). Layer 1 builds this from RunContext; Layer 2 may add MJ-specific data before rendering via AIPromptRunner templates.

    Index

    Constructors

    Properties

    ApplicationContext?: string

    Free-form application context — typically markdown — that gives the controller LLM a head-start on the app being tested (navigation landmarks, common gotchas, route conventions). Sourced from TestSuite.Configuration. applicationContext at the suite level; tests can append per-test notes.

    The engine renders this into the controller prompt's system message under an "## Application Context" heading so the LLM doesn't waste steps rediscovering app structure on every test.

    Checkpoints?: ControllerCheckpointInfo[]

    Tour checkpoints for this run, name + instruction only — the assertions are engine-internal. Rendered into the prompt so the controller knows the sections and can echo the exact checkpointReached name when it arrives at one, triggering a scoped judge at that frame. Empty/undefined for non-tour runs.

    CurrentDate?: string

    Current date (YYYY-MM-DD) injected into the prompt so the model can reason about "today"/relative dates without hallucinating one.

    CurrentScreenshot: string = ''

    Current screenshot as base64 PNG

    CurrentUrl: string = ''

    Current URL the browser is on

    Diagnostics?: string

    Compact digest of browser diagnostics from the previous step (console errors, failed requests, crashes). Lets the controller see why a page is blank/broken (e.g. ChunkLoadError, POST /graphql 500) instead of guessing from pixels. Empty/undefined when the step was clean.

    FormLoginCredentials?: FormLoginCredentials

    FormLogin credentials to inject into the controller context. Only populated when a BasicAuthMethod with Strategy='FormLogin' matches the current domain. The controller LLM uses these to fill login forms rather than having headers set automatically.

    Goal: string = ''

    The natural-language goal being pursued

    Hints?: string[]

    Per-test UI hints injected after the goal — documents the UI contract ("search commits on Enter"). Empty/undefined when none.

    InteractiveElements?: string

    Serialized interactive-element list for this step, when element grounding is on — [12] button "Save" / [13] textbox "Name" (empty). The controller targets these by index via ClickElement/TypeIntoElement. Empty/undefined in coordinate/vision mode.

    JudgeFeedback?: string

    Feedback from the judge on the previous step (if available)

    LoopEvidence?: string

    Engine-computed loop evidence for the previous step(s), when a repeated state has been detected. Injected into the controller prompt so the model can break out of the loop instead of repeating the same ineffective action. Empty/undefined when no loop is active.

    MaxSteps: number = 0

    Maximum steps for this run

    Memory?: string

    The controller's durable memory + plan from the PREVIOUS step, echoed back so history is self-describing and intent isn't re-derived.

    Plan?: string
    PreviousAttemptSummary?: string

    A memo from a PRIOR failed attempt at this goal so a retry is non-blind ("previous attempt failed because X; avoid Y"). Empty/undefined on the first attempt.

    PreviousStepSummary?: string

    Previous actions and their results for context

    ScreenshotHistory: string[] = []

    Recent screenshots as base64 PNGs (bounded ring buffer)

    Signal?: AbortSignal

    Cancellation signal for the controller LLM call. When the engine's Stop() aborts it, an in-flight prompt returns promptly (Layer 2 threads it into AIPromptParams.cancellationToken) instead of holding a worker slot for the rest of a 30s+ call. Not template data — consumed by the prompt executor only.

    StepNumber: number = 0

    Current step number

    ToolDefinitions: ToolDefinition[] = []

    Available tool definitions for the LLM to call