Skip to main content

Class: MockAIHelper

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:230

Implements​

Constructors​

Constructor​

new MockAIHelper(topic, config?, parent?, callLogger?): MockAIHelper

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:238

Parameters​

topic​

string

config?​

MockAIHelperConfig = {}

parent?​

MockAIHelper

callLogger?​

AICallLogger

Returns​

MockAIHelper

Properties​

topic​

readonly topic: string

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:231

Current topic path

Implementation of​

AIHelper.topic

Methods​

batch()​

batch<T>(modelKey, _provider?, _options?): AIBatch<T>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:565

Type Parameters​

T​

T = string

Parameters​

modelKey​

ModelKey

_provider?​

AIBatchProvider

_options?​

BatchOptions

Returns​

AIBatch<T>

Implementation of​

AIHelper.batch


clearCalls()​

clearCalls(): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:805

Clear all recorded calls

Returns​

void


createAtTopic()​

createAtTopic(topic, callLogger?): MockAIHelper

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:591

Create a helper at an exact topic while sharing this mock's state. Constructed through this.constructor so a subclass survives createChild and the kernel's per-stage factory call.

Parameters​

topic​

string

callLogger?​

AICallLogger

Returns​

MockAIHelper


createChild()​

createChild(segment, id?): AIHelper

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:577

Parameters​

segment​

string

id?​

string

Returns​

AIHelper

Implementation of​

AIHelper.createChild


embed()​

embed(modelKey, text, options?): Promise<AIEmbedResult>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:362

Parameters​

modelKey​

ModelKey

text​

string | string[]

options?​

EmbedOptions

Returns​

Promise<AIEmbedResult>

Implementation of​

AIHelper.embed


evaluate()​

evaluate<Q>(modelKey, spec, options?): Promise<AIEvaluateResult<Q>>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:407

