agent / packages /shared /src /execution-workspace-guards.ts
GraziePrego's picture
Upload folder using huggingface_hub
b152fd5 verified
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.`;
}