From e12d4cbe384282100f178bb4631d882600f9c079 Mon Sep 17 00:00:00 2001 From: Andrew Barba Date: Thu, 25 Jun 2026 00:58:23 -0400 Subject: [PATCH] chore(eve): route workflow types through runtime boundary Signed-off-by: Andrew Barba --- .../eve/src/execution/workflow-runtime.ts | 23 ++++++++----------- packages/eve/src/internal/workflow/runtime.ts | 5 ++++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/eve/src/execution/workflow-runtime.ts b/packages/eve/src/execution/workflow-runtime.ts index d90e06fea..431c486c6 100644 --- a/packages/eve/src/execution/workflow-runtime.ts +++ b/packages/eve/src/execution/workflow-runtime.ts @@ -16,7 +16,15 @@ import { } from "#execution/eve-workflow-attributes.js"; import { resolveInstalledPackageInfo } from "#internal/application/package.js"; import { createLogger, logError } from "#internal/logging.js"; -import { getRun, resumeHook, start, type Run } from "#internal/workflow/runtime.js"; +import { + getRun, + resumeHook, + start, + type Run, + type StartOptionsWithoutDeploymentId, + type WorkflowFunction, + type WorkflowMetadata, +} from "#internal/workflow/runtime.js"; import type { HandleMessageStreamEvent } from "#protocol/message.js"; import type { RuntimeCompiledArtifactsSource } from "#runtime/compiled-artifacts-source.js"; import { ROOT_RUNTIME_AGENT_NODE_ID } from "#runtime/graph.js"; @@ -30,17 +38,6 @@ const WORKFLOW_ENTRY_NAME = "workflowEntry"; const TURN_WORKFLOW_NAME = "turnWorkflow"; const EVE_PACKAGE_INFO = resolveInstalledPackageInfo(); -type WorkflowFunction = (...args: TArgs) => Promise; - -interface WorkflowMetadata { - readonly workflowId: string; -} - -interface WorkflowStartOptions { - readonly allowReservedAttributes?: boolean; - readonly attributes?: Record; -} - export const LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE = "deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()"; @@ -200,7 +197,7 @@ export function createWorkflowRuntime(config: { export async function startWorkflowPreferLatest( workflow: WorkflowFunction | WorkflowMetadata, args: TArgs, - options?: WorkflowStartOptions, + options?: StartOptionsWithoutDeploymentId, ): Promise | Run> { if (!shouldRouteToLatestDeployment()) { return options === undefined diff --git a/packages/eve/src/internal/workflow/runtime.ts b/packages/eve/src/internal/workflow/runtime.ts index de4308d86..c3bd15ded 100644 --- a/packages/eve/src/internal/workflow/runtime.ts +++ b/packages/eve/src/internal/workflow/runtime.ts @@ -2,6 +2,11 @@ import "#internal/workflow/queue-namespace.js"; import * as workflowRuntime from "#compiled/@workflow/core/runtime.js"; export * from "#compiled/@workflow/core/runtime.js"; +export type { + StartOptionsWithoutDeploymentId, + WorkflowFunction, + WorkflowMetadata, +} from "#compiled/@workflow/core/runtime/start.js"; /** Installs a World across source and vendored Workflow package identities. */ export function setWorld(world: unknown): void {