mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-25 16:36:22 +02:00
87 lines
2.2 KiB
TypeScript
87 lines
2.2 KiB
TypeScript
import { LlmStepStreamEvent } from "./llm-step-events.js";
|
|
import { Message, ToolCallPart } from "./message.js";
|
|
import z from "zod";
|
|
|
|
const BaseRunEvent = z.object({
|
|
runId: z.string(),
|
|
ts: z.iso.datetime().optional(),
|
|
subflow: z.array(z.string()),
|
|
});
|
|
|
|
export const StartEvent = BaseRunEvent.extend({
|
|
type: z.literal("start"),
|
|
agentName: z.string(),
|
|
});
|
|
|
|
export const SpawnSubFlowEvent = BaseRunEvent.extend({
|
|
type: z.literal("spawn-subflow"),
|
|
agentName: z.string(),
|
|
toolCallId: z.string(),
|
|
});
|
|
|
|
export const LlmStreamEvent = BaseRunEvent.extend({
|
|
type: z.literal("llm-stream-event"),
|
|
event: LlmStepStreamEvent,
|
|
});
|
|
|
|
export const MessageEvent = BaseRunEvent.extend({
|
|
type: z.literal("message"),
|
|
messageId: z.string(),
|
|
message: Message,
|
|
});
|
|
|
|
export const ToolInvocationEvent = BaseRunEvent.extend({
|
|
type: z.literal("tool-invocation"),
|
|
toolCallId: z.string().optional(),
|
|
toolName: z.string(),
|
|
input: z.string(),
|
|
});
|
|
|
|
export const ToolResultEvent = BaseRunEvent.extend({
|
|
type: z.literal("tool-result"),
|
|
toolCallId: z.string().optional(),
|
|
toolName: z.string(),
|
|
result: z.any(),
|
|
});
|
|
|
|
export const AskHumanRequestEvent = BaseRunEvent.extend({
|
|
type: z.literal("ask-human-request"),
|
|
toolCallId: z.string(),
|
|
query: z.string(),
|
|
});
|
|
|
|
export const AskHumanResponseEvent = BaseRunEvent.extend({
|
|
type: z.literal("ask-human-response"),
|
|
toolCallId: z.string(),
|
|
response: z.string(),
|
|
});
|
|
|
|
export const ToolPermissionRequestEvent = BaseRunEvent.extend({
|
|
type: z.literal("tool-permission-request"),
|
|
toolCall: ToolCallPart,
|
|
});
|
|
|
|
export const ToolPermissionResponseEvent = BaseRunEvent.extend({
|
|
type: z.literal("tool-permission-response"),
|
|
toolCallId: z.string(),
|
|
response: z.enum(["approve", "deny"]),
|
|
});
|
|
|
|
export const RunErrorEvent = BaseRunEvent.extend({
|
|
type: z.literal("error"),
|
|
error: z.string(),
|
|
});
|
|
|
|
export const RunEvent = z.union([
|
|
StartEvent,
|
|
SpawnSubFlowEvent,
|
|
LlmStreamEvent,
|
|
MessageEvent,
|
|
ToolInvocationEvent,
|
|
ToolResultEvent,
|
|
AskHumanRequestEvent,
|
|
AskHumanResponseEvent,
|
|
ToolPermissionRequestEvent,
|
|
ToolPermissionResponseEvent,
|
|
RunErrorEvent,
|
|
]);
|