forked from farhoodlabs/paperclip
65818c3447
Co-Authored-By: Paperclip <noreply@paperclip.ing>
20 lines
934 B
TypeScript
20 lines
934 B
TypeScript
import type { ExecutionWorkspace } from "./types/workspace-runtime.js";
|
|
|
|
type ExecutionWorkspaceGuardTarget = Pick<ExecutionWorkspace, "closedAt" | "mode" | "name" | "status">;
|
|
|
|
const CLOSED_EXECUTION_WORKSPACE_STATUSES = new Set<ExecutionWorkspace["status"]>(["archived", "cleanup_failed"]);
|
|
|
|
export function isClosedIsolatedExecutionWorkspace(
|
|
workspace: Pick<ExecutionWorkspaceGuardTarget, "closedAt" | "mode" | "status"> | null | undefined,
|
|
): boolean {
|
|
if (!workspace) return false;
|
|
if (workspace.mode !== "isolated_workspace") return false;
|
|
return workspace.closedAt != null || CLOSED_EXECUTION_WORKSPACE_STATUSES.has(workspace.status);
|
|
}
|
|
|
|
export function getClosedIsolatedExecutionWorkspaceMessage(
|
|
workspace: Pick<ExecutionWorkspaceGuardTarget, "name">,
|
|
): string {
|
|
return `This issue is linked to the closed workspace "${workspace.name}". Move it to an open workspace before adding comments or resuming work.`;
|
|
}
|