Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
export interface TuttiProtectedDeletionIssue {
|
|
executionId: string;
|
|
issueId: string;
|
|
sourceSessionId: string;
|
|
status: string;
|
|
}
|
|
|
|
export interface TuttiProtectedDeletionConflict {
|
|
protectedIssues: readonly TuttiProtectedDeletionIssue[];
|
|
}
|
|
|
|
export function parseTuttiProtectedDeletionConflict(
|
|
error: unknown
|
|
): TuttiProtectedDeletionConflict | null {
|
|
if (!error || typeof error !== "object") {
|
|
return null;
|
|
}
|
|
const candidate = error as {
|
|
code?: unknown;
|
|
reason?: unknown;
|
|
details?: { protectedIssues?: unknown };
|
|
};
|
|
if (
|
|
candidate.code !== "workspace_issue_resource_exists" ||
|
|
candidate.reason !== "tutti_execution_active" ||
|
|
!Array.isArray(candidate.details?.protectedIssues)
|
|
) {
|
|
return null;
|
|
}
|
|
const protectedIssues = candidate.details.protectedIssues.flatMap((item) => {
|
|
if (!item || typeof item !== "object") {
|
|
return [];
|
|
}
|
|
const value = item as Record<string, unknown>;
|
|
return typeof value.issueId === "string" &&
|
|
typeof value.executionId === "string" &&
|
|
typeof value.sourceSessionId === "string" &&
|
|
typeof value.status === "string"
|
|
? [
|
|
{
|
|
executionId: value.executionId,
|
|
issueId: value.issueId,
|
|
sourceSessionId: value.sourceSessionId,
|
|
status: value.status
|
|
}
|
|
]
|
|
: [];
|
|
});
|
|
return protectedIssues.length > 0 ? { protectedIssues } : null;
|
|
}
|