eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
54 lines (53 loc) • 2.02 kB
TypeScript
import type { Node } from "#shared/node.js";
import type { SourceRef } from "#shared/source-ref.js";
import type { InternalToolDefinition } from "#tools/definition.js";
import type { AgentSourceOwner } from "#compiler/source-graph.js";
import type { PreparedToolBehavior } from "#tools/behavior.js";
/** Grouped durable workflow metadata for one prepared harness tool. */
export type PreparedRuntimeWorkflowTask = {
readonly nodeId?: never;
readonly resultKind?: "tool";
readonly workflowId: string;
} | {
readonly nodeId: string;
readonly resultKind: "subagent";
readonly workflowId: string;
};
/**
* Serializable authored tool descriptor prepared by the runtime for one
* harness turn.
*/
export type PreparedRuntimeAuthoredTool = Readonly<InternalToolDefinition & SourceRef & {
behavior?: PreparedToolBehavior;
kind: "authored-tool";
owner: AgentSourceOwner;
rootOnly?: boolean;
task?: PreparedRuntimeWorkflowTask;
}>;
type PreparedRuntimeDelegationToolBase<TKind extends "remote" | "subagent"> = Readonly<Omit<InternalToolDefinition, "execution"> & SourceRef & Node & {
behavior: PreparedToolBehavior;
execution: "background";
kind: TKind;
rootOnly?: boolean;
task: PreparedRuntimeWorkflowTask;
}>;
/**
* Serializable local subagent descriptor prepared by the runtime for one
* harness turn.
*/
type PreparedRuntimeSubagentTool = PreparedRuntimeDelegationToolBase<"subagent">;
/**
* Serializable remote subagent descriptor prepared by the runtime for one
* harness turn.
*/
type PreparedRuntimeRemoteAgentTool = PreparedRuntimeDelegationToolBase<"remote">;
/**
* Serializable delegation descriptor prepared by the runtime for one harness
* turn.
*/
export type PreparedRuntimeDelegationTool = PreparedRuntimeRemoteAgentTool | PreparedRuntimeSubagentTool;
/**
* Serializable model-visible runtime tool prepared for one harness turn.
*/
export type PreparedRuntimeTool = PreparedRuntimeAuthoredTool | PreparedRuntimeDelegationTool;
export {};