Spaces:
Paused
Paused
| 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(), | |
| desiredState: z.enum(["running", "stopped"]).optional().nullable(), | |
| }).strict(); | |
| export const executionWorkspaceCloseReadinessStateSchema = z.enum([ | |
| "ready", | |
| "ready_with_warnings", | |
| "blocked", | |
| ]); | |
| export const executionWorkspaceCloseActionKindSchema = z.enum([ | |
| "archive_record", | |
| "stop_runtime_services", | |
| "cleanup_command", | |
| "teardown_command", | |
| "git_worktree_remove", | |
| "git_branch_delete", | |
| "remove_local_directory", | |
| ]); | |
| export const executionWorkspaceCloseActionSchema = z.object({ | |
| kind: executionWorkspaceCloseActionKindSchema, | |
| label: z.string(), | |
| description: z.string(), | |
| command: z.string().nullable(), | |
| }).strict(); | |
| export const executionWorkspaceCloseLinkedIssueSchema = z.object({ | |
| id: z.string().uuid(), | |
| identifier: z.string().nullable(), | |
| title: z.string(), | |
| status: z.string(), | |
| isTerminal: z.boolean(), | |
| }).strict(); | |
| export const executionWorkspaceCloseGitReadinessSchema = z.object({ | |
| repoRoot: z.string().nullable(), | |
| workspacePath: z.string().nullable(), | |
| branchName: z.string().nullable(), | |
| baseRef: z.string().nullable(), | |
| hasDirtyTrackedFiles: z.boolean(), | |
| hasUntrackedFiles: z.boolean(), | |
| dirtyEntryCount: z.number().int().nonnegative(), | |
| untrackedEntryCount: z.number().int().nonnegative(), | |
| aheadCount: z.number().int().nonnegative().nullable(), | |
| behindCount: z.number().int().nonnegative().nullable(), | |
| isMergedIntoBase: z.boolean().nullable(), | |
| createdByRuntime: z.boolean(), | |
| }).strict(); | |
| export const workspaceRuntimeServiceSchema = z.object({ | |
| id: z.string(), | |
| companyId: z.string().uuid(), | |
| projectId: z.string().uuid().nullable(), | |
| projectWorkspaceId: z.string().uuid().nullable(), | |
| executionWorkspaceId: z.string().uuid().nullable(), | |
| issueId: z.string().uuid().nullable(), | |
| scopeType: z.enum(["project_workspace", "execution_workspace", "run", "agent"]), | |
| scopeId: z.string().nullable(), | |
| serviceName: z.string(), | |
| status: z.enum(["starting", "running", "stopped", "failed"]), | |
| lifecycle: z.enum(["shared", "ephemeral"]), | |
| reuseKey: z.string().nullable(), | |
| command: z.string().nullable(), | |
| cwd: z.string().nullable(), | |
| port: z.number().int().nullable(), | |
| url: z.string().nullable(), | |
| provider: z.enum(["local_process", "adapter_managed"]), | |
| providerRef: z.string().nullable(), | |
| ownerAgentId: z.string().uuid().nullable(), | |
| startedByRunId: z.string().uuid().nullable(), | |
| lastUsedAt: z.coerce.date(), | |
| startedAt: z.coerce.date(), | |
| stoppedAt: z.coerce.date().nullable(), | |
| stopPolicy: z.record(z.unknown()).nullable(), | |
| healthStatus: z.enum(["unknown", "healthy", "unhealthy"]), | |
| createdAt: z.coerce.date(), | |
| updatedAt: z.coerce.date(), | |
| }).strict(); | |
| export const executionWorkspaceCloseReadinessSchema = z.object({ | |
| workspaceId: z.string().uuid(), | |
| state: executionWorkspaceCloseReadinessStateSchema, | |
| blockingReasons: z.array(z.string()), | |
| warnings: z.array(z.string()), | |
| linkedIssues: z.array(executionWorkspaceCloseLinkedIssueSchema), | |
| plannedActions: z.array(executionWorkspaceCloseActionSchema), | |
| isDestructiveCloseAllowed: z.boolean(), | |
| isSharedWorkspace: z.boolean(), | |
| isProjectPrimaryWorkspace: z.boolean(), | |
| git: executionWorkspaceCloseGitReadinessSchema.nullable(), | |
| runtimeServices: z.array(workspaceRuntimeServiceSchema), | |
| }).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<typeof updateExecutionWorkspaceSchema>; | |