File size: 921 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
import { z } from 'zod';

import { isoDateTimeSchema, timelineMessageBase } from './base';
import { stepUsageSchema } from './step-usage';

export const taskMessageSchema = z.object({
  type: z.literal('task'),
  ...timelineMessageBase,
  task_id: z.string().min(1),
  kind: z.enum(['shell', 'subagent', 'tool', 'other']),
  status: z.enum(['running', 'completed', 'failed', 'timed_out', 'killed', 'lost']),
  detached: z.boolean(),
  description: z.string().optional(),
  child_agent_id: z.string().min(1).optional(),
  output_tail: z.string(),
  started_at: isoDateTimeSchema.optional(),
  ended_at: isoDateTimeSchema.optional(),
  result_summary: z.string().optional(),
  error: z.string().optional(),
  state_reason: z.string().optional(),
  usage: stepUsageSchema.optional(),
  model: z.string().optional(),
  thinking_effort: z.string().optional(),
});

export type TaskMessage = z.infer<typeof taskMessageSchema>;