import { z } from "zod"; export const executionWorkspaceStatusSchema = z.enum([ "active", "idle", "in_review", "archived", "cleanup_failed", ]); export const executionWorkspaceConfigSchema = z.object({ provisionCommand: z.string().optional().nullable(), teardownCommand: z.string().optional().nullable(), cleanupCommand: z.string().optional().nullable(), workspaceRuntime: z.record(z.unknown()).optional().nullable(), }).strict(); export const updateExecutionWorkspaceSchema = z.object({ name: z.string().min(1).optional(), cwd: z.string().optional().nullable(), repoUrl: z.string().optional().nullable(), baseRef: z.string().optional().nullable(), branchName: z.string().optional().nullable(), providerRef: z.string().optional().nullable(), status: executionWorkspaceStatusSchema.optional(), cleanupEligibleAt: z.string().datetime().optional().nullable(), cleanupReason: z.string().optional().nullable(), config: executionWorkspaceConfigSchema.optional().nullable(), metadata: z.record(z.unknown()).optional().nullable(), }).strict(); export type UpdateExecutionWorkspace = z.infer;