eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
37 lines (36 loc) • 1.69 kB
TypeScript
import type { SessionContext } from "#context/session-context.js";
import type { WorkflowToolContext } from "#tools/workflow-definition.js";
import { type WorkflowToolRunOutcome, type WorkflowToolRunOwner, type WorkflowToolRunRef } from "#execution/tools/workflow/messages.js";
import type { JsonObject, JsonValue } from "#shared/json.js";
export interface WorkflowBodyDefinition {
/** Snapshot added for new runs; absent only when resuming an older durable payload. */
readonly agents?: WorkflowToolContext["agents"];
readonly callId: string;
/**
* Whether the owning session can reach a human. `false` makes `ctx.ask()`
* resolve as `unavailable` instead of waiting for an answer no one can give.
*/
readonly canRequestInput?: boolean;
readonly executeInput?: JsonValue;
readonly input: JsonObject;
readonly session: SessionContext["session"];
readonly stepIndex: number;
readonly toolName: string;
readonly workflowId: string;
}
export interface WorkflowBodyInput extends WorkflowBodyDefinition {
readonly owner: WorkflowToolRunOwner;
}
export interface WorkflowBodyResult {
readonly outcome: WorkflowToolRunOutcome;
readonly reportCount: number;
}
/** Executes one registered workflow body and reports progress to its owner. */
export declare function executeWorkflowBody(input: WorkflowBodyInput & {
readonly execution: "background" | "blocking";
readonly runId?: string;
}, signal: AbortSignal): Promise<WorkflowBodyResult>;
export declare function createWorkflowBodyRef(input: WorkflowBodyDefinition & {
readonly execution: "background" | "blocking";
readonly runId?: string;
}): WorkflowToolRunRef;