File size: 1,104 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 | import { z } from 'zod';
import { isoDateTimeSchema } from '@moonshot-ai/agent-core-v2/_base/utils/isoDateTime';
export const approvalDecisionSchema = z.enum(['approved', 'rejected', 'cancelled']);
export type ApprovalDecision = z.infer<typeof approvalDecisionSchema>;
export const approvalScopeSchema = z.enum(['session']);
export type ApprovalScope = z.infer<typeof approvalScopeSchema>;
export const approvalRequestSchema = z.object({
approval_id: z.string().min(1),
session_id: z.string().min(1),
turn_id: z.number().int().nonnegative().optional(),
tool_call_id: z.string().min(1),
tool_name: z.string().min(1),
action: z.string(),
tool_input_display: z.unknown(),
created_at: isoDateTimeSchema,
expires_at: isoDateTimeSchema,
});
export type ApprovalRequest = z.infer<typeof approvalRequestSchema>;
export const approvalResponseSchema = z.object({
decision: approvalDecisionSchema,
scope: approvalScopeSchema.optional(),
feedback: z.string().optional(),
selected_label: z.string().optional(),
});
export type ApprovalResponse = z.infer<typeof approvalResponseSchema>;
|