export class TaskCanceledError extends Error { override name = "TaskCanceledError"; constructor(runId: string, reason?: string | null) { super(`task run ${runId} canceled${reason ? `: ${reason}` : ""}`); } } /** 租约已丢:该 opKey 已有更新的 attempt,当前 attempt 的提交被拒绝 */ export class FencingError extends Error { override name = "FencingError"; constructor(opKey: string) { super(`operation ${opKey}: attempt token superseded, commit rejected`); } } export class UnknownTaskError extends Error { override name = "UnknownTaskError"; constructor(name: string, version?: number) { super(`task ${name}${version === undefined ? "" : `@${version}`} is not registered`); } }