rowboat/apps/cli/src/application/entities/workflow-event.ts

69 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-11-07 11:42:10 +05:30
import { z } from "zod";
import { LlmStepStreamEvent } from "./llm-step-event.js";
import { Workflow } from "./workflow.js";
import { Message } from "./message.js";
export const WorkflowStreamStartEvent = z.object({
type: z.literal("workflow-start"),
workflowId: z.string(),
workflow: Workflow,
background: z.boolean(),
});
export const WorkflowStreamStepStartEvent = z.object({
type: z.literal("workflow-step-start"),
stepId: z.string(),
stepType: z.enum(["agent", "function"]),
});
export const WorkflowStreamStepStreamEventEvent = z.object({
type: z.literal("workflow-step-stream-event"),
stepId: z.string(),
event: LlmStepStreamEvent,
});
export const WorkflowStreamStepMessageEvent = z.object({
type: z.literal("workflow-step-message"),
stepId: z.string(),
message: Message,
});
export const WorkflowStreamStepToolInvocationEvent = z.object({
type: z.literal("workflow-step-tool-invocation"),
stepId: z.string(),
toolName: z.string(),
input: z.string(),
});
export const WorkflowStreamStepToolResultEvent = z.object({
type: z.literal("workflow-step-tool-result"),
stepId: z.string(),
toolName: z.string(),
result: z.any(),
});
export const WorkflowStreamStepEndEvent = z.object({
type: z.literal("workflow-step-end"),
stepId: z.string(),
});
export const WorkflowStreamEndEvent = z.object({
type: z.literal("workflow-end"),
});
export const WorkflowStreamErrorEvent = z.object({
type: z.literal("workflow-error"),
error: z.string(),
});
export const WorkflowStreamEvent = z.union([
WorkflowStreamStartEvent,
WorkflowStreamStepStartEvent,
WorkflowStreamStepStreamEventEvent,
WorkflowStreamStepMessageEvent,
WorkflowStreamStepToolInvocationEvent,
WorkflowStreamStepToolResultEvent,
WorkflowStreamStepEndEvent,
WorkflowStreamEndEvent,
WorkflowStreamErrorEvent,
]);