File size: 471 Bytes
4e23b01
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { z } from 'zod';

import type { ServiceContract } from '../types.js';

export const sessionActivityStateSchema = z.object({
  busy: z.boolean(),
  mainTurnActive: z.boolean(),
  pendingInteraction: z.enum(['none', 'approval', 'question']),
  lastTurnReason: z.enum(['completed', 'cancelled', 'failed']).optional(),
});

export const sessionActivityViewContract = {
  state: { input: z.tuple([]), output: sessionActivityStateSchema },
} satisfies ServiceContract;