Answer typed questions about one shared state with a decision model (isEvaluationModel in the registry, e.g. TypeSafe's Jev). Each answer's type follows from its question, so a choice answer is the union of that question's criteria keys.

Type Parameters​

Q​

Q extends Readonly<Record<string, EvaluationQuestion>>

Parameters​

modelKey​

ModelKey

spec​

EvaluationSpec<Q>

options?​

EvaluateOptions

Returns​

Promise<AIEvaluateResult<Q>>

Implementation of​

AIHelper.evaluate


failOnce()​

failOnce(match, error?): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:712

Arm a one-shot failure: the next call matching match throws error once, and every later call succeeds normally. This is how a replay-safety test says "make exactly one item throw once" without flipping setError on and off around the call.

A string matches when the prompt contains it, a RegExp when it tests true against the prompt, and a predicate when it returns true for the call descriptor. Scripts are shared with child helpers, so arming one on the factory's root helper fires inside a stage.

Parameters​

match​

MockCallMatcher

error?​

Error

Returns​

void

Example​

mock.failOnce("item-2", new Error("subscription limit reached"));

generateObject()​

generateObject<TSchema>(modelKey, prompt, schema, options?): Promise<AIObjectResult<output<TSchema>>>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:323

Type Parameters​

TSchema​

TSchema extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

Parameters​

modelKey​

ModelKey

prompt​

TextInput

schema​

TSchema

options?​

ObjectOptions<ToolSet>

Returns​

Promise<AIObjectResult<output<TSchema>>>

Implementation of​

AIHelper.generateObject


generateText()​

generateText<TTools>(modelKey, prompt, options?): Promise<AITextResult>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:280

Type Parameters​

TTools​

TTools extends ToolSet = ToolSet

Parameters​

modelKey​

ModelKey

prompt​

TextInput

options?​

TextOptions<TTools>

Returns​

Promise<AITextResult>

Implementation of​

AIHelper.generateText


getAllCallsRecursive()​

getAllCallsRecursive(): RecordedCall[]

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:772

Get all recorded calls including children

Returns​

RecordedCall[]


getCalls()​

getCalls(): RecordedCall[]

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:765

Get all recorded calls for this helper

Returns​

RecordedCall[]


getCallsByModel()​

getCallsByModel(modelKey): RecordedCall[]

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:790

Get calls by model

Parameters​

modelKey​

ModelKey

Returns​

RecordedCall[]


getCallsByType()​

getCallsByType(type): RecordedCall[]

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:783

Get calls by type

Parameters​

type​

AICallType

Returns​

RecordedCall[]


getChildren()​

getChildren(): MockAIHelper[]

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:815

Get child helpers

Returns​

MockAIHelper[]


getLastCall()​

getLastCall(): RecordedCall | null

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:797

Get the last call made

Returns​

RecordedCall | null


getStats()​

getStats(): Promise<AIHelperStats>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:614

Returns​

Promise<AIHelperStats>

Implementation of​

AIHelper.getStats


mockObjectResponseForSchema()​

mockObjectResponseForSchema(schema, value, meta?): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:685

Register an object response keyed by Zod schema identity rather than by prompt text. Consulted before the prompt patterns, so several generateObject calls over near-identical prompts can be dispatched on the schema they ask for.

Parameters​

schema​

ZodType

value​

unknown

meta?​

Omit<MockObjectResponse<unknown>, "object">

Returns​

void

Example​

mock.mockObjectResponseForSchema(SummarySchema, { summary: "ok" });
mock.mockObjectResponseForSchema(FactsSchema, { facts: [] });

recordCall()​

recordCall(params): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:600

Parameters​

params​

RecordCallParams

Returns​

void

Implementation of​

AIHelper.recordCall


reset()​

reset(): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:822

Reset the mock to default state

Returns​

void


setError()​

setError(shouldError, message?): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:748

Configure the mock to throw errors

Parameters​

shouldError​

boolean

message?​

string

Returns​

void


setEvaluateAnswer()​

setEvaluateAnswer(questionId, answer): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:732

Script the answer evaluate returns for the question with this id, on every call, in this helper and its children. Unscripted questions get a neutral default: the first option of a choice, level 0 of a score, and a probability of 0.5 for a boolean.

Parameters​

questionId​

string

answer​

unknown

Returns​

void

Example​

mock.setEvaluateAnswer("route", { type: "choice", choice: "billing" });
mock.setEvaluateAnswer("urgent", { type: "boolean", probability: 0.92 });

setLatency()​

setLatency(ms): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:758

Configure simulated latency

Parameters​

ms​

number

Returns​

void


setObjectResponse()​

setObjectResponse(pattern, response): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:663

Configure the mock to return specific object for a prompt pattern

Parameters​

pattern​

string | RegExp

response​

MockObjectResponse

Returns​

void


setTextResponse()​

setTextResponse(pattern, response): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:653

Configure the mock to return specific text for a prompt pattern

Parameters​

pattern​

string | RegExp

response​

MockTextResponse

Returns​

void


setTranscribeResponse()​

setTranscribeResponse(response): void

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:741

Script what transcribe returns, on every call, in this helper and its children. Unscripted, it returns the text "mock transcript".

Parameters​

response​

MockTranscribeResponse

Returns​

void


streamText()​

streamText(modelKey, input, options?): AIStreamResult

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:494

Parameters​

modelKey​

ModelKey

input​

StreamTextInput

options?​

StreamOptions

Returns​

AIStreamResult

Implementation of​

AIHelper.streamText


transcribe()​

transcribe(modelKey, audio, options?): Promise<AITranscribeResult>

Defined in: packages/workflow-engine/src/__tests__/utils/mock-ai-helper.ts:448

Transcribe audio with a speech-to-text model (isTranscriptionModel in the registry). Cost is estimated per minute of audio (transcriptionCostPerMinute) or per reported token, whichever the provider bills by, unless the provider reports a USD cost itself.

Parameters​

modelKey​

ModelKey

audio​

TranscriptionAudio

options?​

TranscribeOptions

Returns​

Promise<AITranscribeResult>

Implementation of​

AIHelper.transcribe