eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
23 lines (22 loc) • 1.18 kB
TypeScript
import type { HarnessSession, StepInput } from "#harness/types.js";
import type { JsonObject } from "#shared/json.js";
import type { RunMode } from "#shared/run-mode.js";
/**
* Resolves the single output schema in effect for this turn, decoupling schema
* enforcement from {@link RunMode}: downstream the harness reads
* `session.outputSchema` unconditionally and never re-derives it from mode.
*
* A run-scoped (client-supplied) schema on the turn's {@link StepInput} always
* wins. With no run-scoped schema, a task run adopts the agent's declared
* return schema — its function-output contract, which only applies when the
* agent is invoked directly as a task-mode schedule or job. Subagent
* dispatch carries its declared schema as a run-scoped schema instead.
* A conversation run with no run-scoped schema enforces nothing. Continuation
* steps (no new `StepInput`) preserve whatever is already in effect.
*/
export declare function resolveEffectiveOutputSchema(input: {
readonly agentOutputSchema: JsonObject | undefined;
readonly input: StepInput | undefined;
readonly mode: RunMode;
readonly session: HarnessSession;
}): HarnessSession;