import type { ExecutionWorkspace, ExecutionWorkspaceCloseReadiness, WorkspaceOperation } from "@paperclipai/shared"; import { api } from "./client"; export const executionWorkspacesApi = { list: ( companyId: string, filters?: { projectId?: string; projectWorkspaceId?: string; issueId?: string; status?: string; reuseEligible?: boolean; }, ) => { const params = new URLSearchParams(); if (filters?.projectId) params.set("projectId", filters.projectId); if (filters?.projectWorkspaceId) params.set("projectWorkspaceId", filters.projectWorkspaceId); if (filters?.issueId) params.set("issueId", filters.issueId); if (filters?.status) params.set("status", filters.status); if (filters?.reuseEligible) params.set("reuseEligible", "true"); const qs = params.toString(); return api.get(`/companies/${companyId}/execution-workspaces${qs ? `?${qs}` : ""}`); }, get: (id: string) => api.get(`/execution-workspaces/${id}`), getCloseReadiness: (id: string) => api.get(`/execution-workspaces/${id}/close-readiness`), listWorkspaceOperations: (id: string) => api.get(`/execution-workspaces/${id}/workspace-operations`), controlRuntimeServices: (id: string, action: "start" | "stop" | "restart") => api.post<{ workspace: ExecutionWorkspace; operation: WorkspaceOperation }>( `/execution-workspaces/${id}/runtime-services/${action}`, {}, ), update: (id: string, data: Record) => api.patch(`/execution-workspaces/${id}`, data), };