/** * `transform` step: pure-JS expression over the run context, evaluated in the * quickjs sandbox. Returns whatever the expression returns; captured as the * step's json output for downstream steps. */ import type { RoutineStep } from "@omp-deck/protocol"; import { evaluate } from "../sandbox.ts"; import type { RunContext, StepResult } from "../types.ts"; export async function executeTransformStep( step: Extract, context: RunContext, _signal: AbortSignal, ): Promise { const startedMs = Date.now(); try { const result = await evaluate(step.body, context as unknown as Record); return { status: "success", stdoutExcerpt: "", stderrExcerpt: "", json: result, durationMs: Date.now() - startedMs, }; } catch (err) { return { status: "failed", stdoutExcerpt: "", stderrExcerpt: String(err), error: String(err), durationMs: Date.now() - startedMs, }; } }