File size: 1,126 Bytes
4e23b01
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { z } from 'zod';

import { timelineMessageBase } from './base';
import { toolProgressPayloadSchema } from './tool-progress';

export const toolCallAgentRefSchema = z.object({
  agent_id: z.string().min(1),
  role: z.enum(['child', 'member']).optional(),
});

export type ToolCallAgentRef = z.infer<typeof toolCallAgentRefSchema>;

export const toolCallMessageSchema = z.object({
  type: z.literal('tool_call'),
  ...timelineMessageBase,
  tool_call_id: z.string().min(1),
  turn_id: z.string().min(1),
  step_id: z.string().min(1),
  name: z.string().min(1),
  view: z.string().optional(),
  status: z.enum(['running', 'done', 'error']),
  input: z.unknown().optional(),
  input_text: z.string().optional(),
  output: z.unknown().optional(),
  display: z.unknown().optional(),
  error: z.string().optional(),
  progress: toolProgressPayloadSchema.optional(),
  task_id: z.string().min(1).optional(),
  approval_id: z.string().min(1).optional(),
  todo_id: z.string().min(1).optional(),
  agent_refs: z.array(toolCallAgentRefSchema).optional(),
});

export type ToolCallMessage = z.infer<typeof toolCallMessageSchema>;